I flussi di lavoro di AEM Forms JEE forniscono gli strumenti necessari per progettare, creare e gestire i processi aziendali. Un processo del flusso di lavoro è costituito da una serie di passaggi che vengono eseguiti in un ordine specificato. Ogni passaggio esegue un’azione specifica, ad esempio l’assegnazione di un’attività a un utente o l’invio di un messaggio e-mail. Un processo può interagire con risorse, account utente e servizi e può essere attivato utilizzando uno dei seguenti metodi:
Per ulteriori informazioni sulla creazione del processo di flusso di lavoro di AEM Forms JEE, consulta Guida di Workbench.
Quando un processo viene attivato e durante l'avanzamento, acquisisce i dati relativi ai partecipanti al processo, i dati immessi dai partecipanti nel modulo associato al processo e gli allegati aggiunti al modulo. I dati vengono memorizzati nel database del server AEM Forms JEE e, se configurati, alcuni dati, come gli allegati, vengono memorizzati nella directory Global Document Storage (GDS). La directory GDS può essere configurata in un file system condiviso o in un database.
Quando viene attivato un processo, vengono generati un ID univoco dell'istanza del processo e un ID di chiamata di lunga durata associati all'istanza del processo. Puoi accedere ai dati di un’istanza di processo ed eliminarli in base all’ID di chiamata di lunga durata. È possibile dedurre l'ID di chiamata di lunga durata di un'istanza di processo con il nome utente dell'iniziatore del processo o dei partecipanti al processo che hanno inviato le proprie attività.
Tuttavia, non è possibile identificare l'ID istanza processo per un iniziatore nei seguenti scenari:
tb_job_instance
tabella di database, che non può essere interrogata direttamente.Per identificare gli ID delle istanze di processo per un iniziatore del flusso di lavoro o un partecipante, effettuare le seguenti operazioni:
Eseguire il comando seguente nel database di AEM Forms Server per recuperare l'ID entità per l'iniziatore o il partecipante del flusso di lavoro dal edcprincipalentity
tabella di database.
select id from edcprincipalentity where canonicalname='user_ID'
La query restituisce l'ID entità per il valore specificato user_ID
.
(Per iniziatore flusso di lavoro) Eseguire il comando seguente per recuperare da tutte le attività associate all'ID principale dell'iniziatore tb_task
tabella di database.
select * from tb_task where start_task = 1 and create_user_id= 'initiator_principal_id'
La query restituisce le attività avviate dal valore specificato initiator
_ principal_id
. Le attività sono di due tipi:
process_instance_id
campo. Prendi nota di tutti gli ID istanza processo per le attività inviate e continua con i passaggi.process_instance_id
per queste attività è 0 (zero). In questo caso, prendi nota degli ID attività corrispondenti e vedi Operazioni con le attività orfane.(Per i partecipanti al flusso di lavoro) Eseguire il comando seguente per recuperare gli ID istanza processo associati all'ID entità del partecipante processo per l'iniziatore da tb_assignment
tabella di database.
select distinct a.process_instance_id from tb_assignment a join tb_queue q on a.queue_id = q.id where q.workflow_user_id='participant_principal_id'
La query restituisce gli ID istanza per tutti i processi associati al partecipante, inclusi quelli in cui il partecipante non ha sottomesso alcun task.
Prendi nota di tutti gli ID istanza processo per le attività inviate e continua con i passaggi.
Per le attività orfane o le attività in cui process_instance_id
è 0 (zero), prendi nota degli ID attività corrispondenti e vedi Operazioni con le attività orfane.
Segui le istruzioni in Rimuovi i dati utente dalle istanze del flusso di lavoro in base agli ID delle istanze del processo in modo da poter eliminare i dati utente per gli ID delle istanze di processo identificati.
Un flusso di lavoro può essere progettato in modo che i dati utente vengano acquisiti in una variabile che viene memorizzata come BLOB nel database. In questi casi, è possibile eseguire query sui dati utente solo se sono memorizzati in una delle seguenti variabili di tipo primitivo:
Effettua le seguenti operazioni per determinare se un flusso di lavoro che memorizza i dati in variabili di tipo primitivo contiene dati per l’utente:
Eseguire il comando di database seguente:
select database_table from omd_object_type where name='pt_<app_name>/<workflow_name>'
La query restituisce un nome di tabella in tb_<number>
formato per l'applicazione specificata ( app_name
) e flusso di lavoro ( workflow_name
).
Il valore della proprietà name
può essere complessa se il flusso di lavoro è nidificato all’interno di sottocartelle all’interno dell’applicazione. Assicurati di specificare il percorso completo esatto del flusso di lavoro, che puoi ottenere dal omd_object_type
tabella di database.
Rivedi tb_<number>
schema di tabella. La tabella contiene variabili che memorizzano i dati utente per il flusso di lavoro specificato. Le variabili nella tabella corrispondono alle variabili nel flusso di lavoro.
Identifica e prendi nota della variabile corrispondente alla variabile del flusso di lavoro contenente l’ID utente. Se la variabile identificata è di tipo primitivo, puoi eseguire una query per determinare le istanze del flusso di lavoro associate a un ID utente.
Eseguire il comando seguente del database. In questo comando, il comando user_var
è la variabile di tipo primitivo che contiene l’ID utente.
select process_instance_id from <tb_name> where <user_var>=<user_ID>
La query restituisce tutti gli ID istanza processo associati al valore specificato user_ID
.
Segui le istruzioni in Rimuovi i dati utente dalle istanze del flusso di lavoro in base agli ID delle istanze del processo in modo da poter eliminare i dati utente per gli ID delle istanze di processo identificati.
Dopo aver identificato gli ID delle istanze di processo associati a un utente, effettuare le seguenti operazioni per eliminare i dati utente dalle rispettive istanze di processo.
Eseguire il comando seguente per recuperare l'ID e lo stato di chiamata di lunga durata per un'istanza di processo dal tb_process_instance
tabella.
select long_lived_invocation_id, status from tb_process_instance where id='process_instance_id'
La query restituisce l'ID e lo stato di chiamata di lunga durata per l'oggetto specificato process_instance_id
.
Creare un’istanza del pubblico ProcessManager
client ( com.adobe.idp.workflow.client.ProcessManager
) utilizzando un ServiceClientFactory
con le impostazioni di connessione corrette.
Per ulteriori informazioni, consulta Riferimento API Java™ per Class ProcessManager.
Controlla lo stato dell’istanza del flusso di lavoro. Se lo stato è diverso da 2 (COMPLETE) o 4 (TERMINATED), terminare prima l'istanza chiamando il metodo seguente:
ProcessManager.terminateProcess(<long_lived_invocation_id>)
.
Rimuovi l’istanza del flusso di lavoro chiamando il metodo seguente:
ProcessManager.purgeProcessInstance(<long_lived_invocation_id>)
Il purgeProcessInstance
Il metodo elimina completamente tutti i dati per l'ID di chiamata specificato dal database di AEM Forms Server e da GDS, se configurato.
Le attività orfane sono le attività il cui processo contenitore è stato avviato ma non ancora inviato. In questo caso, il process_instance_id
è 0 (zero). Pertanto, non è possibile tracciare i dati utente archiviati per le attività orfane utilizzando gli ID delle istanze di processo. Tuttavia, è possibile tracciarla utilizzando l'ID attività per un'attività orfana. È possibile identificare gli ID delle attività dal tb_task
tabella per un utente come descritto in Identificare gli ID delle istanze di processo quando è noto l'iniziatore o il partecipante del flusso di lavoro.
Una volta ottenuti gli ID delle attività, eseguire le operazioni seguenti per eliminare i file e i dati associati a un'attività orfana da GDS e dal database.
Esegui il comando seguente sul database di AEM Forms Server per recuperare gli ID delle attività identificate.
select id from tb_form_data where task_id=<task_id>
La query restituisce un elenco di ID. Per ogni ID ( fd_id
) restituita nei risultati, crea un elenco di stringhe ID sessione come segue:
wfattach<task_id>
_wftask<fd_id>
_wftaskformid<fd_id>
A seconda che il GDS punti a un file system o a un database, effettuare una delle seguenti operazioni:
GDS nel file system
Nel file system GDS:
_wfattach<task_id>
_wftask<fd_id>
_wftaskformid<fd_id>
I file con queste estensioni sono i file marcatore. Vengono memorizzati con i nomi file nel seguente formato:
<file_name_guid>.session<session_id_string>
<file_name_guid>
dal file system.GDS nel database
Esegui i seguenti comandi per ogni ID sessione:
delete from tb_dm_chunk where documentid in (select documentid from tb_dm_session_reference where sessionid=<session_id>)
delete from tb_dm_session_reference where sessionid=<session_id>
delete from tb_dm_deletion where sessionid=<session_id>
Eseguire i seguenti comandi per eliminare i dati per gli ID attività dal database di AEM Forms Server:
delete from tb_task_acl where task_id=<task_id>
delete from tb_task_attachment where task_id=<task_id>
delete from tb_form_data where task_id=<task_id>
delete from tb_assignment where task_id=<task_id>
delete from tb_task where id=<task_id>