PARSE
La fonction PARSE analyse un objet de données et le valide par rapport aux métadonnées d'un type de composant. La structure de données en résultant est disponible pour la mappe d'appel en vue d'un traitement approfondi.
L'entrée dans la fonction PARSE peut être n'importe quelle donnée pouvant être traitée en tant qu'objet BLOB de texte, par exemple, le résultat d'un appel de mappe fonctionnelle, une fonction GET ou une mappe RUN.
- Syntaxe
- PARSE (general_expression)
- Signification
- PARSE (data_to_parse)
- Renvoie
- Objet de données mappé dans un fichier de travail
Exemples
La structure de données résultant de la fonction PARSE est disponible pour la mappe d'appel. Lorsque vous utilisez une mappe RUN pour analyser les données, la structure de données en résultant est disponible pour la mappe RUN et non pour la mappe d'appel. En utilisant la fonction PARSE et non l'implémentation de mappe RUN, vous avez moins de mappes à configurer et gérer.
- reçoivent un document d'entrée de l'adaptateur SPE
- extraient les objets de données de l'enveloppe de document
- renvoient une réponse
Exemple 1 : RUN implémentation de mappe
Dans cet exemple, la mappe DEENVELOPE appelle la mappe RUN nommée DUMPRESPONSE pour extraire les données du document.
- SpeResponse (Réponse globale XSD)
- Test Root (racine de texte)
=WriteDocument(Document:sequence:Documents:sequence:SpeResponse,
TestRoot;
TEXT(INDEX(Document:sequence:Documents:sequence:SpeResponse))) + "<NL>"- DataIn (racine de texte)
- Test Root (racine de texte)
- DOCOUTPUT:
= RUN ("DumpResponse", ECHOIN( 1 , Deenvelope ) + ECHOIN( 2 , TestRoot ) + " -OE1" ) - DEENVELOPE:
=VALID(GET("SPE", "-DURL jdbc:derby://localhost:1527/spe2 -DBUSER derbyuser -DBPSWD derbypw -DBDRIVER org.apache.derby.jdbc.ClientDriver -DENV", DataIn), FAIL ("SPE Deenvelope failed: " + LASTERRORMSG() )) /* =VALID(GET("SPE", "-DURL jdbc:db2://bobdb9.bcr.ibm.com:50000/spetest -DBDRIVER com.ibm.db2.jcc.DB2Driver -DBUSER spetest -DBPSWD Seer5r12 -DENV -T ", DataIn), FAIL ("SPE Deenvelope failed: " + LASTERRORMSG() )) */ /* =VALID(GET("SPE", "-DURL jdbc:db2://localhost:60000/SPETEST -DBDRIVER com.ibm.db2.jcc.DB2Driver -DBUSER fred -DBPSWD org13asd -DENV -T ", DataIn), FAIL ("SPE Deenvelope failed: " + LASTERRORMSG() )) */
Exemple 2 : PARSE implémentation de fonction
Dans cet exemple, une mappe unique utilise la fonction PARSE pour traiter les deux mappes de l'exemple 1.
- DataIn (racine de texte)
- Test Root (racine de texte)
- RESPONSEINFO:
= WriteDocument( Document:sequence:Documents:sequence:SpeResponse, TestRoot, TEXT( INDEX( Document:sequence:Documents:sequence:SpeResponse ) ) ) + "<NL>" = "Response - Status: " + Status:sequence:SpeResponse + ", Advanced status: " + AdvancedStatus:sequence:SpeResponse + "<NL>" - SPERESPONSE (Response Global XSD):
=PARSE( VALID(GET("SPE", "-DURL jdbc:derby://localhost:1527/spe2 -DBUSER derbyuser -DBPSWD derbypw -DBDRIVER org.apache.derby.jdbc.ClientDriver -DENV", DataIn), FAIL ("SPE Deenvelope failed: " + LASTERRORMSG() )) )