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 WSdl

More
07 May 2015 11:52 #1 by olivier
olivier created the topic: WSdl
Bonjour,

je souhaite implémenter un WS.

Dans l'input, je souhaite mettre une variable passé à un process.

Donc, je n'ai pas de TABLE source. Existe t'il un moyen de s'en passer ?
More
07 May 2015 16:59 #2 by Thomas BLETON
Thomas BLETON replied the topic: Wsdl
Dans les versions actuelles (S17, S18) de Stambia, il faut en effet une table en source.
Vous pouvez créer une table "dual" si votre Rdbms n'en propose pas déjà.

Exemple :
create table dual (dummy char(1));
insert into dual values ('x');

Puis "reversez"-la dans une metadata, et utilisez-la en source du mapping. Le nombre d'invocations du webservice correspondra au nombre de lignes de la table. Dans notre exemple de dual : 1 invocation.

Dans les expressions du mapping, indiquez les paramètres du process: '${~/param1}$' etc...

En espérant que cela vous aidera ?
More
07 May 2015 17:28 #3 by olivier
olivier replied the topic: WSdl
ok merci

la doc, me dit de mettre une clef fonctionnel. Je prend alors la valeur dummy ? dans ce cas...


C'est ce que j'ai fait, mais, mon ws ne s'exécute pas. Ou puis-je trouver un retour ?

j'ai exécute le ws via un soapUi et c'est ok.
More
07 May 2015 17:42 - 28 Sep 2016 16:15 #4 by Thomas BLETON
Thomas BLETON replied the topic: WSdl
Quelques points à vérifier pour comprendre l'origine du problème:
- Y a-t-il une erreur et si oui laquelle ? ou alors la session se termine en "EXECUTED" ?
- Quelles sont les valeurs indiquées dans la vue Statistics pour le mapping ?
- Indiquez un chemin de répertoire sur le template d'intégration, propriétés "Sent Messages Folder" et "Received Messages Folder". Vous obtiendrez ainsi les fichiers de traces des échanges (requêtes et réponses).

Si cela ne vous permet pas de débloquer la situation, n'hésitez pas à envoyer des éléments détaillés au support : capture d'écran du mapping, message d'erreur, fichiers de traces des échanges...
Last Edit: 28 Sep 2016 16:15 by Thomas BLETON.
More
11 May 2015 14:41 #5 by olivier
olivier replied the topic: WSdl
Bonjour,

avec les traces des fichiers générés, j'ai trouvé qu'il me manquait l'adresse tns qui n'avait pas été généré lors du reverse.

Et maintenant ça fonctionne.

Merci :)
More
11 May 2015 14:56 #6 by olivier
olivier replied the topic: WSdl
Lorsque nous récupérons la réponse du WS la source est en int et la cible en varchar.

j'ai cette erreur SQL Exception Error : La définition de la colonne 'L1_Id' doit comporter un type de données.

Il n'est pas possible de convertir ?

Je souhaiterais colonner avec des 00 avant la réponse pour avoir 9 caractères.

Ce bout de process vient en ajout d'un process existant et je trouve dommage de passer par un table temp.
More
11 May 2015 15:20 #7 by Thomas BLETON
Thomas BLETON replied the topic: WSdl
Vérifiez que l'élément Id comporte bien un Type, dans la metadata Wsdl.
Pour l'ajout des 00, je n'ai pas bien compris : vous souhaitez les ajouter sur un champ en Input du webservice ? ou en sortie ?
Une solution est d'utiliser les fonctions de concaténation du rdbms source / cible selon le cas.
More
11 May 2015 15:27 - 11 May 2015 15:59 #8 by olivier
olivier replied the topic: WSdl
Enfait,

le WS me donne un numéro en long du type 1545789 en cible je souhaite 001545789 pour être sur 9 caractères.

J'ai tenté le cast, le format, mais en vain...

J'exécute cette transformation en staging


Attachments:
Last Edit: 11 May 2015 15:59 by Thomas BLETON. Reason: fixed attachments
More
11 May 2015 15:28 #9 by olivier
olivier replied the topic: WSdl
désolé mauvaise manips...
Attachments:
More
11 May 2015 15:37 #10 by Thomas BLETON
Thomas BLETON replied the topic: WSdl
Si la cible est du Sql Server, essayez une expression de mapping comme celle-ci :
right('000000000' + cast(<le_champ_du_webservice> as varchar(9)), 9)

L'idée est de concaténer des 0 avec la valeur du champ, puis ne garder que les 9 caractères de droite.