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 man använder modern och utbyggbar datainhämtning Kärnkomponenterfor skapa ny Adaptive Formseller 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 ett JavaScript med guidelib.dataIntegrationUtils.executeOperation
API i kodredigeraren för regelredigerare.
Det här dokumentet fokuserar på att skriva ett JavaScript med guidelib.dataIntegrationUtils.executeOperation
API för att anropa en tjänst.
Använda API using-the-api
The guidelib.dataIntegrationUtils.executeOperation
API anropar en tjänst inifrån ett adaptivt formulärfält. API-syntaxen är följande:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs)
Strukturen för guidelib.dataIntegrationUtils.executeOperation
API 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
Följande exempelskript använder guidelib.dataIntegrationUtils.executeOperation
API för att anropa getAccountById
tjänståtgärd konfigurerad i employeeAccount
formulärdatamodell.
The getAccountById
operationen tar värdet i employeeID
formulärfält som indata för empId
argument och returnerar medarbetarens namn, kontonummer och kontosaldo för motsvarande medarbetare. Utdatavärdena fylls i i de angivna formulärfälten. Värdet i name
argumentet har fyllts i i fullName
formulärelement och värde för accountNumber
argument i account
formulärelement.
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 guidelib.dataIntegrationUtils.executeOperation
API med en återanropsfunktion. API-syntaxen är följande:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, callbackFunction)
Återanropsfunktionen kan ha success
och failure
callback-funktioner.
Exempelskript med återanropsfunktioner för lyckade och misslyckade åtgärder callback-function-success-failure
Följande exempelskript använder guidelib.dataIntegrationUtils.executeOperation
API för att anropa GETOrder
tjänståtgärd konfigurerad i employeeOrder
formulärdatamodell.
The GETOrder
operationen tar värdet i Order ID
formulärfält som indata för orderId
argument och returnerar orderkvantitetsvärdet i success
callback-funktion. Om success
callback-funktionen returnerar inte orderkvantiteten, failure
callback-funktionen visar Error occured
meddelande.
success
callback-funktionen, utdatavärdena fylls inte i 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);