Welcome Guest! Log in
×

Notice

The forum is in read only mode.
Due to some maintenance operations, stambia.org will be switched to read-only mode during the 13th November. It will be possible to read and download, but impossible to post on the forums or create new accounts. For any question please contact the support team.

Topic-icon Question ind_session_file_op_lst (getFTP)

  • Aminatou
  • Aminatou's Avatar Topic Author
13 Feb 2017 15:10 #1 by Aminatou
Aminatou created the topic: ind_session_file_op_lst (getFTP)
Bonjour,

Lors d'un "getFTP", serais t'il possible de modifier le nom la table "ind_session_file_op_lst" ou de lui ajouter d'autres champs ?
More
22 Feb 2017 09:59 #2 by ENDY
ENDY replied the topic: ind_session_file_op_lst (getFTP)
Bonjour,
Je ne sais pas si l'on pourrait modifier la table, mais tu peux juste faire un test sur ce point. On laisse les techniciens Stambia nous répondre
Si c'est pas possible, il y a un contournement:

Utiliser getFTP et ensuite lier à SQL Operation avec direct bind, après dans ton SQL Operation, mettre:
INSERT INTO YOUR_TABLE_NAME VALUES(':{FILE_NAME}:',....)

J'espère que cela pourra vous aider
More
24 Feb 2017 10:27 #3 by Cyril Dussud
Cyril Dussud replied the topic: ind_session_file_op_lst (getFTP)
Bonjour,
 
Non ce n’est pas paramétrable.
Mais l’utilisation de cette table ne va bientôt plus être obligatoire.
Actuellement, seule l’action FileWait permet de s’en passer (on peut binder le résultat de l’action et en faire ce que l’on souhaite)
La proposition de Endy n’est donc pour le moment pas possible.
 
Les autres actions (Get FTP, File Copy, etc) bénéficieront cependant très prochainement de cette fonctionnalité de bind.
La proposition de Endy sera donc envisageable à ce moment-là ;)
 
En attendant voici une solution pour stocker ces données dans la table que vous voulez :
- Utiliser la métadonnée en pièce jointe comme schéma de connexion stockage
- Vous pouvez ensuite utiliser la table produite dans ce schéma temporaire pour récupérer ses données et les insérer dans la table de votre choix.



Notes:
Cette métadonnée représente une base h2 temporaire stockée en mémoire.
Elle ne sera donc présente qu'au moment de l'exécution et sera supprimée ensuite.
Elle peut être très pratique pour ce genre de cas.
-> Tout le nécessaire pour l'utiliser est déjà présent dans le Runtime.
-> Vous pouvez donc réutiliser cette Metadata comme vous le souhaitez.
Attachments:
  • Aminatou
  • Aminatou's Avatar Topic Author
03 Mar 2017 12:11 #4 by Aminatou
Aminatou replied the topic: ind_session_file_op_lst (getFTP)
Bonjour,
Merci bien pour votre réponse.
Malheureusement ça ne règle pas notre problématique.

Je vous explique:

Pour différents transporteurs, nous avons différents process d’intégration. Chaque transporteur dispose d'un ftp dans lequel il dépose ses fichiers.
Le besoin étant que chaque process traite les fichiers du ftp selon l'ordre de dépôt par le transporteur( donc date dernière modification fichier).
Vu que lors de l'upload des fichiers par le "GETFTP",ce dernier change la date de dernière modification et upload par ordre alphabétique, nous avons eu l’idée de stoker les informations dans la table "ind_session_file_op_lst(contient date derniere modif)" et de lui ajouter une colonne pour le nom du transporteur. Comme cela n'est pas possible on a opté pour "comment modifier le nom de la table à utiliser ".D’où ma question sur le forum

Seulement vu que chaque transporteur n'a pas une structure de nom de fichier qui lui est unique et que les process sont automatisés pour s’exécuter au même moment , l’accès à la table "ind_session_file_op_lst" créerai des conflit et des incohérence de données(car on ne saurai dire avec exactitude la provenance du fichier)
Ainsi même en utilisant votre metadata, on aboutirait à la même problématique(les lignes contenues dans cette table correspondent à quel transporteur?)

Avez vous d'autres options à nous proposer qui pourrait nous permettra de (sans pour autant forcement passer par la table " inc_session_file_op_lst")
--- uploder les fichiers par ordre de de dépôt (date de depot du fichier dans le ftp)
--- de les traiter grâce au "wait file " et "delivery " par ordre aussi

Merci bien
More
03 Mar 2017 15:58 - 03 Mar 2017 15:58 #5 by Thomas BLETON
Thomas BLETON replied the topic: ind_session_file_op_lst (getFTP)
Bonjour,
Il y a pas mal de solutions possibles, ça dépend si vous avez d'autres contraintes par ailleurs :
- faites-vous le getFtp de tous les transporteurs dans la même session ou bien sessions différentes ?
- ou alors via une boucle ? une repetition query ?
- d'autres contraintes ?...

Dans tous les cas, le fait d'alimenter la même table ind_session_file_op_lst devrait quand même convenir, car vous pourrez ensuite distinguer les lots de fichiers. Par exemple en filtrant sur les colonnes sess_id, sess_name ou act_name.
Cf le petit exemple simplifié en pièce jointe, j'ai choisi d'indiquer le nom de transporteur directement dans le nom de l'action... à vous de l'adapter à votre cas de figure ;)
Attachments:
Last Edit: 03 Mar 2017 15:58 by Thomas BLETON.
  • Aminatou
  • Aminatou's Avatar Topic Author
03 Mar 2017 16:22 #6 by Aminatou
Aminatou replied the topic: ind_session_file_op_lst (getFTP)
Bonjour,
Vous avez parfaitement raison: les colonnes sess_id, sess_name ou act_name feront l'affaire. Merci bien :):):):)

Reste la problématique du ftp:
- j'ai des sessions différentes par transporteur

Ci joint le cas d'un transporteur :


j'ai besoin que le ftp upload les fichiers par ordre de dépot dans le ftp (croissant)sans pour autant modifier leur date de dernière modification(date de dépôt que je veux stoker dans une BD)


J'aurais aussi besoin que le "Wait file" traite les fichiers dans le même ordre

Attachments:
More
03 Mar 2017 16:40 #7 by Thomas BLETON
Thomas BLETON replied the topic: ind_session_file_op_lst (getFTP)
Pour gérer l'ordre, j'essaierais ceci :
- remplacer le FileWait par un SqlOperation qui lit la table ind_session_file_op_lst comme l'a indiqué Cyril plus haut
- ajouter une clause ORDER BY FILE_LAST_MODIFIED à la requête de sélection
- mettre l'ExecuteDelivery en Bind derrière ce SqlOperation

Les paramètres d'ExecuteDelivery ne changent pas : FILE_NAME et FILE_DIR existent tels quels dans la table ;)
  • Aminatou
  • Aminatou's Avatar Topic Author
03 Mar 2017 16:51 #8 by Aminatou
Aminatou replied the topic: ind_session_file_op_lst (getFTP)
Oui tout à fait , mais est ce que le champ "FILE_LAST_MODIFIED " contient la date de dépôt du fichier dans le ftp. Sauf erreur de notre part ,nous avions testé cela et on a conclut que le ftp recrée le fichier en l'uplodant ,ce qui fait qu'il change la date et le "FILE_LAST_MODIFIED " contient la nouvelle date (ce qui ne nous convient pas car il upload par ordre alphabétique) :(
More
03 Mar 2017 17:38 #9 by Thomas BLETON
Thomas BLETON replied the topic: ind_session_file_op_lst (getFTP)
Je n'ai pas compris ce que vous entendez par "ftp recrée le fichier en l'uplodant".
Vous avez un serveur FTP sur lequel se trouvent des fichiers.
Normalement, le GetFTP récupère ces fichiers dans un répertoire local de votre Runtime, et enregistre la date du fichier dans ind_session_file_op_lst telle qu'elle est sur le serveur FTP.
Vous observez un autre fonctionnement ?
Pouvez-vous préciser ?
  • Aminatou
  • Aminatou's Avatar Topic Author
03 Mar 2017 17:57 #10 by Aminatou
Aminatou replied the topic: ind_session_file_op_lst (getFTP)
C'est ok. C'etait une erreur d'analyse de ma part:( . Je viens de re-tester, cette colonne contient bien la bonne date
Merci bcp :):):):):):)