Die Fabasoft Produktinstallation bietet Funktionalität, um SOAP-Aktionen einer Fachanwendung aufzurufen.
Der Aufruf der SOAP-Aktion Erzeugen eines Fachobjekts in Fabasoft Folio über XML/SOAP (FSCBA@1.1001:SOAPInit), die von der Fachanwendung zur Verfügung gestellt wird, erfolgt entweder durch die Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) oder durch die speziell dafür vorgesehene Aktion Standardinitialisierung eines Objekts über SOAP (FSCBAI@1.1001:InitBA) mit folgendem Parameter:
Parametername | IN/OUT | Typ | Erklärung |
---|---|---|---|
dept | In | OBJECT | Ein Objekt der Objektklasse Fachanwendungsbereichsdefinition |
Durch die Aktion FSCBAI@1.1001:InitBA wird nach der Antwort durch die SOAP-Aktion der Fachanwendung der Fremdschlüssel aus der Fachanwendung im Geschäftsobjekt (im Fachanwendungsaggregat) in der Fabasoft Produktinstallation gespeichert. Die Aktion führt einen SOAP-Aufruf entsprechend dem Schema der SOAP-Aktion FSCBA@1.1001:SOAPInit durch.
Input |
---|
Namespace: urn:schemas-fabasoft-com:bai:init <SOAPInitRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:bai:init |
Das Element <objclass> wird mit der Zeichenkette aus der Eigenschaft Objekttyp für Standardinitialisierung im Fachanwendungsbereich aus dem Fachanwendungsbereichsdefinitionsobjekt befüllt.
Beispiel:
Die SOAP-Aktion kann z. B. in der Konfiguration für Fachanwendungen in der Eigenschaft Fachanwendungsaufrufe bei Schritte für Fachanwendungsaufruf (SOAP-Call) als Expression angegeben werden.
FSCBAI@1.1001:InitBA(::dept);
Alternativ zur Verwendung der Aktion FSCBAI@1.1001:InitBA kann die gesamte Funktionalität des oben angeführten Aufrufs auch durch folgende Expression unter Verwendung von Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) abgebildet werden:
::params=coort.CreateDictionary();
::response=coort.CreateDictionary();
::params.SetEntryValue(“objaddress”,0,”Adresse”)
::params.SetEntryValue(“objname”,0, “Name”);
::params.SetEntryValue(“deptref”,0,::deptref);
FSCBAI@1.1001:CallSoapXmlEx(::dept, "Init", ::params,&::response);
FSCBAI@1.1001:rs.FSCBAI@1.1001:foreignkey = ::response.foreignkey;
FSCBAI@1.1001:rs.FSCBAI@1.1001:rsdept = ::deptref
Die Aktion Aufruf einer SOAP-Aktion mit XML-Parametern (FSCOWS@1.1001:CallSoapXml) ist eine Basisaktion für den Aufruf eines Webservice.
Parametername | IN/OUT | Typ | Erklärung |
---|---|---|---|
url | In | STRING | Endpunkt-URL des SOAP-Aufrufs |
httpheaders | In | DICTIONARY | Zu sendende HTTP-Headers, wie z. B. „SOAPAction“. Die Header „Content-Type“ und „Content-Length“ werden automatisch berechnet und müssen daher nicht angegeben werden. |
soapheaders | In | CONTENTLIST | Optionale Liste von SOAP-Headern. Ein SOAP-Header ist ein XML-Dokument-Fragment, das in die resultierende SOAP-Nachricht eingefügt wird. |
xmlin | In | XML-Dokument-Fragment, das im Envelope/Body-Element versendet werden soll. | |
xmlout | Out | XML-Dokument-Fragment unterhalb des Envelope/Body-Elementes, das von der SOAP-Aktion zurückgegeben wurde. | |
parentwindow | In | INTEGER | Optionales Window-Handle des Vater-Fensters für die Ausgaben von Dialog-Fenstern für die Authentifizierung. |
user | In | STRING | Optionaler Benutzername für die Authentifizierung am Webserver |
password | In | STRING | Passwort des Benutzers |
proxyuser | In | STRING | Optionaler Benutzername für die Authentifizierung am Proxyserver |
proxypassword | In | STRING | Passwort des Proxybenutzers |
clientcert | In | OBJECT | Optionales Client-Zertifikat, falls die Authentifizierung über ein Zertifikat erfolgen soll. |
timeoutresolve | In | INTEGER | Zeitlimit in Sekunden für das Auflösen von DNS-Namen (Standardwert: kein Zeitlimit) |
timeoutconnect | In | INTEGER | Zeitlimit in Sekunden für das Verbinden zum Webserver (Standardwert: 60 Sekunden) |
timeoutsend | In | INTEGER | Zeitlimit in Sekunden für das Versenden. Es wird die Zeitdifferenz zwischen den Paketen gemessen. |
timeoutreceive | In | INTEGER | Zeitlimit in Sekunden für das Empfangen. Es wird die Zeitdifferenz zwischen den Paketen gemessen. |
Die Aktion Sende eine einfache SOAP-Nachricht (FSCOWS@1.1001:CallSoapXmlEx) bietet grundsätzlich dieselbe Funktionalität wie FSCOWS@1.1001:CallSoapXml. Beim Aufruf der SOAP-Aktion wird das WSDL-Dokument des aufgerufenen Webservice ausgewertet.
Parametername | IN/OUT | Typ | Erklärung |
---|---|---|---|
wsdlconnector | In | OBJECT | Ein Objekt der Objektklasse HTTP-Anschluss (FSCOWS@1.1001:HttpConnector) |
soapconnector | In | OBJECT | Optionaler Parameter, in dem ein Objekt der Objektklasse HTTP-Anschluss (FSCOWS@1.1001:HttpConnector) angegeben wird. Falls in diesem Parameter nichts angegeben wird, wird derselbe Anschluss wie im ersten Parameter verwendet. |
operation | In | STRING | Name der auszuführenden Operation entsprechend dem WSDL-Dokument |
inparams | In | Optionaler Eingangsparameter Folgende Typen sind möglich: OBJECT, STRING, CONTENT, Content und DICTIONARY | |
outparams | Out | Optionaler Ausgangsparameter Folgende Typen sind möglich: OBJECT, STRING, CONTENT, Content und DICTIONARY |
Wird kein Ausgangsparameter angegeben, so wird der gleiche Typ wie im Eingangsparameter als Ausgangsparameter zurückgeliefert. Um einen bestimmten Ausgangstyp zu erhalten, muss ein leerer Wert des betreffenden Typs im Parameter outparams angegeben werden.
Beschreibung der Typen des Eingangs- und Ausgangsparameters:
Die Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) ruft die Aktion FSCOWS@1.1001:CallSoapXmlEx auf und bietet grundsätzlich dieselbe Funktionalität wie diese Aktion. Der Unterschied ist, dass statt den Parametern wsdlconnector und soapconnector nur der Fachanwendungsbereich angegeben werden muss. Die weiteren Informationen werden aus der Konfiguration für Fachanwendungen aus der Eigenschaft Basis-URLs ausgelesen.
Parametername | IN/OUT | Typ | Erklärung |
---|---|---|---|
dept | In | OBJECT | Ein Objekt der Objektklasse Fachanwendungsbereichsdefinition |
operation | In | STRING | Name der auszuführenden Operation entsprechend dem WSDL-Dokument |
inparams | In | Optionaler Eingangsparameter Folgende Typen sind möglich: OBJECT, STRING, CONTENT, Content und DICTIONARY | |
outparams | Out | Optionaler Ausgangsparameter Folgende Typen sind möglich: OBJECT, STRING, CONTENT, Content und DICTIONARY |
Die Aktion Laden des Objekts aus einem CONTENT mit XML-Daten (FSCBAI@1.1001:MapContentToObject) kann für das Mapping von einem Objekt auf ein XML-Dokument verwendet werden.
Parametername | IN/OUT | Typ | Erklärung |
---|---|---|---|
dept | In | OBJECT | Ein Objekt der Objektklasse Fachanwendungsbereichsdefinition |
ctx | In | OBJECT | Kontext, um die passende Konfigurationszeile in der Konfiguration für Fachanwendungen (FSCBAI@1.1001:ConfigurationClass) zu finden |
content | In | CONTENT | XML-Inhalt als CONTENT |
Diese Aktion wird auf das Objekt angewendet, das auf den XML-Inhalt abgebildet wird. Das anzuwendende XML-Mapping wird aus der Konfiguration für Fachanwendungen anhand der Objektklasse und dem Auslöser ausgelesen.
Die Aktion Ausgeben des Objekts in einen CONTENT mit XML-Daten (FSCBAI@1.1001:MapObjectToContent) kann für das Mapping eines XML-Dokuments auf ein Objekt verwendet werden.
Parametername | IN/OUT | Typ | Erklärung |
---|---|---|---|
dept | In | OBJECT | Ein Objekt der Objektklasse Fachanwendungsbereichsdefinition |
ctx | In | OBJECT | Kontext um die passende Konfigurationszeile in der Konfiguration für Fachanwendungen zu finden |
content | Out | CONTENT | XML-Inhalt als CONTENT |
Diese Aktion wird auf das Objekt angewendet, auf das der XML-Inhalt abgebildet wird. Das anzuwendende XML-Mapping wird aus der Konfiguration für Fachanwendungen anhand der Objektklasse und dem Auslöser ausgelesen.
In der Konfiguration für Fachanwendungen wird ein SOAP-Client-Aufruf und ein anschließender GUI-Aufruf in der Eigenschaft Fachanwendungsaufrufe definiert und konfiguriert.
Der Aufruf erfolgt über die Aktion Fachanwendung über Programmiername starten (FSCBAI@1.1001:StartBusinessApp) mit folgendem Parameter:
Parametername | IN/OUT | Typ | Erklärung |
---|---|---|---|
progname | In | STRING | Programmiername |
Die Aktion entscheidet anhand der Objektklasse des Objekts, auf dem sie ausgeführt wird, welcher Konfigurationseintrag in der Konfiguration für Fachanwendungen (in der Eigenschaft Fachanwendungsaufrufe) ausgewertet und ausgeführt wird (best-matching Objektklasse). Dadurch können ein SOAP-Aufruf und ein URL-Aufruf an die Fachanwendung durchgeführt werden.
Beispiel:
Die Anwendung wird der Variable app zugewiesen. Dazu muss der Programmiername des Aufrufs einer Variablen als Zeichenkette zugewiesen werden. Aufgrund der späteren Übergabe des Parameters „by Name“ ist die strikte Einhaltung des Bezeichners progname notwendig. Der Inhalt der Zeichenkette („editcase“) muss mit dem Programmiernamen der Eigenschaft Fachanwendungsaufrufe übereinstimmen.
Der Anweisungsschritt FSCVAPP@1.1001:CallAppStep muss auf das Objekt, bei dem sich der Branch befindet (sys_branchvalue), ausgeführt werden. Dabei muss die Variable mit dem Anwendungsobjekt übergeben werden; der Programmiername wird „by Name“ übergeben.
Beispiel:
Aufruf der Fachanwendung über ein Skript (z.B. als Arbeitsschritt):
//LANGUAGE="JScript"
var inboundobj = coort.GetObject("COO.1.1019.2.1002890");
var progname = "editoffense"
var meth=inboundobj.GetMethod(cootx, "FSCBAI@1.1001:StartBusinessApp");