この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

process()

承認のために承認プロセスインスタンスの配列を送信します。または、承認、却下、削除される承認プロセスインスタンスの配列を処理します。詳細は、Salesforce ヘルプの「承認プロセスの設定」を参照してください。

構文

1ProcessResult = connection.process( processType processRequest[])

processType は、ProcessSubmitRequest または ProcessWorkitemRequest のいずれかになる可能性があります。

使用方法

process() を使用して、次の 2 つのタスクのいずれかを実行します。

  • オブジェクトの配列を承認プロセスに送信します。送信時、オブジェクトがすでに承認プロセスにあってはいけません。ProcessSubmitRequest 署名を使用します。
  • 承認アクション (承認または却下) を実行することによって、承認プロセスに送信されているオブジェクトを処理します。ProcessWorkitemRequest 署名を使用します。

要求が処理されると、送信した要求と同じプロセスインスタンスを含む ProcessResult が返されます。

個別のレコードの失敗は、要求全体の失敗にはなりません。

このコールで Apex トリガを起動できるため、文字列を含む項目が更新される場合があります。

API バージョン 15.0 以降、文字列を含む項目に値を指定し、値が項目に対して大きすぎる場合、コールは失敗してエラーが返されます。これまでのバージョンの API では、値は切り捨てられ、コールは正常に終了していました。バージョン 15.0 以降でもこの動作を保持する場合、AllowFieldTruncationHeader SOAP ヘッダーを使用してください。

メモ

サンプルコード —Java

このサンプルでは、承認を処理する sObject の ID と、次の承認者の ID が格納された配列を受け取ります。プロセス承認申請を作成し、承認を得るために送信します。最後に、process() コールの結果を解析します。

1public void processRecords(String id, String[] approverIds) {
2   ProcessSubmitRequest request = new ProcessSubmitRequest();
3   request.setComments("A comment about this approval.");
4   request.setObjectId(id);
5   request.setNextApproverIds(approverIds);
6   try {
7      ProcessResult[] processResults = connection
8            .process(new ProcessSubmitRequest[] { request });
9      for (ProcessResult processResult : processResults) {
10         if (processResult.isSuccess()) {
11            System.out.println("Approval submitted for: " + id + ":");
12            for (int i = 0; i < approverIds.length; i++) {
13               System.out
14                     .println("\tBy: " + approverIds[i] + " successful.");
15            }
16            System.out.println("Process Instance Status: "
17                  + processResult.getInstanceStatus());
18         } else {
19            System.out.println("Approval submitted for: " + id
20                  + ", approverIds: " + approverIds.toString() + " FAILED.");
21            System.out.println("Error: "
22                  + processResult.getErrors().toString());
23         }
24      }
25   } catch (ConnectionException ce) {
26      ce.printStackTrace();
27   }
28}

サンプルコード —C#

このサンプルでは、承認を処理する sObject の ID と、次の承認者の ID が格納された配列を受け取ります。プロセス承認申請を作成し、承認を得るために送信します。最後に、process() コールの結果を解析します。

1public void processRecords(String id, String[] approverIds)
2{
3   ProcessSubmitRequest request = new ProcessSubmitRequest();
4   request.comments = "A comment about this approval.";
5   request.objectId = id;
6   request.nextApproverIds = approverIds;
7   try
8   {
9      ProcessResult[] processResults = binding.process(
10                     new ProcessSubmitRequest[] { request });
11      foreach (ProcessResult processResult in processResults)
12      {
13         if (processResult.success)
14         {
15            Console.WriteLine("Approval submitted for: " + id + ":");
16            for (int i = 0; i < approverIds.Length; i++)
17            {
18               Console.WriteLine("\tBy: " + approverIds[i] + " successful.");
19            }
20            Console.WriteLine("Process Instance Status: "
21                  + processResult.instanceStatus);
22         }
23         else
24         {
25            Console.WriteLine("Approval submitted for: " + id
26                  + ", approverIds: " + approverIds.ToString() + " FAILED.");
27            Console.WriteLine("Error: "
28                  + processResult.errors.ToString());
29         }
30      }
31   }
32   catch (SoapException e)
33   {
34      Console.WriteLine("An unexpected error has occurred: " +
35                                 e.Message + "\n" + e.StackTrace);
36   }
37}

ProcessSubmitRequest 引数

名前 説明
comments string 申請に付記するテキスト。差し込み項目または数式を参照しないでください。

申請コメントは、指定したレコードの承認履歴に表示されます。テンプレートで {!ApprovalRequest.Comments} 差し込み項目を使用する場合は、最初の承認申請メールにもこのテキストが表示されます。

nextApproverIds ID[] プロセスが引き続き承認の詳細を要求する場合、次の要求に割り当てられるユーザ ID。
objectId ID 承認申請するレコード。
processDefinitionNameOrId string レコードを申請する特定の承認プロセスの一意の名前または ID。このプロセスは、オブジェクト種別が objectId で指定したレコードと同じでなければなりません。

skipEntryCriteriatrue である場合は必須です。

skipEntryCriteria boolean true の場合、processDefinitionNameOrId で定義されたプロセスに設定された開始条件に照らして評価されません。
submitterId ID レコードの承認申請を行ったユーザの ID。このユーザは、承認申請に対する返答に関する通知を受信します。

ユーザは、プロセス定義設定で許可されている申請者のいずれかである必要があります。

ProcessWorkitemRequest 引数

名前 説明
action string 承認用に送信された項目の後処理のアクションの種類 (承認、却下、または削除) を示す文字列。削除を指定できるのは、システム管理者だけです。承認プロセスで [申請者に承認申請の取り消しを許可] オプションが選択されている場合、承認の申請者も削除を指定可能です。
comments string 申請に付記するテキスト。差し込み項目または数式を参照しないでください。

申請コメントは、指定したレコードの承認履歴に表示されます。テンプレートで {!ApprovalRequest.Comments} 差し込み項目を使用する場合は、最初の承認申請メールにもこのテキストが表示されます。

nextApproverIds ID[] プロセスが引き続き承認の詳細を要求する場合、次の要求に割り当てられるユーザ ID。
workitemId ID 処理対象 (承認、却下、または削除) の ProcessInstanceWorkitem の ID。

応答

ProcessResult[]