Salesforce
承認プロセスオブジェクト
サーチ…
備考
承認プロセスは、ビジネスプロセスを自動化するSalesforceの非常に驚くべき機能です。承認プロセスは、特定のレコードが承認者または承認者セットによって承認または拒否されるために必要な一連の手順です。
手順は、プロセスに含まれるすべてのレコードに適用することも、特定の管理者定義基準を満たすレコードだけに適用することもできます。承認プロセスでは、レコードの承認、拒否、再呼び出し、または承認のために最初に提出されたときに実行するアクションも指定します。
ProcessDefinitionおよびProcessNodeオブジェクトはテンプレートとして動作し、承認プロセス自体のマスタ構成を格納します。
プロセス定義
単一の承認プロセスの定義を表します。このオブジェクトを使用して、承認プロセスの説明を読み取ります。定義は読み取り専用です。 ProcessDefinitionオブジェクトで作成されたレコードは変更できません。しかし、承認プロセス情報を記述、検索、検索することができます。
〜クエリ〜
SELECT CreatedById,CreatedDate,Description,DeveloperName,LastModifiedById,
LastModifiedDate,LockType,Name,State,SystemModstamp,TableEnumOrId,Type,Id
FROM ProcessDefinition
レコードは、承認プロセスのSalesforceユーザーインターフェイスを使用して新しい承認プロセスを作成するときに作成されます。
ProcessNode
特定の承認プロセス(ProcessDefinition)に対して作成されたプロセスステップを表します。このオブジェクトは、プロセスステップの説明を読み込むために使用されます。簡単に言えば、ProcessNodeレコードはプロセス定義のステップを記述します。承認プロセスのステップを記述、照会、検索、取得することができます。
〜クエリ〜
SELECT Description,DeveloperName,Name,ProcessDefinitionId,SystemModstamp
,Id,FROM ProcessNode
我々が見ることができるように、ProcessDefinitionIdフィールドは、ステップまたはプロセスノードが作成されるProcessDefinitionオブジェクトまたはテーブルを参照している外部キーのように動作している。このオブジェクトは、ProcessDefinitionオブジェクトとしてのみ読み取られます。
ProcessInstance
単一の完全承認プロセスのインスタンスを表します。 ProcessInstanceレコードは、承認のために送信される特定のオブジェクトレコードのたびに作成されます。また、読み取り専用のオブジェクトです。承認プロセスのインスタンスを記述、照会、取得することができます。
〜クエリ〜
SELECT CompletedDate,CreatedById,CreatedDate,ElapsedTimeInDays,
ElapsedTimeInHours,ElapsedTimeInMinutes,Id,IsDeleted,LastActorId,
LastModifiedById,LastModifiedDate,ProcessDefinitionId,Status,
SubmittedById,SystemModstamp,TargetObjectId FROM ProcessInstance
すべてのProcessInstanceフィールドには、承認プロセスのインスタンスが完了した後にのみ入力されるCompletedDateとLastActorIdという2つの例外フィールドがあり、レコードが承認のために送信されると自動的に設定されます。 ProcessDefinitionIdフィールドは、ProcessDefinitionオブジェクトの参照または外部キーIDです。
ProcessInstanceStep&ProcessInstanceWorkitem
両方のオブジェクトProcessInstanceStepおよびProcessInstanceWorkItemは、特定のProcessInstanceに対して作成されたプロセスステップのインスタンスです。 ProcessInstanceStepは、承認プロセス(ProcessInstance)のステップインスタンスを表し、ユーザーは既に動作しており、ProcessInstanceWorkItemは承認プロセス(ProcessInstance)のステップインスタンスを表し、保留中であり、ユーザーは次に何らかのアクションを実行する必要があります。承認プロセスのステップと作業項目を記述、照会、取得できます。
〜クエリ〜
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は、検索可能でもクエリ可能でもないオブジェクトです。これは、承認プロセス(ProcessInstance)に関連付けられたすべての手順と保留中の承認要求を示す読み取り専用オブジェクトです。 しかし、このオブジェクトを使用してSalesforceのユーザーインターフェイスの関連するリスト機能を複製し、承認プロセスを行うことができます。これについては、私の次のブログ記事にすぐに掲載されます。 ProcessInstanceStepとProcessInstanceWorkitemオブジェクトの両方の読み取り専用ビューに対してProcessInstanceHistoryを使用できます。 ProcessInstanceHistoryには、親のProcessInstanceオブジェクトのネストされたsoqlクエリでクエリを実行して問い合わせることができます。ネストされたsoqlクエリは、ProcessInstanceオブジェクト内のProcessInstanceHistoryの子関係名であるStepsAndWorkitemsを参照します。これは、さまざまなビジネス上の問題を解決するための非常に有用なオブジェクトです。
〜クエリ〜
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