Salesforce
Procesos de aprobación de objetos
Buscar..
Observaciones
El Proceso de aprobación es una característica muy sorprendente en Salesforce para automatizar el proceso de negocios. Un proceso de aprobación es un conjunto de los pasos necesarios para que un aprobador o un conjunto de aprobadores aprueben o rechacen un registro en particular.
Un paso puede aplicarse a todos los registros incluidos en el proceso, o solo a registros que cumplan con ciertos criterios definidos por el administrador. Un proceso de aprobación también especifica las acciones a tomar cuando un registro se aprueba, rechaza, recupera o envía por primera vez para su aprobación.
Los objetos ProcessDefinition y ProcessNode actúan como una plantilla y almacenan las configuraciones maestras para el propio Proceso de aprobación.
ProcesoDefinición
Representa la definición de un proceso de aprobación único. Utilice este objeto para leer la descripción de un proceso de aprobación. La definición es de solo lectura. No podemos modificar el registro creado en ProcessDefinition Object. Pero podemos describir, consultar, buscar y recuperar la información de los procesos de aprobación.
~ Consulta ~
SELECT CreatedById,CreatedDate,Description,DeveloperName,LastModifiedById,
LastModifiedDate,LockType,Name,State,SystemModstamp,TableEnumOrId,Type,Id
FROM ProcessDefinition
Los registros se crean cuando creamos un nuevo proceso de aprobación utilizando la interfaz de usuario de Salesforce del Proceso de aprobación.
ProcessNode
Representa los pasos de proceso creados para un proceso de aprobación particular (ProcessDefinition). Este objeto se utiliza para leer la descripción del paso del proceso. En palabras simples, los registros de ProcessNode describen un paso en una definición de proceso. Podemos describir, consultar, buscar y recuperar los pasos de los procesos de aprobación.
~ Consulta ~
SELECT Description,DeveloperName,Name,ProcessDefinitionId,SystemModstamp
,Id,FROM ProcessNode
Como podemos ver, el campo ProcessDefinitionId actúa como una clave externa que se refiere al objeto o tabla ProcessDefinition para los pasos o nodos de proceso que se crean. Este objeto también se lee solo como objeto ProcessDefinition.
ProcessInstance
Representa una instancia de un solo proceso de aprobación completo. El registro ProcessInstance se crea cada vez para un registro de objeto particular que se envía para su aprobación. También es un objeto de sólo lectura. Podemos describir, consultar y recuperar los procesos de aprobación de Instancia.
~ Consulta ~
SELECT CompletedDate,CreatedById,CreatedDate,ElapsedTimeInDays,
ElapsedTimeInHours,ElapsedTimeInMinutes,Id,IsDeleted,LastActorId,
LastModifiedById,LastModifiedDate,ProcessDefinitionId,Status,
SubmittedById,SystemModstamp,TargetObjectId FROM ProcessInstance
Todos los campos ProcessInstance se rellenan automáticamente una vez que el registro se envía para su aprobación, con dos campos de excepciones: CompletedDate y LastActorId que se completan solo después de que se completa la instancia del proceso de aprobación. El campo ProcessDefinitionId es el ID de referencia o clave externa del objeto ProcessDefinition.
ProcessInstanceStep & ProcessInstanceWorkitem
Ambos objetos ProcessInstanceStep y ProcessInstanceWorkItem son instancias de pasos de proceso que se crean para ProcessInstance en particular. ProcessInstanceStep representa una instancia de paso en un proceso de aprobación (ProcessInstance) en el que los usuarios ya han actuado y ProcessInstanceWorkItem representa una instancia de paso en un proceso de aprobación (ProcessInstance) en el que está pendiente y los usuarios deben realizar alguna acción a continuación. Podemos describir, consultar y recuperar los pasos de los procesos de aprobación y los elementos de trabajo.
~ Consulta ~
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 es el objeto que no se puede buscar ni consultar. Este es el objeto de solo lectura que muestra todos los pasos y solicitudes de aprobación pendientes asociadas con un proceso de aprobación (ProcessInstance). Pero podemos usar este objeto para replicar la funcionalidad de lista relacionada de la interfaz de usuario de Salesforce para los procesos de aprobación que se mostrarán en mi próxima publicación de blog pronto. Podemos usar ProcessInstanceHistory para una sola vista de solo lectura de los objetos ProcessInstanceStep y ProcessInstanceWorkitem. Podemos consultar ProcessInstanceHistory consultando en una consulta soql anidada en el objeto ProcessInstance principal. La consulta de soql anidada hace referencia a StepsAndWorkitems , que es el nombre de la relación secundaria para ProcessInstanceHistory en el objeto ProcessInstance. Este es un objeto muy útil para resolver diversos problemas de negocios.
~ Consulta ~
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