288.9. 승인 작업

모든 속성의 이름은 승인 접두사가 지정된 FlexVolume REST API에서와 정확히 동일합니다. . 승인 속성을 설정할 수 있습니다. approval.PropertyName of the Endpoint 이러한 값은 본문 또는 헤더 중 하나에 존재하지 않는 모든 속성을 Endpoint 구성에서 가져온 template Themeaning으로 사용합니다. 또는 레지스트리의 DestinationRule에 대한 참조에 승인 속성을 할당하여 끝점에서 승인 템플릿을 설정할 수 있습니다.

들어오는 메시지 헤더에서 동일한 approval.PropertyName 을 사용하여 헤더 값을 제공할 수도 있습니다.

마지막으로 본문에는 하나의 AprovalRequest 또는 Iterable of ApprovalRequest 오브젝트를 일괄 처리로 포함할 수 있습니다.

고려해야 할 중요한 사항은 다음 세 가지 메커니즘에 지정된 값의 우선 순위입니다.

  1. 본문의 값이 다른 값보다 먼저 우선합니다.
  2. 메시지 헤더의 값이 템플릿 값보다 우선합니다.
  3. 헤더 또는 본문에 다른 값이 지정되지 않은 경우 템플릿의 값이 설정됩니다.

예를 들어 헤더의 값을 사용하여 승인을 위해 하나의 레코드를 보내려면 다음을 사용합니다.

경로가 지정되면 다음을 수행합니다.

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);