Red Hat Training
A Red Hat training course is available for Red Hat Fuse
268.9. 承認の使用
すべてのプロパティーには、承認が付けられた Salesforce REST API と同じ名前が付けられます
。承認プロパティーは、Endpoint の approval.PropertyName
を設定して設定できます。これらは、body または header のいずれかに存在しないプロパティーが Endpoint 設定から取得することをテンプレートに使用 します。または、レジストリーの Bean への参照に approval
プロパティーを割り当てることにより、Endpoint で承認テンプレートを設定できます。
受信メッセージヘッダーで同じ approval.PropertyName
を使用してヘッダー値を指定することもできます。
また、最後に ボディー には AprovalRequest
または Iterable
of ApprovalRequest
オブジェクトを 1 つ追加してバッチとして処理できます。
覚えておくべき重要なことは、以下の 3 つのメカニズムで指定された値の優先度です。
- ボディーの値は、他の値よりも先に優先されます。
- メッセージヘッダーの値は、テンプレート値の前に優先されます。
- ヘッダーまたはボディーに他の値が指定されていない場合に、テンプレートの値が設定されます。
たとえば、ヘッダーの値を使用して承認のために 1 つのレコードを送信するには、以下を使用します。
ルートを指定します。
from("direct:example1")// .setHeader("approval.ContextId", simple("${body['contextId']}")) .setHeader("approval.NextApproverIds", simple("${body['nextApproverIds']}")) .to("salesforce:approval?"// + "approvalActionType=Submit"// + "&approvalComments=this is a test"// + "&approvalProcessDefinitionNameOrId=Test_Account_Process"// + "&approvalSkipEntryCriteria=true");
以下を使用して承認のレコードを送信できます。
final Map<String, String> body = new HashMap<>(); body.put("contextId", accountIds.iterator().next()); body.put("nextApproverIds", userId); final ApprovalResult result = template.requestBody("direct:example1", body, ApprovalResult.class);