SW-DIAPASON
BUT
Les actions MODE=PUT-* de cette fonction permettent de récupérer les paramètres d’un service WEB Diapason, dans une requête DIALOG.
Les actions MODE=GET-* de cette fonction permettent de retourner les paramètres d’un service WEB Diapason, dans une requête DIALOG.
SYNTAXE
Variable = SW-DIAPASON ( MODE : action sur le service WEB
PARAM : Nom du paramètre en entrée ou sortie du service WEB
VALEUR : Valeur du paramètre en entrée du service WEB
S :VALPARAM : Valeur du paramètre en sortie )
Les noms des paramètres (donnés après PARAM=) sont case-sensitive ce qui implique que les Majuscules et minuscules sont différenciées. Le nom du paramètre devra être donné de manière exacte.
PARAMETRES
MODE ( obligatoire, entrée, type caractère)
Mode = ? | Exemple REB | Résultat dans le JSON |
---|---|---|
MODE= PUT-C : permet d’écrire un paramètre de type caractère dans le « DIAP_DATA » de retour. | SW-DIAPASON( MODE= PUT-C , PARAM=CLO."Exemple_PUT-C", VALEUR=CLO."ValeurDuParamètre" ) | … "DIAP_DATA": { … "Exemple_PUT-C": "Valeur du paramètre" … |
MODE= PUT-I : permet d’écrire un paramètre de type entier dans le « DIAP_DATA » de retour. | SW-DIAPASON( MODE= PUT-I , PARAM=CLO."Exemple_PUT-I", VALEUR= CLO.1234 ) | … "DIAP_DATA": { … "Exemple_PUT-I": 1234, … |
MODE= PUT-R : permet d’écrire un paramètre de type réel dans le « DIAP_DATA » de retour. | SW-DIAPASON( MODE= PUT-R , PARAM= CLO."Exemple_PUT-R" , VALEUR= CLO.3,141 ) | … "DIAP_DATA": { … "Exemple_PUT-R": 3.141, … Le séparateur décimal est le « . » |
MODE= PUT-D : permet d’écrire un paramètre de type date dans le « DIAP_DATA » de retour. | SW-DIAPASON( MODE= PUT-D , PARAM= CLO."Exemple_PUT-D" , VALEUR= CLO.21/12/2021 ) | … "DIAP_DATA": { … "Exemple_PUT-D": "2021-12-21", … La date est dans un format « inversé ». |
MODE= PUT-L : Permet d’écrire un paramètre de type logique dans le « DIAP_DATA » de retour. | SW-DIAPASON( MODE= PUT-L , PARAM= CLO."Exemple_PUT-L" , VALEUR= CGL.OUI ) | … "DIAP_DATA": { … "Exemple_PUT-L": true , … Le logique est au format true/false. |
MODE= PUT-LISTE : Permet d’écrire un paramètre de type liste dans le « DIAP_DATA » de retour. | CREATION Liste LST.ListeElements : PRENDRE ListeElements RefElement = CLO."Ref1" PRENDRE ListeElements DesElement = CLO."Description élément 1" PRENDRE ListeElements ValNum = CLO.1 FIN_BLOC CREATION Liste LST.ListeElements : PRENDRE ListeElements RefElement = CLO."Ref2" PRENDRE ListeElements DesElement = CLO."Description élément 2" PRENDRE ListeElements ValNum = CLO.2 FIN_BLOC CREATION Liste LST.ListeElements : PRENDRE ListeElements RefElement = CLO."Ref3" PRENDRE ListeElements DesElement = CLO."Description élément 3" PRENDRE ListeElements ValNum = CLO.3 FIN_BLOC SW-DIAPASON( MODE= PUT-LISTE , PARAM= CLO."Exemple_PUT-LISTE" , VALEUR= ListeElements ) | … "DIAP_DATA": { … "Exemple_PUT-LISTE": [ { "RefElement": "Ref1", "ValNum": 1.0, "DesElement": "Description élément 1" }, { "RefElement": "Ref2", "ValNum": 2.0, "DesElement": "Description élément 2" }, { "RefElement": "Ref3", "ValNum": 3.0, "DesElement": "Description élément 3" } ], … Choisir impérativement le format de liste Temp-Table [TT] Liste Optimisé. |
MODE= PUT-TEXTE : permet d’écrire un paramètre de type « contenu de fichier texte » (liste WfFicContenu) dans le « DIAP_DATA » de retour. | VLO.NomFichier = CLO."/tmp/ExempleFichierTexte.txt" FICHIER( NOM-FICHIER= VLO.NomFichier , CDE-SYS-OK= CLO."" , CDE-SYS-PB= CLO."" ) SW-DIAPASON( MODE= PUT-TEXTE , PARAM= VLO.NomFichier , VALEUR= WFFicContenu ) | … "DIAP_DATA": { … "/tmp/ExempleFichierTexte.txt": "Tm90ZSBkb250IGxhIGZy6X[…]ZCdhdXRydWku", … La valeur du paramètre est encodé en base 64 et le séparateur de ligne est le séparateur UNIX. Le nom du paramètre (PARAM=) doit correspondre à la valeur contenue dans WFFicContenu.NomFichier. |
MODE= PUT-XML : permet d’écrire un paramètre de type « contenu de fichier XML » (liste WFEIAXmlMes) dans le « DIAP_DATA » de retour. | VLO.NomFichier = CLO."/tmp/ExempleFichierXml.xml" VLO.BalDep = CLO."" XML-LECMESFIC( REF-MESSAGE-XML= CLO."XML2Test" , NOM-FICHIER= VLO.NomFichier , BALISE-DEPART= VLO.BalDep ) SW-DIAPASON( MODE= PUT-XML , PARAM= CLO."XML2Test" , VALEUR= WFEIAXmlMes ) | … "DIAP_DATA": { … "XML2Test": "PD94bWwgdmVyc2lvbj0iMS4wIiBl[…]aXR1cmVzPg==" … La valeur du paramètre est encodé en base 64 et le séparateur de ligne est le séparateur UNIX. Le nom du paramètre (PARAM=) doit correspondre à la valeur contenue dans WFEIAXmlMes.MesIde. |
MODE= PUT-FICHIER : permet d’écrire un paramètre de type « contenu de fichier binaire » (images, pdf ou autres) dans le « DIAP_DATA » de retour. | SW-DIAPASON( MODE= PUT-FICHIER, PARAM= CLO."ParamImage.jpg" , VALEUR= CLO."/tmp/Image2Test.jpg" ) | … "DIAP_DATA": { … "ParamImage.jpg": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAFA3PEY8MlBGQUZaVVBfeMiCeG5uePWvuZHI////////////////////////////////////////////////////2wBDAVVaWnhpeOuCguv/////////////////////////////////////////////////////////////////////////wAARCAFAAgADAREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhB ... 7UAZ/nSf32/OgBUlkLrl26jvQBqUAf/Z" … La valeur du paramètre est le contenu binaire du fichier encodé en base 64. |
MODE= GET-C : permet de lire un paramètre de type caractère dans le « DIAP_DATA » de la demande. | SW-DIAPASON( MODE= GET-C , PARAM= CLO."ParamCar1" , S:VALPARAM= VLO.VarCar ) | … "DIAP_DATA": { … "ParamCar1": "Valeur 1", … Résultat : La variable VarCar contient "Valeur 1" |
MODE= GET-I : permet de lire un paramètre de type entier dans le « DIAP_DATA » de la demande. | SW-DIAPASON( MODE= GET-I , PARAM= CLO."ParamInt1" , S:VALPARAM= VLO.VarInt ) | … "DIAP_DATA": { … "ParamInt1": 9876, … Résultat : La variable VarInt contient 9876 |
MODE= GET-R : permet de lire un paramètre de type décimal dans le « DIAP_DATA » de la demande. | SW-DIAPASON( MODE= GET-R , PARAM= CLO."ParamNum1" , S:VALPARAM= VLO.VarNum ) | … "DIAP_DATA": { … "ParamNum1": 12345.6789, … Résultat : La variable VarNum contient 12345,6789 |
MODE= GET-D : permet de lire un paramètre de type décimal dans le « DIAP_DATA » de la demande. | SW-DIAPASON( MODE= GET-D , PARAM= CLO."ParamDate1" , S:VALPARAM= VLO.VarDate ) | … "DIAP_DATA": { … "ParamDate1": "2021-11-29", … Résultat : La variable VarDate contient la date 29/11/21 |
MODE= GET-L : permet de lire un paramètre de type décimal dans le « DIAP_DATA » de la demande. | SW-DIAPASON( MODE= GET-L , PARAM= CLO."ParamLog1" , S:VALPARAM= VLO.VarLog ) | … "DIAP_DATA": { … "ParamLog1": false … Résultat : La variable VarLog contient le logique NO |
MODE= GET-LISTE : permet de lire un paramètre de type liste dans le « DIAP_DATA » de la demande. | SW-DIAPASON( MODE= GET-LISTE , PARAM= CLO."Exemple_de_liste" , VALEUR= ListeElements ) | … "DIAP_DATA": { … "Exemple_de_liste": [ { "RefElement": "Elem10", "ValNum": 10, "DesElement": "élément 10" }, { "RefElement": "Elem20", "ValNum": 20, "DesElement": "élément 20" }, { "RefElement": "Elem30", "ValNum": 30, "DesElement": "élément 30" } ], … Résultat : La liste « ListeElements » est alimentée avec le contenu du JSON. Seuls les champs ayant exactement le même nom seront alimentés. |
MODE= GET-TEXTE : Permet de lire un paramètre de type « contenu texte » dans le « DIAP_DATA » de la demande. | SW-DIAPASON( MODE= GET-TEXTE , PARAM= CLO."ParamTexte" , VALEUR= WFFicContenu ) ECRIT-FICHIER( IDENTIFIANT= CLO."ParamTexte" , NOM= CLO."FichierTexte.txt" , REPERTOIRE= CLO."/tmp/" , PARAMETRES= CLO."" ) Résultat : La liste « WFFicContenu» est alimentée avec le contenu du texte et la fonction DIALOG « ECRIT-FICHIER » permet d’écrire ce contenu dans un fichier. La valeur du paramètre est encodée en base 64 et le séparateur de ligne est le séparateur UNIX. | … "DIAP_DATA": { … "ParamTexte": "Tm90ZSBkb250IGxhIGZy6XF1Z[…]dhdHRpdHVkZSBvdSBsZXMgb3BpbmlvbnMgZCdhdXRydWku" , … |
MODE= GET-XML : Permet de lire un paramètre de type « contenu XML » dans le « DIAP_DATA » de la demande. | SW-DIAPASON( MODE= GET-XML , PARAM= CLO."ParamXML" , VALEUR= WFEIAXmlMes ) VLO.BalDep = CLO."voitures" XML-ECRMESFIC( REF-MESSAGE-XML= CLO."ParamXML" , NOM-FICHIER= CLO."/tmp/ExempleFichierXml1.xml" , BALISE-DEPART= VLO.BalDep ) La liste « WFEIAXmlMes» est alimentée avec le contenu du XML et la fonction DIALOG « XML-ECRMESFIC » permet d’écrire ce contenu dans un fichier. La valeur du paramètre est encodée en base 64 et le séparateur de ligne est le séparateur UNIX. | … "DIAP_DATA": { … "ParamXML": "PD94bWwg[…]0PC9kYXRlU29ydGllPjwvdm9pdHVyZT48L3ZvaXR1cmVzPg==" , … |
MODE= GET-FICHIER : Permet de lire un paramètre de type « contenu Fichier » dans le « DIAP_DATA » de la demande. | SW-DIAPASON( MODE= GET-FICHIER , PARAM= CLO."ParamFichierJpg" , VALEUR= CLO."/tmp/ExempleImage.jpg" ) Résultat : Ecriture d’un fichier /tmp/ExempleImage.jpg avec le contenu du fichier d’origine. La valeur du paramètre est encodée en base 64. | … "DIAP_DATA": { … "ParamFichierJpg": "/9j/4AAQSkZJRgABAQEAYABg[…]AAQRBRIhMUEGE1FhB ... 7UAZ/nSf32/OgBUlkLrl26jvQBqUAf/Z" , … |
PARAM (Obligatoire, Entrée, Type caractère) : Nom du paramètre à envoyer au service WEB ou à récupérer en sortie du service WEB. Peut être donné par une variable locale, une constante globale ou une constante locale.
VALEUR (Obligatoire, Entrée, Type caractère, Numérique, Logique ou Date) : Valeur du paramètre à envoyer au service WEB. Paramètre utilisé seulement dans le cas où le MODE est égal à l’une des options de passage de paramètres (PUT-*). Ce paramètre peut être donné par une variable locale, une constante globale, une constante locale ou par une sélection de Liste DIALOG dans le cas PUT-LISTE.
S: VALPARAM (Obligatoire, Entrée, Type caractère, Numérique, Logique ou Date) : Valeur du paramètre après exécution du service WEB. Paramètre utilisé seulement dans le cas où le MODE est égal à l’une des options de récupération de paramètres (GET-*).
NOTES
La fonction retourne dans la variable résultat :
Le code erreur DIAPASON et le libellé associé à l’erreur, lors de toute anomalie d’exécution
Vide si tout s’est bien passé
EXEMPLE
VLO.REs = SW-DIAPASON( MODE= GET-C , PARAM= CLO."ParamCar1" , S:VALPARAM= VLO.ValeurParam )
VLO.REs = SW-DIAPASON( MODE= GET-D , PARAM= CLO."ParamDate2" , S:VALPARAM= VLO.ValeurDate )
VLO.REs = SW-DIAPASON( MODE= GET-R , PARAM= CLO."ParamNum3" , S:VALPARAM= VLO.ValeurNum )
VLO.REs = SW-DIAPASON( MODE= PUT-C , PARAM= CLO."ListeParametresEntrees" , VALEUR= VLO.LstParamEntree )
VLO.REs = SW-DIAPASON( MODE= PUT-C , PARAM= CLO."Param_CHARACTER" , VALEUR= CLO."Test CAR" )
VLO.REs = SW-DIAPASON( MODE= PUT-D , PARAM= CLO."Param_DATE" , VALEUR= CLO.29/06/2020 )
VLO.REs = SW-DIAPASON( MODE= PUT-L , PARAM= CLO."Param_LOGICAL" , VALEUR= CGL.OUI )
VLO.REs = SW-DIAPASON( MODE= PUT-R , PARAM= CLO."Param_DECIMAL" , VALEUR= VLO.ValR )
CREATION Liste LST.Liste2Test :
PRENDRE Liste2Test ParCar1 = CLO."Valeur1"
PRENDRE Liste2Test ParCar2 = CLO."Valeur2"
PRENDRE Liste2Test ParNum1 = CLO.3
FIN_BLOC
VLO.REs = SW-DIAPASON( MODE= PUT-LISTE , PARAM= CLO."NomDeLaListeEnRetour" , VALEUR= Liste2Test )