F-Script Funktion: XRES

XRES

Mit XRES kann der Interpreter das Resultat eines Services identifizieren. Dies erlaubt den Zugriff auf die Response-Info eines Requests und deren Informationen.
Notiz
Notiz
Zur Verwendung in F-Scipt Blöcken siehe hier: XRES
Funktion
Parameter
Beschreibung
XRES
Result-Objekt. Man kann mehrere solche Objekte gleichzeitig definieren und aktiv halten. Die Unterscheidung dieser Objekte geschieht über deren Namen. Der Name kann auch leer gelassen werden. Ein Result-Objekt ohne Name bleibt so lange aktiv, bis ein neues Result-Objekt erzeugt bzw. abgefüllt wird, welches ebenfalls keinen Namen trägt.
Beispiel
# Objekt-Name = PosResultat
«XRES(PosResultat:Parameter)»

# Objekt ohne Name (default)
«XRES(:Parameter)»
ok
Wurde der Service erfolgreich ausgeführt? 0/1.
roType
Typ des Result-Objektes.
boType
BO-Typ wenn das Result-Objekt von einem Service stammt. Sonst leer.
cols
Anzahl Spalten im Result-Objekt.
rows
Anzahl Zeilen im Result-Objekt.
mKey
Message-Key
mText
Message-Text
mTextFull
Gesamter Inhalt von MsgText.
(Alle Segmente, nicht nur der eigentliche Text.)
mTextLogMsg
Log-Message.
Eine Log-Message wird (in der Regel) vom Service auch noch im jeweiligen Logfile eingetragen.
mTextUiMsg
UI-Message.
Eine UI-Message wird (schon durch den Service selber) dem Anwender angezeigt.
duration
Ausführungszeit in ms.
Beispiel
«XRES(myService:duration)»
Zusatzinformation: Die erste Spalte und die erste Zeile im Resultat tragen die Nummer 1.
col, SpaltenNr
Spalten-Name der Spalte mit SpaltenNr.
SpaltenNr
Attribut-Wert in dieser Spalte (Zeile 1)
SpaltenNr , ZeilenNr
Attribut-Wert in dieser Spalte auf dieser Zeile.
SpaltenName
Attribut-Wert in dieser Spalte (Zeile 1)
SpaltenName,ZeilenNr
Attribut-Wert in dieser Spalte auf dieser Zeile.
... > VariablenName
Attribut-Wert direkt einer Variablen zuweisen. Das ist vor allem bei Werten wichtig, welche mehr als 255 Zeichen beinhalten. (Meist Textblöcke)
Beispiel
«XRES(myAddrText:AddrText.Text>textBlock)\A»
Übergeben von Message-Text in eine X-Variable.
XRES(myService:mText)
XRES(myService:mTextFull)
XRES(myService:mTextLogMsg)
XRES(myService:mTextUiMsg)
Beispiel
«XRES(myService:mText>MyVariable)»
SpaltenNr/Name,ZeilenNr,...
Falls an der entsprechenden Stelle ein Textblock steht, können bei der Ausgabe dieses Attribut-Wertes nach der ZeilenNr folgende Parameter verwendet werden:
(Es handelt sich hier um die üblichen Textblock Parameter)
Wnn
Textblock mit Breite nn drucken.
+1
Nach Ausgabe des Textblockes eine Leerzeile drucken.
#nn
Seitenkontrolle auf nn Zeilen ab der zweiten Zeile des Textblockes.
m>xx
Textblock mit linkem Rand xx ab der ersten Zeile des Textblockes.
Mxx
Textblock mit linkem Rand xx ab der zweiten Zeile des Textblockes.
OUTxxxx
Textblock in Datei xxxx speichern.
APPxxxx
Textblock an Datei xxxx anhängen.
Bei der Ausgabe mit ...\N» , wird die Anzahl Zeilen des Textblockes zurückgegeben.
Die Funktion «READ(ZeilenNr)» steht ebenfalls zur Verfügung.
redo
Der Service wird erneut ausgeführt und das Resultat hier in diesem Result-Objekt zurückgegeben. Diese Funktion gibt von sich selbst den Status ok zurück.
redo,
SuchOperation,
StartPositionIstOben,
AnzahlBOs
Diese Funktion ist nur für den Service GetBo gültig. Sie wird benötigt, wenn weitere BOs geholt werdenwerden, bzw. ein "paging" durchgeführt werden soll.
Beschreiben möchte ich hier im Speziellen den Parameter StartPositionIstOben. Damit setzt der redo beim ersten BO des vorherigen Resultates auf und bringt die nächsten BOs ab dort. Dass kann z.B. hilfreich sein, wenn im Result-Objekt an erster Stelle ein BO steht ab dem man eine bestimmte Anzahl weiterer BOs auslesen will. (Wobei zu beachten ist, dass je nach Konstellation einzelne BOs schon beim ersten Mal gelesen wurden.)
Falls die zusätzlichen Parameter nicht gebraucht werden, kann man sie leer lassen.
redoData
Abfragen der Redo-Daten.
Syntax: «XRES(<resultName>:redoData)»
MSG
SYS(MSG...) -Meldungen aus einem aufgerufenen F-Script übernehmen.
Ausgangslage: Aus einem F-Script heraus wird via System_RunScript ein weiteres F-Script ausgeführt. Das aufgerufene F-Script liefert mittels SYS(MSG <Typ> <Meldung>) Meldungen/Fehler.
Mit dem Befehl «XRES(resultat:>MSG)» können Sie diese Meldungen in das aufrufende F-Script übernehmen. Die Meldungen/Fehler aus dem aufgerufenen F-Script werden dann zusammen mit denjenigen aus dem aufrufenden F-Script ausgegeben.
Beispiel eines Service-Requests
«X(RequestName=GetBoAddr)»
«XSER(req«X(RequestName)»:Biz.GetBo)»
«XSER(req«X(RequestName)»:addArg=Addr)»
«XSER(req«X(RequestName)»:addArg=1000)»
«XSER(req«X(RequestName)»:addArg=ne)»
«XSER(req«X(RequestName)»:addArg=1)»
«XSER(req«X(RequestName)»:addArg=10)»
«XSER(req«X(RequestName)»:addArg=)»
«XSER(req«X(RequestName)»:addArg=)»
«XSER(req«X(RequestName)»:addArg=Addr.Number,Addr.FullName)»
«XSER(req«X(RequestName)»:addArg=)»
«nXSER(req«X(RequestName)»:execute>res«X(RequestName)»)\A»
# ------------------------------------------------------------------------------------------------------
«X(Log.Message   =)»
«nz XRES(res«X(RequestName)»:mText)\I»«.ST-BIZSERVICES.FS(/BIZ.Common.LogMessage)»
«nz XRES(res«X(RequestName)»:mText)\I»«SYS(MSG ERROR «XRES(res«X(RequestName)»:mText)»)» «SYS(STOP)»