API för att anropa formulärdatamodelltjänst från anpassningsbara formulär api-to-invoke-form-data-model-service-from-adaptive-forms
Adobe rekommenderar att du använder den moderna och utbyggbara datainhämtningen Core Components för att skapa en ny adaptiv Forms eller att lägga till Adaptiv Forms på AEM Sites-sidor. De här komponenterna utgör ett betydande framsteg när det gäller att skapa adaptiva Forms-filer, vilket ger imponerande användarupplevelser. I den här artikeln beskrivs det äldre sättet att skapa Adaptiv Forms med baskomponenter.
Ökning overview
Med AEM Forms kan formulärförfattare ytterligare förenkla och förbättra ifyllandet av formulär genom att anropa tjänster som konfigurerats i en formulärdatamodell inifrån ett adaptivt formulärfält. Om du vill anropa en datamodelltjänst kan du antingen skapa en regel i den visuella redigeraren eller ange en JavaScript med guidelib.dataIntegrationUtils.executeOperation-API:t i kodredigeraren för regelredigeraren.
Det här dokumentet fokuserar på att skriva en JavaScript med API:t guidelib.dataIntegrationUtils.executeOperation för att anropa en tjänst.
Använda API using-the-api
API:t guidelib.dataIntegrationUtils.executeOperation anropar en tjänst från ett adaptivt formulärfält. API-syntaxen är följande:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs)
Strukturen för guidelib.dataIntegrationUtils.executeOperation-API:t anger information om tjänståtgärden. Strukturen har följande syntax.
var operationInfo = {
formDataModelId,
operationTitle,
operationName
};
var inputs = {
inputField1,
inputFieldN
};
var outputs = {
outputField1,
outputFieldN
}
API-strukturen anger följande information om tjänståtgärden.
Exempelskript för att anropa en tjänst sample-script-to-invoke-a-service
I följande exempelskript används API:t guidelib.dataIntegrationUtils.executeOperation för att anropa den getAccountById-tjänståtgärd som konfigurerats i formulärdatamodellen employeeAccount.
Åtgärden getAccountById tar värdet i formulärfältet employeeID som indata för argumentet empId och returnerar medarbetarens namn, kontonummer och kontosaldo för motsvarande medarbetare. Utdatavärdena fylls i i de angivna formulärfälten. Värdet i argumentet name fylls till exempel i i formulärelementet fullName och värdet för argumentet accountNumber i formulärelementet 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);
Använda API:t med återanropsfunktionen using-the-api-callback
Du kan också anropa datamodelltjänsten för formulär med API:t guidelib.dataIntegrationUtils.executeOperation med en callback-funktion. API-syntaxen är följande:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, callbackFunction)
Återanropsfunktionen kan ha callback-funktionerna success och failure.
Exempelskript med återanropsfunktioner för lyckade och misslyckade åtgärder callback-function-success-failure
I följande exempelskript används API:t guidelib.dataIntegrationUtils.executeOperation för att anropa den GETOrder-tjänståtgärd som konfigurerats i formulärdatamodellen employeeOrder.
Åtgärden GETOrder tar värdet i formulärfältet Order ID som indata för argumentet orderId och returnerar orderkvantitetsvärdet i callback-funktionen success. Om återanropsfunktionen success inte returnerar ordningsantalet visar återanropsfunktionen failure meddelandet Error occured.
success fylls inte utdatavärdena i de angivna formulärfälten.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);