= Knox 상신 == 결재 Entity Class 생성 및 설정 결재 기능을 구현해야 하는 업무의 Entity Class를 생성하고 Annotation을 설정하고 기본 결재 Class를 상속 받는다. [source,java] ---- @Data @EqualsAndHashCode(callSuper = true) @ApprovalDocument(docType = "knoxSample", description = "Sample Approval Doc. (Knox)", approvalClass = Approval.class, templateEngine = TemplateEngineType.VELOCITY, templateFile = "/templates/approval/approval-sample.vm", docSecuType = ApprovalDocSecuType.PERSONAL, isArbitrary = true, bodyType = ApprovalBodyType.MIME) @JsonInclude(JsonInclude.Include.NON_NULL) public class KnoxApprovalSampleDocument extends DefaultApprovalDocument { private static final long serialVersionUID = 1L; private String docId; private String contents; private String creator; } ---- 업무프로세스 Entity Class 에 @ApprovalDocument 을 달아 주고 DefaultApprovalDocument를 상속 받아야만 결재 Object 라는 것을 결재 모듈에서 알수 있다. === @ApprovalDocument @ApprovalDocument를 이용해 결재 문서의 속정을 정의한다. [cols=5] |==== |props명 |필수여부 |Type |Default |설명 |docType |필수 |String | |사용자가 식별할수 있는 이름 |description |필수 |String | |결재 문서에 대한 설명 |approvalClass |필수 |class |Approval.class |결재 문서를 DB에 저장할때 사용하는 클래스명 |templateEngine |필수 |TemplateEngineType |VELOCITY |결재 본문 파싱에 필요한 템플릿 엔진. THYMELEAF, VELOCITY 2개의 템플릿 엔진을 사용할 수 있다. |templateFile 또는 templateKey |필수 |String | |templateFile: 템플릿 파일 이름을 경로와 확장자 포함해서 설정한다. + tempageKey: 결재양식 관리 메뉴에서 지정한 key |docSecuType | |ApprovalDocSecuType |PERSONAL |결재 문서의 보안 형태 |isBodyModify | |boolean |true |문서의 기본 결재 본문 수정 true일 때만 UI에서 수정 가능 |isRouteModify | |boolean |true |문서의 기본 결재 경로 수정 true일 때만 UI에서 수정 가능 |isArbitrary | |boolean |false |문서의 기본 결재 전결 true일 때만 UI에서 수정 가능 |bodyType | |ApprovalBodyType |MIME |전송할 문서의 형태 TEXT, HTML, MIME |isInternalApproval | |boolean |false |true: 내부결재, false: Knox결재 |==== == 결재 본문 등록 결재 본문은 VELOCITY 또는 THYMELEAF 로 등록 할 수 있다. + SDL에서 제공하는 결재 샘플에서는 VELOCITY 파일로 제공하고 있으며 vm 파일을 작성하고, + 위의 Entity Class 샘플에서와 같이 `@ApprovalDocument` 의 `templateEngine=엔진타입` 과 `templateFile="템플릿파일경로"` 값을 등록한다. == 결재 상신 === 결재 상신 UI 샘플 문서를 등록 하고나면 상세하면 하단에 결재 경로를 설정할 수 있는 결재 스텝을 입력 받는 Component가 표시된다. + 결재 문서 화면 개발시 이 Component를 붙여서 상신 기능을 구현한다. image::approvalSumit_01.png[]