Salesforce
Obiekty procesu zatwierdzania
Szukaj…
Uwagi
Proces zatwierdzania jest bardzo niesamowitą funkcją Salesforce do automatyzacji procesu biznesowego. Proces zatwierdzania to zestaw kroków niezbędnych do zatwierdzenia lub odrzucenia określonego rekordu przez osobę zatwierdzającą lub zbiór osób zatwierdzających.
Krok może dotyczyć wszystkich rekordów objętych procesem lub po prostu rekordów spełniających określone kryteria zdefiniowane przez administratora. Proces zatwierdzania określa również działania, które należy podjąć, gdy rekord zostanie zatwierdzony, odrzucony, przywołany lub po raz pierwszy przedstawiony do zatwierdzenia.
Obiekty ProcessDefinition i ProcessNode działają jako szablon i przechowują konfiguracje główne dla samego procesu zatwierdzania.
ProcessDefinition
Reprezentuje definicję pojedynczego procesu zatwierdzania. Użyj tego obiektu, aby przeczytać opis procesu zatwierdzania. Definicja jest tylko do odczytu. Nie możemy modyfikować rekordu utworzonego w ProcessDefinition Object. Ale możemy opisywać, wyszukiwać, wyszukiwać i pobierać informacje o procesach zatwierdzania.
~ Zapytanie ~
SELECT CreatedById,CreatedDate,Description,DeveloperName,LastModifiedById,
LastModifiedDate,LockType,Name,State,SystemModstamp,TableEnumOrId,Type,Id
FROM ProcessDefinition
Rekordy są tworzone, gdy tworzymy nowy proces zatwierdzania przy użyciu interfejsu użytkownika Salesforce procesu zatwierdzania.
ProcessNode
Reprezentuje kroki procesu utworzone dla określonego procesu zatwierdzania (ProcessDefinition). Ten obiekt służy do odczytu opisu etapu procesu. W prostych słowach rekordy ProcessNode opisują krok w definicji procesu. Możemy opisywać, wyszukiwać, wyszukiwać i pobierać procesy zatwierdzania Kroki.
~ Zapytanie ~
SELECT Description,DeveloperName,Name,ProcessDefinitionId,SystemModstamp
,Id,FROM ProcessNode
Jak widzimy pole ProcessDefinitionId działa jak klucz obcy, który odwołuje się do obiektu lub tabeli ProcessDefinition, dla których tworzone są kroki lub węzły procesu. Ten obiekt jest również odczytywany tylko jako ProcessDefinition Object.
ProcessInstance
Reprezentuje instancję pojedynczego, pełnego procesu zatwierdzania. Rekord ProcessInstance jest tworzony za każdym razem dla określonego rekordu obiektu, który jest przesyłany do zatwierdzenia. Jest to także obiekt tylko do odczytu. Możemy opisać, zapytać i pobrać instancję procesów zatwierdzania.
~ Zapytanie ~
SELECT CompletedDate,CreatedById,CreatedDate,ElapsedTimeInDays,
ElapsedTimeInHours,ElapsedTimeInMinutes,Id,IsDeleted,LastActorId,
LastModifiedById,LastModifiedDate,ProcessDefinitionId,Status,
SubmittedById,SystemModstamp,TargetObjectId FROM ProcessInstance
Wszystkie pola ProcessInstance są automatycznie zapełniane po przesłaniu rekordu do zatwierdzenia, z dwoma wyjątkami: CompletedDate i LastActorId, które są zapełniane dopiero po zakończeniu instancji procesu zatwierdzania. Pole ProcessDefinitionId jest referencyjnym lub identyfikatorem klucza obcego obiektu ProcessDefinition.
ProcessInstanceStep & ProcessInstanceWorkitem
Oba obiekty ProcessInstanceStep & ProcessInstanceWorkItem są instancjami kroków procesu, które są tworzone dla konkretnego ProcessInstance. ProcessInstanceStep reprezentuje instancję kroku w procesie zatwierdzania (ProcessInstance), na której użytkownicy już działali, a ProcessInstanceWorkItem reprezentuje instancję kroku w procesie zatwierdzania (ProcessInstance), na której oczekuje, a użytkownicy muszą wykonać na nim pewne działania. Możemy opisywać, wyszukiwać i pobierać kroki procesów zatwierdzania i elementy robocze.
~ Zapytanie ~
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 to obiekt, którego nie można przeszukiwać ani zapytać, a jest to obiekt tylko do odczytu, który pokazuje wszystkie kroki i oczekujące żądania zatwierdzenia związane z procesem zatwierdzania (ProcessInstance). Ale możemy użyć tego obiektu do zreplikowania powiązanej funkcjonalności listy interfejsu użytkownika Salesforce do procesów zatwierdzania, które zostaną wkrótce przedstawione w następnym wpisie na blogu. Możemy użyć ProcessInstanceHistory do pojedynczego widoku tylko do odczytu obiektów ProcessInstanceStep i ProcessInstanceWorkitem. Możemy wysłać zapytanie do ProcessInstanceHistory poprzez zapytanie w zagnieżdżonym zapytaniu soql na nadrzędnym obiekcie ProcessInstance. Zagnieżdżone zapytanie soql odwołuje się do StepsAndWorkitems , która jest nazwą relacji podrzędnej dla ProcessInstanceHistory w obiekcie ProcessInstance. Jest to bardzo przydatny obiekt do rozwiązywania różnych problemów biznesowych.
~ Zapytanie ~
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