288.7. 승인 작업
모든 속성의 이름은 Salesforce REST API 앞에 있는 승인과 정확히 동일합니다. .
Endpoint의 approval.PropertyName
을 설정하여 승인 속성을 설정할 수 있습니다. 이는 본문 또는 헤더 중 하나에 존재하지 않는 모든 속성이 끝점 구성에서 가져오는 templatedatabind-databindmeaning으로 사용됩니다. 또는 레지스트리의 빈에 대한 참조에 승인
속성을 할당하여 엔드포인트에서 승인 템플릿을 설정할 수 있습니다.
들어오는 메시지 헤더에서 동일한 approval.PropertyName
을 사용하여 헤더 값을 제공할 수도 있습니다.
그리고 마지막으로 본문에는 하나의 AprovalRequest
또는 Iterable
of 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);