Salesforce
Oggetti processo di approvazione
Ricerca…
Osservazioni
Il processo di approvazione è una funzionalità molto sorprendente in Salesforce per automatizzare il processo aziendale. Un processo di approvazione è un insieme dei passaggi necessari per un determinato record da approvare o rifiutare dal responsabile dell'approvazione o da un gruppo di approvatori.
Un passaggio può essere applicato a tutti i record inclusi nel processo o solo ai record che soddisfano determinati criteri definiti dall'amministratore. Un processo di approvazione specifica inoltre le azioni da intraprendere quando un record viene approvato, rifiutato, richiamato o inviato per la prima volta.
Gli oggetti ProcessDefinition e ProcessNode fungono da modello e memorizzano le configurazioni master per Processo di approvazione stesso.
ProcessDefinition
Rappresenta la definizione di un singolo processo di approvazione. Utilizzare questo oggetto per leggere la descrizione di un processo di approvazione. La definizione è di sola lettura. Non possiamo modificare il record creato in ProcessDefinition Object. Ma possiamo descrivere, interrogare, cercare e recuperare le informazioni sui processi di approvazione.
~ Domanda ~
SELECT CreatedById,CreatedDate,Description,DeveloperName,LastModifiedById,
LastModifiedDate,LockType,Name,State,SystemModstamp,TableEnumOrId,Type,Id
FROM ProcessDefinition
I record vengono creati quando creiamo un nuovo processo di approvazione utilizzando l'interfaccia utente di Salesforce del processo di approvazione.
ProcessNode
Rappresenta le fasi del processo create per un particolare processo di approvazione (ProcessDefinition). Questo oggetto viene utilizzato per leggere la descrizione della fase del processo. In parole semplici i record ProcessNode descrivono un passaggio in una definizione di processo. Possiamo descrivere, interrogare, cercare e recuperare i passaggi di approvazione.
~ Domanda ~
SELECT Description,DeveloperName,Name,ProcessDefinitionId,SystemModstamp
,Id,FROM ProcessNode
Come possiamo vedere, il campo ProcessDefinitionId si comporta come una chiave esterna che fa riferimento a ProcessDefinition Object o Table per cui vengono creati passaggi o nodi di processo. Questo oggetto viene letto anche come oggetto ProcessDefinition.
ProcessInstance
Rappresenta un'istanza di un singolo processo di approvazione completo. Il record ProcessInstance viene creato ogni volta per un particolare record di oggetto inviato per l'approvazione. È anche un oggetto di sola lettura. Possiamo descrivere, interrogare e recuperare l'istanza dei processi di approvazione.
~ Domanda ~
SELECT CompletedDate,CreatedById,CreatedDate,ElapsedTimeInDays,
ElapsedTimeInHours,ElapsedTimeInMinutes,Id,IsDeleted,LastActorId,
LastModifiedById,LastModifiedDate,ProcessDefinitionId,Status,
SubmittedById,SystemModstamp,TargetObjectId FROM ProcessInstance
Tutti i campi ProcessInstance vengono popolati automaticamente dopo l'approvazione del record per l'approvazione, con due campi di eccezioni: CompletedDate e LastActorId che vengono popolati solo dopo il completamento dell'istanza del processo di approvazione. Il campo ProcessDefinitionId è l'ID della chiave di riferimento o della chiave esterna dell'oggetto ProcessDefinition.
ProcessInstanceStep & ProcessInstanceWorkitem
Entrambi gli oggetti ProcessInstanceStep e ProcessInstanceWorkItem sono istanze di passaggi di processo creati per una specifica ProcessInstance. ProcessInstanceStep rappresenta un'istanza del passaggio in un processo di approvazione (ProcessInstance) su cui gli utenti hanno già operato e ProcessInstanceWorkItem rappresenta un'istanza del passaggio in un processo di approvazione (ProcessInstance) su cui è in sospeso e gli utenti devono eseguire un'azione successiva su di esso. Siamo in grado di descrivere, interrogare e recuperare i passaggi dei processi di approvazione e gli oggetti di lavoro.
~ Domanda ~
SELECT CreatedById,CreatedDate,ElapsedTimeInDays,ElapsedTimeInHours,
ElapsedTimeInMinutes,Id,IsDeleted,OriginalActorId,ProcessInstanceId,
ActorId,SystemModstamp FROM ProcessInstanceWorkitem
SELECT ActorId,Comments,CreatedById,CreatedDate,ElapsedTimeInDays,Id,
ElapsedTimeInHours,ElapsedTimeInMinutes,OriginalActorId,ProcessInstanceId
,StepNodeId,StepStatus,SystemModstamp FROM ProcessInstanceStep
ProcessInstanceHistory *
ProcessInstanceHistory è l'oggetto che non è né ricercabile né interrogabile e questo è l'oggetto di sola lettura che mostra tutti i passaggi e le richieste di approvazione in sospeso associate a un processo di approvazione (ProcessInstance). Ma possiamo usare questo oggetto per replicare la funzionalità dell'elenco correlato dell'interfaccia utente di Salesforce per i processi di approvazione che verranno mostrati presto nel mio prossimo post sul blog. È possibile utilizzare ProcessInstanceHistory per una singola vista di sola lettura di entrambi gli oggetti ProcessInstanceStep e ProcessInstanceWorkitem. Possiamo interrogare ProcessInstanceHistory interrogandoci in una query soql annidata sull'oggetto ProcessInstance genitore. La query soql nidificata fa riferimento a StepsAndWorkitems , che è il nome della relazione figlio per ProcessInstanceHistory nell'oggetto ProcessInstance. Questo è un oggetto molto utile per risolvere vari problemi aziendali.
~ Domanda ~
SELECT CompletedDate, CreatedById, CreatedDate,Id,IsDeleted,LastActorId,
LastModifiedById,LastModifiedDate,ProcessDefinitionId,Status,SubmittedById
,SystemModstamp,TargetObjectId, (SELECT ID, ProcessNodeId, StepStatus,
Comments,TargetObjectId,ActorId,CreatedById,IsDeleted,IsPending,
OriginalActorId,ProcessInstanceId,RemindersSent,CreatedDate
FROM StepsAndWorkitems ) FROM ProcessInstance