API zum Aufrufen von Formulardatenmodelldiensten aus adaptiven Formularen api-to-invoke-form-data-model-service-from-adaptive-forms
Adobe empfiehlt, die modernen und erweiterbaren Kernkomponentenzur Datenerfassung zu verwenden, um neue adaptive Formulare zu erstellenoder adaptive Formulare zu AEM Sites-Seiten hinzuzufügen. Diese Komponenten stellen einen bedeutenden Fortschritt bei der Erstellung adaptiver Formulare dar und sorgen für beeindruckende Anwendererlebnisse. In diesem Artikel wird der ältere Ansatz zum Erstellen adaptiver Formulare mithilfe von Foundation-Komponenten beschrieben.
Überblick overview
AEM Forms ermöglicht es Formularautorinnen und -autoren, das Ausfüllen von Formularen weiter zu vereinfachen und zu verbessern, indem in einem Formulardatenmodell konfigurierte Dienste aus einem adaptiven Formularfeld heraus aufgerufen werden. Um einen Datenmodell-Service aufzurufen, können Sie entweder eine Regel im visuellen Editor anlegen oder ein JavaScript mit der guidelib.dataIntegrationUtils.executeOperation
-API im Code-Editor des Regeleditors angeben.
In diesem Dokument wird das Schreiben von JavaScript in der guidelib.dataIntegrationUtils.executeOperation
-API für den Aufruf eines Service beschrieben.
Verwenden der API using-the-api
Die guidelib.dataIntegrationUtils.executeOperation
-API ruft einen Service über ein Feld in einem adaptiven Formular auf. Für die API gilt folgende Syntax:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs)
Die Struktur der guidelib.dataIntegrationUtils.executeOperation
-API gibt Details zum Service-Vorgang 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 folgende Informationen zum Service-Vorgang an.
Beispielskript zum Aufrufen eines Service sample-script-to-invoke-a-service
Folgendes Beispielskript verwendet die guidelib.dataIntegrationUtils.executeOperation
-API, um den getAccountById
-Service-Vorgang aufzurufen, der im Formulardatenmodell employeeAccount
konfiguriert ist.
Der Vorgang getAccountById
nimmt den Wert im Formularfeld employeeID
als Eingabe für das Argument empId
und gibt den Mitarbeiternamen, die Kontonummer und den 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
befüllt und der Wert für das Argument accountNumber
im Formularelement account
.
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);
Verwenden der API mit Rückruffunktion using-the-api-callback
Sie können den Formulardatenmodell-Service auch mithilfe der guidelib.dataIntegrationUtils.executeOperation
-API mit einer Rückruffunktion aufrufen. Für die API gilt folgende Syntax:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, callbackFunction)
Die Rückruffunktion kann über die Rückruffunktionen success
und failure
verfügen.
Beispielskript mit Rückruffunktionen für Erfolg und Fehlschlag callback-function-success-failure
Folgendes Beispielskript verwendet die guidelib.dataIntegrationUtils.executeOperation
-API, um den GETOrder
-Service-Vorgang aufzurufen, der im Formulardatenmodell employeeOrder
konfiguriert ist.
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.
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);