Files
2026-05-29 17:49:25 +09:00

125 lines
3.1 KiB
Plaintext

= 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[]