43.10. 승인 작업
모든 속성의 이름은 10.0.0.1 REST API 앞에 있는 승인이 붙은 것과 정확히 동일하게 지정됩니다. Endpoint의 approval.PropertyName 을 설정하여 승인 속성을 설정할 수 있습니다. 이러한 값은 본문 또는 헤더에 없는 모든 속성이 Endpoint 구성에서 가져온 templatetutorial-kubeletmeaning으로 사용됩니다. 또는 레지스트리의 빈에 대한 참조에 승인 속성을 할당하여 끝점에서 승인 템플릿을 설정할 수 있습니다.
수신 메시지 헤더에 동일한 approval.PropertyName 을 사용하여 헤더 값을 제공할 수도 있습니다.
마지막으로 본문은 일괄 처리로 처리할 하나의 AprovalRequest 또는 ApprovalRequest 오브젝트를 포함할 수 있습니다.
알아야 할 중요한 사항은 다음 세 가지 메커니즘에 지정된 값의 우선 순위입니다.
- 본문의 값이 다른 값보다 우선합니다.
- 템플릿 값보다 먼저 메시지 헤더의 값이 우선합니다.
- 헤더 또는 본문에 다른 값이 지정되지 않은 경우 template의 값이 설정됩니다.
예를 들어 헤더의 값을 사용하여 승인을 위해 하나의 레코드를 보내려면 다음을 사용합니다.
경로가 지정된 경우:
from("direct:example1")//
.setHeader("approval.ContextId", simple("${body['contextId']}"))
.setHeader("approval.NextApproverIds", simple("${body['nextApproverIds']}"))
.to("salesforce:approval?"//
+ "approval.actionType=Submit"//
+ "&approval.comments=this is a test"//
+ "&approval.processDefinitionNameOrId=Test_Account_Process"//
+ "&approval.skipEntryCriteria=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);