Du är här:
Inställningar för långvariga integreringsprocesser
Du kan använda kedjebara och köbara kedjeinställningar för att undvika att Salesforces styrande gränser överskrids när du åberopar långa integreringsprocesser. Du kan även kedja på ett eller flera specifika långa steg.
Som standard körs alla åtgärder i en integreringsprocess i en enda transaktion. Om transaktionen överskrider en styrande Salesforce-gräns avslutar Salesforce transaktionen och integreringsprocessen misslyckas. Det går inte att ange en gräns som överskrider det högsta som Salesforce har fastställt. Mer information om styrande gränser finns i relevant Salesforce-ämne.
För att minska detta problem, använd dessa inställningar:
-
Aktivera kedja från åtgärden Omniscript eller överordnad integreringsprocess som anropar den långvariga integreringsprocessen.
-
Ange om du vill gränser som utlöser kedja i själva den långa integreringsprocessen med hjälp av de inställningar som beskrivs här. Dessa gränser definierar de tröskelvärden vid vilka integreringsprocesser startar kedjan.
Om en integreringsprocess med kedjeaktivering överskrider en styrande gräns sparas stegresultat och steget fortsätter i en separat transaktion. Eftersom steget körs i sin egen transaktion kämpar det inte om resurser med andra steg i integreringsprocessen, så det är mindre troligt att det uppnår styrande gränser.
Att dela upp utförandet av integreringsprocessen i delar och spara interimsresultat kan minska prestandan. För att maximera prestandan kedjas steg endast när de uppnår styrande gränser. Om inga gränser överskrids körs alla steg i integreringsprocessen i en enda transaktion.
Du kan kringgå Salesforces styrande begränsningar genom att låta ett kedjesteg starta ett köjobb som körs som ett asynkront Apex jobb. Dessa jobb har högre storleksgränser för CPU, SOQL och Heap än vanliga transaktioner. Att starta ett köjobb hjälper till att säkerställa att styrande gränser inte överskrids, men det kan minska prestandan.
För Developer Edition och provorganisationer är det maximala stackdjupet för kedjade jobb 5, vilket innebär att du kan kedja jobb fyra gånger. Denna gräns på 5 inkluderar det inledande överordnade köjobbet. Se Köbar Apex i Salesforce-hjälpen.
För att utföra flera transaktioner måste du anropa en kedje- eller kökedjad integreringsprocess från ett sammanhang som kan agera som en klient. Du kan till exempel åberopa en kedjebaserad integreringsprocess från en REST API. Det går inte att anropa en kedje- eller kökedjad integreringsprocess från en Apex klass.
Kedje- och köbara kedjeinställningar
För att konfigurera gränser under Salesforces standarder, redigera inställningarna för kedjekonfiguration och köbara kedjegränser i sektionen Procedurkonfiguration i integreringsprocessen. För att inaktivera kontroll av en gräns, lämna den tom. Om du inaktiverar kontroll av en gräns och ett steg överskrider Salesforce-gränsen misslyckas integreringsprocessen.
Kedjebaserade inställningar är följande:
-
Gräns för kedjefrågor: Högsta antal SOQL-frågor som kan utfärdas. Standardmaxvärdet är 100.
-
Kedjebaserad DML-uttrycksgräns: Högsta antal DML-uttryck (Data Manipulation Language) som kan utfärdas. Standardmaxvärdet är 150.
-
Kedjebaserad CPU-gräns: Maximal CPU-tid på Salesforce-servrarna. Standardmaxvärdet är 10 000 millisekunder.
-
Storleksgräns för kedjeheap: Minne används för att lagra data under transaktionsbearbetning. Standardmaxvärdet är 6 MB.
-
Kedjebaserad DML-radgräns: Högsta antal poster som kan bearbetas som ett resultat av DML-uttryck, Approval.process eller database.emptyRecycleBin. Standardmaxvärdet är 10 000.
-
Gräns för kedjerader: Högsta antal rader som en SOQL-fråga tillåts hämta. Standardmaxvärdet är 50 000.
-
Kedjebaserad SOSL-frågegräns: Högsta antal SOSL-frågor som kan utfärdas. Standardmaxvärdet är 20.
-
Faktisk kedjetid: Antalet sekunder som en integreringsprocess kan köras innan kedja inträffar för att undvika att uppnå Salesforces gräns för samtidiga begäranden. Ingen standard.
Gräns för kedjefrågor, Gräns för kedjefrågerader och Gräns för kedje-SOSL-frågor fungerar inom ett hanterat paket men inte utanför det. Till exempel, om en fjärråtgärd kör sökfrågor utanför paketet räknas inte dessa sökfrågor mot gränserna.
Köbara kedjeinställningar är:
-
Storleksgräns för köbar kedjeheap: Minne används för att lagra data under transaktionsbearbetning. Standardmaxvärdet är 12 MB.
-
Köbar kedjebar CPU-gräns: Maximal CPU-tid på Salesforce-servrarna. Standardmaxvärdet är 60 000 millisekunder.
-
Gräns för köbara kedjefrågor: Högsta antal SOQL-frågor som kan utfärdas. Standardmaxvärdet är 200.
Köbara Chainable-inställningar åsidosätter sina Chainable-motsvarigheter om båda har angetts.
Hur man anropar en integreringsprocess som är kedjad eller köbar
För att aktivera kedja för en integreringsprocess som anropas från ett Omniscript, öppna åtgärden Integreringsprocedur som anropar integreringsprocessen och markera kryssrutan Kedjebart. För att låta kedjesteg starta köjobb, markera även kryssrutan Köbar.
Om du anropar en integreringsprocess från en REST API kan du ställa in alternativet chainable eller queueableChainable till true.
En överordnad integreringsprocess kan inaktivera de kedjebara inställningarna för en underordnad integreringsprocess som den anropar.
Inställningen Kedja på steg
För att aktivera kedja för ett visst långvarigt steg i en integreringsprocess, kontrollera dess inställning Kedja vid steg. När integreringsprocessen anropas med kedja aktiverad och en gräns uppnås körs steget i sin egen transaktion.
Kedja på steg krävs inte för att kedja ska inträffa. Om inget steg har tillämpats för Kedja på steg inträffar kedja när integreringsprocessens resursanvändning närmar sig styrande gränser eller en kedjad eller köbar kedjad inställning.
Om din integreringsprocess har åtgärden Inlägg med datamappning i Omnistudio följt av en HTTP-åtgärd, aktivera åtgärden Kedja på steg för Datamappningsinlägg för att undvika detta Salesforce-fel: Du har obundet arbete som väntar. Förpliktelse eller tillbakadragande innan samtal.
Kedje- och köbara kedjeinställningar i förhandsvisning
För att aktivera inställningarna Kedjebart eller Köbart kedjebart när du testar en integreringsprocess med fliken Förhandsvisning, utöka rutan Alternativ och ställ in ett eller flera av dessa alternativ till true:
-
chainable: För att aktivera inställningarna för kedjehantering för tester. -
queueableChainable: Aktivera inställningarna för Köbart kedjefält för tester. -
useQueueableApexRemoting: För att begränsa tiden som Apex CPU körs genom att starta ett köjobb utan kedja.
Namnen på alla alternativ, till exempel queueableChainable, är skiftlägeskänsliga i alla sammanhang.
Egenskapen Åtgärdsmeddelande i samtalsomniskriptet
För att se förloppet för en kedjad integreringsprocess vid felsökning av OminScript som anropar den, ange egenskapen Åtgärdsmeddelande för de kedjade stegen i integreringsprocessen. Texten du anger i fältet Åtgärdsmeddelande kan visas i felsökningspanelen i Omniscript Designer.
JavaScript-kod för att anropa kedjebara integreringsprocesser
Omniskript och överordnade integreringsprocesser som anropar kedjebaserade integreringsprocesser hanterar transaktionerna automatiskt. Om du anropar en kedjebaserad integreringsprocess från en Lightning-webbkomponent måste du inkludera kod som hanterar de mellanliggande svaren.
För att se hur mellanliggande svar ser ut, se Åberopa en kedjeintegreringsprocess med REST-anrop.
Här är ett sätt att strukturera JavaScript-kod för att hantera dessa svar:
function runChainable(options) {
options.isDebug = vm.isDebug;
remoteActions.testIntegrationProcedure(ipId, inputData, options).then(function(response) {
responseHandler(response);
});
}
function responseHandler(response) {
if (typeof(response) === 'string') {
response = JSON.parse(response);
}
if (response &&
response.vlcIPData &&
response.vlcStatus === 'InProgress') {
runChainable(response);
} else {
// handle IP response
}
}- Åberopa en kedjeintegreringsprocess med REST-anrop
En kedjebaserad integreringsprocess delas upp i flera transaktioner för att undvika att Salesforces styrande gränser överskrids. Att använda en REST API är det enklaste sättet att se de delvisa svar varje transaktion returnerar innan integreringsprocessen slutförs.
