API per richiamare il servizio modello dati modulo da moduli adattivi api-to-invoke-form-data-model-service-from-adaptive-forms
Adobe consiglia di utilizzare l'acquisizione dati moderna ed estensibile Componenti coreper la creazione di un nuovo Forms adattivoo l'aggiunta di Forms adattivo alle pagine AEM Sites. Questi componenti rappresentano un progresso significativo nella creazione di Forms adattivi, garantendo esperienze utente straordinarie. Questo articolo descrive un approccio precedente all’authoring di Forms adattivi utilizzando i componenti di base.
Panoramica overview
AEM Forms consente agli autori dei moduli di semplificare e migliorare ulteriormente l’esperienza di compilazione dei moduli richiamando i servizi configurati in un modello di dati del modulo dall’interno di un campo di modulo adattivo. Per richiamare un servizio del modello dati, è possibile creare una regola nell'editor visivo o specificare un JavaScript utilizzando l'API guidelib.dataIntegrationUtils.executeOperation
nell'editor di codice dell'editor di regole.
Questo documento si concentra sulla scrittura di un JavaScript utilizzando l'API guidelib.dataIntegrationUtils.executeOperation
per richiamare un servizio.
Utilizzo dell’API using-the-api
L'API guidelib.dataIntegrationUtils.executeOperation
richiama un servizio dall'interno di un campo modulo adattivo. La sintassi API è la seguente:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs)
La struttura dell'API guidelib.dataIntegrationUtils.executeOperation
specifica i dettagli sull'operazione del servizio. La sintassi della struttura è la seguente.
var operationInfo = {
formDataModelId,
operationTitle,
operationName
};
var inputs = {
inputField1,
inputFieldN
};
var outputs = {
outputField1,
outputFieldN
}
La struttura API specifica i dettagli seguenti sull’operazione del servizio.
Script di esempio per richiamare un servizio sample-script-to-invoke-a-service
Lo script di esempio seguente utilizza l'API guidelib.dataIntegrationUtils.executeOperation
per richiamare l'operazione del servizio getAccountById
configurata nel modello dati del modulo employeeAccount
.
L'operazione getAccountById
utilizza il valore nel campo modulo employeeID
come input per l'argomento empId
e restituisce il nome del dipendente, il numero di conto e il saldo del conto per il dipendente corrispondente. I valori di output vengono compilati nei campi modulo specificati. Ad esempio, il valore nell'argomento name
viene popolato nell'elemento modulo fullName
e il valore per l'argomento accountNumber
nell'elemento modulo 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);
Utilizzo dell’API con la funzione di callback using-the-api-callback
È inoltre possibile richiamare il servizio del modello dati modulo utilizzando l'API guidelib.dataIntegrationUtils.executeOperation
con una funzione di callback. La sintassi API è la seguente:
guidelib.dataIntegrationUtils.executeOperation(operationInfo, inputs, outputs, callbackFunction)
La funzione di richiamata può avere success
e failure
funzioni di richiamata.
Script di esempio con funzioni di callback riuscite e non riuscite callback-function-success-failure
Lo script di esempio seguente utilizza l'API guidelib.dataIntegrationUtils.executeOperation
per richiamare l'operazione del servizio GETOrder
configurata nel modello dati del modulo employeeOrder
.
L'operazione GETOrder
accetta il valore nel campo modulo Order ID
come input per l'argomento orderId
e restituisce il valore della quantità dell'ordine nella funzione di callback success
. Se la funzione di callback success
non restituisce la quantità dell'ordine, la funzione di callback failure
visualizza il messaggio Error occured
.
success
, i valori di output non vengono inseriti nei campi modulo specificati.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);