Introduzione
Questo articolo contiene informazioni sugli scenari di limitazione e sulle limitazioni per i flussi di lavoro che usano il tipo di piattaforma flusso di lavoro di SharePoint 2013 in SharePoint e Project in Microsoft 365.
Nota: I flussi di lavoro di SharePoint 2010 sono stati ritirati dal 1 ° agosto 2020 per i nuovi tenant e rimossi dai tenant esistenti il 1 ° novembre 2020. Se si usano flussi di lavoro di SharePoint 2010, è consigliabile eseguire la migrazione a Power Automate o ad altre soluzioni supportate. Per altre info, Vedi pensionamento del flusso di lavoro di SharePoint 2010.
Altre informazioni
Per altre informazioni sulla limitazione in SharePoint, vedere Procedura: evitare di essere strozzati o bloccati in SharePoint.
Per altre informazioni sui limiti dei messaggi di posta elettronica per i flussi di lavoro di SharePoint, vedereL'attività del flusso di lavoro di SharePoint 2013 può essere regolata da due livelli di limitazione:
-
Limitazione di SharePoint
-
Limitazione del servizio flusso di lavoro
Limitazione del servizio flusso di lavoro
La limitazione viene eseguita per consentire l'utilizzo corretto delle risorse. Protegge inoltre l'ambiente da flussi di lavoro e flussi di lavoro nocivi che non seguono le procedure consigliate. La limitazione del servizio flusso di lavoro non è controllata da SharePoint. Il servizio flusso di lavoro e SharePoint sono due servizi indipendenti e ogni servizio strozza le richieste nell'interesse dell'integrità generale dei servizi. Nel servizio flusso di lavoro la limitazione viene eseguita a livello di ambito del flusso di lavoro che si allinea con i siti di SharePoint. La limitazione non viene rappresentata globalmente. Ogni servizio back-end del flusso di lavoro tiene invece traccia dell'utilizzo di un ambito del flusso di lavoro in modo indipendente. In un ambito del flusso di lavoro possono essere presenti uno o più flussi di lavoro. La limitazione del flusso di lavoro è dinamica e verrà rivalutata periodicamente dall'ambito del flusso di lavoro e dal back-end del servizio flusso di lavoro.
Il servizio flusso di lavoro limita anche il numero di richieste in uscita che possono essere generate da una singola istanza del flusso di lavoro. In un periodo di 24 ore, una singola istanza del flusso di lavoro può generare fino a 5.000 richieste in uscita. Dopo la generazione delle richieste in uscita di 5.000 in un periodo di 24 ore, il flusso di lavoro viene sospeso dal servizio flusso di lavoro.La pagina stato flusso di lavoro per il flusso di lavoro conterrà informazioni sul flusso di lavoro sospeso. In questo scenario, il fumetto delle informazioni per lo stato interno visualizzerà il messaggio seguente:
-
L'istanza ha superato la quota di richiesta HTTP in uscita per un periodo di tempo 1.00:00:00. Il limite di richiesta di 5000 è stato raggiunto in <ora>.
Nota: Il segnaposto <ora> rappresenta il tempo impiegato per raggiungere il limite di richieste di 5.000 per il flusso di lavoro.
È possibile riprendere l'istanza del flusso di lavoro sospesa facendo clic su Riprendi per il flusso di lavoro oppure usando il modello di oggetti client flusso di lavoro di SharePoint dopo che sono passate 24 ore. Questa operazione deve essere eseguita prima che il flusso di lavoro venga terminato.
Se il flusso di lavoro supera il limite di utilizzo della CPU, la pagina stato flusso di lavoro per il flusso di lavoro conterrà informazioni sul flusso di lavoro sospeso. In questo scenario, il fumetto delle informazioni per lo stato interno visualizzerà il messaggio seguente:-
L'istanza del flusso di lavoro ha superato il limite di utilizzo della CPU della valvola a farfalla di 00:00:01.2000000 e non può essere scaricata perché non è persistente.
Le istanze del flusso di lavoro sospese verranno terminate dopo 10 giorni. Il fumetto delle informazioni per lo stato interno visualizzerà il messaggio seguente se il flusso di lavoro viene terminato:
-
System. Activities. Statements. WorkflowTerminatedException: l'istanza è stata spostata dallo stato Suspended allo stato terminato perché è scaduta.
Un flusso di lavoro terminato verrà infine ripulito. Dopo la pulizia del flusso di lavoro terminato, verrà visualizzato il messaggio seguente:
-
C'è stato un problema.
Il flusso di lavoro non è disponibile. Le istanze completate vengono ripulite automaticamente
Ambiti del flusso di lavoro
Un ambito del flusso di lavoro viene definito come sito in una raccolta siti. Ad esempio, l'URL seguente è per una raccolta siti radice e viene considerato un ambito del flusso di lavoro:
https://contoso.sharepoint.com/sites/rootsiteDi seguito è riportato un esempio di un altro ambito del flusso di lavoro nella stessa raccolta siti. Tuttavia, questo ambito del flusso di lavoro si trova in un sito secondario.
https://contoso.sharepoint.com/sites/rootsite/subsite
Che cos'è una richiesta?
I flussi di lavoro di SharePoint 2013 si basano sul modello di componenti aggiuntivi per SharePoint e usano le API REST per interagire con i dati di SharePoint. Per altre informazioni, vedere il servizio REST di SharePoint 2013.
Una richiesta è una chiamata di rete dal servizio flusso di lavoro a un endpoint dell'API REST di SharePoint o Project. Non c'è differenza tra il tipo di richiesta o la risposta per una determinata richiesta. Un'azione e le relative attività di composizione non contribuiscono al conteggio delle richieste, a meno che la richiesta non implichi un'API REST di SharePoint 2013. Ad esempio, l'azione log to History List può generare cinque o più richieste per un'operazione sana. Inoltre, il tentativo di logica è incorporato nei flussi di lavoro in caso di problemi. Questo può generare richieste aggiuntive.
Molte azioni producono richieste e le richieste possono essere ridotte a icona usando le procedure consigliate. Ad esempio, puoi usare una singola azione di elemento di elenco di aggiornamento anziché un campo set nell'azione elemento corrente per ridurre il numero di richieste effettuate da un ambito del flusso di lavoro e ottenere comunque gli stessi risultati.Suggerimenti per la progettazione del flusso di lavoro
Esistono molti modi per generare numerose richieste in un flusso di lavoro che può causare la limitazione. Di seguito sono riportati alcuni esempi generali:
-
Un singolo flusso di lavoro con ciclo aggressivo o più flussi di lavoro in modo aggressivo
-
Un flusso di lavoro associato a un elenco o a una raccolta mentre il contenuto viene migrato in SharePoint.
-
Versioni precedenti dei flussi di lavoro problematiche corrette e che continuano a eseguire istanze del flusso di lavoro che hanno la configurazione problematica fino a quando il flusso di lavoro viene terminato.
La limitazione dell'ambito del flusso di lavoro applicata dal servizio flusso di lavoro deve consentire scenari tipici per i casi di utilizzo del flusso di lavoro. Tuttavia, poiché la logica di un flusso di lavoro diventa più sofisticata, il flusso di lavoro può superare i limiti di sicurezza.
Gli scenari di flusso di lavoro specifici seguenti comporteranno anche la limitazione.Scenario 1: flusso di lavoro che passa in primo piano per il monitoraggio delle modifiche
Ad esempio, puoi controllare un elemento per gli aggiornamenti invece di aspettare che un elemento venga aggiornato.
Scenario 2: usare un flusso di lavoro per eseguire algoritmi complessi
I flussi di lavoro sono destinati alla gestione dei processi umani basati su documenti e non alla distribuzione di attività computazionali significative.
Scenario 3: avere più flussi di lavoro in corso che usano l'attività attendi evento in elemento di elenco
In questo scenario ogni flusso di lavoro ascolterà le modifiche nell'elenco di destinazione. Se sono in esecuzione molti flussi di lavoro, ogni flusso di vita dovrà rispondere all'evento generato ed eventualmente richiamare SharePoint per eseguire alcune operazioni.
Nota: Questo problema può verificarsi anche se sono presenti molte modifiche a un elenco per cui un flusso di lavoro è configurato per l'avvio quando viene creato o modificato un elemento.Alternative allo scenario 1: flusso di lavoro che passa in primo piano per il monitoraggio delle modifiche
Opzione 1: usare i componenti aggiuntivi di SharePoint e i ricevitori di eventi esterni
La progettazione del flusso di lavoro deve essere rivalutata e deve essere usato un approccio di progettazione diverso. I componenti aggiuntivi di SharePoint o i ricevitori di eventi esterni sono più appropriati per questa attività.
Opzione 2: aggiungere un'azione di pausa
Puoi migliorare in qualche modo la progettazione del flusso di lavoro aggiungendo un ritardo (ovvero un'azione di pausa). Questo dovrebbe ridurre il traffico generato. Tuttavia, non modifica le carenze complessive di questo modello.
Opzione 3: usare l'attività "Attendi modifica campo nell'elemento corrente"
Invece di cercare le modifiche usando un ciclo, è preferibile usare i ricevitori di eventi predefiniti. Un flusso di lavoro può essere avviato quando viene creato o modificato un elemento. Un approccio migliore è l'esecuzione di più istanze di flusso di lavoro invece di un flusso di lavoro in un ciclo aggressivo. Le condizioni del flusso di lavoro possono essere configurate per l'esecuzione di operazioni solo quando necessario.
Una sola istanza del flusso di lavoro di un flusso di lavoro può essere eseguita in un momento specifico.
Un altro approccio consiste nell'usare il campo Wait for per modificare l'attività dell'elemento corrente. La progettazione del flusso di lavoro può usare una colonna Choice con più valori per guidare l'esecuzione del flusso di lavoro. Il flusso di lavoro viene ripreso solo quando un'opzione appropriata viene selezionata da un utente finale. In questo modo, è possibile evitare l'avvio di cicli aggressivi e istanze del flusso di lavoro non necessarie. Il flusso di lavoro viene eseguito quando l'elemento è pronto invece di eseguire o avviare più istanze. Puoi monitorare più valori da più campi usando più blocchi paralleli. Il flusso di lavoro può attendere uno stato specifico e quindi continuare a eseguire un determinato percorso, come illustrato nell'esempio seguente:-
Crea una variabile di tipo Boolean .
-
Impostare il valore su No.
-
Inserire un blocco parallelo, fare clic con il pulsante destro del mouse sul blocco e quindi scegliere proprietà avanzate.
-
Nell'elenco a discesa selezionare la variabile creata al passaggio 1.
-
Inserire due blocchi paralleli nel blocco parallelo inserito con la proprietà CompletionCondition .
-
Nel primo dei due blocchi paralleli inseriti nel passaggio 5 Inserire l' opzione Attendi modifica campo nell'attività elemento corrente . Modificare l'attività in modo da monitorare una colonna Choice. Non monitorare la scelta predefinita.
-
Impostare la variabile del flusso di lavoro usata per arrestare gli altri blocchi paralleli su Sì.
-
Ripetere i passaggi 1-7 per gli altri valori di colonna Choice.
-
Spostare le altre parti del flusso di lavoro originale in una posizione dopo i blocchi paralleli.
Quando uno dei blocchi paralleli annidati include tutte le attività eseguite, il blocco parallelo padre terminerà le altre attività negli altri blocchi paralleli. In questo modo il flusso di lavoro continuerà. I blocchi paralleli annidati vengono monitorati dal blocco parallelo padre usando una variabile.
Opzione 4: avviare un flusso di lavoro di SharePoint 2010 dal flusso di lavoro di SharePoint 2013
È possibile usare il tipo di piattaforma flusso di lavoro di SharePoint 2010 per eseguire alcune delle operazioni di esecuzione del tipo di piattaforma flusso di dati SharePoint 2013. In questo articolo è possibile ridurre il numero di richieste.
In particolare, è possibile avviare un flusso di lavoro di SharePoint 2010 per monitorare le modifiche dei campi usando l'opzione Attendi modifica campo nell'attività elemento corrente o per eseguire molte altre operazioni di base.Alternativa allo scenario 2: usare un flusso di lavoro per eseguire algoritmi complessi
Se la soluzione richiede attività computazionali significative, è consigliabile sviluppare un componente aggiuntivo per SharePoint. Per altre informazioni, vedere Componenti aggiuntivi di SharePoint.
Serve ancora aiuto? Accedere alla