F-Script Funktion: XSER

XSER

Mit XSER kann der Interpreter einen Service identifizieren. Dies erlaubt die Definition der Argumente eines Service-Requests.
Notiz
Notiz
Zur Verwendung in F-Scipt Blöcken siehe hier: XSER
Funktion
Parameter
Beschreibung
XSER
Service-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 Service-Objekt ohne Name bleibt so lange aktiv, bis ein neues Service-Objekt erzeugt wird, welches ebenfalls keinen Namen trägt.
Beispiel:
«XSER(PosLesen:Parameter)» Objekt-Name = PosLesen
«XSER(:Parameter)» Objekt ohne Name (default)
ServiceName,Arg1,Arg2,...
Ein Service-Objekt wird "auf einen Schlag" definiert. d.h. Der Name des Service-Objektes und alle notwendigen Argumente des Service werden in einer Zeile beim definieren des Service-Objektes mitgegeben.
ServiceName
Der Name des Service-Objektes wird gesetzt.
args = Arg1,Arg2,...
Alle Argumente des Service-Objektes auf ein Mal setzen.
arg,N = ArgumentWert
Das "n'te" Argument setzen.
arg,N < VariablenName
Das "n'te" Argument mit dem Inhalt der Variable setzen.
(Variable: siehe Funktion X)
arg,N + VariablenName
Das "n'te" Argument mit dem Inhalt der Variable ergänzen.
(Variable: siehe Funktion X)
addArg = ArgumentWert
Das nächste Argument setzen. Muss benutzt werden, wenn das Argument selber Kommas enthält.
addArgs = Arg1,Arg2,...
Die nächsten Argumente setzen.
name
Der Name des Service-Objektes wird zurückgegeben.
args
Alle Argumente werden, mit Komma getrennt, zurückgegeben.
arg,N
Das "n'te" Argument wird zurückgegeben.
execute
Der Service wird ausgeführt und das Resultat in einem Result-Objekt (ohne Name) zurückgegeben. Diese Funktion gibt von sich selbst den Status ok (siehe XRES) zurück.
Beispiel
«nXSER(requestName:execute)\A»
execute, Mandant-Nr,
Anwender-Nr,
UiMls-Spr-Nr,
Data-Spr-Nr,
Verschlüsseltes Passwort
Wie execute oben. Jedoch mit zusätzlichen Parametern. Falls einzelne Parameter nicht gebraucht werden, kann man sie einfach leer lassen.
  • Mandant-Nr. - Der Service wird im entsprechenden Mandanten ausgeführt. (u.U. muss ein User und dessen Passwort mitgegeben werden.
  • Anwender-Nr. - Der Service wird im Kontext des mitgegebenen Anwenders ausgeführt. (u.U. muss das Passwort mitgegeben werden.)
  • Beschriftungssprache für das Ausführen des Service.
  • Datensprache für das Ausführen des Service.
  • Verschlüsseltes Passwort des mitgegebenen Anwenders. (Anwender-Nr.)
Notiz
Notiz
Das mandantenübergreifende Ausführen eines Service ist nur mit einer korrekten Anwender-Nr. und Passwort möglich. Die Angabe von 0 oder leer, funktioniert in diesen Fällen nicht.
Beispiel
«nXSER(requestName:execute,69,123456,51,1,024LHhbmAWOiFMOYCmIo1GpXA==7Jfl5DtvD9hu7Qh/YNOUSg==)\A»
XSER mit expliziter Impersonation.
execute, Mandant-Nr,
Impersonator>ImpersonateAs,
UiMls-Spr-Nr,
Data-Spr-Nr,
Verschlüsseltes Passwort von Impersonator
Wie execute oben. Jedoch mit expliziter Impersonation.
  • Mandant-Nr. - Der Service wird im entsprechenden Mandanten ausgeführt. (u.U. muss ein User und dessen Passwort mitgegeben werden.
  • Impersonator>ImpersonateAs - Der Service wird im Kontext von ImpersonateAs ausgeführt.
  • Beschriftungssprache für das Ausführen des Service.
  • Datensprache für das Ausführen des Service.
  • Verschlüsseltes Passwort von Impersonator.
Beispiel
...
# Beispiel für explizite Impersonation in einem F-Script via XSER:
# - Benutzer 73 (Impersonator) muss Administrator sein (Administrator-Stufe >0).
# - Benutzer 77 (ImpersonateAs) muss Impersonation erlauben.
«nXSER(reqGetBo:execute,1,73>77,51,1,passwordOfUser73>resGetBo)\A»
...
execute > resultName
Wie execute oben. Das Resultat wird jedoch in einem Result-Objekt mit dem angegebenen Namen (hier im Beispiel: resultName) zurückgegeben.
Beispiele
«nXSER(requestName:execute>resultName)\A»

«nXSER(requestName:execute,69,123456,51,1,024LHhbmAWOiFMOYCmIo1GpXA==7Jfl5DtvD9hu7Qh/YNOUSg==>resultName)\A»
execute > XFAS
Wie execute oben. Das Resultat wird dabei einem eigenen Result-Objekt (XFAS) übergeben.
Auf diese Weise können Sie das gesamte Resultat an den Aufrufer (z.B. System_RunScript oder WebService) zurückgeben, ohne dass dabei durch die einzelnen Zeilen des Resultats iteriert werden muss.
Notiz
Notiz
Beachten Sie, dass pro Script nur ein Result-Objekt (XFAS) übergeben werden kann.
Beispiele
«nXSER(requestName:execute>XFAS)\A»

«nXSER(requestName:execute,69,123456,51,1,024LHhbmAWOiFMOYCmIo1GpXA==7Jfl5DtvD9hu7Qh/YNOUSg==>XFAS)\A»
Beispiel eines Service-Requests
«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»

               
Folgendes Assembly muss für die Verschlüsselung des User-Passwortes verwendet werden:
\insyde\ServiceBus\Connectors\Opacc.ServiceBus.Connector.Biz.Df.dll