Du er her:
Kalle opp Apex fra Omniscripts med den eksterne handlingen
Kall opp Apex fra Omniscript med Eksternt-elementet, og bruk Omniscript-JSON-koden som inndata.
Før du begynner oppretter du en Apex i Salesforce for å kalle opp fra Omniscript. Inkluder ID-en i SOQL-spørringen. Dette feltet er nødvendig fordi Apex beholder spørringene og serialiserer data i henhold til hva som faktisk utføres.
-
Legg til et fjernelement før et trinn, i et trinn eller etter et trinn for å laste inn data eller sende data i Omniscript.
Omniskriptets data-JSON-fil sendes som inndata.
- I feltet Fjernklasse skriver du inn navnet på Apex-klassen som handlingen kaller opp.
-
I feltet Fjernmetode skriver du inn en metode i klassen som handlingen kaller opp. For eksempel –
validateAddress. - Aktiver om nødvendig den underordnede integrasjonsprosedyren som kaller opp handlinger som kjører lenge, for å bruke Apex.
- I Data Mapper-grensesnittet Pre-ransform Omnistudio and Data Mapper-grensesnittet Post-Transform Omnistudio: Velg eventuelt et Data Mapper-transformasjonsgrensesnitt som skal kjøres før eller etter den eksterne handlingen.
-
Endre tiden før handlingen tidsavbrytes med egenskapen Ekstern tidsavbrudd. I elementet klikker du på Rediger egenskaper som JSON, og i
remoteTimeout-egenskapen angir du et klokkeslett i millisekunder.Standardtidsavbrudd er30,000, eller 30 sekunder. Maksimum er120,000, eller 120 sekunder. - Konfigurer flere egenskaper i den eksterne handlingen.
-
Velg virkemåten for handlingen ved å velge en oppkallsmodus.
-
Standard: Blokkerer brukergrensesnittet med en innlastingsspinner.
-
Ikke-blokkerende – Kjører asynkront, og svaret brukes på brukergrensesnittet. Pre- og Post Omnistudio Data Mapper-transformasjoner og store vedlegg støttes ikke. Når Kallmodus er satt til ikke-blokkering, vil ikke elementer som bruker standardverdier, motta svaret fordi elementet lastes inn før svaret returneres. For å tilordne svaret til et element må du angi Svar-JSON-node til VlocityNoRootNode og Svar-JSON-bane til navnet på elementet.
-
Fire og Glem – Kjører asynkront uten tilbakekall til brukergrensesnittet. Pre- og Postdatatilordning-transformasjoner og store vedlegg støttes ikke. Et svar vil fremdeles vises i feilsøkingskonsollen, men vil ikke bli brukt på Data JSON.
-
-
Når Kallmodus er satt til ikke-blokkering, vil ikke elementer som bruker standardverdier, motta svaret fordi elementet lastes inn før svaret returneres. Du må konfigurere disse egenskapene for å tilordne svaret til et element:
-
Svar-JSON-node: VlocityNoRootNode
-
Svar-JSON-bane: Navnet på Omnikanal-elementet som mottar verdien.
-
I Feilsøk Omniscript kaller elementet CallOut1 Remote Action opp et eksternt system for å kontrollere om aktivumet fremdeles er under garanti. Dette eksemplet refererer til Feilsøk Omniscript og Apex-klassene OmniCallout og DataObjectService.
Den implementerer klassen Ekstern OmniCallout og metoden for ekstern checkWarrantyStatus. I og med at dette er et eksempel på et Omnikanal-skript, inneholder metoden et hardkodet svar:

Den eksterne handlingen callOut2 kaller opp returnItemOrder-metoden, som i sin tur kaller opp DataObjectService-klassen som kaller opp en Heroku-forekomst for å returnere et bestillingsnummer:

Følgende klassestruktur kan brukes til å kalle opp et eksternt system:
global with sharing class CustomClassName implements NS.VlocityOpenInterface
{
global CustomClassName() {}
global Boolean invokeMethod(String methodName, Map<String,Object> inputMap, Map<String,Object> outMap, Map<String,Object> options) {
Boolean result = true;
try{
if(methodName.equals('customMethodName')){
// your implementation, use outMap to send response back to OmniScript
}
}
else if(methodName.equals('customMethodName2')){
// your implementation, use outMap to send response back to OmniScript
}
} catch(Exception e){
result = false;
}
return result;
}
}
