<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut tout le monde,
Pour importer des données d'un serveur distant vers JMP, je dois appeler un service Web SOAP à l'aide de JSL.
Lorsque je traitais avec des services Web RestFul, je le faisais avec des sockets, en transmettant les paramètres de ma demande dans l'URI. Mais en réalité, je ne sais pas comment utiliser le service Web SOA, car j’ai un fichier XML à envoyer au serveur. Je ne sais même pas par où commencer.
Alors, s'il vous plaît, si quelqu'un pouvait m'aider à partager un conseil ou une astuce sur l'utilisation du service Web SOAP avec le langage de script JMP, j'apprécierais vraiment.
Meilleurs reegards,
Pas familier avec les services Web SOAP, au-delà d'une recherche rapide sur Google ... Quelqu'un d'autre?
On dirait qu'il y a du XML que vous envoyez au serveur et du XML que vous recevez du serveur. Je pense que tous les deux seront faits avec les sockets que vous connaissez déjà. La composition d'un fichier XML à envoyer au serveur signifie que vous créez une chaîne JSL avec toutes les balises de début XML, correctement équilibrées avec les balises de fin. Je suggérerais d'écrire vos propres fonctions utilisateur JSL pour aider à construire le XML que vous envoyez au serveur. L'index de script contient un exemple de la fonction JSL ParseXML que vous pouvez utiliser pour gérer les fichiers reçus du serveur.
makeTable = Function( {name, colnames, colmatrix}, {icol, result = ""},
result = result || "";
For( icol = 1, icol <= N Items( colnames ), icol++,
result = result || makeColumn( colnames[icol], colmatrix[0, icol] ); // 0 means all rows for column i
);
result = result || "";
);
makeColumn = Function( {name, data}, {irow, result = ""},
result = result || ""; // start tag
result = result || "["; // start bracket (not XML, this is within the XML tag)
For( irow = 1, irow <= N Rows( data ), irow++,
result = result || Char( data[irow] ) || " "
);
result = result || "]"; // matching end bracket
result = result || ""; // matching end tag
result; // return the string for this column
);
ex = makeTable( "Flintstone", {"Fred", "Wilma", "Pebbles"}, [1 2 3, 11 12 13, 111 112 113, 99 99 99] );
// above this line: sample JSL for creating an XML string to send to a server. THIS IS NOT SOAP, just
// an example of a way to make balanced XML tags.
// below this line, an example of a way to parse data received from a server. Not SOAP. I'm just
// passing the XML string built above as a demo.
// example taken from scripting index...parses TABLE and COL tags
Parse XML( ex,
On Element( "table", Start Tag( New Table( XML Attr( "name" ) ) ) ),
On Element( "col", End Tag( New Column( XML Attr( "name" ), Set Values( Parse( XML Text() ) ) ) ) )
);
Notez que la fonction makeTable est équilibrée car elle contient
... balises et appelle seulement une autre fonction, makeColumn, qui est également équilibrée car elle possède le ... balises . Vous aurez peut-être besoin d'une imbrication plus profonde pour SOAP; ajoutez plus de fonctions et maintenez-les équilibrées avec les balises de début et de fin.La fonction Parse XML a plusieurs clauses OnElement pour spécifier le JSL à exécuter pour gérer les différentes balises XML. Le travail acharné consistera à déterminer les balises OnElement dont vous avez besoin et quoi faire avec. Parse XML est un framework qui comprend l’imbrication des balises XML. vous remplissez les détails pour les balises (éléments).Ce schéma XML a été créé uniquement pour prendre en charge cet exemple. Il ne représente aucun type de standard (comme le fait SOAP).Document Microsoft: Comprendre SOAP