Loading
Kalle opp Apex fra Omniscripts med den eksterne handlingen

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.

  1. 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.
  2. I feltet Fjernklasse skriver du inn navnet på Apex-klassen som handlingen kaller opp.
  3. I feltet Fjernmetode skriver du inn en metode i klassen som handlingen kaller opp. For eksempel – validateAddress.
  4. Aktiver om nødvendig den underordnede integrasjonsprosedyren som kaller opp handlinger som kjører lenge, for å bruke Apex.
  5. 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.
  6. 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 er 30,000, eller 30 sekunder. Maksimum er 120,000, eller 120 sekunder.
  7. Konfigurer flere egenskaper i den eksterne handlingen.
  8. 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.

  9. 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.

Feilsøke Omniscript
Feilsøke Omniscript

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:

bilde

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:

bilde

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;
			      
   }
			
}
 
Laster
Salesforce Help | Article