È possibile sospendere l'istanza del processo di livello superiore e di lunga esecuzione mentre
è in esecuzione e riprenderla di nuovo per completarla.
Prima di iniziare
Il chiamante deve essere un amministratore dell'istanza di processo o di un processo aziendale. Per sospendere un'istanza di processo, quest'ultima deve essere in stato di esecuzione o in errore.
Perché e quando effettuare questa attività
È possibile sospendere un'istanza di processo, ad esempio, in modo
che sia possibile configurare l'accesso a un sistema di back-end utilizzato in seguito nel
processo. Quando i prerequisiti per il processo corrispondono, è possibile ripristinare l'istanza del processo. È possibile anche sospendere un processo per correggere un problema che provoca il fallimento dell'istanza di processo, e quindi ripristinarla nuovamente quando il problema è coretto.
Procedura di questa attività
- Ottenere il processo in esecuzione, CustomerOrder, che si desidera sospendere.
ProcessInstanceData processInstance =
process.getProcessInstance("CustomerOrder");
- Sospendere l'istanza del processo.
PIID piid = processInstance.getID();
process.suspend( piid );
Questa azione sospende l'istanza del processo di livello superiore specificata. L'istanza di processo viene collocata in stato sospeso. I processi secondari con l'attributo di autonomia impostato su child sono sospesi anche se sono in stato di esecuzione, in stato di errore, terminati o in stato compensazione. Vengono sospese anche le attività in linea associate a tale istanza di processo; le attività autonome associate a questa istanza di processo non vengono sospese.
In questo stato, le attività che sono state avviate possono sempre essere terminate, ma non verrà attivata alcun'altra attività; ad esempio, un'attività staff nello stato richiamato può essere completata.
- Riprendere l'istanza di processo.
process.resume( piid );
Questa azione colloca l'istanza del processo e i relativi processi secondari negli stati in cui si trovavano prima di essere sospese.