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 Componentsför att skapa nya adaptiva Formseller att lägga till adaptiva 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);