289.7. 승인 작업
모든 속성의 이름은 Cryostat REST API 접두사로 승인한 것과 정확히 동일합니다. Endpoint의 approval.PropertyName 을 설정하여 승인 속성을 설정할 수 있습니다. 이 값은 body 또는 header에 없는 속성이 끝점 구성에서 가져오는 template Cryostat- Cryostatmeaning으로 사용됩니다. 또는 레지스트리의 빈에 대한 참조에 승인 속성을 할당하여 끝점에서 승인 템플릿을 설정할 수 있습니다.
들어오는 메시지 헤더에서 동일한 approval.PropertyName 을 사용하여 헤더 값을 제공할 수도 있습니다.
그리고 마지막으로 본문에는 하나의 AprovalRequest 또는 Iterable of ApprovalRequest 개체를 배치로 처리할 수 있습니다.
고려해야 할 중요한 사항은 다음 세 가지 메커니즘에 지정된 값의 우선 순위입니다.
- 본문의 값이 다른 값보다 우선합니다.
- 메시지 헤더의 값이 템플릿 값보다 우선합니다.
- 헤더 또는 본문의 다른 값이 없는 경우 템플릿의 값이 설정됩니다.
예를 들어 헤더의 값을 사용하여 승인을 위해 하나의 레코드를 보내려면 다음을 사용합니다.
경로가 제공됩니다.
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);