Introduktion
Den här artikeln innehåller information om begränsningsscenarier och begränsningar för arbetsflöden som använder sharepoint 2013-arbetsflödesplattformstypen i SharePoint och Project i Microsoft 365.
Obs
SharePoint 2010-arbetsflöden har dragits tillbaka sedan den 1 augusti 2020 för nya klientorganisationer och togs bort från befintliga klientorganisationer den 1 november 2020. Om du använder SharePoint 2010-arbetsflöden rekommenderar vi att du migrerar till Power Automate eller andra lösningar som stöds. Mer information finns i tillbakadragande av SharePoint 2010-arbetsflöden.
Mer information
Mer information om begränsning i SharePoint finns i Så här gör du: Undvik att bli begränsad eller blockerad i SharePoint.
Om du vill veta mer om e-postbegränsningar för SharePoint-arbetsflöden går du till felet "Gränsen för daglig e-post har överskridits och arbetsflödet har inaktiverats" i SharePoint.
SharePoint 2013-arbetsflödesaktivitet kan regleras av två nivåer av begränsning:
- SharePoint-begränsning
- Arbetsflödestjänstbegränsning
Arbetsflödestjänstbegränsning
Begränsning utförs för att möjliggöra rättvis resursanvändning. Dessutom skyddas miljön från skadliga arbetsflöden och arbetsflöden som inte följer metodtips. Arbetsflödestjänstbegränsning styrs inte av SharePoint. Arbetsflödestjänsten och SharePoint är två oberoende tjänster, och varje tjänst begränsar begäranden för den övergripande tjänstens hälsa. I arbetsflödestjänsten utförs begränsning på arbetsflödesomfattningsnivån som överensstämmer med SharePoint-webbplatser. Begränsningen redovisas inte globalt. I stället spårar varje arbetsflödes backend-tjänst ett arbetsflödes omfattnings användning oberoende av varandra. Det kan finnas ett eller flera arbetsflöden i en arbetsflödesomfattning. Arbetsflödesbegränsningen är dynamisk och kommer regelbundet att omvärderas av arbetsflödets omfattning och av arbetsflödestjänstens back end.
Arbetsflödestjänsten begränsar också antalet utgående förfrågningar som en enda arbetsflödesinstans kan generera. Under en 24-timmarsperiod kan en enda arbetsflödesinstans generera upp till 5 000 utgående begäranden. När 5 000 utgående begäranden har genererats under en 24-timmarsperiod pausas arbetsflödet av arbetsflödestjänsten.
Sidan Arbetsflödesstatus för arbetsflödet innehåller information om det pausade arbetsflödet. I det här scenariot visas följande meddelande i informationsbubblan för intern status :
Instansen har överskridit kvoten för utgående http-begäran under en tidsperiod på 1.00:00:00. Gränsen på 5 000 begäran nåddes i <tid>.
OBSERVERA: Tidsplatshållaren <> representerar den tid det tog att nå gränsen på 5 000 begäranden för arbetsflödet.
Du kan återuppta instansen av pausade arbetsflöden genom att klicka på Återuppta för arbetsflödet eller genom att använda SharePoint-arbetsflödets klientobjektmodell efter att 24 timmar har passerat. Detta måste inträffa innan arbetsflödet avslutas.
Om arbetsflödet överskrider cpu-användningsgränsen innehåller sidan Arbetsflödesstatus för arbetsflödet information om det blockerade arbetsflödet. I det här scenariot visas följande meddelande i informationsbubblan för intern status :
- Arbetsflödets instans överskred cpu-användningsgränsen för begränsning på 00:00:01.2000000 och kunde inte inaktiveras eftersom den inte var persisterbar.
Instanser av pausade arbetsflöden avslutas efter 10 dagar. Informationsbubblan för intern status visar följande meddelande om arbetsflödet avslutas:
- System.Activities.Statements.WorkflowTerminatedException: Instansen har flyttats från statusen Pausad till läget Avslutat eftersom den har upphört att gälla.
Ett avslutat arbetsflöde rensas så småningom. När ett avslutat arbetsflöde har rensats visas följande meddelande:
-
Något gick fel.
Vi kan inte hitta det arbetsflödet. Slutförda instanser rensas automatiskt
Arbetsflödesomfattningar
Ett arbetsflödesomfång definieras som en webbplats i en webbplatssamling. Följande URL är till exempel för en rotwebbplatssamling och anses vara en arbetsflödesomfattning:
https://contoso.sharepoint.com/sites/rootsite
Ett exempel på en annan arbetsflödesomfattning som finns i samma webbplatssamling är följande. Arbetsflödets omfattning finns dock på en underwebbplats.
https://contoso.sharepoint.com/sites/rootsite/subsite
Vad är en begäran?
SharePoint 2013-arbetsflöden bygger på tilläggsmodellen för SharePoint och de använder REST-API:er för att interagera med SharePoint-data. Mer information finns i Bekanta dig med REST-tjänsten i SharePoint 2013.
En begäran är ett nätverkssamtal från arbetsflödestjänsten till en SharePoint- eller Project REST API-slutpunkt. Det är ingen skillnad mellan typen av begäran eller svaret för en viss begäran. En åtgärd och dess skrivaktiviteter bidrar inte till antalet begäranden om inte begäran omfattar ett REST-API för SharePoint 2013. Åtgärden Logga till historiklista kan till exempel generera fem eller fler begäranden om en felfri åtgärd. Dessutom är logiken för återförsök inbyggd i arbetsflöden om något skulle gå fel. Detta kan generera ytterligare begäranden.
Många åtgärder ger begäranden och begäranden kan minimeras med metodtips. Du kan till exempel använda åtgärden Uppdatera listobjekt i stället för flera ange fält i aktuellt objekt för att minska antalet begäranden som görs av arbetsflödets omfattning och ändå uppnå samma resultat.
Rekommendationer för arbetsflödesdesign
Det finns många sätt att generera många begäranden i ett arbetsflöde som kan leda till begränsning. Några allmänna exempel är följande:
- Ett enda aggressivt loopande arbetsflöde eller flera aggressivt loopande arbetsflöden
- Ett arbetsflöde som är kopplat till en lista eller ett bibliotek medan innehåll migreras till SharePoint.
- Tidigare problematiska arbetsflödesversioner som har korrigerats och som fortsätter att köra arbetsflödesinstanser som har den problematiska konfigurationen tills arbetsflödet avslutas.
Arbetsflödets omfattningsbegränsning som tillämpas av arbetsflödestjänsten bör tillåta vanliga fallscenarier för arbetsflödesanvändning. Men i takt med att logiken i ett arbetsflöde blir mer avancerad kan arbetsflödet överskrida säkra gränser.
Följande specifika arbetsflödesscenarier resulterar också i begränsning.
Scenario 1: Ett arbetsflöde som loopar för att övervaka ändringar
Du kan till exempel söka efter uppdateringar i ett objekt i stället för att vänta på att ett objekt uppdateras.
Scenario 2: Använda ett arbetsflöde för att köra komplexa algoritmer
Arbetsflöden är avsedda att hantera dokumentdrivna, mänskliga processer och inte att skicka betydande beräkningsuppgifter.
Scenario 3: Ha flera arbetsflöden igång som använder aktiviteten Vänta på händelse i listobjekt
I det här scenariot lyssnar varje arbetsflöde efter ändringar i mållistan. Om många arbetsflöden körs måste varje arbetsflöde reagera på den upphöjda händelsen och eventuellt ringa tillbaka till SharePoint för att utföra en del arbete.
OBSERVERA: Detta kan också inträffa om det finns många ändringar i en lista som ett arbetsflöde är konfigurerat för att startas för när ett objekt skapas eller ändras.
Alternativ till scenario 1: Ett arbetsflöde som loopar för att övervaka ändringar
Alternativ 1: Använda SharePoint-tillägg och externa händelsemottagare
Arbetsflödets design ska omvärderas och en annan designmetod bör användas. SharePoint-tillägg eller externa händelsemottagare är lämpligare för den här uppgiften.
Alternativ 2: Lägga till en pausåtgärd
Du kan förbättra arbetsflödets design något genom att lägga till en fördröjning (dvs. en pausåtgärd). Detta bör minska trafiken som genereras. Men det ändrar inte de övergripande bristerna i den här designen.
Alternativ 3: Använd aktiviteten "Vänta på fältändring i aktuellt objekt"
I stället för att söka efter ändringar genom att använda en loop är det bättre att använda standardhändelsemottagare. Ett arbetsflöde kan startas när ett objekt skapas eller ändras. Att köra flera arbetsflödesinstanser i stället för att ha ett arbetsflöde i en aggressiv loop är en bättre metod. Villkoren i arbetsflödet kan konfigureras så att de endast fungerar när det behövs.
Endast en arbetsflödesinstans av ett arbetsflöde kan köras vid en viss tidpunkt.
En annan metod är att använda aktiviteten Vänta till fält för att ändra i aktuellt objekt .
Arbetsflödets design kan använda en urvalskolumn som har flera värden för att driva arbetsflödets körning. Endast när ett lämpligt alternativ väljs av en slutanvändare återupptas arbetsflödet. Det kan förhindra att aggressiva loopar och onödiga arbetsflödeinstanser startas. Arbetsflödet körs när objektet är klart i stället för att köra eller starta flera instanser.
Du kan övervaka flera värden från flera fält med hjälp av flera parallella block. Arbetsflödet kan vänta på ett visst tillstånd och sedan fortsätta att köra en viss sökväg, som i följande exempel:
Skapa en boolesk typvariabel.
Ställ in värdet på Nej.
Infoga ett parallellt block, högerklicka på blocket och klicka sedan på Avancerade egenskaper.
I listrutan väljer du variabeln som du skapade i steg 1.
Infoga två parallella block i det infogade parallella blocket som har egenskapen CompletionCondition .
I det första av de två parallella blocken som du infogade i steg 5 infogar du Vänta på fältändring i aktuell objektaktivitet . Ändra aktiviteten så att den övervakar en urvalskolumn. Övervaka inte standardalternativet.
Ange arbetsflödesvariabeln som används för att stoppa de andra parallella blocken till Ja.
Upprepa steg 1–7 för de andra kolumnvärdena för val.
Flytta de andra delarna av det ursprungliga arbetsflödet till en plats efter de parallella blocken.
När någon av kapslade parallella block får alla aktiviteter utförda avslutar det överordnade parallella blocket de andra aktiviteterna i de andra parallella blocken. Då kan arbetsflödet fortsätta. De kapslade parallella blocken övervakas av det överordnade parallella blocket med hjälp av en variabel.
Alternativ 4: Starta ett SharePoint 2010-arbetsflöde från SharePoint 2013-arbetsflödet
Du kan använda typ av SharePoint 2010-arbetsflödesplattform för att utföra en del av det arbete som SharePoint 2013 Arbetsflödesplattformen typ utför. Det kan minska antalet begäranden.
Mer specifikt kan ett SharePoint 2010-arbetsflöde startas för att övervaka fältändringar med hjälp av aktiviteten Vänta på fältändring i aktuellt objekt eller för att utföra många andra grundläggande åtgärder.
Alternativ till scenario 2: Använda ett arbetsflöde för att köra komplexa algoritmer
Om lösningen kräver betydande beräkningsuppgifter bör du överväga att utveckla ett tillägg för SharePoint. Mer information finns i SharePoint-tillägg.
Vill du ha mer hjälp? Gå till Microsoft Community.