<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti,
Per importare dati da un server remoto a JMP, devo chiamare un servizio web SOAP usando JSL.
Quando si trattava di servizi Web RestFul, lo usavo con i socket, passando i parametri della mia richiesta nell'URI. Ma in realtà, non so come fare con il servizio web SOA, dato che ho un XML da inviare al server. Non so nemmeno da dove iniziare.
Quindi, se qualcuno potesse aiutarmi a condividere un consiglio o un trucco su come utilizzare il servizio web SOAP con il linguaggio di scripting JMP, sarei davvero grato.
I migliori reegards,
Non hai familiarità con i servizi web SOAP, al di là di una rapida ricerca su google ... qualcun altro?
Sembra che ci sia XML che invii al server e XML che ricevi dal server. Penso che entrambi saranno fatti con le prese che già conoscete. La composizione di un file XML da inviare al server significa che si crea una stringa JSL con tutti i tag di inizio XML, opportunamente bilanciati con i tag finali. Suggerisco di scrivere le proprie funzioni utente JSL per aiutare a costruire l'XML che si invia al server. L'indice di scripting contiene un esempio della funzione ParseXML JSL che è possibile utilizzare per gestire i file ricevuti dal server.
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() ) ) ) ) )
);
Si noti che la funzione makeTable è bilanciata perché ha
... tag e chiama solo un'altra funzione, makeColumn, che è anche bilanciata perché ha il ... tag. Potrebbe essere necessario un nesting più profondo per SOAP; aggiungi più funzioni e mantienile in equilibrio con i tag di inizio e fine.La funzione Parse XML ha più clausole OnElement per specificare JSL da eseguire per gestire i vari tag XML. Il duro lavoro sarà capire quali tag OnElement ti servono e cosa devi fare con loro. Parse XML è un framework che comprende come nidificano i tag XML; inserisci i dettagli per i tag (elementi).Questo schema XML è stato creato solo per supportare questo esempio. Non rappresenta alcun tipo di standard (come fa SOAP).Documento Microsoft: Comprensione SOAP