Du är här:
Anropa Apex från Omniscripts med fjärråtgärden
Anropa Apex klasser från Omniscript med elementet Fjärr och använd Omniscripts JSON som indata.
Innan du börjar, skapa en Apex klass i Salesforce för att anropa från Omniscript. Inkludera ID i SOQL-frågan. Detta fält är obligatoriskt eftersom klassen Apex behåller sökfrågorna och serialiserar data enligt vad som faktiskt utförs.
-
Lägg till ett fjärrelement innan ett steg, i ett steg eller efter ett steg för att läsa in data eller skicka data i Omniscript.
Omniscriptets data-JSON skickas som indata.
- I fältet Fjärrklass, ange namnet på den Apex klass som åtgärden anropar.
-
I fältet Fjärrmetod, ange en metod av klassen som åtgärden anropar. Till exempel —
validateAddress. - Aktivera vid behov den underordnade integreringsprocess som anropar åtgärder som körts länge för att använda Apex fortsättningar.
- I Omnistudios gränssnitt för datamappning före och efter transformation—välj om du vill ett gränssnitt för datamappning som ska köras före eller efter fjärråtgärden.
-
Ändra tiden innan åtgärden löper ut med egenskapen Fjärrtimeout. I elementet, klicka på Redigera egenskaper som JSON och ange en tid i millisekunder i egenskapen
remoteTimeout.Standardtimeouten är30,000, eller 30 sekunder. Maxantalet är120,000, eller 120 sekunder. - Konfigurera ytterligare egenskaper i fjärråtgärden.
-
Välj åtgärdens svarsbeteende genom att välja ett Åberopningsläge.
-
Standard — Blockerar användargränssnittet med en inläsningsspinner.
-
Icke-blockerande — Körs asynkront och svaret tillämpas på användargränssnittet. Transformationer av Omnistudio Data Mapper före och efter och stora bilagor stöds inte. När Åberopningsläge är inställt till icke-blockerande kommer element som använder standardvärden inte att få svaret eftersom elementet läses in innan svaret returneras. För att mappa svaret till ett element måste du ställa in Svars-JSON-nod till VlocityNoRootNode och Svars-JSON-sökväg till namnet på elementet.
-
Eld och Glöm — Körs asynkront utan callback till användargränssnittet. Transformationer av Datamappning innan och efter inlägg och stora bilagor stöds inte. Ett svar kommer fortfarande att visas i felsökningskonsolen men kommer inte att tillämpas på Data JSON.
-
-
När Åberopningsläge är inställt till icke-blockerande kommer element som använder standardvärden inte att få svaret eftersom elementet läses in innan svaret returneras. Du måste konfigurera dessa egenskaper för att mappa svaret till ett element:
-
Svars-JSON-nod: VlocityNoRootNode
-
Svars-JSON-sökväg: Namnet på Omniscript-elementet som tar emot värdet.
-
I Felsökningsomniskriptet anropar elementet callOut1 Remote Action ett externt system för att kontrollera om tillgången fortfarande omfattas av garantin. Detta exempel refererar till Omniscript för felsökning och klasserna OmniCallout och DataObjectService Apex.
Den implementerar klassen Remote OmniCallout och metoden remote checkWarrantyStatus. Eftersom detta är ett exempel på Omniscript innehåller metoden ett hårdkodat svar:

Fjärråtgärden callOut2 anropar metoden returnItemOrder, som i sin tur anropar den DataObjectService som anropar en Heroku-instans för att returnera ett ordernummer:

Följande klassstruktur kan användas för att anropa ett externt 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;
}
}
