Modul Web: Unterschied zwischen den Versionen
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 16: | Zeile 16: | ||
** saslmechanism | ** saslmechanism | ||
* host - Hostname des Mailservers; Funktionen werden ersetzt. | * host - Hostname des Mailservers; Funktionen werden ersetzt. | ||
+ | * isc ("ignore server certificate") - Wenn Y, werden bei den SSL-Options die Werte IgnoreServerCertificateConstraints, IgnoreServerCertificateInsecurity und IgnoreServerCertificateValidity gesetzt. Das ist zum Beispiel erforderlich, um auf Mail-Server zuzugreifen, deren Zertifikat abgelaufen ist. Default N, Funktionen werden ersetzt. | ||
+ | * port - Port der Verbindung; Funktionen werden ersetzt, default ist der nach tls voreingestellte Port | ||
* pw ("PassWord") - Password des Users auf dem Mailserver; Funktionen werden ersetzt. | * pw ("PassWord") - Password des Users auf dem Mailserver; Funktionen werden ersetzt. | ||
* pwc ("PassWordCrypted") - Wenn Y, dann ist das Passwort mit der Verschlüsselungsfunktion auf der Seite Tools des Code-Dialogs verschlüsselt. Hinweis: Mit dieser Verschlüsselung verhindert man lediglich, dass das Passwort direkt aus dem Code ausgelesen werden kann. Wird der BAF-Client mit dem Delphi-Debugger ausgeführt, lässt sich leicht an die betreffende Stelle ein Breakpoint setzen und das Passwort dann im Klartext auslesen (dieselbe Unit uBafCrypt vorausgesetzt). | * pwc ("PassWordCrypted") - Wenn Y, dann ist das Passwort mit der Verschlüsselungsfunktion auf der Seite Tools des Code-Dialogs verschlüsselt. Hinweis: Mit dieser Verschlüsselung verhindert man lediglich, dass das Passwort direkt aus dem Code ausgelesen werden kann. Wird der BAF-Client mit dem Delphi-Debugger ausgeführt, lässt sich leicht an die betreffende Stelle ein Breakpoint setzen und das Passwort dann im Klartext auslesen (dieselbe Unit uBafCrypt vorausgesetzt). | ||
Zeile 23: | Zeile 25: | ||
** itls - Implicit TLS | ** itls - Implicit TLS | ||
** retls - Require Explicit TLS | ** retls - Require Explicit TLS | ||
+ | * to - TimeOut in Sekunden, Funktionen werden ersetzt, default 15 | ||
* usr ("user") - User auf dem Mailserver; Funktionen werden ersetzt. | * usr ("user") - User auf dem Mailserver; Funktionen werden ersetzt. | ||
Zeile 82: | Zeile 85: | ||
'''Parameter''' | '''Parameter''' | ||
− | |||
* host - Hostname des Servers; Funktionen werden ersetzt. | * host - Hostname des Servers; Funktionen werden ersetzt. | ||
* pw ("PassWord") - Password des Users auf dem Server; Funktionen werden ersetzt. | * pw ("PassWord") - Password des Users auf dem Server; Funktionen werden ersetzt. | ||
* pwc ("PassWordCrypted") - Wenn Y, dann ist das Passwort mit der Verschlüsselungsfunktion auf der Seite Tools des Code-Dialogs verschlüsselt. Hinweis: Mit dieser Verschlüsselung verhindert man lediglich, dass das Passwort direkt aus dem Code ausgelesen werden kann. Wird der BAF-Client mit dem Delphi-Debugger ausgeführt, lässt sich leicht an die betreffende Stelle ein Breakpoint setzen und das Passwort dann im Klartext auslesen (dieselbe Unit uBafCrypt vorausgesetzt). | * pwc ("PassWordCrypted") - Wenn Y, dann ist das Passwort mit der Verschlüsselungsfunktion auf der Seite Tools des Code-Dialogs verschlüsselt. Hinweis: Mit dieser Verschlüsselung verhindert man lediglich, dass das Passwort direkt aus dem Code ausgelesen werden kann. Wird der BAF-Client mit dem Delphi-Debugger ausgeführt, lässt sich leicht an die betreffende Stelle ein Breakpoint setzen und das Passwort dann im Klartext auslesen (dieselbe Unit uBafCrypt vorausgesetzt). | ||
* prt ("Port") - Funktionen werden ersetzt. Bei #ftp_connect default 21, bei #sftp_connect default 22 | * prt ("Port") - Funktionen werden ersetzt. Bei #ftp_connect default 21, bei #sftp_connect default 22 | ||
− | |||
* usr ("user") - User auf dem Server; Funktionen werden ersetzt. | * usr ("user") - User auf dem Server; Funktionen werden ersetzt. | ||
Zeile 245: | Zeile 246: | ||
# Wenn ''det'' oder ''details'', dann wird eine Liste mit erweiterten Datei-Informationen (Größe, UNIX-mode,...) geliefert. | # Wenn ''det'' oder ''details'', dann wird eine Liste mit erweiterten Datei-Informationen (Größe, UNIX-mode,...) geliefert. | ||
− | Bitte beachten Sie, dass derzeit nur Verzeichnis-Namen im Pfad zulässig sind, sofern erweiterte Datei-Informationen angefordert werden. | + | Bitte beachten Sie, dass bei $FTP_LIST() derzeit nur Verzeichnis-Namen im Pfad zulässig sind, sofern erweiterte Datei-Informationen angefordert werden. |
'''Ausgabeformate''' | '''Ausgabeformate''' | ||
Zeile 285: | Zeile 286: | ||
* acc - Akzeptierte Response-Formate | * acc - Akzeptierte Response-Formate | ||
+ | * cu8 ("convert UTF8") - wenn Y, werden die Zeichen von UTF8 nach ANSI konvertiert; default N, Funktionen werden ersetzt | ||
* cy - Content-Typ der Anfrage | * cy - Content-Typ der Anfrage | ||
* e_req - Encoding des Requests, zulässig sind ansi, ascii, utf7, utf8, unicode und bigendianunicode. Funktionen werden ersetzt, default utf8. | * e_req - Encoding des Requests, zulässig sind ansi, ascii, utf7, utf8, unicode und bigendianunicode. Funktionen werden ersetzt, default utf8. | ||
Zeile 290: | Zeile 292: | ||
* f_ - Prefix für Header-Einträge, zum Beispiel für die Authorisierung; Funktionen werden ersetzt | * f_ - Prefix für Header-Einträge, zum Beispiel für die Authorisierung; Funktionen werden ersetzt | ||
* isc ("ignore server certificate") - Wenn Y, werden bei den SSL-Options die Werte IgnoreServerCertificateConstraints, IgnoreServerCertificateInsecurity und IgnoreServerCertificateValidity gesetzt. Das ist zum Beispiel erforderlich, um auf REST-Server zuzugreifen, deren Zertifikat abgelaufen ist. Default N, Funktionen werden ersetzt. | * isc ("ignore server certificate") - Wenn Y, werden bei den SSL-Options die Werte IgnoreServerCertificateConstraints, IgnoreServerCertificateInsecurity und IgnoreServerCertificateValidity gesetzt. Das ist zum Beispiel erforderlich, um auf REST-Server zuzugreifen, deren Zertifikat abgelaufen ist. Default N, Funktionen werden ersetzt. | ||
+ | * path - Pfad im XML, der zu dem Array führt, durch das geloopt werden soll; Funktionen werden ersetzt | ||
+ | * pfx ("prefix") - Name der einzelnen Array-Elemente; Funktionen werden ersetzt | ||
* request - Text der Anfrage bei post und put; Funktionen werden ersetzt | * request - Text der Anfrage bei post und put; Funktionen werden ersetzt | ||
* response - Nummer des Values oder Name der Variable, in die bzw. den das Ergebnis geschrieben wird | * response - Nummer des Values oder Name der Variable, in die bzw. den das Ergebnis geschrieben wird | ||
+ | * scode - Statuscode der Antwort als dreistellige Zahl (404 - not found, etc.) | ||
* se ("show error") - Wenn Y, wird im Fehlerfall die Fehlermeldung in einer Meldungsbox eingesetzt. Funtkionen werden ersetzt. Sollte im Server-Betrieb auf N gesetzt werden. | * se ("show error") - Wenn Y, wird im Fehlerfall die Fehlermeldung in einer Meldungsbox eingesetzt. Funtkionen werden ersetzt. Sollte im Server-Betrieb auf N gesetzt werden. | ||
+ | * sep ("separator") - Das Trennzeichen, mit dem die Elemente im Parameter path getrennt sind; Funktionen werden ersetzt, default ist der Punkt | ||
+ | * status - Status der Antwort als Klartext | ||
* to ("TimeOut") - Zeit in Sekunden, bis ein Request abgebrochen wird; Funktionen werden ersetzt, default 15 | * to ("TimeOut") - Zeit in Sekunden, bis ein Request abgebrochen wird; Funktionen werden ersetzt, default 15 | ||
* url - Webadresse des aufgerufenen Services; Funktionen werden ersetzt | * url - Webadresse des aufgerufenen Services; Funktionen werden ersetzt | ||
Zeile 312: | Zeile 319: | ||
#code f_Authorization="Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" | #code f_Authorization="Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" | ||
#code url=https://xxxxx.net/sore/printall | #code url=https://xxxxx.net/sore/printall | ||
− | #http_request y=post cy="application/json" request=$TEXT(1) response=1 se=Y acc=application/json $CODE$ | + | #http_request y=post cy="application/json" request=$TEXT(1) response=1 scode=2 status = 3 se=Y acc=application/json $CODE$ |
+ | #cout c="$VAL(2) - VAL(3)" | ||
#cout c=$VAL(1) | #cout c=$VAL(1) |
Aktuelle Version vom 26. Februar 2024, 12:36 Uhr
Inhaltsverzeichnis
- 1 E-Mail
- 2 FTP / SFTP
- 2.1 #ftp_connect/#sftp_connect
- 2.2 #ftp_disconnect/#sftp_disconnect
- 2.3 #ftp_download/#sftp_download
- 2.4 #ftp_upload/#sftp_upload
- 2.5 #ftp_rename/#sftp_rename
- 2.6 #ftp_delete/#sftp_delete
- 2.7 #ftp_mkdir/#sftp_mkdir
- 2.8 #ftp_remdir/#sftp_remdir
- 2.9 #ftp_chgdir
- 2.10 $FTP_SIZE()/$SFTP_SIZE()
- 2.11 $FTP_LIST() /$SFTP_LIST()
- 3 Web
Das BAF-Framework kann E-Mails (über einen Mailserver) versenden, auch mit Anhängen, auch mit TLS.
Siehe Beispiel E-Mail versenden
#email_init
Setzt die Parameter zur Verbindung mit dem Mail-Server.
Parameter
- at - AuthenticationType, Default ist default
- default
- none
- saslmechanism
- host - Hostname des Mailservers; Funktionen werden ersetzt.
- isc ("ignore server certificate") - Wenn Y, werden bei den SSL-Options die Werte IgnoreServerCertificateConstraints, IgnoreServerCertificateInsecurity und IgnoreServerCertificateValidity gesetzt. Das ist zum Beispiel erforderlich, um auf Mail-Server zuzugreifen, deren Zertifikat abgelaufen ist. Default N, Funktionen werden ersetzt.
- port - Port der Verbindung; Funktionen werden ersetzt, default ist der nach tls voreingestellte Port
- pw ("PassWord") - Password des Users auf dem Mailserver; Funktionen werden ersetzt.
- pwc ("PassWordCrypted") - Wenn Y, dann ist das Passwort mit der Verschlüsselungsfunktion auf der Seite Tools des Code-Dialogs verschlüsselt. Hinweis: Mit dieser Verschlüsselung verhindert man lediglich, dass das Passwort direkt aus dem Code ausgelesen werden kann. Wird der BAF-Client mit dem Delphi-Debugger ausgeführt, lässt sich leicht an die betreffende Stelle ein Breakpoint setzen und das Passwort dann im Klartext auslesen (dieselbe Unit uBafCrypt vorausgesetzt).
- tls - Transport Layer Security; default itls
- aetls - Allow Explicit TLS
- dtls - Disable TLS
- itls - Implicit TLS
- retls - Require Explicit TLS
- to - TimeOut in Sekunden, Funktionen werden ersetzt, default 15
- usr ("user") - User auf dem Mailserver; Funktionen werden ersetzt.
Beispiele
#email_init host=mailhost.my usr=myusername pw=mypassword #email_init host=mailhost.my usr=myusername pwc=Y pw=333w6t7wqDClip4eB02wrE=
siehe auch E-Mail versenden
#email_send
Versendet eine E-Mail.
Parameter
- bcc ("blind carbon copy") - E-Mail-Adresse(n), die als zusätzliche verdeckte Empfänger eingetragen wird; Funktionen werden ersetzt.
- cc ("carbon copy") - E-Mail-Adresse(n), die als zusätzliche Empfänger eingetragen wird; Funktionen werden ersetzt.
- ccs ("content charset") - Zeichensatz, zum Beispiel us-ascii, utf-8 oder utf-16; default ist us-ascii; Funktionen werden ersetzt; bei utf-8 und utf-16 sollte cte=base64 verwendet werden
- cnt ("count") - Anzahl der Anhänge
- cte ("content transfer encoding") - Übertragungsencoding (7bit, 8bit, binary, base64, binhex40, quoted-printable, xxe, uue); Funktionen werden ersetzt
- fn1, fn2... ("FileName") - Dateinamen der Dateien, die als Anhang mitgeschickt werden sollen.
- from - E-Mail-Adresse, die als Absender eingetragen wird; Funktionen werden ersetzt.
- headers2clipboard - Wenn Y, werden direkt vor dem Versand die Headers in die Zwischenanblage geschrieben; kann zum debuggen helfen. Default N, Funktionen werden ersetzt.
- reply - E-Mail-Adresse(n), die als Antwort-Adresse eingetragen wird; Funktionen werden ersetzt.
- subject - Betreff der E-Mail
- text - Text des Mail-Bodys; Funktionen werden ersetzt.
- to - E-Mail-Adresse(n), die als Empfänger eingetragen wird; Funktionen werden ersetzt.
Hinweis: Sollen bei einem Parameter mehrere E-Mail-Adressen angegeben werden, so sind diese durch Semikola zu trennen, siehe Beispiel (to).
Beispiel
#email_send from=test@host.my to=info@adr1.de;info@adr3.de bcc=info@adr2.de subject=Testmail text=$TEXT(1) ccs=utf-16 cte=base64
siehe auch E-Mail versenden
#email_disconnect
Trennt die Verbindung zum Mailserver. Sollte nach dem Versenden der E-Mail (beim Versenden mehrerer E-Mails nach dem Versenden der letzten E-Mail) aufgerufen werden.
Parameter
(keine)
Beispiel
siehe E-Mail versenden
FTP / SFTP
Die Befehle für die Verbindung zu FTP- und SFTP-Server gleichen sich weitgehend, so dass sie gemeinsam besprochen werden.
#ftp_connect/#sftp_connect
Stellt die Verbindung zu einem FTP-Server her.
Parameter
- host - Hostname des Servers; Funktionen werden ersetzt.
- pw ("PassWord") - Password des Users auf dem Server; Funktionen werden ersetzt.
- pwc ("PassWordCrypted") - Wenn Y, dann ist das Passwort mit der Verschlüsselungsfunktion auf der Seite Tools des Code-Dialogs verschlüsselt. Hinweis: Mit dieser Verschlüsselung verhindert man lediglich, dass das Passwort direkt aus dem Code ausgelesen werden kann. Wird der BAF-Client mit dem Delphi-Debugger ausgeführt, lässt sich leicht an die betreffende Stelle ein Breakpoint setzen und das Passwort dann im Klartext auslesen (dieselbe Unit uBafCrypt vorausgesetzt).
- prt ("Port") - Funktionen werden ersetzt. Bei #ftp_connect default 21, bei #sftp_connect default 22
- usr ("user") - User auf dem Server; Funktionen werden ersetzt.
Parameter nur ftp_connect
- crpt ("crypt") - Wenn Y, wird der Datenkanal verschlüssel; default N, Funktionen werden ersetzt
- isc ("ignore server certificate") - Wenn Y, werden bei den SSL-Options die Werte IgnoreServerCertificateConstraints, IgnoreServerCertificateInsecurity und IgnoreServerCertificateValidity gesetzt. Das ist zum Beispiel erforderlich, um auf FTP-Server zuzugreifen, deren Zertifikat abgelaufen ist. Default N, Funktionen werden ersetzt.
- up ("use passive") - Wenn Y, wird der Passiv-Modus genutzt; default N, Funktionen werden ersetzt
- y - TLS-Modus; Funktionen werden ersetzt; default allow
- allow
- disable
- implicit
- require
Parameter nur sftp_connect
- av ("Always validate") - Wenn Y, wird der Server key immer validiert; Funktionen werden ersetzt; Default N
- private - Name des privaten Schlüssels bei der Authentifizierungsmethode pk
- y - Authentifizierungsmethode; default pw
- pk - Private key
- pw - Passwort
Beispiele
#ftp_connect host=w0012345.kasserver.com usr=w0012345 pw=cWLS12345NhVEcll #sftp_connect host=w0012345.kasserver.com usr=w0012345 pw=cWLS12345NhVEcll
#ftp_disconnect/#sftp_disconnect
Trennt die Verbindung zum FTP-Server. Sollte dann als letzte Prozedur aufgerufen werden.
Parameter
(keine)
Beispiele
#ftp_connect host=w0012345.kasserver.com usr=w0012345 pw=cWLS12345NhVEcll #ftp_upload src=c:\temp\test.csv dst=test.csv #ftp_disconnect #sftp_connect host=w0012345.kasserver.com usr=w0012345 pw=cWLS12345NhVEcll #sftp_upload src=c:\temp\test.csv dst=test.csv #sftp_disconnect
#ftp_download/#sftp_download
Lädt eine Datei vom Server herunter
Parameter
- dst ("destination") - Dateiname auf dem lokalen Rechner; Funktionen werden ersetzt
- ie ("is empty") - Wenn Y, dann wird die Datei nur auf den lokalen Rechner herunter geladen, wenn sie dort noch nicht vorhanden ist
- src ("source") - Dateiname auf dem Server; Funktionen werden ersetzt
Beispiel
#ftp_connect host=w0012345.kasserver.com usr=w0012345 pw=cWLS12345NhVEcll #ftp_download src=test.pdf dst=c:\temp\hallo.pdf #ftp_disconnect
#ftp_upload/#sftp_upload
Lädt eine Datei auf den Server hoch
Parameter
- dst ("destination") - Dateiname auf dem Server; Funktionen werden ersetzt
- ie ("is empty") - Wenn Y, dann wird die Datei nur auf den Server hoch geladen, wenn sie dort noch nicht vorhanden ist
- src ("source") - Dateiname auf dem lokalen Rechner; Funktionen werden ersetzt
Beispiel
#ftp_upload src=c:\temp\test.csv dst=test.csv
#ftp_rename/#sftp_rename
Benennt eine Datei auf dem Server um.
Parameter
- dest ("destination") - Neuer Name der Datei
- src ("source") - Bestehender Name der Datei
Beispiel
#ftp_rename src=test.csv dst=hallo.csv
#ftp_delete/#sftp_delete
Löscht eine Datei auf dem Server
Parameter
- fn ("FileName") - Dateiname der Datei, die gelöscht werden soll.
Beispiel
#ftp_delete fn=hallo.csv
#ftp_mkdir/#sftp_mkdir
Legt ein Verzeichnis auf dem Server an ("make directory").
Parameter
- n ("name") - Name des neuen Verzeichnisses
Beispiel
#ftp_mkdir n=testdir
#ftp_remdir/#sftp_remdir
Entfernt ein Verzeichnis auf dem Server ("remove directory").
Parameter
- n ("Name") - Name des Verzeichnisses
Beispiel
#ftp_remdir n=testdir
#ftp_chgdir
Ändert das aktuelle Verzeichnis ("change directory").
Hinweis: Diese Prozedur ist für SFTP nicht verfügbar.
Parameter
- n ("name") - Name des neuen Verzeichnisses
Beispiel
#ftp_chgdir n=testdir
$FTP_SIZE()/$SFTP_SIZE()
Ermittelt die Größe einer Datei auf dem Server in Bytes.
Parameter
- Name der Datei
Beispiel
#coutl $FTP_SIZE(test.pdf) Bytes
$FTP_LIST() /$SFTP_LIST()
Erzeugt eine Liste von Dateien im aktuellen Verzeichnis.
Parameter
- Pfad-Angabe; kann sich auf Verzeichnisse beziehen, jedoch auch auf die Dateinamen (z.B. *.pdf)
- Wenn det oder details, dann wird eine Liste mit erweiterten Datei-Informationen (Größe, UNIX-mode,...) geliefert.
Bitte beachten Sie, dass bei $FTP_LIST() derzeit nur Verzeichnis-Namen im Pfad zulässig sind, sofern erweiterte Datei-Informationen angefordert werden.
Ausgabeformate
Bitte beachten Sie, dass sich die Ausgabeformate von $FTP_LIST() und $SFTP_LIST() unterscheiden:
Beispiel $FTP_LIST()
. .. test.csv XL2KeyServer.exe
Beispiel $SFTP_LIST()
test.csv XL2KeyServer.exe
Beispiel $FTP_LIST(,det)
-r-xr-xrwx 1 owner group 39 Jan 22 08:51 test.csv -r-xr-xrwx 1 owner group 3757056 Jan 21 19:33 XL2KeyServer.exe
Beispiel $SFTP_LIST(,det)
-rw-rw-rw 1 root root 39 Jan 22 08:51 test.csv -rw-rw-rw 1 root root 3757056 Jan 21 20:33 XL2KeyServer.exe
Beispiele
#coutl $FTP_LIST() #coutl $FTP_LIST(*.pdf) #coutl $FTP_LIST(,det) #coutl $FTP_LIST(usage,det)
Web
#http_request
Setzt einen http- oder https-Request ab und schreibt ggf. das Ergebnis in eine Variable oder einen Value. Diese Prozedur eignet sich auch für REST-Aufrufe.
Parameter
- acc - Akzeptierte Response-Formate
- cu8 ("convert UTF8") - wenn Y, werden die Zeichen von UTF8 nach ANSI konvertiert; default N, Funktionen werden ersetzt
- cy - Content-Typ der Anfrage
- e_req - Encoding des Requests, zulässig sind ansi, ascii, utf7, utf8, unicode und bigendianunicode. Funktionen werden ersetzt, default utf8.
- e_res - Encoding des Response, zulässig sind ansi, ascii, utf7, utf8, unicode und bigendianunicode. Funktionen werden ersetzt, default utf8.
- f_ - Prefix für Header-Einträge, zum Beispiel für die Authorisierung; Funktionen werden ersetzt
- isc ("ignore server certificate") - Wenn Y, werden bei den SSL-Options die Werte IgnoreServerCertificateConstraints, IgnoreServerCertificateInsecurity und IgnoreServerCertificateValidity gesetzt. Das ist zum Beispiel erforderlich, um auf REST-Server zuzugreifen, deren Zertifikat abgelaufen ist. Default N, Funktionen werden ersetzt.
- path - Pfad im XML, der zu dem Array führt, durch das geloopt werden soll; Funktionen werden ersetzt
- pfx ("prefix") - Name der einzelnen Array-Elemente; Funktionen werden ersetzt
- request - Text der Anfrage bei post und put; Funktionen werden ersetzt
- response - Nummer des Values oder Name der Variable, in die bzw. den das Ergebnis geschrieben wird
- scode - Statuscode der Antwort als dreistellige Zahl (404 - not found, etc.)
- se ("show error") - Wenn Y, wird im Fehlerfall die Fehlermeldung in einer Meldungsbox eingesetzt. Funtkionen werden ersetzt. Sollte im Server-Betrieb auf N gesetzt werden.
- sep ("separator") - Das Trennzeichen, mit dem die Elemente im Parameter path getrennt sind; Funktionen werden ersetzt, default ist der Punkt
- status - Status der Antwort als Klartext
- to ("TimeOut") - Zeit in Sekunden, bis ein Request abgebrochen wird; Funktionen werden ersetzt, default 15
- url - Webadresse des aufgerufenen Services; Funktionen werden ersetzt
- wait - Zeit in Millisekunden, die auf die Antwort gewartet wird; Funktionen werden ersetzt; default 1000
- y - Typ
- delete
- get
- post
- put
Beispiel
#text_clear #text { #text "userId": 1 #text } #code f_Authorization="Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" #code url=https://xxxxx.net/sore/printall #http_request y=post cy="application/json" request=$TEXT(1) response=1 scode=2 status = 3 se=Y acc=application/json $CODE$ #cout c="$VAL(2) - VAL(3)" #cout c=$VAL(1)