Die Fabasoft Produktinstallation bietet einer Fachanwendung die Möglichkeit, mehrere von der Fachanwendung aufgerufene SOAP-Aktionen in einer atomaren Transaktion in der Fabasoft Produktinstallation abzuarbeiten.
Zum Beispiel könnten folgende SOAP-Aktionen in einer Transaktion durchgeführt werden:
Der jeweilige Transaktionskontext der Installation der Fabasoft Produktinstallation wird im SOAP-Header zwischen der Fabasoft Produktinstallation und der Fachanwendung transportiert.
Im Folgenden wird der Zugriff auf die Fachanwendungsdaten im Aggregat Fachanwendungsdaten (FSCBAI@1.1001:data) mittels SOAP-Aktionen beschrieben. Diese SOAP-Aktionen werden von der Softwarekomponente Integration for Business Application (FSCBAI@1.1001) zur Verfügung gestellt.
Die SOAP-Aktion Setzen der Fachanwendungsdaten über XML/SOAP (FSCBAI@1.1001:SOAPSetData) der Fabasoft Produktinstallation bietet einer Fachanwendung die Möglichkeit die XML-Fachanwendungsdaten des betreffenden Objekts zu schreiben.
Input |
---|
Namespace: urn:schemas-fabasoft-com:bai:businessappdata <SOAPSetDataRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:bai:businessappdata <SOAPSetDataResponse> |
Wird im XPath-Ausdruck nichts angegeben, so wird der gesamte XML-Inhalt aus dem Fachanwendungsaggregat überschrieben. Mithilfe des XPath-Ausdrucks kann definiert werden, ob nur ein Teilbaum der XML-Struktur überschrieben wird. Die Daten, die in den definierten Knoten geschrieben werden sollen, werden im Knoten <data> angegeben.
In dem XPath-Ausdruck können Namespaces verwendet werden, die beim übergebenen Fachanwendungsbereich definiert sein müssen.
Beispiel:
Von einem Objekt soll ein XML-Knoten der Fachanwendungsdaten überschrieben werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Fachanwendungsdaten setzen (FSCBAI@1.1001:SOAPSetData) übermittelt.
::params=coort.CreateDictionary();
::params.SetEntryValue("objaddress",0,this.objaddress);
::params.SetEntryValue("dept",0,::deptref);
::data=coort.CreateDictionary();
::filesubj=coort.CreateDictionary();
::filesubj.SetEntryValue("Testwert",0,"Value");
::params.SetEntryValue("data",0,::filesubj);
::params.SetEntryValue("xpath",0,"//ns1:Incoming/ns1:filesubj");
::xmlcontent=coort.CreateContent(this);
FSCBAI@1.1001:CallSoapXmlEx(::dept,"SoapSetData",::params,&::xmlcontent)
Die SOAP-Aktion Ermitteln der Fachanwendungsdaten über XML/SOAP (FSCBAI@1.1001:SOAPGetData) der Fabasoft Produktinstallation bietet einer Fachanwendung die Möglichkeit die XML-Fachanwendungsdaten des betreffenden Objekts zu lesen.
Input |
---|
Namespace: urn:schemas-fabasoft-com:bai:businessappdata |
Output |
---|
Namespace: urn:schemas-fabasoft-com:bai:businessappdata |
Wird im XPath-Ausdruck nichts angegeben, so wird der gesamte XML-Inhalt aus dem Fachanwendungsaggregat als XML-Struktur ausgegeben. Mithilfe des XPath-Ausdrucks kann festgelegt werden, dass nur ein Teilbaum der XML-Struktur ausgegeben wird. Im XPath-Ausdruck können XML-Namespaces verwendet werden, die beim übergebenen Fachanwendungsbereich definiert sein müssen.
Der Response enthält im XML-Knoten <data> den ermittelten Knoten mit dem Wert bzw. den ermittelten Teilbaum mit alle untergeordneten Knoten.
Beispiel:
Von einem Objekt soll ein XML-Knoten der Fachanwendungsdaten ausgegeben werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Fachanwendungsdaten lesen (FSCBAI@.1001:SOAPGetData) übergeben.
::params=coort.CreateDictionary();
::params.SetEntryValue("objaddress",0,this.objaddress);
::params.SetEntryValue("dept",0,::deptref);
::params.SetEntryValue("xpath",0,"//ns1:Incoming/ns1:filesubj");
::xmlcontent=coort.CreateContent(this);
FSCBAI@1.1001:CallSoapXmlEx(::dept,"SoapGetData",::params,&::xmlcontent)
Fachdokumente sind Dokumente im HTML-Format, die mittels einer XSL-Transformation aus den XML-Fachanwendungsdaten erstellt und für den Anwender in der Fabasoft Produktinstallation angezeigt werden können. Pro Fachanwendungsbereich und Objektklasse wird ein definiertes XSLT-Stylesheet verwendet.
Der Aufruf dieser Funktionalität durch den Anwender in der Installation der Fabasoft Produktinstallation erfolgt durch einen entsprechend konfigurierten Kontextmenübefehl des Objekts.
Blatt-Knoten des XML-Inhalts von Fachanwendungsdaten können bei geeigneter Definition als Text in Dokument-Eigenschaften von Microsoft Office-Dokumenten verwendet werden.
Die Bearbeitung von DMS(Dokument Management System)-Objekten umfasst das Erzeugen und Bearbeiten von Objekten mit Multimedia-Inhalt. Dieser Inhalt kann mit einem von der Fabasoft Produktinstallation unterstützten Produktivitätswerkzeug (z. B. Microsoft Office Word) gelesen und bearbeitet werden. Weiters werden SOAP-Aktionen zur Verfügung gestellt, die Versionen erstellen und bereits erstellte Version von Fabasoft Folio Objekten behandeln können.
Eine Fachanwendung kann unter Verwendung der Fabasoft vApp-Technologie URLs eines Webservice der Fabasoft Produktinstallation aufrufen, um die entsprechende Anwendung für ein angegebenes Objekt aufzurufen.
Ein Aufruf an die Fabasoft Produktinstallation aus der Fachanwendung muss nach folgendem Schema aufgebaut sein:
Parametername | IN/OUT | Typ | Erklärung |
---|---|---|---|
ax | In | STRING | Definiert eine Anwendung. Beispielanwendung für Aufruf an die Fabasoft Produktinstallation: Bei einem Aufruf an eine Fachanwendung kann dieser Parameter in der Konfiguration für Fachanwendungen in der Eigenschaft Fachanwendungsaufrufe im Ausdruck für GUI-Aktion (URL) angegeben werden. |
sys_action | In | STRING | Definiert eine Aktion. Beispielaktion für Aufruf an die Fabasoft Produktinstallation: Bei einem Aufruf an eine Fachanwendung kann dieser Parameter in der Konfiguration für Fachanwendungen in der Eigenschaft Fachanwendungsaufrufe im Ausdruck für optionale GUI-Parameter angegeben werden. |
commit | In | STRING | TRUE |
sys_object | In | STRING | Die eindeutige Kennung des Geschäfts- oder Fachobjekts. Bei einem Aufruf an eine Fachanwendung wird dieser Parameter automatisch aufgrund des beim jeweiligen Objekt gespeicherten Fremdschlüssels und des Fachanwendungsbereichs gesetzt. |
ru | In | STRING | Der Return-URL, der nach dem Ende der Bearbeitung in der Fachanwendung aufgerufen wird. Bei einem Aufruf an eine Fachanwendung kann dieser Parameter in der Konfiguration für Fachanwendungen in der Eigenschaft Fachanwendungsaufrufe im Ausdruck für Return-URL (Post-GUI) als Expression angegeben werden. |
<name> | In | STRING | Sonstige URL-Paramter als <expression>. Bei einem Aufruf an eine Fachanwendung kann dieser Parameter in der Konfiguration für Fachanwendungen in der Eigenschaft Fachanwendungsaufrufe im Ausdruck für optionale GUI-Parameter angegeben werden. |
Beispiel:
Aufruf an eine Fabasoft Fachanwendung:
http://<webserver>/<vdir>/fscasp/content/bin/fscvext.dll?ax=COO.1.1001.1.91492&sys_action=COO.1.1.1.1066&commit=TRUE&ru=javascript:window.close()&sys_object=COO.1.1094.2.1002276
Durch die Fabasoft Produktinstallation
In der Fabasoft Produktinstallation wird ein Schriftstück erzeugt.
Durch die Fachanwendung
Wird ein Dokument in der Fachanwendung erstellt, wird dazu die fachspezifische Funktionalität genutzt. Anschließend kann das dabei erstellte Dokument mittels SOAP in die Stammdomäne geladen werden.
Erzeugen von Inhaltsobjekten via SOAP (FSCOWS@1.1001:SOAPCreateContentObjects)
Input |
---|
Namespace: urn:schemas-fabasoft-com:ows:createcontentobjects <createcontentobjects> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:ows:createcontentobjects <createcontentobjectsresult> |
Eine Fachanwendung kann unter Verwendung des standardisierten Protokolls WebDAV Inhalte („Contents“), die in der Fabasoft Produktinstallation verwaltet werden, adressieren. Analog zum Use-Case „Objekt bearbeiten“ ruft die Fachanwendung in diesem Fall einen URL eines Webservice der Fabasoft Produktinstallation auf.
WebDAV ("Web based Distributed Authoring and Versioning") ist eine standardisierte Erweiterung des HTTP-Protokolls. Zusätzlich zu den Standard-HTTP-Funktionen für Download, Upload usw. sind Funktionen zum Sperren/Entsperren von Ressourcen (LOCK/UNLOCK) und Abfragen/Setzen/Suchen von Eigenschaften (PROPFIND/PROPPATCH/SEARCH) definiert.
Die allgemeine Syntax eines WebDAV-URL lautet:
http://<webserver>/<vdir>/FSCDAV/<FlatSpace>
FlatSpace ::= Prefix "?" [ Parameters ] [ "/" Postfix ] .
Parameters ::= Parameter { "&" Parameter } .
Prefix ::= "READONLY" | "DAV" .
Postfix ::= <any file name with extension>
Parameter::= ObjParam | ContentParam | ActionParam | DownloadParam |
ux | px | gx | xx | dx | expires | ArgParam | TypParam |
ResParam
ObjParam ::= "OBJ" "=" CooAddr .
ContentParam ::= "CONTENT" "=" AttrPath .
DownloadParam ::= "DOWNLOAD" "=" FileName .
ActionParam ::= "ACTION" "=" CooAddr .
ArgParam ::= "ARG" [ number ] "=" QuotedStr .
TypParam ::= "TYP" [ number ] "=" CooAddr .
ResParam ::= "RES" "=" "ARG" [ number ] .
expires ::= "EXPIRES" "=" seconds .
CooAddr ::= <object address> .
AttrPath ::= AttrRef "(" Index ")" { AttrRef "(" Index ")" } .
AttrRef ::= <reference of the attribute> .
FileName ::= <file name with extension> .
Anwendbare HTTP/WebDAV-Methoden:
Command | HTTP/WebDAV-Methoden | Bedeutung |
---|---|---|
READONLY | GET | Lesen von Inhalten |
DAV | LOCK, UNLOCK, GET, PUT | Bearbeiten von Inhalten |
Anmerkungen:
Beispiel:
WebDAV-Aufrufe:
http://<webserver>/<vdir>/FSCDAV/DAV?OBJ=COO.1.137.2.222&CONTENT=content(0)contcontent(0)
http://<webserver>/<vdir>/FSCDAV/DAV?OBJ=COO.1.137.2.222&CONTENT=content(0)contcontent(0)&px=COO.1.1001.1.63575&gx=COO.1.1001.1.63762
http://<webserver>/<vdir>/FSCDAV/READONLY?OBJ=COO.1.137.2.222&CONTENT=content(0)contcontent(0)
http://<webserver>/<vdir>/FSCDAV/READONLY?OBJ=COO.1.137.2.222&CONTENT=content(0)contcontent(0)/x.doc
http://<webserver>/<vdir>/FSCDAV/READONLY?OBJ=COO.1.137.2.223/x.xls
http://<webserver>/<vdir>/FSCDAV/READONLY?OBJ=COO.1.137.2.225&CONTENT=COODESK_1_1_objthumbnail(0)/x.bmp
http://<webserver>/<vdir>/FSCDAV/READONLY?OBJ=COO.1.137.2.226&CONTENT=COODI_1_1001_imgdoccontents(0)COODI_1_1001_imgcont(0)/x.tif
http://<webserver>/<vdir>/FSCDAV/READONLY?OBJ=COO.1.137.2.222&CONTENT=content(0)contcontent(0)&DOWNLOAD=fsc.doc
Die Fabasoft Produktinstallation stellt vier SOAP-Aktionen zum Lesen und Bearbeiten von Versionen über SOAP zur Verfügung:
Version über XML/SOAP erzeugen (FSCBAI@1.1001:SOAPCreateVersion)
Diese SOAP-Aktion erstellt eine neue Version des angegebenen Objekts.
Input |
---|
Namespace: urn:schemas-fabasoft-com:bai:version <SOAPCreateVersionRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:bai:version <SOAPCreateVersionResponse> |
Diese SOAP-Aktion erstellt eine neue Version und legt sie im entsprechenden Fabasoft Folio MMC-Store ab. Das Request-XML kann mit mehreren Parametern befüllt werden, wobei nur die XML-Knoten <objid> des betreffenden Objekts und <description> benötigt werden, um eine Version erfolgreich erzeugen zu können.
Der XML-Knoten <autofixed> dient zur Information und beschreibt, ob die Version automatisch erstellt wurde oder nicht.
Weiters kann eine Version in ein finales Format konvertiert werden. Dies wird mit den beiden XML- Knoten <convertfinalform> und <finalform> ermöglicht. Ist <convertfinalform> TRUE, wird das Zielformat aus <finalform> ausgelesen. Wird ein Zielformat gefunden, wird versucht, eine Konvertierung anzustoßen. Wird kein Zielformat übergeben, wird es aus der aktuellen Domäne ermittelt.
Beispiel:
In der Fabasoft Produktinstallation soll ein Objekt versioniert und in PDF konvertiert werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Version über XML/SOAP erzeugen (FSCBAI@1.1001:SOAPCreateVersion) übermittelt.
::params=coort.CreateDictionary();
::returnval=coort.CreateDictionary();
::params.SetEntryValue("objid",0,this.objaddress);
::params.SetEntryValue("description",0,"Das ist ein SOAP-Test");
::params.SetEntryValue("autofixed",0,TRUE);
::params.SetEntryValue("convertfinalform",0,TRUE);
::params.SetEntryValue("finalform",0,"pdf");
::params.SetEntryValue("noautopurge",0,TRUE);
FSCBAI@1.1001:CallSoapXmlEx(::dept,"CreateVersion",::params,&::returnval);
Die Adresse des zu versionierenden Objekts wird im XML-Knoten <objid> hinterlegt. In diesem Fall wurde die Version automatisch vom System erstellt und darf auch ohne Nachfrage gelöscht werden. Weiters wurde eine Konvertierung in PDF angestoßen.
Version über XML/SOAP lesen (FSCBAI@1.1001:SOAPReadVersion)
Mit dieser SOAP-Aktion kann eine Version eines Fabasoft Folio Objekts gelesen werden.
Input |
---|
Namespace: urn:schemas-fabasoft-com:bai:version <SOAPReadVersionRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:bai:version <SOAPReadVersionResponse> |
Diese SOAP-Aktion kann verwendet werden, um eine Version eines Objekts zu lesen. Im Request-XML der SOAP-Aktion wird im XML-Knoten <objid> das Objekt angegeben, von dem die Version gelesen werden soll. Der Fachanwendungsbereich muss definiert werden, da über diesen das XML-Mapping in der Konfiguration für Fachanwendungen gesucht wird. Mit dem XML-Mapping wird der XML-Knoten <data> des Response-XML aufbereitet. Im XML-Knoten <date> wird das Datum der zu lesenden Version angegeben.
Beispiel:
In der Fabasoft Produktinstallation soll eine Version eines Objekts gelesen werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Version über XML/SOAP erzeugen (FSCBAI@1.1001:SOAPReadVersion) übermittelt.
::params=coort.CreateDictionary();
::returnval=coort.CreateContent();
::params.SetEntryValue("objid",0,this.objaddress);
::params.SetEntryValue("dept",0,::dept);
::params.SetEntryValue("date",0,"2005-04-21T14:00:00");
FSCBAI@1.1001:CallSoapXmlEx(::dept,"ReadVersion",::params,&::returnval);
Die Adresse des Objekts, von dem die Version gelesen werden soll, wird im XML-Knoten <objid> hinterlegt. Über den Fachanwendungsbereich wird das entsprechende XML-Mapping ermittelt, das zur Aufbereitung des Knotens <data> des XML-Response verwendet wird.
Version über XML/SOAP wiederherstellen (FSCBAI@1.1001:SOAPRestoreVersion)
Mit dieser SOAP-Aktion kann eine Version wiederhergestellt werden. Die aktuelle Version des Objekts wird mit der im SOAP-Aufruf definierten Version ersetzt.
Input |
---|
Namespace: urn:schemas-fabasoft-com:bai:version <SOAPRestoreVersionRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:bai:version <SOAPRestoreVersionResponse> |
Dieser SOAP-Aktion muss die Objektadresse des entsprechenden Objekts im XML-Knoten <objid> und das Datum der Version im XML-Knoten <date> übergeben werden. Der Inhalt des Objekts wird in der Fabasoft Produktinstallation mit der angegebenen Version ersetzt.
Beispiel:
In der Fabasoft Produktinstallation soll eine Version eines Objekts wiederhergestellt werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Version über XML/SOAP erzeugen (FSCBAI@1.1001:SOAPRestoreVersion) übermittelt.
::params=coort.CreateDictionary();
::returnval=coort.CreateContent();
::params.SetEntryValue("objid",0,this.objaddress);
::params.SetEntryValue("date",0,"2005-04-21T14:00:00");
FSCBAI@1.1001:CallSoapXmlEx(::dept,"RestoreVersion",::params,&::returnval)
Die Adresse des Objekts wird im XML-Knoten <objid> hinterlegt. Das Datum definiert die Version, die wiederhergestellt wird.
Version über XML/SOAP vernichten (FSCBAI@1.1001:SOAPDeleteVersion)
Diese SOAP-Aktion vernichtet eine definierte Version eines Objekts.
Input |
---|
Namespace: urn:schemas-fabasoft-com:bai:version <SOAPDeleteVersionRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:bai:version <SOAPDeleteVersionResponse> |
Dieser SOAP-Aktion muss die Objektadresse des entsprechenden Objekts im XML-Knoten <objid> und das Datum der Version im XML-Knoten <date> übergeben werden. Die definierte Version wird vernichtet.
Beispiel:
In der Fabasoft Produktinstallation soll eine Version eines Objekts vernichtet werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Version über XML/SOAP erzeugen (FSCBAI@1.1001:SOAPDeleteVersion) übermittelt.
::params=coort.CreateDictionary();
::returnval=coort.CreateContent();
::params.SetEntryValue("objid",0,this.objaddress);
::params.SetEntryValue("date",0,"2005-04-21T14:00:00");
FSCBAI@1.1001:CallSoapXmlEx(::dept,"DeleteVersion",::params,&::returnval)
Die Adresse des Objekts wird im XML-Knoten <objid> hinterlegt. Das Datum definiert die Version, die vernichtet wird.
Die SOAP-Aktion Objekt über XML/SOAP erzeugen und Eigenschaften setzen (FSCBAI@1.1001:SOAPCreateObject) bietet die Möglichkeit, ein neues Objekt zu erzeugen.
Input |
---|
Namespace: urn:schemas-fabasoft-com:bai:object <SOAPCreateObjectRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:bai:object <SOAPCreateObjectResponse> |
Die Aktion erzeugt ein neues Objekt der Objektklasse, die im XML-Element <objclass> angegeben ist. Falls zusätzlich zu den Informationen zum Erzeugen des Objekts Initialisierungsdaten im Knoten <initialization>/<data> angegeben sind (statt dem <any>-Block), so werden diese mittels einer XML-Abbildung in das neu erzeugte Objekt geladen. Zur Ermittlung des Mappings gibt es zwei Möglichkeiten:
Die Aktion liefert als Ergebnis ein XML-Dokument, das die Objektadresse, den Objektnamen und das Erstellungsdatum enthält.
Beispiel:
Anhand eines in der Konfiguration für Fachanwendungen eingetragen XML-Mappings soll ein neues Objekt erstellt und mit Metadaten initialisiert werden. Weiters soll das Objekt in einem Ordner abgelegt werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Objekt über XML/SOAP erzeugen und Eigenschaften setzen (FSCBAI@1.1001:SOAPCreateObject) übermittelt.
::params=coort.CreateDictionary();
::init=coort.CreateDictionary();
::containerlist=coort.CreateDictionary();
::container=coort.CreateDictionary();
::params.SetEntryValue("objclass",0,"COOMSOFFICE@1.1:WinWordObject");
::params.SetEntryValue("objname",0,"Erzeugtes Wordobjekt");
::container.SetEntryValue("contaddress",0,"COO.1.1065.1.165");
::container.SetEntryValue("contattr",0,"COOSYSTEM@1.1:objchildren");
::containerlist.SetEntryValue("container",0,:: container);
::init.SetEntryValue("dept",0,"FSCBANEW@10.531:DeptA ");
::init.SetEntryValue("data",0,"XML-Teilbaum");
::params.SetEntryValue("containerlist",0,::containerlist);
::params.SetEntryValue("initialization",0,::init);
FSCBAI@1.1001:CallSoapXmlEx(::dept,"CreateObject",::params,&::returnval);
Die Fabasoft Produktinstallation stellt mit der Softwarekomponente Integration for Business Application: Workflow (FSCBAIWF@1.1001) SOAP-Aktionen zum Steuern und Erstellen von Prozessen and Aktivitäten zur Verfügung.
Initialisieren der Prozesse eines Objekts über SOAP (FSCBAIWF@1.1001:SOAPInitializeWorkFlow)
Diese SOAP-Aktion initialisiert einen Workflow auf einem Fabasoft Folio Objekt. Es kann die gewünschte Prozessdefinition im Request-XML mitgegeben werden. Weiters besteht die Möglichkeit zu entscheiden, ob der neue Prozess zum alten hinzugefügt werden soll oder nicht. Hier kann es je nach Vorkonfiguration zu unterschiedlichen Ergebnissen kommen.
Input |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:control <SOAPInitializeWorkFlowRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:control <BAIWFNoResponse> |
Im Element <obj-id> wird die Objektadresse des Objekts, auf das der Workflow initialisiert werden soll, angegeben.
Beispiel:
In der Fabasoft Produktinstallation soll ein Prozess auf einen Objekt initialisiert werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Initialisieren der Prozesse eines Objektes über SOAP (FSCBAI@1.1001:SOAPInitializeWorkFlow) übermittelt
::params=coort.CreateDictionary();
::returnval=coort.CreateDictionary();
::params=coort.CreateDictionary();
::objid=coort.CreateDictionary();
::procdef=coort.CreateDictionary();
::objid.SetEntryValue("id-ref",0,this.objaddress);
::params.SetEntryValue("obj-id",0,::objid);
::procdef.SetEntryValue("obj-id",0,"COO.10.531.1.10006");
::params.SetEntryValue("procdef-ids",0,::procdef);
::params.SetEntryValue("submit-deadline",0,"2007-12-12T12:00:00");
FSCBAI@1.1001:CallSoapXmlEx(::dept,"InitializeWorkFlow",::params,&::returnval)
Externe Aktivität über SOAP erzeugen (FSCBAIWF@1.1001:SOAPCreateExternalActivity)
Mit dieser SOAP-Aktion können Objekte der Objektklasse Externe Aktivität (COOWF@1.1:ExternalActivityInstance) erstellt werden. Diese Aktivitäten müssen der SOAP-Aktion Externe Aktivität über SOAP einfügen (FSCBAIWF@1.1001:SOAPInsertExternalActivity) übergeben werden.
Input |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:createactinst <SOAPCreateExternalActivityRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:createactinst <SOAPCreateExternalActivityResponseType> |
Beispiel:
In der Fabasoft Produktinstallation soll eine neue Externe Aktivität erstellt werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Externe Aktivität über SOAP erzeugen (FSCBAIWF@1.1001:SOAPCreateExternalActivity) übermittelt.
::params=coort.CreateDictionary();
::returnval=coort.CreateDictionary();
::participant=coort.CreateDictionary();
::idtype1=coort.CreateDictionary();
::idtype2=coort.CreateDictionary();
::idtype1.SetEntryValue("id-ref",0,“Adresse des User“);
::idtype2.SetEntryValue("id-ref",0,“Adresse der Gruppe);
::participant.SetEntryValue("user-id",0,::idtype1);
::participant.SetEntryValue("group-id",0,::idtype2);
::params.SetEntryValue("actinst-title",0,"Test");
::params.SetEntryValue("actinst-participant",0,::participant);
::params.SetEntryValue("actinst-receivedat",0,"2005-02-02T12:30:00");
::params.SetEntryValue("actinst-startedat",0,"2005-02-02T12:10:00");
::params.SetEntryValue("actinst-completedat",0,"2005-02-02T12:20:00");
FSCBAI@1.1001:CallSoapXmlEx(::dept,"CreateExternalAct",::params,&::returnval);
Externe Aktivität über SOAP einfügen (FSCBAIWF@1.1001:SOAPInsertExternalActivity)
Diese SOAP-Aktion kann verwendet werden, um Aktivitäten der Objektklasse Externe Aktivität (COOWF@1.1:ExternalActivityInstance) in einen Prozess einzufügen.
Input |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:control <SOAPInsertExternalActivityRequest> </extinst-id> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:control <BAIWFNoResponse> |
Ist bei einer Aktivitätsdefinition oder bei einer Aktivität die Eigenschaft Aktivität wird von Extern synchronisiert (actinstexternalsync bzw. actdefexternalsync) ausgewählt, so wird diese Aktivität (und folgende Aktivitäten) in einen Wartezustand versetzt. Ab diesem Zeitpunkt kann die Aktivität in der Liste Externe Synchronisation im Arbeitsvorrat eingesehen werden. Während die Aktivität auf externe Synchronisation wartet, können mithilfe der angegebenen SOAP-Aktion Aktivitäten vor der Aktivität eingefügt werden. Die Fortsetzung des Prozesses muss explizit signalisiert werden, indem beim Aufruf der SOAP-Aktion das Element <ext-complete> auf TRUE gesetzt wird.
Beispiel:
In einem Prozess der Fabasoft Produktinstallation soll eine neue Externe Aktivität eingefügt werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Externe Aktivität über SOAP einfügen (FSCBAIWF@1.1001:SOAPInsertExternalActivity) übermittelt.
::objid.SetEntryValue("id-ref",0,”Objektaddresse”);
::params.SetEntryValue("obj-id",0,::objid);
::extinstid.SetEntryValue("id-ref",0, „Objektaddresse der Aktivität“);
::params.SetEntryValue("extinst-id",0,::extinstid);
::params.SetEntryValue("ext-complete",0,FALSE);
FSCBAI@1.1001:CallSoapXmlEx(::dept,"InsertExternalActivity",::params,&::returnval)
Mit dieser SOAP-Aktion kann einem Benutzer ein Ad-hoc-Workflow über SOAP vorgeschrieben werden. Der Benutzer kann pro vorgeschriebener Aktivität definiert werden.
Input |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:control <SOAPPrescribeObjectRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:control <BAIWFNoResponse> |
Mit dieser Aktion können beliebige Aktivitäten vorgeschrieben werden. Ausgeführt wird die Aktion auf die Aktivitätsinstanz, die im Element <obj-id> angegeben wird. Wichtig ist, dass diese Aktivität den Status „Begonnen“ hat. Ansonsten schlägt diese SOAP-Aktion fehl.
Beispiel:
In einem Prozess der Fabasoft Produktinstallation soll eine Aktivität vorgeschrieben werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Objekt vorschreiben (FSCBAIWF@1.1001:SOAPPrescribeObject) übermittelt.
::params=coort.CreateDictionary();
::returnval=coort.CreateDictionary();
::objid=coort.CreateDictionary();
::prescrblock=coort.CreateDictionary();
::prescription=coort.CreateDictionary();
::participant=coort.CreateDictionary();
::userid=coort.CreateDictionary();
::objid.SetEntryValue("id-ref",0,”Addresse der Aktivität”);
::params2.SetEntryValue("obj-id",0,::objid);
::actdefprescrid.SetEntryValue("id-ref",0,"Objektadresse der Aktivität, die vorgeschrieben warden soll ");
::userid.SetEntryValue("id-ref",0,”Teilnehmer”);
::participant.SetEntryValue("user-id",0,::userid);
::prescription.SetEntryValue("actdefprescr-id",0,::actdefprescrid);
::prescription.SetEntryValue("participant",0,::participant);
::prescription.SetEntryValue("remark",0,"Test");
::prescription.SetEntryValue("actdefback-id",0,::actdefbackid);
::prescrblock.SetEntryValue("prescription",0,::prescription);
::params.SetEntryValue("remark",0,"Test");
::params.SetEntryValue("prescr-block",0,::prescrblock);
::params.SetEntryValue("notcomplete",0,"FALSE");
FSCBAI@1.1001:CallSoapXmlEx(::dept,"PrescribeObject",::params,&::returnval)
Bemerkungen können sowohl bei der vorgeschrieben Aktivität, als auch bei den neuen Aktivitäten eingegeben werden. Wichtig ist, dass die allgemeine Bemerkung nur dann eingetragen wird, wenn der XML-Knoten <notcomplete> auf FALSE gesetzt wird.
Zustand der Aktivität auf 'zugeteilt' setzen (FSCBAIWF@1.1001:SOAPSetDelegated)
Mit dieser Aktion kann eine Aktivität einem Workflowteilnehmer zugeteilt werden.
Input |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:control <SOAPSetDelegatedRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:control <BAIWFNoResponse> |
Mit dieser Aktion wird die angegebene Aktivitätsinstanz einem in <participant> bzw. <partmansubst> angegebenen Workflowteilnehmer zugeteilt. Wichtig ist, dass die Aktivität, die im Knoten <obj-id> angegeben ist, den Status „Begonnen“ hat.
Beispiel:
In einem Prozess der Fabasoft Produktinstallation soll eine Aktivität zugeteilt werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Zustand der Aktivität auf „zugeteilt“ setzen (FSCBAIWF@1.1001:SOAPSetDelegated) übermittelt.
::params=coort.CreateDictionary();
::returnval=coort.CreateDictionary();
::objid=coort.CreateDictionary();
::participant=coort.CreateDictionary();
::userid=coort.CreateDictionary();
::groupid=coort.CreateDictionary();
::objid.SetEntryValue("id-ref",0,"Aktivitätsinstanz");
::params.SetEntryValue("obj-id",0,::objid);
::participant.SetEntryValue("mata-participant",0,0);
::userid.SetEntryValue("id-ref",0,“Addresse des Users“);
::participant.SetEntryValue("user-id",0,::userid);
::groupid.SetEntryValue("id-ref",0,“Adresse der Gruppe“);
::participant.SetEntryValue("group-id",0,::groupid);
::params.SetEntryValue("participant",0,::participant);
::params.SetEntryValue("remark",0,"Test");
::params.SetEntryValue("submit-deadline",0,“Datum“);
::params.SetEntryValue("start-deadline",0,“Datum“);
::params.SetEntryValue("end-deadline",0,“Datum“);
FSCBAI@1.1001:CallSoapXmlEx(::dept,"SetDelegated",::params,&::returnval)
Soll eine Aktivität, die den Status „Begonnen“ hat über SOAP weitergeleitet bzw. beendet werden, muss diese SOAP-Aktion aufgerufen werden.
Input |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:control <SOAPSetCompletedRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:baiwf:control <BAIWFNoResponse> |
Im Element <obj-id> wird die Objektadresse der Aktivitätsdefinition angegeben, die beendet werden soll. Die Aktivität muss den Status „Begonnen“ haben.
Beispiel:
In einem Prozess der Fabasoft Produktinstallation soll eine Aktivität weitergeleitet werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Weiterleiten/Beenden einer Aktivität (FSCBAIWF@1.1001:SOAPSetCompleted) übermittelt.
::params=coort.CreateDictionary();
::returnval=coort.CreateDictionary();
::objid.SetEntryValue("id-ref",0,”Addresse der Aktivität”);
::params.SetEntryValue("obj-id",0,::objid);
::params.SetEntryValue("remark",0,"Test");
FSCBAI@1.1001:CallSoapXmlEx(::dept,"SetCompleted",::params,&::returnval)
Die Einstellungen einer Unterschriftenart (COOSIGNATURE@1.1:SignatureType) können mittels der Eigenschaft Änderungen der vordefinierten Eigenschaften (COOSIGNATURE@1.1:sgtmodifications) je Mandant überschrieben werden. Diese Änderungen können dynamisch via Expression (COOSIGNATURE@1.1:sgmcondition) deaktiviert werden, damit z.B. mittels einer Transaktionsvariable die Einstellungen einer Unterschriftenart (wie z.B. Art der Authentisierung) geändert werden können.
Global Scope | DICTIONARY |
signtype | Unterschriftenart |
modification | Änderungen der vordefinierten Eigenschaften |
Local Scope | DICTIONARY |
(empty) | |
Result | BOOLEAN |
Die Fabasoft Produktinstallation bietet einer Fachanwendung die Möglichkeit Objekte zu suchen. Die Ergebnisse werden aufbereitet zurückgeliefert.
Die SOAP-Aktion Objekte via XML/SOAP suchen und Eigenschaften auslesen (FSCBAI@1.1001:SOAPSearch) bietet die Möglichkeit, Objekte über eine Standard-Suchabfrage zu suchen und die Metadaten auszulesen.
Input |
---|
Namespace: urn:schemas-fabasoft-com:bai:search <SOAPSearchRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:bai:search <SOAPSearchResponse> |
Die Aktion erwartet im XML-Element <query> eine Fabasoft Folio Suchabfrage. Für die gefundenen Objekte werden Basisinformationen (Objektname im Element <objname> und Objektadresse im Element <objaddress>) zurückgeliefert.
Wird im SOAP-Request für den Aufruf im XML-Knoten mapping eine XML-Abbildung für die Objektklasse der gesuchten Objekte übergeben, so wird diese Abbildung auf jedes Objekt der Suchergebnisliste angewendet. Das daraus generierte XML-Dokument wird an die Stelle des <any>-Elements im Output-XML-Dokument der Aktion eingefügt.
Weiters besteht die Möglichkeit das Mapping über die Konfiguration für Fachanwendungen zu ermitteln. Hier muss wieder pro Objektklasse, Fachanwendungsbereich und dem Auslöser FSCBAI@1.1001:SOAPSearch ein Mapping für die gewünschte Objektklasse eingetragen werden.
Wird im SOAP-Request für den Aufruf im XML-Knoten attrlist ein oder mehrere XML-Knoten attr mit einer Fabasoft DUCX Expression übergeben, so werden diese auf jedes Objekt der Suchergebnisliste angewendet. Das Ergebnis wird in einer, dem Datentyp des Ergebnisses angelehnten, XML-Struktur abgebildet und an die Stelle des <attrlist>-Elements im Output-XML-Dokument der Aktion eingefügt.
Beispiel:
Ausschnitt aus dem SOAP-Request:
<attrlist>
<attr>COOSYSTEM@1.1:objcreatedby</attr>
<attr>COOSYSTEM@1.1:content</attr>
</attrlist>
Ausschnitt aus dem SOAP-Response:
<queryresult>
<object>
<objname>Search Note</objname>
<objaddress>COO.1.1065.3.3008348</objaddress>
<attrlist>
<fsc1:OBJECT xmlns:fsc1="urn:schemas-fabasoft-com:bai:search"
fsc1:reference="COOSYSTEM@1.1:objcreatedby"
fsc1:index="0">COO.1.1065.1.16</fsc1:OBJECT>
<fsc1:AGGREGATE xmlns:fsc1="urn:schemas-fabasoft-com:bai:search"
fsc1:reference="COOSYSTEM@1.1:content" fsc1:index="0">
<fsc1:CONTENT fsc1:reference="COOSYSTEM@1.1:contcontent"
fsc1:index="0">WW91IGNhbiBkZWNvZGUgQmFzZTY0IQ==</fsc1:CONTENT>
<fsc1:INTEGER fsc1:reference="COOSYSTEM@1.1:contsize"
fsc1:index="0">22</fsc1:INTEGER>
<fsc1:DATETIME fsc1:reference="COOSYSTEM@1.1:contchanged"
fsc1:index="0">2009-09-18 12:04:22</fsc1:DATETIME>
<fsc1:STRING fsc1:reference="COOSYSTEM@1.1:contextension"
fsc1:index="0">txt</fsc1:STRING>
</fsc1:AGGREGATE>
</attrlist>
</object>
</queryresult>
Falls beim Aufruf der Aktion ein Fehler auftritt, wird ein Standard-SOAP-Fehler generiert.
Hinweis: Der Aufbau einer gültigen Fabasoft Folio Suchabfrage kann der Entwicklerdokumentation von Fabasoft Folio entnommen werden.
Beispiel:
Es soll in der Fabasoft Produktinstallation nach Inhaltsobjekten gesucht werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Objekte via XML/SOAP suchen und Eigenschaften auslesen (FSCBAI@1.1001:SOAPSearch) übermittelt.
::returnval=coort.CreateDictionary();
::params =coort.CreateDictionary();
::params.SetEntryValue("query",0, „LIMIT 100 SELECT * FROM COOSYSTEM@1.1:ContentObject”);
::params.SetEntryValue("mapping",0, „COO-Adresse des Mappings”);
FSCBAI@1.1001:CallsSoapXmlEx(::dept,”SOAPSearch”,::params,&::returnval)
Werden Änderungen eines Fabasoft Folio Objekts von der Fachanwendung durchgeführt, kann diese das betreffende Objekt in der Fabasoft Produktinstallation sperren und wieder entsperren. So wird verhindert, dass zur gleichen Zeit ein anderer Benutzer Änderungen an diesem Objekt vornimmt.
Ein Check-out eines Objekts sperrt das betreffende Objekt in der Fabasoft Produktinstallation (permanente Sperre). Darüber hinaus können weitere Objekte mitgesperrt werden. Bei allen gesperrten Objekten wird eine neue Version begonnen.
Input |
---|
Namespace: urn:schemas-fabasoft-com:SOAPCheckInOut <SOAPCheckOutRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:SOAPCheckInOut <SOAPCheckOutResponse> |
Das Element <lockpropagate> gibt an, ob die Sperre auf alle Objekte weitergeführt werden soll, die durch einen Ausdruck in der Eigenschaft Weiterführen von permanenten Sperren (FSCBAI@1.1001:propagatedlocks) in der Konfiguration für Fachanwendungen angegeben sind. Wenn im Element <lock> FALSE angegeben wird, wird das Element <lockpropagate> nicht berücksichtigt.
Im Element <idcode> wird eine Zeichenkette zurückgegeben, die beim Check-in-Aufruf wieder mitgegeben werden muss, um alle Objekte wieder entsperren zu können, die beim Check-out gesperrt wurden. In <lockfailed> werden die Objektadressen der Objekte zurückgegeben, bei denen versucht wurde eine permanente Sperre zu setzen, dabei jedoch ein Fehler aufgetreten ist (z. B. durch fehlende Berechtigungen etc.). In <locksuccess> werden die Objektadressen der Objekte zurückgegeben, bei denen eine permanente Sperre gesetzt wurde.
Das Element <doc> ist vom Typ „any“ und beinhaltet die ausgecheckten Daten. Das Schema für diese Daten kann in der Konfiguration für Fachanwendungen in der Eigenschaft Schematazuordnungen (FSCBAI@1.1001:schemamaps) definiert werden. Die gewünschte Schematazuordnung muss dem Fachanwendungsbereich zugewiesen werden, der auch der SOAP-Aktion mitgegeben wurde. Ist das nicht der Fall, kann keine Transformation durchgeführt werden.
Beispiel:
Es soll ein Objekt mit Objektliste ausgecheckt werden. Die weiterführenden Sperren müssen aktiviert sein. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Auschecken über SOAP (FSCBAI@1.1001:SOAPCheckOut) übermittelt.
::returnval=coort.CreateDictionary();
::params.SetEntryValue("id",0,this.objaddress);
::params.SetEntryValue("lock",0,"TRUE");
::params.SetEntryValue("lockpropagate",0,"TRUE");
::params.SetEntryValue("dept",0,::dept.objaddress);
FSCBAI@1.1001:CallSoapXmlEx(::dept,"CheckOut",::params,&::returnval);
objsubject=::returnval.GetEntryValue2("idcode",0)
Beim Check-in werden die Daten aktualisiert und anschließend wird optional das Objekt und gegebenenfalls weitere Objekte, die beim Check-out gesperrt wurden, wieder freigegeben. Zusätzlich wird eine neue Version begonnen.
Input |
---|
Namespace: urn:schemas-fabasoft-com:SOAPCheckInOut <SOAPCheckInRequest> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:SOAPCheckInOut <SOAPCheckInResponse> |
Im Element <idcode> muss die Zeichenkette übergeben werden, die beim Check-out-Aufruf zurückgegeben wurde, um alle beim Check-out gesperrten Objekte wieder entsperren zu können. In <overwrite> wird angegeben, ob die Objekte auch dann überschrieben werden sollen, wenn die Objekte in der Zwischenzeit geändert wurden. Die Änderungen werden anhand des Änderungsdatums und des Erstellungsdatums der aktuellen Version erkannt. Standardwert für <overwrite> ist FALSE. Das Element <unlock> gibt an, ob die Objekte nach dem Check-in wieder entsperrt werden sollen. Dadurch ist es möglich, z. B. zwischendurch mehrmals Daten zurück zu schreiben ohne dabei die Objekte zu entsperren. Der Standardwert für <unlock> ist TRUE. Fehler werden über den SOAP-Fehlerstatus zurückgegeben.
Das Element <doc> ist vom Typ „any“ und beinhaltet die Daten, die beim Einchecken in das Geschäftsobjekt geschrieben werden sollen. Das Schema für diese Daten wird in der Konfiguration für Fachanwendungen in der Eigenschaft Schematazuordnungen (FSCBAI@1.1001:schemamaps) aus der dort angegebenen Abbildung von XML-Elementen auf Objekteigenschaften ausgelesen. Damit das XML-Schema in der Konfiguration für Fachanwendungen gefunden werden kann, muss auch der entsprechende Fachanwendungsbereich im XML-Knoten <dept> übergeben werden.
Beispiel:
Es soll ein Objekt mit Objektliste eingecheckt werden. Die permanenten Sperren müssen deaktiviert sein. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Einchecken über SOAP (FSCBAI@1.1001:SOAPCheckIn) übermittelt.
::params=coort.CreateDictionary();
::returnval=coort.CreateDictionary();
::params.SetEntryValue("idcode",0,objsubject);
::params.SetEntryValue("overwrite",0,"TRUE");
::params.SetEntryValue("unlock",0,TRUE);
::params.SetEntryValue("dept",0,::dept.objaddress);
FSCBAI@1.1001:CallSoapXmlEx(::dept,"CheckIn",::params,&::returnval);
Im Folgenden finden Sie generische SOAP-Aktionen.
Die SOAP-Aktion Eigenschaften über XML/SOAP lesen (generisch) (FSCBAI@1.1001:SOAPGenericGetProperties) bietet die Möglichkeit, Eigenschaften eines Objekts generisch auszulesen.
Input |
---|
Namespace: urn:schemas-fabasoft-com:universal <object> |
Output |
---|
Namespace: urn:schemas-fabasoft-com:universal <OBJECT objaddress="Objektadresse des Objekts"> |
Die Aktion liefert zu dem im Element <objaddress> angegebenen Objekt die Werte jener Eigenschaften, die in <attrlist> angegeben sind. Falls keine Eigenschaften spezifiziert sind, werden alle Eigenschaften des Objekts zurückgeliefert.
Um die Antwort zu erzeugen werden die Werte der Eigenschaften entsprechend ihres Typs in Skalare und Listen gruppiert. Das XML-Attribut reference speichert die Referenz der Eigenschaft, wodurch die Werte eindeutig zugeordnet werden können.
Die Werte der Fabasoft Folio Eigenschaften werden wie folgt auf die XML-Elemente entsprechend den XML-Schema-Datentypen (XSD) abgebildet:
Datentyp | Beschreibung |
---|---|
<BOOLEAN> | Wert einer booleschen Eigenschaft, 0 für FALSE, 1 für TRUE |
<BOOLEANLIST> | Liste von booleschen Eigenschaften, wobei jedes Element der Liste in einem <BOOLEAN>-XML-Element ohne reference-Attribut angegeben ist. |
<STRING> | Wert einer Zeichenketteneigenschaft, UTF-8-Zeichenkette |
<STRINGLIST> | Liste von Zeichenketteneigenschaften, wobei jedes Element der Liste in einem <STRING>-XML-Element ohne reference-Attribut angegeben ist. |
<FLOAT> | Wert einer Gleitkommaeigenschaft |
<FLOATLIST> | Liste von Gleitkommaeigenschaften, wobei jedes Element der Liste in einem <FLOAT>-XML-Element ohne reference-Attribut angegeben ist. |
<INTEGER> | Wert einer ganzzahligen Eigenschaft |
<INTEGERLIST> | Liste von ganzzahligen Eigenschaften, wobei jedes Element der Liste in einem <INTEGER>-XML-Element ohne reference-Attribut angegeben ist. |
<CONTENT> | Wert einer Eigenschaft für Inhalte, Base64-kodierter Inhalt |
<CONTENTLIST> | Liste von Inhaltseigenschaften, wobei jedes Element der Liste in einem <CONTENT>-XML-Element ohne reference-Attribut angegeben ist. |
<OBJECT> | Wert einer Objektzeigereigenschaft, Objektadresse |
<OBJECTLIST> | Liste von Objektzeigereigenschaften, wobei jedes Element der Liste in einem <OBJECT>-XML-Element ohne reference-Attribut angegeben ist. |
<DATETIME> | Wert einer Eigenschaft für Datum/Zeit |
<DATETIMELIST> | Liste von Eigenschaften für Datum/Zeit, wobei jedes Element der Liste in einem <DATETIME>-XML-Element ohne reference-Attribut angegeben ist. |
<ENUM> | Wert einer Aufzählungseigenschaft, Zahlenwert |
<ENUMLIST> | Liste von Aufzählungseigenschaften, wobei jedes Element der Liste in einem <ENUM>-XML-Element ohne reference-Attribut angegeben ist. |
<AGGREGATE> | Wert einer zusammengesetzten Eigenschaft, der wieder aus den Elementen <BOOLEAN>, <STRING>, <FLOAT>, <INTEGER>, <CONTENT>, <OBJECT>, <DATETIME>, <ENUM> und <AGGREGATE> bestehen kann. |
<AGGREGATELIST> | Liste von zusammengesetzten Eigenschaften, wobei jedes Element der Liste in einem <AGGREGATE>-XML-Element ohne reference-Attribut angegeben ist. |
Beispiel:
Anhand der definierten Eigenschaften sollen Metadaten eines Objekts gelesen werden. Der XML-Request wird mithilfe einer Fabasoft DUCX Expression erstellt und unter Verwendung der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) an die SOAP-Aktion Eigenschaften über XML/SOAP lesen (generisch) (FSCBAI@1.1001:SOAPGenericGetProperties) übermittelt.
::returnval=coort.CreateContent();
::params=coort.CreateDictionary();
::attrlist=coort.CreateDictionary();
::params.SetEntryValue("objaddress",0,this.objaddress);
::attrlist.SetEntryValue("attr",0,"COOSYSTEM@1.1:content.COOSYSTEM@1.1:contsize");
::attrlist.SetEntryValue("attr",1,"COOSYSTEM@1.1:objcreatedat");
::attrlist.SetEntryValue("attr",2,"COOSYSTEM@1.1:objcreatedby");
::params.SetEntryValue("attrlist",0,::attrlist);
FSCBAI@1.1001:CallSoapXmlEx(::dept,"GenericGetProperties",::params,&::returnval)
Die SOAP-Aktion Eigenschaften über XML/SOAP setzen (generisch) (FSCBAI@1.1001:SOAPGenericSetProperties) bietet die Möglichkeit, Eigenschaften eines Objekts zu ändern.
Input |
---|
Namespace: urn:schemas-fabasoft-com:universal <OBJECT objaddress="Objektadresse des Objekts" |
Output |
---|
Namespace: urn:schemas-fabasoft-com:universal <response> |
Die Aktion ermittelt das zu ändernde Objekt anhand des XML-Attributs objaddress, das eine Objektadresse enthält. Falls im XML-Attribut create die Referenz einer Objektklasse angegeben ist, wird das zu ändernde Objekt nicht gesucht sondern neu erzeugt.
Anschließend werden die XML-Daten gruppiert nach ihren Fabasoft Folio Typen in die entsprechenden Eigenschaften des Objekts geladen. Über die Referenz der Eigenschaft und den Typ kann eine Eigenschaft eindeutig identifiziert werden.
Die Aktion liefert Informationen über das geänderte Objekt, sowie eine Liste jener Eigenschaften, die nicht geändert werden konnten. Zusätzlich wird der Ergebniswert der Aktion im XML-Element <result> zurückgegeben.
Die Werte der Fabasoft Folio Eigenschaften müssen wie folgt auf die XML-Elemente entsprechend den XML-Schema-Datentypen (XSD) abgebildet werden:
Datentyp | Beschreibung |
---|---|
<BOOLEAN> | Wert einer booleschen Eigenschaft, 0 für FALSE, 1 für TRUE |
<BOOLEANLIST> | Liste von booleschen Eigenschaften, wobei jedes Element der Liste in einem <BOOLEAN>-XML-Element ohne reference-Attribut angegeben ist. |
<STRING> | Wert einer Zeichenketteneigenschaft, UTF-8-Zeichenkette |
<STRINGLIST> | Liste von Zeichenketteneigenschaften, wobei jedes Element der Liste in einem <STRING>-XML-Element ohne reference-Attribut angegeben ist. |
<FLOAT> | Wert einer Gleitkommaeigenschaft |
<FLOATLIST> | Liste von Gleitkommaeigenschaften, wobei jedes Element der Liste in einem <FLOAT>-XML-Element ohne reference-Attribut angegeben ist. |
<INTEGER> | Wert einer ganzzahligen Eigenschaft |
<INTEGERLIST> | Liste von ganzzahligen Eigenschaften, wobei jedes Element der Liste in einem <INTEGER>-XML-Element ohne reference-Attribut angegeben ist. |
<CONTENT> | Wert einer Eigenschaft für Inhalte, Base64-kodierter Inhalt |
<CONTENTLIST> | Liste von Inhaltseigenschaften, wobei jedes Element der Liste in einem <CONTENT>-XML-Element ohne reference-Attribut angegeben ist. |
<OBJECT> | Wert einer Objektzeigereigenschaft, Objektadresse |
<OBJECTLIST> | Liste von Objektzeigereigenschaften, wobei jedes Element der Liste in einem <OBJECT>-XML-Element ohne reference-Attribut angegeben ist. |
<DATETIME> | Wert einer Eigenschaft für Datum/Zeit |
<DATETIMELIST> | Liste von Eigenschaften für Datum/Zeit, wobei jedes Element der Liste in einem <DATETIME>-XML-Element ohne reference-Attribut angegeben ist. |
<ENUM> | Wert einer Aufzählungseigenschaft, Zahlenwert |
<ENUMLIST> | Liste von Aufzählungseigenschaften, wobei jedes Element der Liste in einem <ENUM>-XML-Element ohne reference-Attribut angegeben ist. |
<AGGREGATE> | Wert einer zusammengesetzten Eigenschaft, der der rekursiven Natur dieser Eigenschaften entsprechend wieder aus den Elementen <BOOLEAN>, <STRING>, <FLOAT>, <INTEGER>, <CONTENT>, <OBJECT>, <DATETIME>, <ENUM> und <AGGREGATE> bestehen kann. |
<AGGREGATELIST> | Liste von zusammengesetzten Eigenschaften, wobei jedes Element der Liste in einem <AGGREGATE>-XML-Element ohne reference-Attribut angegeben ist. |
Beispiel:
In der Fabasoft Produktinstallation sollen die Metadaten eines Objekts generisch gesetzt werden. Der XML-Request beinhaltet einen XML-Inhalt und wird als Parameter der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) übergeben. Diese ruft wiederum die SOAP-Aktion Eigenschaften über XML/SOAP setzen (generisch) (FSCBAI@1.1001:SOAPGenericSetProperties) auf.
Beispiel eines Request-XML:
<ns1:OBJECT ns1:objaddress="COO.20.75.4.191"
xmlns:ns1="urn:schemas-fabasoft-com:universal"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ns1:STRING ns1:reference=COOSYSTEM@1.1:objname
dt:dt="string">Das ist ein Test</ns1:STRING>
<ns1:AGGREGATELIST
ns1:reference="COOMAPI@1.1:emailinformation">
<ns1:AGGREGATE>
<ns1:BOOLEAN ns1:reference=COOMAPI@1.1:emailrtf
dt:dt="boolean">1</ns1:BOOLEAN>
<ns1:STRING ns1:reference=COOMAPI@1.1:emailaddress
dt:dt="string">Das ist ein SOAP-Test</ns1:STRING>
<ns1:ENUM ns1:reference="COOMAPI@1.1:emailknowntype"
dt:dt="int">2</ns1:ENUM>
</ns1:AGGREGATE>
</ns1:AGGREGATELIST>
</ns1:OBJECT>
Dieses XML muss als Inhalt in der Fabasoft DUCX Expression der Aktion Aufrufen einer SOAP-Aktion mit verschiedenen Parametern über Fachanwendungsbereich (FSCBAI@1.1001:CallSoapXmlEx) übergegeben werden.
::returnval=coort.CreateDictionary();
::xmlcontent=”Obiger Content“;
FSCBAI@1.1001:CallSoapXmlEx(::dept,"GenericSetProperties",::xmlcontent,&::returnval)