AEM Forms ermöglicht es Formularautoren, das Ausfüllen von Formularen weiter zu vereinfachen und zu verbessern, indem sie Dienste, die in einem Formulardatenmodell konfiguriert sind, aus einem adaptiven Formularfeld heraus aufrufen. Um einen Datenmodelldienst aufzurufen, können Sie entweder eine Regel im Visual Editor erstellen oder mit der API guidelib.dataIntegrationUtils.executeOperation
im Code-Editor des Regeleditors ein JavaScript angeben.
In diesem Dokument wird das Schreiben von JavaScript im APIguidelib.dataIntegrationUtils.executeOperation
für den Aufruf eines Dienst beschrieben.
Die guidelib.dataIntegrationUtils.executeOperation
-API ruft einen Dienst aus einem Feld für ein adaptives Formular auf. Für die API gilt die folgende Syntax:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs)
Die Struktur der API guidelib.dataIntegrationUtils.executeOperation
gibt Details zum Dienstvorgang an. Die Struktur weist die folgende Syntax auf.
var operationInfo = {
formDataModelId,
operationTitle,
operationName
};
var inputs = {
inputField1,
inputFieldN
};
var outputs = {
outputField1,
outputFieldN
}
Die API-Struktur gibt die folgenden Informationen zum Webdienst-Vorgang an.
Parameter | Beschreibung |
---|---|
operationInfo |
Struktur zur Angabe von Formulardatenmodellkennung, Operationstitel und Operationsname |
formDataModelId |
Gibt den Repository-Pfad zum Formulardatenmodell einschließlich seines Namens an |
operationName |
Gibt den Namen des auszuführenden Dienstvorgangs an |
inputs |
Ordnet ein oder mehrere Formularobjekte den Eingabeargumenten für den Dienstvorgang zu |
Outputs |
Ordnet ein oder mehrere Formularobjekte Ausgabewerten aus dem Dienstvorgang zu, um Formularfelder auszufüllen. |
success |
Gibt Werte basierend auf den Eingabeargumenten für den Dienstvorgang zurück. Dies ist ein optionaler Parameter, der als Rückruffunktion verwendet wird. |
failure |
Zeigt eine Fehlermeldung an, wenn die Rückruffunktion success die Ausgabenwerte basierend auf den Eingabeargumenten nicht anzeigen kann. Dies ist ein optionaler Parameter, der als Rückruffunktion verwendet wird. |
Das folgende Beispielskript verwendet die API guidelib.dataIntegrationUtils.executeOperation
, um den im Formulardatenmodell employeeAccount
konfigurierten Dienstvorgang getAccountById
aufzurufen.
Der Vorgang getAccountById
nimmt den Wert im Formularfeld employeeID
als Eingabe für das empId
-Argument und gibt Mitarbeitername, Kontonummer und Kontostand für den entsprechenden Mitarbeiter zurück. Die Ausgabewerte werden in den angegebenen Formularfeldern befüllt. Beispielsweise wird der Wert im Argument name
im Formularelement fullName
und der Wert für accountNumber
im account
-Formularelement gefüllt.
var operationInfo = {
"formDataModelId": "/content/dam/formsanddocuments-fdm/employeeAccount",
"operationName": "getAccountDetails"
};
var inputs = {
"empid" : employeeID
};
var outputs = {
"name" : fullName,
"accountNumber" : account,
"balance" : balance
};
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs);
Sie können den Formulardatenmodelldienst auch mit der API guidelib.dataIntegrationUtils.executeOperation
mit einer Rückruffunktion aufrufen. Für die API gilt die folgende Syntax:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, callbackFunction)
Die Rückruffunktion kann über die Rückruffunktionen success
und failure
verfügen.
Das folgende Beispielskript verwendet die API guidelib.dataIntegrationUtils.executeOperation
, um den im Formulardatenmodell employeeOrder
konfigurierten Dienstvorgang GETOrder
aufzurufen.
Der Vorgang GETOrder
nimmt den Wert im Formularfeld Order ID
als Eingabe für das orderId
-Argument und gibt den Wert für die Bestellmenge in der Rückruffunktion success
zurück. Wenn die Rückruffunktion success
nicht die Bestellmenge zurückgibt, zeigt die Rückruffunktion failure
die Meldung Error occured
an.
Wenn Sie die Rückruffunktion success
verwenden, werden die Ausgabewerte nicht in die angegebenen Formularfelder eingefügt.
var operationInfo = {
"formDataModelId": "/content/dam/formsanddocuments-fdm/employeeOrder",
"operationTitle": "GETOrder",
"operationName": "GETOrder"
};
var inputs = {
"orderId" : Order ID
};
var outputs = {};
var success = function (wsdlOutput, textStatus, jqXHR) {
order_quantity.value = JSON.parse(wsdlOutput).quantity;
};
var failure = function(){
alert('Error occured');
};
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, success, failure);