summaryrefslogtreecommitdiff
path: root/lib/knox-api/approval
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-07-18 03:58:34 +0000
committerjoonhoekim <26rote@gmail.com>2025-07-18 03:58:34 +0000
commit3e59693e017742d971f490eb7c58870cb745a98d (patch)
treef7f846613e40e4f058de70afca5809b8e6bd0e2d /lib/knox-api/approval
parent2ef02e27dbe639876fa3b90c30307dda183545ec (diff)
(김준회) 결재 모듈 개발
Diffstat (limited to 'lib/knox-api/approval')
-rw-r--r--lib/knox-api/approval/approval-guide.html4999
-rw-r--r--lib/knox-api/approval/approval.ts603
2 files changed, 5602 insertions, 0 deletions
diff --git a/lib/knox-api/approval/approval-guide.html b/lib/knox-api/approval/approval-guide.html
new file mode 100644
index 00000000..b1b085fb
--- /dev/null
+++ b/lib/knox-api/approval/approval-guide.html
@@ -0,0 +1,4999 @@
+<div class="body-content">
+ <div class="sub-header margin">
+ <h2 data-message-id="approvals.header.subject">결재</h2>
+ </div>
+ <div class="module-subsum">
+ <p><span data-message-id="approvals.header.description1">내부 임직원에 한해 결재 상신이 가능합니다.</span><br><span
+ data-message-id="approvals.header.description2">결재 상신 뿐만 아니라 결재상황조회 및 상신취소 등이 가능합니다.</span></p>
+ </div>
+ <div class="module-font type03"><span data-message-id="approvals.policy.subject">[정책 및 제약사항]</span></div>
+ <div class="module-font type04">
+ <dl>
+ <dt><span data-message-id="approvals.policy.description1">1. 상신인 정보는 녹스포탈 임직원만 지정 가능하며, 상신자의 거점으로 연계 호출해야
+ 합니다.</span></dt>
+ <dt><span data-message-id="approvals.policy.description2">2. 본문 사이즈는 최대 1MB 를 넘을 수 없습니다.</span></dt>
+ <dt><span data-message-id="approvals.policy.description3">3. 한번에 10개의 첨부파일을 포함하여 발송할 수 있으며, 전체 첨부 사이즈는 10MB
+ 를 넘을 수 없습니다.</span></dt>
+ <dt><span data-message-id="approvals.policy.description4">4. 결재경로자 설정은 최대 99명까지 지정이 가능합니다.</span></dt>
+ </dl>
+ </div>
+ <div class="module-font type03"><span data-message-id="subject.api.list">[API 목록]</span> &nbsp;&nbsp; <a
+ target="blank" class="swagger-link" id="swaggerLinkStg"
+ href="http://developers.samsung.net/knoxcenter/wso2/swagger-ui/fe7de99a-6e19-456c-a0fb-de0efa86e043"><span
+ data-message-id="subject.go.to.swagger">테스트 페이지로 이동(Swagger)</span></a><span id="swaggerLinkStg_chrome"
+ data-message-id="subject.go.to.swagger.chrome"><sub>*Chrome Browser만 이용 가능합니다.</sub></span></div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="170px">
+ <col width="350px">
+ <col width="100px">
+ <col style="width:; text-align:left">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">API</th>
+ <th class="left">URI</th>
+ <th>Method</th>
+ <th class="left">Description</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="170px; text-align:left">
+ <col width="350px; text-align:left">
+ <col width="100px">
+ <col style="width:; text-align:left">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><a href="#box1"><span
+ data-message-id="approvals.service.submit.subject">결재상신</span></a></td>
+ <td class="left"><span
+ data-message-id="approvals.service.submit.uri">/approval/api/v2.0/approvals/submit</span>
+ </td>
+ <td><span data-message-id="approvals.service.method.post">POST</span></td>
+ <td class="left"><span data-message-id="approvals.service.submit.description">결재를 상신한다</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><a href="#box2"><span
+ data-message-id="approvals.service.secusubmit.subject">보안결재상신</span></a></td>
+ <td class="left"><span
+ data-message-id="approvals.service.secusubmit.uri">/approval/api/v2.0/approvals/secu-submit</span>
+ </td>
+ <td><span data-message-id="approvals.service.method.post">POST</span></td>
+ <td class="left"><span data-message-id="approvals.service.secusubmit.description">보안(대외비/극비) 결재를
+ 상신한다</span></td>
+ </tr>
+ <tr>
+ <td class="left"><a href="#box3"><span
+ data-message-id="approvals.service.detail.subject">결재상세상황조회</span></a></td>
+ <td class="left"><span
+ data-message-id="approvals.service.detail.uri">/approval/api/v2.0/approvals/{apInfId}/detail</span>
+ </td>
+ <td><span data-message-id="approvals.service.method.get">GET</span></td>
+ <td class="left"><span data-message-id="approvals.service.detail.description">결재문서의 정보를 상세
+ 조회한다</span></td>
+ </tr>
+ <tr>
+ <td class="left"><a href="#box4"><span
+ data-message-id="approvals.service.content.subject">결재본문조회</span></a></td>
+ <td class="left"><span
+ data-message-id="approvals.service.content.uri">/approval/api/v2.0/approvals/{apInfId}/content</span>
+ </td>
+ <td><span data-message-id="approvals.service.method.get">GET</span></td>
+ <td class="left"><span data-message-id="approvals.service.content.description">결재문서의 본문을
+ 조회한다</span></td>
+ </tr>
+ <tr>
+ <td class="left"><a href="#box5"><span
+ data-message-id="approvals.service.status.subject">결재상황조회</span></a></td>
+ <td class="left"><span
+ data-message-id="approvals.service.status.uri">/approval/api/v2.0/approvals/status</span>
+ </td>
+ <td><span data-message-id="approvals.service.method.post">POST</span></td>
+ <td class="left"><span data-message-id="approvals.service.status.description">결재문서의 진행 상태를
+ 조회한다</span></td>
+ </tr>
+ <tr>
+ <td class="left"><a href="#box6"><span
+ data-message-id="approvals.service.apinfids.subject">결재연계ID조회</span></a></td>
+ <td class="left"><span
+ data-message-id="approvals.service.apinfids.uri">/approval/api/v2.0/approvals/apinfids</span>
+ </td>
+ <td><span data-message-id="approvals.service.method.get">GET</span></td>
+ <td class="left"><span data-message-id="approvals.service.apinfids.description">결재ID로 결재연계ID를
+ 조회한다</span></td>
+ </tr>
+ <tr>
+ <td class="left"><a href="#box7"><span
+ data-message-id="approvals.service.submission.subject">상신함리스트조회</span></a></td>
+ <td class="left"><span
+ data-message-id="approvals.service.submission.uri">/approval/api/v2.0/approvals/submission</span>
+ </td>
+ <td><span data-message-id="approvals.service.method.get">GET</span></td>
+ <td class="left"><span data-message-id="approvals.service.submission.description">요청 연계시스템ID로 연계
+ 상신처리된 상신자의 상신함의 정보를 조회한다</span></td>
+ </tr>
+ <tr>
+ <td class="left"><a href="#box8"><span
+ data-message-id="approvals.service.apinfidinfos.subject">연계이력조회</span></a></td>
+ <td class="left"><span
+ data-message-id="approvals.service.apinfidinfos.uri">/approval/api/v2.0/approvals/apinfidinfos</span>
+ </td>
+ <td><span data-message-id="approvals.service.method.get">GET</span></td>
+ <td class="left"><span data-message-id="approvals.service.apinfidinfos.description">요청 연계시스템ID에서
+ 상신된 결재문서의 연계 이력을 조회한다</span></td>
+ </tr>
+ <tr>
+ <td class="left"><a href="#box9"><span
+ data-message-id="approvals.service.cancel.subject">상신취소</span></a></td>
+ <td class="left"><span
+ data-message-id="approvals.service.cancel.uri">/approval/api/v2.0/approvals/{apInfId}/cancel</span>
+ </td>
+ <td><span data-message-id="approvals.service.method.post">POST</span></td>
+ <td class="left"><span data-message-id="approvals.service.cancel.description">결재문서를
+ 상신취소한다</span></td>
+ </tr>
+ <tr>
+ <td class="left"><a href="#box11"><span
+ data-message-id="approvals.service.ownaplnlist.subject">저장된결재경로목록조회</span></a></td>
+ <td class="left"><span
+ data-message-id="approvals.service.ownaplnlist.uri">/approval/api/v2.0/approvals/ownaplnlist</span>
+ </td>
+ <td><span data-message-id="approvals.service.method.get">GET</span></td>
+ <td class="left"><span data-message-id="approvals.service.ownaplnlist.description">개인별 저장된 결재경로
+ 목록을 조회한다</span></td>
+ </tr>
+ <tr>
+ <td class="left"><a href="#box12"><span
+ data-message-id="approvals.service.ownaplndetail.subject">저장된결재경로상세조회</span></a>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.ownaplndetail.uri">/approval/api/v2.0/approvals/{pslAplnId}/ownaplndetail</span>
+ </td>
+ <td><span data-message-id="approvals.service.method.get">GET</span></td>
+ <td class="left"><span data-message-id="approvals.service.ownaplndetail.description">개인별 저장된
+ 결재경로 ID로 정보를 상세 조회한다</span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div><br>
+ <div class="dan-border"></div>
+ <div class="module-font type01" id="box1"><span data-message-id="approvals.service.submit.subject">결재상신</span></div>
+ <div class="module-font type02">
+ <p><span data-message-id="approvals.service.submit.uri">/approval/api/v2.0/approvals/submit</span></p>
+ </div>
+ <div class="module-font">
+ <p><span data-message-id="approvals.service.submit.detail">삼성 그룹사 임직원 뿐만 아니라 외부수신인을 포함하여 결재 상신이 가능하며, 상신된 결재는 각
+ 사용자의 결재함에 저장됩니다.</span></p>
+ </div>
+ <div class="module-font type02">
+ <p>Request Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th>No.</th>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Mandatory</th>
+ <th>Parameter Type</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.properties">연계 시스템
+ ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.attribute">System-ID</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.header">Header</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.sample">CXXREST0001</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.note"></span></td>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.content.properties">결재본문</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.content.attribute">contents</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.content.sample">TEST</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.content.note"></span></td>
+ </tr>
+ <tr>
+ <td>3</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.properties">본문종류</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.attribute">contentsType</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.sample">TEXT</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.note">TEXT,HTML,MIME</span></td>
+ </tr>
+ <tr>
+ <td>4</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docSecuType.properties">보안문서타입</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docSecuType.attribute">docSecuType</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docSecuType.sample">PERSONAL</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docSecuType.note">CONFIDENTIAL,
+ CONFIDENTIAL_STRICT 지정 시 에러</span></td>
+ </tr>
+ <tr>
+ <td>5</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.notifyOption.properties">통보옵션</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.notifyOption.attribute">notifyOption</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.notifyOption.sample">0</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.notifyOption.note"><span
+ class="ellipsis">0: 통보자통보 결재경로포함 , 1: 모두통보 결재경로포함 </span><br><span
+ class="ellipsis">2: 통보자통보 결재경로포함안함 , 3: 모두통보 결재경로포함안함</span></span></td>
+ </tr>
+ <tr>
+ <td>6</td>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.properties">긴급여부</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.attribute">urgYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.sample">N</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.note"></span></td>
+ </tr>
+ <tr>
+ <td>7</td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.properties">상신일시</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.attribute">sbmDt</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.sbmDt.sample">20190524145033</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.note"></span></td>
+ </tr>
+ <tr>
+ <td>8</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.timeZone.properties">타임존</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.timeZone.attribute">timeZone</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.timeZone.sample">GMT</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.timeZone.note"></span></td>
+ </tr>
+ <tr>
+ <td>9</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docMngSaveCode.properties">문서관리저장코드</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docMngSaveCode.attribute">docMngSaveCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docMngSaveCode.sample">0</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.docMngSaveCode.note"><span
+ class="ellipsis">0 : 문서관리저장안함 </span><br><span class="ellipsis"> 1 :
+ 문서관리저장함</span></span></td>
+ </tr>
+ <tr>
+ <td>10</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.subject.properties">결재제목</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.subject.attribute">subject</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.subject.sample">근태신청</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.subject.note"></span></td>
+ </tr>
+ <tr>
+ <td>11</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.sbmLang.properties">상신언어</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.sbmLang.attribute">sbmLang</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmLang.sample">ko</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmLang.note">ko : korean ja :
+ japanese zh : chinese en : english</span></td>
+ </tr>
+ <tr>
+ <td>12</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.properties">연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.sample">TEST0000000000002120190523185902</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apInfId.note">32자리의 고유
+ 결재값</span></td>
+ </tr>
+ <tr>
+ <td>13</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.importantYn.properties">중요여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.importantYn.attribute">importantYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.n">N</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.importantYn.sample">Y</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.importantYn.note"></span></td>
+ </tr>
+ <tr>
+ <td>14</td>
+ <td class="left"><span data-message-id="approvals.service.request.aplns.properties">결재경로</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.aplns.attribute">aplns</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonstring">JSON String</span>
+ </td>
+ <td></td>
+ <td class="left"><span data-message-id="approvals.service.request.aplns.note"><span
+ class="ellipsis">상신자, 결재자 1명 이상 필수 </span><br><span class="ellipsis">※결재자/합의자 없이
+ 통보자만 지정된 결재경로 불가</span></span></td>
+ </tr>
+ <tr>
+ <td>15</td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.properties">EPID</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.attribute">epId</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.EPID.sample">M071015062623C9884</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td>16</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.properties">사용자ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.attribute">userId</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.userId.sample">qtp03</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.userId.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td>17</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.properties">사용자이메일</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.attribute">emailAddress</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.sample">qtp03@stage.sasmung.com</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.emailAddress.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td>18</td>
+ <td class="left"><span data-message-id="approvals.service.request.seq.properties">결재순번</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.seq.attribute">seq</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.seq.sample">0</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.seq.note">상신자의 경우 반드시 0,
+ 병렬결재(합의)자의 경우 seq 일치</span></td>
+ </tr>
+ <tr>
+ <td>19</td>
+ <td class="left"><span data-message-id="approvals.service.request.role.properties">설정구분</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.role.attribute">role</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.role.sample">0</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.role.note"><span
+ class="ellipsis">기안(0), 결재(1), 합의(2), 후결(3), 병렬합의(4), 병렬결재(7), 통보(9)
+ </span><br><span class="ellipsis"> (후결자는 최대 1명, 병렬결재 &amp; 병렬합의자는 최소 2명
+ 이상)</span></span></td>
+ </tr>
+ <tr>
+ <td>20</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnStatsCode.properties">처리구분</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnStatsCode.attribute">aplnStatsCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnStatsCode.sample">0</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnStatsCode.note">미결(0),
+ 결재(1), 반려(2), 전결(3), 자동결재(5)</span></td>
+ </tr>
+ <tr>
+ <td>21</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.arbPmtYn.properties">전결권한여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.arbPmtYn.attribute">arbPmtYn</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.arbPmtYn.sample">Y</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.arbPmtYn.note"></span></td>
+ </tr>
+ <tr>
+ <td>22</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.properties">본문수정권한여부</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.attribute">contentsMdfyPmtYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.sample">Y</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.note"></span></td>
+ </tr>
+ <tr>
+ <td>23</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnMdfyPmtYn.properties">경로변경권한여부</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnMdfyPmtYn.attribute">aplnMdfyPmtYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnMdfyPmtYn.sample">Y</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnMdfyPmtYn.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td>24</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.opinion.properties">상신의견</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.opinion.attribute">opinion</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.opinion.sample">근태결재입니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.opinion.note"></span></td>
+ </tr>
+ <tr>
+ <td>25</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.attachments.properties">첨부파일</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.attachments.attribute">attachments</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.n">N</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span
+ data-message-id="approvals.service.request.datatype.multipart">multipart/form-data</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.attachments.sample">multipart/form-data로 변환된
+ 바이너리 파일 및 파일명</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.attachments.note"></span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Response Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.result.properties">API 호출
+ 성공여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.result.attribute">result</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.result.sample">success</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.result.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submit.data.properties">결재연계ID정보</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submit.data.attribute">data</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonstring">JSON String</span>
+ </td>
+ <td></td>
+ <td class="left"><span data-message-id="approvals.service.response.submit.data.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.properties">결재연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.sample">TEST1A000A11ACa02CVQ1A0CA4CA33C1</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.apInfId.note">리턴받은 결재 아이디를
+ 이용하여, 상황조회 및 상신취소가 가능합니다.</span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02"><span>Sample</span></div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Request</th>
+ <th class="left">Response</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <pre>/approval/approvals/api/v2.0/submit
+Content-Disposition: form-data; name="approval"
+ {
+ "aplns": [
+ {
+ "epId": "M071015062623C988403","seq": "0","role": "0","aplnStatsCode": "0",
+ "arbPmtYn": "Y","contentsMdfyPmtYn": "Y", "aplnMdfyPmtYn": "Y"
+ },
+ {
+ "epId": "M080325053708C989824","seq": "1","role": "1","aplnStatsCode": "0",
+ "arbPmtYn": "Y","contentsMdfyPmtYn": "Y", "aplnMdfyPmtYn": "Y"
+ }
+ ],
+ "contents": "TEST",
+ "contentsType": "TEXT",
+ "docSecuType": "PERSONAL",
+ "notifyOption": "0",
+ "urgYn": "N",
+ "sbmDt": "20190526121212",
+ "subject": "Test application",
+ "sbmLang": "ko",
+ "apInfId": "TEST0000000000002120190514143359",
+ "docMngSaveCode": "0",
+ "timeZone": "GMT+9"
+}
+Content-Disposition: form-data; name="attachments"; filename="attach1.jpg"
+Content-Disposition: form-data; name="attachments"; filename="attach2.txt"
+ </pre>
+ </td>
+ <td>
+ <pre>{
+ "result": "success",
+ "data": {
+ "apInfId": "TEST0000000000002120190514143359"
+ }
+}
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Error Code</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th><span data-message-id="common.type.message1">HTTP응답코드</span></th>
+ <th><span data-message-id="common.type.message2">에러코드</span></th>
+ <th class="left"><span data-message-id="common.type.message3">에러메시지</span></th>
+ <th class="left"><span data-message-id="common.type.message4">조치방안</span></th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE001.code">APE001</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.message">데이터가
+ 필요합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE002.code">APE002</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE002.message">입력된 데이터 형식이
+ 잘못되었습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE002.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE003.code">APE003</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE003.message">입력값이
+ 잘못되었습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE003.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE004.code">APE004</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE004.message">본문은 1MB를 초과할
+ 수 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE004.measures"></span>
+ </td>
+ </tr>
+ <tr></tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE006.code">APE006</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE006.message">제목에는 엔터값이
+ 들어갈 수 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE006.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE007.code">APE007</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE007.message">제목은 300자를
+ 초과할 수 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE007.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.403">403</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE008.code">APE008</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE008.message">중복된 데이터가
+ 있습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE008.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE009.code">APE009</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE009.message">후결자는 1명만 지정
+ 가능합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE009.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE010.code">APE010</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE010.message">결재경로는 최소 2명
+ 이상입니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE010.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE011.code">APE011</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE011.message">결재경로는 최대 99명
+ 이하입니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE011.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE012.code">APE012</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE012.message">상신자를 제외한
+ 사용자들은 의견값을 설정할 수 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE012.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE013.code">APE013</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE013.message">미결 상태로 설정된
+ 사용자들은 처리일시값을 설정할 수 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE013.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE014.code">APE014</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE014.message">상신의견값의 길이가
+ 너무 깁니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE014.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE016.code">APE016</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE016.message">결재자 혹은 합의자가
+ 결재경로상에 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE016.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE017.code">APE017</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE017.message">결재경로 내 휴직 또는
+ 퇴직자가 포함되어 있습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE017.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE018.code">APE018</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE018.message">외부 사용자는
+ 통보자로만 지정이 가능합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE018.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE019.code">APE019</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE019.message">결재경로에 포함될 수
+ 없는 사용자가 입력되었습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE019.measures"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div><br>
+ <div class="dan-border"></div>
+ <div class="module-font type01" id="box2"><span data-message-id="approvals.service.secusubmit.subject">보안결재상신</span>
+ </div>
+ <div class="module-font type02">
+ <p><span data-message-id="approvals.service.secusubmit.uri">/approval/api/v2.0/approvals/secu-submit</span></p>
+ </div>
+ <div class="module-font">
+ <p><span data-message-id="approvals.service.secusubmit.detail">보안 결재 옵션을 설정하여 대외비, 극비로 보안 결재를 상신할 수 있습니다.</span>
+ </p>
+ </div>
+ <div class="module-font type02">
+ <p>Request Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th>No.</th>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Mandatory</th>
+ <th>Parameter Type</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.properties">연계 시스템
+ ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.attribute">System-ID</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.header">Header</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.sample">CXXREST0001</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.note"></span></td>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.content.properties">결재본문</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.content.attribute">contents</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.content.sample">TEST</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.content.note"></span></td>
+ </tr>
+ <tr>
+ <td>3</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.properties">본문종류</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.attribute">contentsType</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.sample">TEXT</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.note">TEXT,HTML,MIME</span></td>
+ </tr>
+ <tr>
+ <td>4</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docSecuType.properties">보안문서타입</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docSecuType.attribute">docSecuType</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.secu.docSecuType.sample">CONFIDENTIAL</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docSecuType.note">CONFIDENTIAL,
+ CONFIDENTIAL_STRICT 지정 시 에러</span></td>
+ </tr>
+ <tr>
+ <td>5</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.notifyOption.properties">통보옵션</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.notifyOption.attribute">notifyOption</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.notifyOption.sample">0</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.notifyOption.note"><span
+ class="ellipsis">0: 통보자통보 결재경로포함 , 1: 모두통보 결재경로포함 </span><br><span
+ class="ellipsis">2: 통보자통보 결재경로포함안함 , 3: 모두통보 결재경로포함안함</span></span></td>
+ </tr>
+ <tr>
+ <td>6</td>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.properties">긴급여부</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.attribute">urgYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.sample">N</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.note"></span></td>
+ </tr>
+ <tr>
+ <td>7</td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.properties">상신일시</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.attribute">sbmDt</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.sbmDt.sample">20190524145033</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.note"></span></td>
+ </tr>
+ <tr>
+ <td>8</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.timeZone.properties">타임존</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.timeZone.attribute">timeZone</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.timeZone.sample">GMT</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.timeZone.note"></span></td>
+ </tr>
+ <tr>
+ <td>9</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docMngSaveCode.properties">문서관리저장코드</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docMngSaveCode.attribute">docMngSaveCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docMngSaveCode.sample">0</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.docMngSaveCode.note"><span
+ class="ellipsis">0 : 문서관리저장안함 </span><br><span class="ellipsis"> 1 :
+ 문서관리저장함</span></span></td>
+ </tr>
+ <tr>
+ <td>10</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.subject.properties">결재제목</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.subject.attribute">subject</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.subject.sample">근태신청</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.subject.note"></span></td>
+ </tr>
+ <tr>
+ <td>11</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.sbmLang.properties">상신언어</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.sbmLang.attribute">sbmLang</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmLang.sample">ko</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmLang.note">ko : korean ja :
+ japanese zh : chinese en : english</span></td>
+ </tr>
+ <tr>
+ <td>12</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.properties">연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.sample">TEST0000000000002120190523185902</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apInfId.note">32자리의 고유
+ 결재값</span></td>
+ </tr>
+ <tr>
+ <td>13</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.importantYn.properties">중요여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.importantYn.attribute">importantYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.n">N</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.importantYn.sample">Y</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.importantYn.note"></span></td>
+ </tr>
+ <tr>
+ <td>14</td>
+ <td class="left"><span data-message-id="approvals.service.request.aplns.properties">결재경로</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.aplns.attribute">aplns</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonstring">JSON String</span>
+ </td>
+ <td></td>
+ <td class="left"><span data-message-id="approvals.service.request.aplns.note"><span
+ class="ellipsis">상신자, 결재자 1명 이상 필수 </span><br><span class="ellipsis">※결재자/합의자 없이
+ 통보자만 지정된 결재경로 불가</span></span></td>
+ </tr>
+ <tr>
+ <td>15</td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.properties">EPID</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.attribute">epId</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.EPID.sample">M071015062623C9884</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td>16</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.properties">사용자ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.attribute">userId</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.userId.sample">qtp03</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.userId.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td>17</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.properties">사용자이메일</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.attribute">emailAddress</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.sample">qtp03@stage.sasmung.com</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.emailAddress.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td>18</td>
+ <td class="left"><span data-message-id="approvals.service.request.seq.properties">결재순번</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.seq.attribute">seq</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.seq.sample">0</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.seq.note">상신자의 경우 반드시 0,
+ 병렬결재(합의)자의 경우 seq 일치</span></td>
+ </tr>
+ <tr>
+ <td>19</td>
+ <td class="left"><span data-message-id="approvals.service.request.role.properties">설정구분</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.role.attribute">role</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.role.sample">0</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.role.note"><span
+ class="ellipsis">기안(0), 결재(1), 합의(2), 후결(3), 병렬합의(4), 병렬결재(7), 통보(9)
+ </span><br><span class="ellipsis"> (후결자는 최대 1명, 병렬결재 &amp; 병렬합의자는 최소 2명
+ 이상)</span></span></td>
+ </tr>
+ <tr>
+ <td>20</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnStatsCode.properties">처리구분</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnStatsCode.attribute">aplnStatsCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnStatsCode.sample">0</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnStatsCode.note">미결(0),
+ 결재(1), 반려(2), 전결(3), 자동결재(5)</span></td>
+ </tr>
+ <tr>
+ <td>21</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.arbPmtYn.properties">전결권한여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.arbPmtYn.attribute">arbPmtYn</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.arbPmtYn.sample">Y</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.arbPmtYn.note"></span></td>
+ </tr>
+ <tr>
+ <td>22</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.properties">본문수정권한여부</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.attribute">contentsMdfyPmtYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.sample">Y</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.note"></span></td>
+ </tr>
+ <tr>
+ <td>23</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnMdfyPmtYn.properties">경로변경권한여부</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnMdfyPmtYn.attribute">aplnMdfyPmtYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnMdfyPmtYn.sample">Y</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnMdfyPmtYn.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td>24</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.opinion.properties">상신의견</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.opinion.attribute">opinion</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.opinion.sample">근태결재입니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.opinion.note"></span></td>
+ </tr>
+ <tr>
+ <td>25</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.attachments.properties">첨부파일</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.attachments.attribute">attachments</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.n">N</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span
+ data-message-id="approvals.service.request.datatype.multipart">multipart/form-data</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.attachments.sample">multipart/form-data로 변환된
+ 바이너리 파일 및 파일명</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.attachments.note"></span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Response Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.result.properties">API 호출
+ 성공여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.result.attribute">result</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.result.sample">success</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.result.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submit.data.properties">결재연계ID정보</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submit.data.attribute">data</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonstring">JSON String</span>
+ </td>
+ <td></td>
+ <td class="left"><span data-message-id="approvals.service.response.submit.data.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.properties">결재연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.sample">TEST1A000A11ACa02CVQ1A0CA4CA33C1</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.apInfId.note">리턴받은 결재 아이디를
+ 이용하여, 상황조회 및 상신취소가 가능합니다.</span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02"><span>Sample</span></div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Request</th>
+ <th class="left">Response</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <pre>/approval/v2.0/approvals/secu-submit
+Content-Disposition: form-data; name="approval"
+ {
+ "aplns": [
+ {
+ "epId": "M071015062623C988403","seq": "0","role": "0","aplnStatsCode": "0",
+ "arbPmtYn": "Y","contentsMdfyPmtYn": "Y", "aplnMdfyPmtYn": "Y"
+ },
+ {
+ "epId": "M080325053708C989824","seq": "1","role": "1","aplnStatsCode": "0",
+ "arbPmtYn": "Y","contentsMdfyPmtYn": "Y", "aplnMdfyPmtYn": "Y"
+ }
+ ],
+ "contents": "TEST",
+ "contentsType": "TEXT",
+ "docSecuType": "CONFIDENTIAL",
+ "notifyOption": "0",
+ "urgYn": "N",
+ "sbmDt": "20190526121212",
+ "subject": "Test application",
+ "sbmLang": "ko",
+ "apInfId": "TEST0000000000002120190514143359",
+ "docMngSaveCode": "0",
+ "timeZone": "GMT+9"
+}
+Content-Disposition: form-data; name="attachments"; filename="attach1.jpg"
+Content-Disposition: form-data; name="attachments"; filename="attach2.txt"
+ </pre>
+ </td>
+ <td>
+ <pre>{
+ "result": "success",
+ "data": {
+ "apInfId": "TEST0000000000002120190514143359"
+ }
+}
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Error Code</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th><span data-message-id="common.type.message1">HTTP응답코드</span></th>
+ <th><span data-message-id="common.type.message2">에러코드</span></th>
+ <th class="left"><span data-message-id="common.type.message3">에러메시지</span></th>
+ <th class="left"><span data-message-id="common.type.message4">조치방안</span></th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE001.code">APE001</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.message">데이터가
+ 필요합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE002.code">APE002</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE002.message">입력된 데이터 형식이
+ 잘못되었습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE002.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE003.code">APE003</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE003.message">입력값이
+ 잘못되었습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE003.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE004.code">APE004</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE004.message">본문은 1MB를 초과할
+ 수 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE004.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE006.code">APE006</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE006.message">제목에는 엔터값이
+ 들어갈 수 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE006.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE007.code">APE007</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE007.message">제목은 300자를
+ 초과할 수 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE007.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.403">403</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE008.code">APE008</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE008.message">중복된 데이터가
+ 있습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE008.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE009.code">APE009</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE009.message">후결자는 1명만 지정
+ 가능합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE009.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE010.code">APE010</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE010.message">결재경로는 최소 2명
+ 이상입니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE010.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE011.code">APE011</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE011.message">결재경로는 최대 99명
+ 이하입니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE011.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE012.code">APE012</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE012.message">상신자를 제외한
+ 사용자들은 의견값을 설정할 수 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE012.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE013.code">APE013</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE013.message">미결 상태로 설정된
+ 사용자들은 처리일시값을 설정할 수 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE013.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE014.code">APE014</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE014.message">상신의견값의 길이가
+ 너무 깁니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE014.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE016.code">APE016</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE016.message">결재자 혹은 합의자가
+ 결재경로상에 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE016.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE017.code">APE017</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE017.message">결재경로 내 휴직 또는
+ 퇴직자가 포함되어 있습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE017.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE018.code">APE018</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE018.message">외부 사용자는
+ 통보자로만 지정이 가능합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE018.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE019.code">APE019</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE019.message">결재경로에 포함될 수
+ 없는 사용자가 입력되었습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE019.measures"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div><br>
+ <div class="dan-border"></div>
+ <div class="module-font type01" id="box3"><span data-message-id="approvals.service.detail.subject">결재상세상황조회</span>
+ </div>
+ <div class="module-font type02">
+ <p><span data-message-id="approvals.service.detail.uri">/approval/api/v2.0/approvals/{apInfId}/detail</span></p>
+ </div>
+ <div class="module-font">
+ <p><span data-message-id="approvals.service.detail.detail">결재 연계 ID를 이용하여 결재문서의 정보(결재현황, 결재문서 상태)를 상세 조회 할 수
+ 있습니다.</span></p>
+ </div>
+ <div class="module-font type02">
+ <p>Request Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th>No.</th>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Mandatory</th>
+ <th>Parameter Type</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.properties">연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.path">Path</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.sample">TEST0000000000002120190523185902</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apInfId.note">32자리의 고유
+ 결재값</span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Response Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.result.properties">API 호출
+ 성공여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.result.attribute">result</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.result.sample">success</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.result.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.data.properties">결재상세정보</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.data.attribute">data</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonstring">JSON String</span>
+ </td>
+ <td></td>
+ <td class="left"><span data-message-id="approvals.service.response.detail.data.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.properties">본문종류</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.attribute">contentsType</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.sample">TEXT</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.note">TEXT,HTML,MIME</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.properties">상신일시</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.attribute">sbmDt</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.sbmDt.sample">20190524145033</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.sbmLang.properties">상신언어</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.sbmLang.attribute">sbmLang</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmLang.sample">ko</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmLang.note">ko : korean ja :
+ japanese zh : chinese en : english</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.properties">연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.sample">TEST0000000000002120190523185902</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apInfId.note">32자리의 고유
+ 결재값</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.properties">연계 시스템
+ ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.attribute">System-ID</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.sample">CXXREST0001</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.notifyOption.properties">통보옵션</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.notifyOption.attribute">notifyOption</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.notifyOption.sample">0</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.notifyOption.note"><span
+ class="ellipsis">0: 통보자통보 결재경로포함 , 1: 모두통보 결재경로포함 </span><br><span
+ class="ellipsis">2: 통보자통보 결재경로포함안함 , 3: 모두통보 결재경로포함안함</span></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.properties">긴급여부</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.attribute">urgYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.sample">N</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.urgYn.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docSecuType.properties">보안문서타입</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docSecuType.attribute">docSecuType</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docSecuType.sample">PERSONAL</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.docSecuType.note">CONFIDENTIAL,
+ CONFIDENTIAL_STRICT 지정 시 에러</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.properties">결재상태정보</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.attribute">status</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.sample">1</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.note">암호화실패(-3),암호화중(-2),
+ 예약상신(-1),보류(0),진행중(1),완결(2),반려(3),상신취소(4),전결(5),후완결(6)</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.timeZone.properties">타임존</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.timeZone.attribute">timeZone</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.timeZone.sample">GMT</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.timeZone.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.subject.properties">결재제목</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.subject.attribute">subject</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.subject.sample">근태신청</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.subject.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.aplns.properties">결재경로</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.aplns.attribute">aplns</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonlist">JSONList</span></td>
+ <td class="left"></td>
+ <td class="left"><span data-message-id="approvals.service.request.detail.aplns.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.actPrssDt.properties">처리일시</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.actPrssDt.attribute">actPrssDt</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.actPrssDt.sample">20190521015954</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.actPrssDt.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.docOpenDt.properties">개봉일시</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.docOpenDt.attribute">docOpenDt</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.docOpenDt.sample">20190521015954</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.docOpenDt.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.docArvDt.properties">도착일시</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.docArvDt.attribute">docArvDt</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.docArvDt.sample">20190521015954</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.docArvDt.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.opinion.properties">상신의견</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.opinion.attribute">opinion</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.opinion.sample">근태결재입니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.opinion.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyCode.properties">결재관계자회사코드</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyCode.attribute">companyCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyCode.sample">C98</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyCode.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyName.properties">결재관계자회사명</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyName.attribute">companyName</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyName.sample">SAMSUNG</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyName.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgCode.properties">결재관계자총괄코드</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgCode.attribute">subOrgCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgCode.sample">C98S01</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgCode.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgName.properties">결재관계자총괄명</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgName.attribute">subOrgName</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgName.sample">개발총괄</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgName.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentCode.properties">결재관계자부서코드</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentCode.attribute">departmentCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentCode.sample">C98S0201</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentCode.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentName.properties">결재관계자부서명</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentName.attribute">departmentName</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentName.sample">개발1팀</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentName.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.epId.properties">결재관계자
+ epid</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.epId.attribute">epId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.epId.sample">M071015062623C988403</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.epId.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.emailAddress.properties">결재관계자
+ 메일주소</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.emailAddress.attribute">emailAddress</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.emailAddress.sample">qtp03@stage.samsung.com</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.emailAddress.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.name.properties">결재관계자
+ 이름</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.name.attribute">name</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.name.sample">qtp03</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.name.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleCode.properties">결재관계자
+ 직급코드</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleCode.attribute">titleCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleCode.sample">B3P1</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.titleCode.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleName.properties">결재관계자 직급명</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleName.attribute">titleName</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleName.sample">Engineer</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.titleName.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.seq.properties">결재순번</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.seq.attribute">seq</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.seq.sample">0</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.seq.note">상신자의 경우 반드시 0,
+ 병렬결재(합의)자의 경우 seq 일치</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.role.properties">설정구분</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.role.attribute">role</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.role.sample">0</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.role.note"><span
+ class="ellipsis">기안(0), 결재(1), 합의(2), 후결(3), 병렬합의(4), 병렬결재(7), 통보(9)
+ </span><br><span class="ellipsis"> (후결자는 최대 1명, 병렬결재 &amp; 병렬합의자는 최소 2명
+ 이상)</span></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnStatsCode.properties">처리구분</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnStatsCode.attribute">aplnStatsCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnStatsCode.sample">0</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnStatsCode.note">미결(0),
+ 결재(1), 반려(2), 전결(3), 자동결재(5)</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.prxAprYn.properties">대리결재자여부</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.prxAprYn.attribute">prxAprYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td><span data-message-id="approvals.service.response.aplns.prxAprYn.sample">N</span></td>
+ <td><span data-message-id="approvals.service.response.aplns.prxAprYn.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.dlgAprEpid.properties">위임결재자EPID</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.dlgAprEpid.attribute">dlgAprEpid</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.dlgAprEpid.sample">M345615062623C988000</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.dlgAprEpid.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.arbPmtYn.properties">전결권한여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.arbPmtYn.attribute">arbPmtYn</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.arbPmtYn.sample">Y</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.arbPmtYn.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.arbActYn.properties">전결수행여부</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.arbActYn.attribute">arbActYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.arbActYn.sample"></span></td>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.arbActYn.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnMdfyPmtYn.properties">경로변경권한여부</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.aplnMdfyPmtYn.attribute">aplnMdfyPmtYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnMdfyPmtYn.sample">Y</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.aplnMdfyPmtYn.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.aplnMdfyActYn.properties">경로수정수행여부</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.aplnMdfyActYn.attribute">aplnMdfyActYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td><span data-message-id="approvals.service.response.aplns.aplnMdfyActYn.sample"></span></td>
+ <td><span data-message-id="approvals.service.response.aplns.aplnMdfyActYn.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.properties">본문수정권한여부</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.attribute">contentsMdfyPmtYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.sample">Y</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsMdfyPmtYn.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.contenstsMdfyActYn.properties">본문수정수행여부</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.contenstsMdfyActYn.attribute">contentsMdfyActYn</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.contenstsMdfyActYn.sample"></span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.contenstsMdfyActYn.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.properties">첨부파일정보</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.attribute">attachments</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonlist">JSONList</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.attachments.sample"></span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.attachments.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.attachfileName.properties">첨부파일명</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.attachfileName.attribute">attachfileName</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonstring">JSON String</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.attachfileName.sample">test.txt</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.attachfileName.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.attachfileSize.properties">첨부파일사이즈</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.attachfileSize.attribute">attachfileSize</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.attachfileSize.sample">140</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.attachfileSize.note">byte단위</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.seq.properties">순번</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.seq.attribute">seq</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.attachments.seq.sample">0</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.attachments.seq.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.apid.properties">결재 ID</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.apid.attribute">apId</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apid.sample">test1e1703024e9cbdd0e79569dbb458</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.apid.note"></span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02"><span>Sample</span></div>
+ <div class="tbl-list01 kc-tbl">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Request</th>
+ <th class="left">Response</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <pre> <span data-message-id="approvals.service.detail.sample.request">/approval/api/v2.0/approvals/TEST0000000000002120190514143359/detail</span>
+ </pre>
+ </td>
+ <td>
+ <pre>{
+ "result": "success",
+ "data": {
+ "contentsType": "TEXT",
+ "sbmDt": "20231004061200",
+ "sbmLang": "ko",
+ "apInfId": "TEST0000000000002120190514143359",
+ "systemId": "KCC98REST00008",
+ "notifyOption": "1",
+ "urgYn": "0",
+ "docSecuType": "PERSONAL",
+ "status": "1",
+ "timeZone": "GMT",
+ "subject": "Test application",
+ "aplns": [
+ {
+ "actPrssDt": "20231004061200",
+ "docOpenDt": null,
+ "docArvDt": "20231004061200",
+ "opinion": "",
+ "companyCode": "C98",
+ "companyName": "삼성 Intranet",
+ "departmentCode": "H66329",
+ "departmentName": "autotest",
+ "epId": "M071015062623C988403",
+ "emailAddress": "qtp03@stage.samsung.com",
+ "userId": null,
+ "name": "qtp03",
+ "jobPositionCode": "J2",
+ "jobPosition": "사원",
+ "subOrgCode": "C98S02",
+ "subOrgName": "개발총괄",
+ "seq": "0",
+ "role": "0",
+ "aplnStatsCode": "0",
+ "arbPmtYn": "Y",
+ "arbActYn": "N",
+ "rsrvSbmDt": null,
+ "subSeq": null,
+ "titleCode": "J2",
+ "titleName": "사원",
+ "dlgAprEpid": null,
+ "aplnMdfyPmtYn": "Y",
+ "prxAprYn": "N",
+ "contentsMdfyPmtYn": "Y",
+ "contentsMdfyActYn": "N",
+ "aplnMdfyActYn": "N"
+ },
+ {
+ "actPrssDt": "",
+ "docOpenDt": null,
+ "docArvDt": "20231004061200",
+ "opinion": "",
+ "companyCode": "C60",
+ "companyName": "삼성SDS",
+ "departmentCode": "V8TESTGROUP",
+ "departmentName": "V8 테스트그룹",
+ "epId": "M071015063405C983280",
+ "emailAddress": "qtp06@stage.samsung.com",
+ "userId": null,
+ "name": "qtp06",
+ "jobPositionCode": "G0H0",
+ "jobPosition": "자문역",
+ "subOrgCode": "ASIZE01",
+ "subOrgName": "첨부용량",
+ "seq": "1",
+ "role": "1",
+ "aplnStatsCode": "0",
+ "arbPmtYn": "Y",
+ "arbActYn": "N",
+ "rsrvSbmDt": null,
+ "subSeq": null,
+ "titleCode": "G0H0",
+ "titleName": "자문역",
+ "dlgAprEpid": null,
+ "aplnMdfyPmtYn": "Y",
+ "prxAprYn": "N",
+ "contentsMdfyPmtYn": "Y",
+ "contentsMdfyActYn": "N",
+ "aplnMdfyActYn": "N"
+ }
+ ],
+ "attachments": [
+ {
+ "seq": "0",
+ "attachfileName": "test.txt",
+ "attachfileSize": 23
+ }
+ ]
+ }
+}
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Error Code</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th><span data-message-id="common.type.message1">HTTP응답코드</span></th>
+ <th><span data-message-id="common.type.message2">에러코드</span></th>
+ <th class="left"><span data-message-id="common.type.message3">에러메시지</span></th>
+ <th class="left"><span data-message-id="common.type.message4">조치방안</span></th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.404">404</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE020.code">APE020</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE020.message">해당 연계 ID의
+ 결재문서는 존재하지 않습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE020.measures"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div><br>
+ <div class="dan-border"></div>
+ <div class="module-font type01" id="box4"><span data-message-id="approvals.service.content.subject">결재본문조회</span>
+ </div>
+ <div class="module-font type02">
+ <p><span data-message-id="approvals.service.content.uri">/approval/api/v2.0/approvals/{apInfId}/content</span>
+ </p>
+ </div>
+ <div class="module-font">
+ <p><span data-message-id="approvals.service.content.detail">결재 연계 ID를 이용하여 결재문서의 본문을 조회 할 수 있습니다.</span></p>
+ </div>
+ <div class="module-font type02">
+ <p>Request Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th>No.</th>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Mandatory</th>
+ <th>Parameter Type</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.properties">연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.path">Path</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.sample">TEST0000000000002120190523185902</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apInfId.note">32자리의 고유
+ 결재값</span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Response Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.result.properties">API 호출
+ 성공여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.result.attribute">result</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.result.sample">success</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.result.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.content.data.properties">결재본문정보</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.content.data.attribute">data</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonstring">JSON String</span>
+ </td>
+ <td></td>
+ <td class="left"><span data-message-id="approvals.service.response.content.data.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.properties">본문종류</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.attribute">contentsType</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.sample">TEXT</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.contentsType.note">TEXT,HTML,MIME</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.content.properties">결재본문</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.content.attribute">contents</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.content.sample">TEST</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.content.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.properties">결재연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.sample">TEST1A000A11ACa02CVQ1A0CA4CA33C1</span>
+ </td>
+ <td class="left"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02"><span>Sample</span></div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Request</th>
+ <th class="left">Response</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <pre>/approval/api/v2.0/approvals/TEST0000000000002120190514143359/content
+ </pre>
+ </td>
+ <td>
+ <pre>{
+ "result": "success",
+ "data": {
+ "contents": "test",
+ "contentType": "TEXT",
+ "apInfId": "TEST0000000000002120190521110026"
+ }
+}
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Error Code</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th><span data-message-id="common.type.message1">HTTP응답코드</span></th>
+ <th><span data-message-id="common.type.message2">에러코드</span></th>
+ <th class="left"><span data-message-id="common.type.message3">에러메시지</span></th>
+ <th class="left"><span data-message-id="common.type.message4">조치방안</span></th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.404">404</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE020.code">APE020</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE020.message">해당 연계 ID의
+ 결재문서는 존재하지 않습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE020.measures"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div><br>
+ <div class="dan-border"></div>
+ <div class="module-font type01" id="box5"><span data-message-id="approvals.service.status.subject">결재상황조회</span>
+ </div>
+ <div class="module-font type02">
+ <p><span data-message-id="approvals.service.status.uri">/approval/api/v2.0/approvals/status</span></p>
+ </div>
+ <div class="module-font">
+ <p><span data-message-id="approvals.service.status.detail">결재 연계 ID를 이용하여 결재문서의 상황을 조회 할 수 있습니다.(최대
+ 1000건)</span></p>
+ </div>
+ <div class="module-font type02">
+ <p>Request Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th>No.</th>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Mandatory</th>
+ <th>Parameter Type</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.properties">연계 시스템
+ ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.attribute">System-ID</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.header">Header</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.sample">CXXREST0001</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.note"></span></td>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td class="left"><span data-message-id="approvals.service.request.apinfids.properties">연계 ID
+ 리스트</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apinfids.attribute">apinfids</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonlist">JSONList</span></td>
+ <td></td>
+ <td class="left"><span data-message-id="approvals.service.request.apinfids.note">최대 1000개</span>
+ </td>
+ </tr>
+ <tr>
+ <td>3</td>
+ <td class="left"><span data-message-id="approvals.service.request.apinfid.apinfid.properties">연계
+ ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apinfid.apinfid.attribute">apinfid</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.body">Body</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td></td>
+ <td class="left"><span data-message-id="approvals.service.request.apinfid.apinfid.note">최대
+ 1000개</span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Response Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.result.properties">API 호출
+ 성공여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.result.attribute">result</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.result.sample">success</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.result.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.data.properties">결재상세정보</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.data.attribute">data</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonlist">JSONList</span></td>
+ <td></td>
+ <td class="left"><span data-message-id="approvals.service.response.detail.data.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.properties">결재연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.sample">TEST1A000A11ACa02CVQ1A0CA4CA33C1</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.apInfId.note">리턴받은 결재 아이디를
+ 이용하여, 상황조회 및 상신취소가 가능합니다.</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.docChgNum.properties">문서변경횟수</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.docChgNum.attribute">docChgNum</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.docChgNum.sample">0</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.docChgNum.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.properties">결재상태정보</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.attribute">status</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.sample">1</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.note">암호화실패(-3),암호화중(-2),
+ 예약상신(-1),보류(0),진행중(1),완결(2),반려(3),상신취소(4),전결(5),후완결(6)</span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02"><span>Sample</span></div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Request</th>
+ <th class="left">Response</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <pre>/approval/v2.0/approvals/status
+
+body:
+[
+{"apinfid":"TEST0000000000002120190521155428"},
+{"apinfid":"TEST0000000000002120190521155422"}
+]
+ </pre>
+ </td>
+ <td>
+ <pre>{
+ "result": "success",
+ "data": [
+ {
+ "apInfId": "TEST0000000000002120190521155428",
+ "docChgNum": "0",
+ "status": "1"
+ },
+ {
+ "apInfId": "TEST0000000000002120190521155422",
+ "docChgNum": "1",
+ "status": "2"
+ }
+ ]
+}
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Error Code</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th><span data-message-id="common.type.message1">HTTP응답코드</span></th>
+ <th><span data-message-id="common.type.message2">에러코드</span></th>
+ <th><span data-message-id="common.type.message3">에러메시지</span></th>
+ <th><span data-message-id="common.type.message4">조치방안</span></th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE022.code">APE022</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE022.message">최대 1000개의
+ 요청만 가능합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE022.measures"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div><br>
+ <div class="dan-border"></div>
+ <div class="module-font type01" id="box6"><span data-message-id="approvals.service.apinfids.subject">결재연계ID조회</span>
+ </div>
+ <div class="module-font type02">
+ <p><span data-message-id="approvals.service.apinfids.uri">/approval/api/v2.0/approvals/apinfids</span></p>
+ </div>
+ <div class="module-font">
+ <p><span data-message-id="approvals.service.apinfids.detail">결재 ID를 이용하여 결재연계 ID를 조회 할 수 있습니다.</span></p>
+ </div>
+ <div class="module-font type02">
+ <p>Request Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th>No.</th>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Mandatory</th>
+ <th>Parameter Type</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.properties">연계 시스템
+ ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.attribute">System-ID</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.header">Header</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.sample">CXXREST0001</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.note"></span></td>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td class="left"><span data-message-id="approvals.service.request.apId.properties">결재 ID</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apId.attribute">apId</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.query">Query</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apId.sample">test1e1703024e9cbdd0e79569dbb458</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apId.note"></span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Response Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.result.properties">API 호출
+ 성공여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.result.attribute">result</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.result.sample">success</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.result.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submit.data.properties">결재연계ID정보</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submit.data.attribute">data</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonstring">JSON String</span>
+ </td>
+ <td></td>
+ <td class="left"><span data-message-id="approvals.service.response.submit.data.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.apId.properties">결재 ID</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apId.attribute">apId</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apId.sample">test1e1703024e9cbdd0e79569dbb458</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apId.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.properties">연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.sample">TEST0000000000002120190523185902</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apInfId.note">32자리의 고유
+ 결재값</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.properties">연계 시스템
+ ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.systemid.attribute">systemId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.sample">CXXREST0001</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.note"></span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02"><span>Sample</span></div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Request</th>
+ <th class="left">Response</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <pre>/approval/api/v2.0/approvals/apinfids?apId=testd269bd3743ca8a0b4c0e7d9de5af
+ </pre>
+ </td>
+ <td>
+ <pre>{
+ "result": "success",
+ "data": {
+ "apId": "test1e1703024e9cbdd0e79569dbb458",
+ "apInfId": "TEST0000000000002120190517133353",
+ "systemId": "C60REST0001"
+ }
+}
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Error Code</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th><span data-message-id="common.type.message1">HTTP응답코드</span></th>
+ <th><span data-message-id="common.type.message2">에러코드</span></th>
+ <th class="left"><span data-message-id="common.type.message3">에러메시지</span></th>
+ <th class="left"><span data-message-id="common.type.message4">조치방안</span></th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE001.code">APE001</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.message">데이터가
+ 필요합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.404">404</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE021.code">APE021</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE021.message">해당 결재 ID의
+ 결재문서는 존재하지 않습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE021.measures"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div><br>
+ <div class="dan-border"></div>
+ <div class="module-font type01" id="box7"><span
+ data-message-id="approvals.service.submission.subject">상신함리스트조회</span></div>
+ <div class="module-font type02">
+ <p><span data-message-id="approvals.service.submission.uri">/approval/api/v2.0/approvals/submission</span></p>
+ </div>
+ <div class="module-font">
+ <p><span data-message-id="approvals.service.submission.detail">요청 연계시스템ID로 연계 상신처리된 상신자의 상신함의 정보를 조회 할 수
+ 있습니다.</span></p>
+ </div>
+ <div class="module-font type02">
+ <p>Request Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th>No.</th>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Mandatory</th>
+ <th>Parameter Type</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.properties">연계 시스템
+ ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.attribute">System-ID</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.header">Header</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.sample">CXXREST0001</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.note"></span></td>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.properties">EPID</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.attribute">epId</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.query">Query</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.EPID.sample">M071015062623C9884</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td>3</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.properties">사용자ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.attribute">userId</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.query">Query</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.userId.sample">qtp03</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.userId.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td>4</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.properties">사용자이메일</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.attribute">emailAddress</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.query">Query</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.sample">qtp03@stage.sasmung.com</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.emailAddress.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Response Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.result.properties">API 호출
+ 성공여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.result.attribute">result</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.result.sample">success</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.result.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submission.data.properties">결재연계정보</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submission.data.attribute">data</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonlist">JSONList</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submission.data.sample"></span></td>
+ <td class="left"><span data-message-id="approvals.service.response.submission.data.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.subject.properties">결재제목</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.subject.attribute">subject</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.subject.sample">근태신청</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.subject.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.properties">연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.sample">TEST0000000000002120190523185902</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apInfId.note">32자리의 고유
+ 결재값</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyCode.properties">결재관계자회사코드</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyCode.attribute">companyCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyCode.sample">C98</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyCode.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyName.properties">결재관계자회사명</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyName.attribute">companyName</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyName.sample">SAMSUNG</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.companyName.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgCode.properties">결재관계자총괄코드</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgCode.attribute">subOrgCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgCode.sample">C98S01</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgCode.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgName.properties">결재관계자총괄명</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgName.attribute">subOrgName</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgName.sample">개발총괄</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.subOrgName.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentCode.properties">결재관계자부서코드</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentCode.attribute">departmentCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentCode.sample">C98S0201</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentCode.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentName.properties">결재관계자부서명</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentName.attribute">departmentName</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentName.sample">개발1팀</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.departmentName.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleCode.properties">결재관계자
+ 직급코드</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleCode.attribute">titleCode</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleCode.sample">B3P1</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.titleCode.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleName.properties">결재관계자 직급명</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleName.attribute">titleName</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.titleName.sample">Engineer</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.titleName.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.properties">EPID</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.attribute">epId</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.EPID.sample">M071015062623C9884</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.aplns.name.properties">결재관계자
+ 이름</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.name.attribute">name</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.aplns.name.sample">qtp03</span></td>
+ <td class="left"></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.properties">상신일시</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.attribute">sbmDt</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.sbmDt.sample">20190524145033</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.sbmDt.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.properties">결재상태정보</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.attribute">status</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.sample">1</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.detail.status.note">암호화실패(-3),암호화중(-2),
+ 예약상신(-1),보류(0),진행중(1),완결(2),반려(3),상신취소(4),전결(5),후완결(6)</span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02"><span>Sample</span></div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Request</th>
+ <th class="left">Response</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <pre> <span data-message-id="approvals.service.submission.sample.request">/approval/api/v2.0/approvals/submission?epId=M071015062623C988403</span>
+ </pre>
+ </td>
+ <td>
+ <pre>{
+ "result": "success",
+ "data": [
+ {
+ "subject": "Test application",
+ "apInfId": "TEST0000000000002120190514143359",
+ "compCode": "C98",
+ "compName": "삼성 Intranet",
+ "deptCode": "H66329",
+ "deptName": "autotest",
+ "jobPosition": "사원",
+ "jobPositionCode": "J2",
+ "subOrgCode": "C98S02",
+ "subOrgName": "개발총괄",
+ "epId": "M071015062623C988403",
+ "name": "qtp03",
+ "sbmDt": "20231004061200",
+ "status": "1",
+ "companyCode": "C98",
+ "companyName": "삼성 Intranet",
+ "departmentCode": "H66329",
+ "departmentName": "autotest",
+ "titleName": "사원",
+ "titleCode": "J2"
+ },
+ {
+ "subject": "Test application",
+ "apInfId": "TEST0000000000002120190514143359",
+ "compCode": "C98",
+ "compName": "삼성 Intranet",
+ "deptCode": "H66329",
+ "deptName": "autotest",
+ "jobPosition": "사원",
+ "jobPositionCode": "J2",
+ "subOrgCode": "C98S02",
+ "subOrgName": "개발총괄",
+ "epId": "M071015062623C988403",
+ "name": "qtp03",
+ "sbmDt": "20231004061200",
+ "status": "1",
+ "companyCode": "C98",
+ "companyName": "삼성 Intranet",
+ "departmentCode": "H66329",
+ "departmentName": "autotest",
+ "titleName": "사원",
+ "titleCode": "J2"
+ }
+ ]
+}
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Error Code</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th><span data-message-id="common.type.message1">HTTP응답코드</span></th>
+ <th><span data-message-id="common.type.message2">에러코드</span></th>
+ <th class="left"><span data-message-id="common.type.message3">에러메시지</span></th>
+ <th class="left"><span data-message-id="common.type.message4">조치방안</span></th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <tbody></tbody>
+ <tbody>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE001.code">APE001</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.message">데이터가
+ 필요합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.measures"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div><br>
+ <div class="dan-border"></div>
+ <div class="module-font type01" id="box8"><span
+ data-message-id="approvals.service.apinfidinfos.subject">연계이력조회</span></div>
+ <div class="module-font type02">
+ <p><span data-message-id="approvals.service.apinfidinfos.uri">/approval/api/v2.0/approvals/apinfidinfos</span>
+ </p>
+ </div>
+ <div class="module-font">
+ <p><span data-message-id="approvals.service.apinfidinfos.detail">요청 연계시스템ID에서 상신된 결재문서의 연계 이력을 조회 할 수 있습니다. 조회
+ 기준일시 이하 조회 기간(분) 동안 호출 계정의 결재건 정보 리턴 (상신, 결재승인, 경로변경, 본문수정 등 결재건 처리 시)</span></p>
+ </div>
+ <div class="module-font type02">
+ <p>Request Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th>No.</th>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Mandatory</th>
+ <th>Parameter Type</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.properties">연계 시스템
+ ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.attribute">System-ID</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.header">Header</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.sample">CXXREST0001</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.note"></span></td>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.endDate.properties">조회기준일시</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.endDate.attribute">endDate</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.query">Query</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.endDate.sample">201905211500</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.endDate.note"><span
+ class="ellipsis">조회의 기준시간 해당 일자 이하로 조회</span><br><span class="ellipsis">yyyyMMddHHmm
+ 형식</span></span></td>
+ </tr>
+ <tr>
+ <td>3</td>
+ <td class="left"><span data-message-id="approvals.service.request.page.properties">페이지번호</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.page.attribute">page</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.n">N</span></td>
+ <td><span data-message-id="approvals.service.request.type.query">Query</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.page.sample">1</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.page.note">paging 처리</span>
+ </td>
+ </tr>
+ <tr>
+ <td>4</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.duration.properties">조회기간</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.duration.attribute">duration</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.n">N</span></td>
+ <td><span data-message-id="approvals.service.request.type.query">Query</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.duration.sample">1</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.duration.note"><span
+ class="ellipsis">단위 : 분 / 최소 1분 ~ 최대 60분 </span><br><span class="ellipsis">default :
+ 1</span></span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Response Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.result.properties">API 호출
+ 성공여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.result.attribute">result</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.result.sample">success</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.result.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.seq.properties">순번</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.seq.attribute">seq</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.seq.sample">1</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.seq.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submission.data.properties">결재연계정보</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submission.data.attribute">data</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonlist">JSONList</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submission.data.sample"></span></td>
+ <td class="left"><span data-message-id="approvals.service.response.submission.data.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.seq.properties">순번</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.seq.attribute">seq</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.seq.sample">1</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.seq.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.properties">연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.sample">TEST0000000000002120190523185902</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apInfId.note">32자리의 고유
+ 결재값</span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.totalCount.properties">전체 데이터
+ 개수</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.totalCount.attribute">totalCount</span></td>
+ <td><span data-message-id="approvals.service.response.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.totalCount.sample">2</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.totalCount.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.totalPage.properties">전체 페이지
+ 개수</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.totalPage.attribute">seq</span></td>
+ <td><span data-message-id="approvals.service.response.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.totalPage.sample">1</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.totalPage.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.currentPage.properties">페이지번호</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.currentPage.attribute">seq</span></td>
+ <td><span data-message-id="approvals.service.response.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.currentPage.sample">1</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.currentPage.note"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02"><span>Sample</span></div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Request</th>
+ <th class="left">Response</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <pre>/approval/v2.0/approvals/apinfidinfos?endDate=201905211500
+ </pre>
+ </td>
+ <td>
+ <pre>{
+ "result": "success",
+ "data": [{
+ "seq": 1,
+ "apInfId": "TEST0000000000002120190521155428",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ },
+ {
+ "seq": 2,
+ "apInfId": "TEST0000000000002220190521155428",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ },
+ {
+ "seq": 3,
+ "apInfId": "TEST0000000000002220190521155428",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ },
+ {
+ "seq": 4,
+ "apInfId": "TEST0000000000002120190521155759",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ },
+ {
+ "seq": 5,
+ "apInfId": "TEST0000000000002220190521155759",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ },
+ {
+ "seq": 6,
+ "apInfId": "TEST0000000000002220190521155759",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ }
+ ]
+}
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Error Code</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th><span data-message-id="common.type.message1">HTTP응답코드</span></th>
+ <th><span data-message-id="common.type.message2">에러코드</span></th>
+ <th class="left"><span data-message-id="common.type.message3">에러메시지</span></th>
+ <th class="left"><span data-message-id="common.type.message4">조치방안</span></th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE001.code">APE001</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.message">데이터가
+ 필요합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE002.code">APE002</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE002.message">입력된 데이터 형식이
+ 잘못되었습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE002.measures"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div><br>
+ <div class="dan-border"></div>
+ <div class="module-font type01" id="box9"><span data-message-id="approvals.service.cancel.subject">상신취소</span></div>
+ <div class="module-font type02">
+ <p><span data-message-id="approvals.service.cancel.uri">/approval/api/v2.0/approvals/{apInfId}/cancel</span></p>
+ </div>
+ <div class="module-font">
+ <p><span data-message-id="approvals.service.cancel.detail">연계 ID에 해당하는 결재문서를 상신취소처리 할 수 있습니다.</span></p>
+ </div>
+ <div class="module-font type02">
+ <p>Request Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th>No.</th>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Mandatory</th>
+ <th>Parameter Type</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.properties">연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.path">Path</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.apInfId.sample">TEST0000000000002120190523185902</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.apInfId.note">32자리의 고유
+ 결재값</span></td>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.cancelopinion.properties">상신취소의견</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.cancelopinion.attribute">opinion</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.query">Query</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.cancelopinion.sample">상신취소드립니다</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.cancelopinion.note"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Response Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Data Type</th>
+ <th>Sample Data</th>
+ <th>Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.result.properties">API 호출
+ 성공여부</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.result.attribute">result</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.result.sample">success</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.result.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submit.data.properties">결재연계ID정보</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.submit.data.attribute">data</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.jsonstring">JSON String</span>
+ </td>
+ <td></td>
+ <td class="left"><span data-message-id="approvals.service.response.submit.data.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.properties">결재연계ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.attribute">apInfId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.apInfId.sample">TEST1A000A11ACa02CVQ1A0CA4CA33C1</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.apInfId.note">리턴받은 결재 아이디를
+ 이용하여, 상황조회 및 상신취소가 가능합니다.</span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02"><span>Sample</span></div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Request</th>
+ <th class="left">Response</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <pre>/approval/api/v2.0/approvals/TEST0000000000002120190521110026/cancel?opinion=reject
+ </pre>
+ </td>
+ <td>
+ <pre>{
+ "result": "success",
+ "data": {
+ "apInfId": "TEST0000000000002120190521110026"
+ }
+}
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Error Code</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th><span data-message-id="common.type.message1">HTTP응답코드</span></th>
+ <th><span data-message-id="common.type.message2">에러코드</span></th>
+ <th class="left"><span data-message-id="common.type.message3">에러메시지</span></th>
+ <th class="left"><span data-message-id="common.type.message4">조치방안</span></th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE001.code">APE001</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.message">데이터가
+ 필요합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE002.code">APE002</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE002.message">입력된 데이터 형식이
+ 잘못되었습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE002.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.404">404</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE020.code">APE020</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE020.message">해당 연계 ID의
+ 결재문서는 존재하지 않습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE020.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE023.code">APE023</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE023.message">해당 결재 ID의
+ 결재문서는 이미 완결 혹은 상신취소처리 되었습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE023.measures"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div><br>
+ <div class="dan-border"></div>
+ <div class="module-font type01" id="box11"><span
+ data-message-id="approvals.service.ownaplnlist.subject">저장된결재경로목록조회</span></div>
+ <div class="module-font type02">
+ <p><span data-message-id="approvals.service.ownaplnlist.uri">/approval/api/v2.0/approvals/ownaplnlist</span></p>
+ </div>
+ <div class="module-font">
+ <p><span data-message-id="approvals.service.ownaplnlist.detail">개인별 저장된 결재경로 목록을 조회 할 수 있습니다.</span></p>
+ </div>
+ <div class="module-font type02">
+ <p>Request Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th>No.</th>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Mandatory</th>
+ <th>Parameter Type</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.properties">연계 시스템
+ ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.attribute">System-ID</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.header">Header</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.sample">CXXREST0001</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.note"></span></td>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.properties">EPID</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.attribute">epId</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.n">N</span></td>
+ <td><span data-message-id="approvals.service.request.type.query">Query</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.EPID.sample">M071015062623C9884</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td>3</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.brity.properties">사용자ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.brity.attribute">userId</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.n">N</span></td>
+ <td><span data-message-id="approvals.service.request.type.query">Query</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.knox.sample">test</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.userId.brity.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td>4</td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.brity.properties">사용자이메일</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.brity.attribute">emailAddress</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.mandatory.n">N</span></td>
+ <td><span data-message-id="approvals.service.request.type.query">Query</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.knox.sample">test@stage.samsung.com</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.emailAddress.brity.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Response Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Data Type</th>
+ <th>Sample Data</th>
+ <th>Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnId.properties">저장된
+ 결재경로ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnId.attribute">pslAplnId</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnId.sample">168cf04db4aa4e64b010f434d9088312</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnId.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnNm.properties">저장된
+ 결재경로이름</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnNm.attribute">pslAplnNm</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnNm.sample">TEST</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnNm.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.ownEpid.properties">등록자EPID</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.ownEpid.attribute">ownEpid</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.ownEpid.sample">M201026053604S204412</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.ownEpid.note"></span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02"><span>Sample</span></div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Request</th>
+ <th class="left">Response</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <pre>/approval/api/v2.0/approvals/ownaplnlist?emailAddress=test@stage.samsung.com
+ </pre>
+ </td>
+ <td>
+ <pre>{
+ "result": "success",
+ "data": [
+ {
+ "pslAplnId": "168cf04db4aa4e64b010f434d9088312",
+ "pslAplnNm": "TEST",
+ "ownEpid": "M201026053604S204412"
+ },
+ {
+ "pslAplnId": "876f1522d1e440288f5ad4fbda42d712",
+ "pslAplnNm": "TEST2",
+ "ownEpid": "M201026053604S204412"
+ }
+ ]
+}
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Error Code</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th><span data-message-id="common.type.message1">HTTP응답코드</span></th>
+ <th><span data-message-id="common.type.message2">에러코드</span></th>
+ <th class="left"><span data-message-id="common.type.message3">에러메시지</span></th>
+ <th class="left"><span data-message-id="common.type.message4">조치방안</span></th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.400">400</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE001.code">APE001</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.message">데이터가
+ 필요합니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE001.measures"></span>
+ </td>
+ </tr>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.404">404</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE030.code">APE030</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE030.message">저장된 결재경로가
+ 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE030.measures"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div><br>
+ <div class="dan-border"></div>
+ <div class="module-font type01" id="box12"><span
+ data-message-id="approvals.service.ownaplndetail.subject">저장된결재경로상세조회</span></div>
+ <div class="module-font type02">
+ <p><span
+ data-message-id="approvals.service.ownaplndetail.uri">/approval/api/v2.0/approvals/{pslAplnId}/ownaplndetail</span>
+ </p>
+ </div>
+ <div class="module-font">
+ <p><span data-message-id="approvals.service.ownaplndetail.detail">개인별 저장된 결재경로 목록을 조회 할 수 있습니다.</span></p>
+ </div>
+ <div class="module-font type02">
+ <p>Request Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th>No.</th>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Mandatory</th>
+ <th>Parameter Type</th>
+ <th>Data Type</th>
+ <th class="left">Sample Data</th>
+ <th class="left">Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="3%;">
+ <col width="15%;">
+ <col width="15%;">
+ <col width="7%;">
+ <col width="10%;">
+ <col width="8%;">
+ <col width="16%;">
+ <col width="26%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.properties">연계 시스템
+ ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.attribute">System-ID</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.y">Y</span></td>
+ <td><span data-message-id="approvals.service.request.type.header">Header</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.systemid.sample">CXXREST0001</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.systemid.note"></span></td>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td class="left"><span data-message-id="approvals.service.request.pslAplnId.properties">저장된
+ 결재경로ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.pslAplnId.attribute">pslAplnId</span></td>
+ <td><span data-message-id="approvals.service.request.mandatory.n">N</span></td>
+ <td><span data-message-id="approvals.service.request.type.path">Path</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.pslAplnId.sample">168cf04db4aa4e64b010f434d9088312</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.pslAplnId.note"></span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Response Parameter</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Properties</th>
+ <th class="left">Attribute</th>
+ <th>Data Type</th>
+ <th>Sample Data</th>
+ <th>Note</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="15%;">
+ <col width="15%;">
+ <col width="10%;">
+ <col width="30%;">
+ <col width="30%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnId.properties">저장된
+ 결재경로ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnId.attribute">pslAplnId</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnId.sample">168cf04db4aa4e64b010f434d9088312</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.pslAplnId.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.properties">EPID</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.attribute">epId</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.EPID.sample">M071015062623C9884</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.EPID.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.response.seq.properties">순번</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.response.seq.attribute">seq</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.seq.sample">1</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.seq.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span data-message-id="approvals.service.request.role.properties">설정구분</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.role.attribute">role</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.role.sample">0</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.role.note"><span
+ class="ellipsis">기안(0), 결재(1), 합의(2), 후결(3), 병렬합의(4), 병렬결재(7), 통보(9)
+ </span><br><span class="ellipsis"> (후결자는 최대 1명, 병렬결재 &amp; 병렬합의자는 최소 2명
+ 이상)</span></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.fnm.properties">국문이름</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.fnm.attribute">fnm</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.fnm.sample">test</span></td>
+ <td class="left"><span data-message-id="approvals.service.response.ownaplnlist.fnm.note"></span>
+ </td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.enFnm.properties">영문이름</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.enFnm.attribute">enFnm</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.enFnm.sample">OneTest</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.response.ownaplnlist.enFnm.note"></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.brity.properties">사용자이메일</span>
+ </td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.brity.attribute">emailAddress</span>
+ </td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.emailAddress.knox.sample">test@stage.samsung.com</span>
+ </td>
+ <td class="left"><span data-message-id="approvals.service.request.emailAddress.brity.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ <tr>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.brity.properties">사용자ID</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.brity.attribute">userId</span></td>
+ <td><span data-message-id="approvals.service.request.datatype.string">String</span></td>
+ <td class="left"><span
+ data-message-id="approvals.service.request.userId.knox.sample">test</span></td>
+ <td class="left"><span data-message-id="approvals.service.request.userId.brity.note"><span
+ class="ellipsis">속성 한가지와 조합하여 사용 우선순위 </span><br><span class="ellipsis"> userId &gt;
+ epId &gt; emailAddress</span></span></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02"><span>Sample</span></div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th class="left">Request</th>
+ <th class="left">Response</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="50%;">
+ <col width="50%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <pre>/approval/api/v2.0/approvals/168cf04db4aa4e64b010f434d9088312/ownaplndetail
+ </pre>
+ </td>
+ <td>
+ <pre>{
+ "result": "success",
+ "data": [
+ {
+ "pslAplnId": "168cf04db4aa4e64b010f434d9088312",
+ "epId": "M201026053604S204412",
+ "seq": "0",
+ "role": "0",
+ "fnm": "test",
+ "enFnm": "OneTest",
+ "emailAddress": "test@stage.samsung.com",
+ "userId": "test"
+ },
+ {
+ "pslAplnId": "168cf04db4aa4e64b010f434d9088312",
+ "epId": "M201026053604S204412",
+ "seq": "1",
+ "role": "1",
+ "fnm": "test2",
+ "enFnm": "TwoTest",
+ "emailAddress": "test2@stage.samsung.com",
+ "userId": "test2"
+ },
+ {
+ "pslAplnId": "168cf04db4aa4e64b010f434d9088312",
+ "epId": "M201026053604S204412",
+ "seq": "2",
+ "role": "1",
+ "fnm": "test3",
+ "enFnm": "ThreeTest",
+ "emailAddress": "test3@stage.samsung.com",
+ "userId": "test3"
+ }
+ ]
+}
+ </pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="module-font type02">
+ <p>Error Code</p>
+ </div>
+ <div class="tbl-list01 kc-tbl text-full">
+ <div class="tbl-list-head">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th><span data-message-id="common.type.message1">HTTP응답코드</span></th>
+ <th><span data-message-id="common.type.message2">에러코드</span></th>
+ <th class="left"><span data-message-id="common.type.message3">에러메시지</span></th>
+ <th class="left"><span data-message-id="common.type.message4">조치방안</span></th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+ <div class="tbl-list-body">
+ <table>
+ <colgroup>
+ <col width="10%;">
+ <col width="10%;">
+ <col width="40%;">
+ <col width="40%;">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td><span data-message-id="approvals.service.errorcode.statuscode.404">404</span></td>
+ <td><span data-message-id="approvals.service.errorcode.APE030.code">APE030</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE030.message">저장된 결재경로가
+ 없습니다.</span></td>
+ <td class="left"><span data-message-id="approvals.service.errorcode.APE030.measures"></span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/lib/knox-api/approval/approval.ts b/lib/knox-api/approval/approval.ts
new file mode 100644
index 00000000..6a21e113
--- /dev/null
+++ b/lib/knox-api/approval/approval.ts
@@ -0,0 +1,603 @@
+"use server"
+
+// Knox API Approval 서버 액션들
+// 가이드: lib/knox-api/approval/guide.html
+
+// ========== 타입 정의 ==========
+
+// 공통 응답 타입
+export interface BaseResponse {
+ result: string;
+}
+
+// 결재 경로 타입
+export interface ApprovalLine {
+ epId?: string;
+ userId?: string;
+ emailAddress?: string;
+ seq: string;
+ role: string; // 기안(0), 결재(1), 합의(2), 후결(3), 병렬합의(4), 병렬결재(7), 통보(9)
+ aplnStatsCode: string; // 미결(0), 결재(1), 반려(2), 전결(3), 자동결재(5)
+ arbPmtYn: string; // 전결권한여부
+ contentsMdfyPmtYn: string; // 본문수정권한여부
+ aplnMdfyPmtYn: string; // 경로변경권한여부
+ opinion?: string; // 상신의견 (상신자만)
+}
+
+// 결재 상신 요청 타입
+export interface SubmitApprovalRequest {
+ contents: string; // 결재본문
+ contentsType: string; // 본문종류 (TEXT, HTML, MIME)
+ docSecuType: string; // 보안문서타입 (PERSONAL, CONFIDENTIAL, CONFIDENTIAL_STRICT)
+ notifyOption: string; // 통보옵션 (0-3)
+ urgYn: string; // 긴급여부 (Y/N)
+ sbmDt: string; // 상신일시 (YYYYMMDDHHMMSS)
+ timeZone: string; // 타임존 (GMT, GMT+9 등)
+ docMngSaveCode: string; // 문서관리저장코드 (0: 안함, 1: 저장)
+ subject: string; // 결재제목
+ sbmLang: string; // 상신언어 (ko, ja, zh, en)
+ apInfId: string; // 연계ID (32자리 고유값)
+ importantYn?: string; // 중요여부 (Y/N)
+ aplns: ApprovalLine[]; // 결재경로
+ attachments?: File[]; // 첨부파일
+}
+
+// 결재 상신 응답 타입
+export interface SubmitApprovalResponse extends BaseResponse {
+ data: {
+ apInfId: string;
+ };
+}
+
+// 결재 상세 조회 응답 타입
+export interface ApprovalDetailResponse extends BaseResponse {
+ data: {
+ contentsType: string;
+ sbmDt: string;
+ sbmLang: string;
+ apInfId: string;
+ systemId: string;
+ notifyOption: string;
+ urgYn: string;
+ docSecuType: string;
+ status: string; // 암호화실패(-3), 암호화중(-2), 예약상신(-1), 보류(0), 진행중(1), 완결(2), 반려(3), 상신취소(4), 전결(5), 후완결(6)
+ timeZone: string;
+ subject: string;
+ aplns: any[];
+ attachments?: any[];
+ };
+}
+
+// 결재 본문 조회 응답 타입
+export interface ApprovalContentResponse extends BaseResponse {
+ data: {
+ contents: string;
+ contentsType: string;
+ apInfId: string;
+ };
+}
+
+// 결재 상황 조회 요청 타입
+export interface ApprovalStatusRequest {
+ apinfids: { apinfid: string }[];
+}
+
+// 결재 상황 조회 응답 타입
+export interface ApprovalStatusResponse extends BaseResponse {
+ data: {
+ apInfId: string;
+ docChgNum: string;
+ status: string;
+ }[];
+}
+
+// 상신 취소 응답 타입
+export interface CancelApprovalResponse extends BaseResponse {
+ data: {
+ apInfId: string;
+ };
+}
+
+// 개인 결재경로 목록 조회 응답 타입
+export interface OwnApprovalLineListResponse extends BaseResponse {
+ data: any[];
+}
+
+// 개인 결재경로 상세 조회 응답 타입
+export interface OwnApprovalLineDetailResponse extends BaseResponse {
+ data: any;
+}
+
+// 상신함 리스트 조회 응답 타입
+export interface SubmissionListResponse extends BaseResponse {
+ data: any[];
+}
+
+// 연계 이력 조회 응답 타입
+export interface ApprovalHistoryResponse extends BaseResponse {
+ data: any[];
+}
+
+// 연계 ID 조회 응답 타입
+export interface ApprovalIdsResponse extends BaseResponse {
+ data: any[];
+}
+
+// ========== 서버 액션 함수들 ==========
+
+/**
+ * 결재 상신
+ * POST /approval/api/v2.0/approvals/submit
+ */
+export async function submitApproval(
+ request: SubmitApprovalRequest,
+ systemId: string
+): Promise<SubmitApprovalResponse> {
+ try {
+ const formData = new FormData();
+
+ // JSON 데이터 생성
+ const approvalData = {
+ contents: request.contents,
+ contentsType: request.contentsType,
+ docSecuType: request.docSecuType,
+ notifyOption: request.notifyOption,
+ urgYn: request.urgYn,
+ sbmDt: request.sbmDt,
+ timeZone: request.timeZone,
+ docMngSaveCode: request.docMngSaveCode,
+ subject: request.subject,
+ sbmLang: request.sbmLang,
+ apInfId: request.apInfId,
+ importantYn: request.importantYn,
+ aplns: request.aplns
+ };
+
+ formData.append('approval', JSON.stringify(approvalData));
+
+ // 첨부파일 처리
+ if (request.attachments) {
+ request.attachments.forEach((file) => {
+ formData.append('attachments', file);
+ });
+ }
+
+ const response = await fetch(`${process.env.KNOX_API_BASE_URL}/approval/api/v2.0/approvals/submit`, {
+ method: 'POST',
+ headers: {
+ 'System-ID': systemId,
+ },
+ body: formData,
+ });
+
+ if (!response.ok) {
+ throw new Error(`결재 상신 실패: ${response.status}`);
+ }
+
+ return await response.json();
+ } catch (error) {
+ console.error('결재 상신 오류:', error);
+ throw error;
+ }
+}
+
+/**
+ * 보안 결재 상신
+ * POST /approval/api/v2.0/approvals/secu-submit
+ */
+export async function submitSecurityApproval(
+ request: SubmitApprovalRequest,
+ systemId: string
+): Promise<SubmitApprovalResponse> {
+ try {
+ const formData = new FormData();
+
+ // JSON 데이터 생성
+ const approvalData = {
+ contents: request.contents,
+ contentsType: request.contentsType,
+ docSecuType: request.docSecuType, // CONFIDENTIAL 또는 CONFIDENTIAL_STRICT
+ notifyOption: request.notifyOption,
+ urgYn: request.urgYn,
+ sbmDt: request.sbmDt,
+ timeZone: request.timeZone,
+ docMngSaveCode: request.docMngSaveCode,
+ subject: request.subject,
+ sbmLang: request.sbmLang,
+ apInfId: request.apInfId,
+ importantYn: request.importantYn,
+ aplns: request.aplns
+ };
+
+ formData.append('approval', JSON.stringify(approvalData));
+
+ // 첨부파일 처리
+ if (request.attachments) {
+ request.attachments.forEach((file) => {
+ formData.append('attachments', file);
+ });
+ }
+
+ const response = await fetch(`${process.env.KNOX_API_BASE_URL}/approval/api/v2.0/approvals/secu-submit`, {
+ method: 'POST',
+ headers: {
+ 'System-ID': systemId,
+ },
+ body: formData,
+ });
+
+ if (!response.ok) {
+ throw new Error(`보안 결재 상신 실패: ${response.status}`);
+ }
+
+ return await response.json();
+ } catch (error) {
+ console.error('보안 결재 상신 오류:', error);
+ throw error;
+ }
+}
+
+/**
+ * 결재 상세 상황 조회
+ * GET /approval/api/v2.0/approvals/{apInfId}/detail
+ */
+export async function getApprovalDetail(
+ apInfId: string,
+ systemId: string
+): Promise<ApprovalDetailResponse> {
+ try {
+ const response = await fetch(`${process.env.KNOX_API_BASE_URL}/approval/api/v2.0/approvals/${apInfId}/detail`, {
+ method: 'GET',
+ headers: {
+ 'System-ID': systemId,
+ },
+ });
+
+ if (!response.ok) {
+ throw new Error(`결재 상세 조회 실패: ${response.status}`);
+ }
+
+ return await response.json();
+ } catch (error) {
+ console.error('결재 상세 조회 오류:', error);
+ throw error;
+ }
+}
+
+/**
+ * 결재 본문 조회
+ * GET /approval/api/v2.0/approvals/{apInfId}/content
+ */
+export async function getApprovalContent(
+ apInfId: string,
+ systemId: string
+): Promise<ApprovalContentResponse> {
+ try {
+ const response = await fetch(`${process.env.KNOX_API_BASE_URL}/approval/api/v2.0/approvals/${apInfId}/content`, {
+ method: 'GET',
+ headers: {
+ 'System-ID': systemId,
+ },
+ });
+
+ if (!response.ok) {
+ throw new Error(`결재 본문 조회 실패: ${response.status}`);
+ }
+
+ return await response.json();
+ } catch (error) {
+ console.error('결재 본문 조회 오류:', error);
+ throw error;
+ }
+}
+
+/**
+ * 결재 상황 조회
+ * POST /approval/api/v2.0/approvals/status
+ */
+export async function getApprovalStatus(
+ request: ApprovalStatusRequest,
+ systemId: string
+): Promise<ApprovalStatusResponse> {
+ try {
+ const response = await fetch(`${process.env.KNOX_API_BASE_URL}/approval/api/v2.0/approvals/status`, {
+ method: 'POST',
+ headers: {
+ 'System-ID': systemId,
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify(request.apinfids),
+ });
+
+ if (!response.ok) {
+ throw new Error(`결재 상황 조회 실패: ${response.status}`);
+ }
+
+ return await response.json();
+ } catch (error) {
+ console.error('결재 상황 조회 오류:', error);
+ throw error;
+ }
+}
+
+/**
+ * 결재 연계 ID 조회
+ * GET /approval/api/v2.0/approvals/apinfids
+ */
+export async function getApprovalIds(
+ systemId: string,
+ apIds?: string[]
+): Promise<ApprovalIdsResponse> {
+ try {
+ let url = `${process.env.KNOX_API_BASE_URL}/approval/api/v2.0/approvals/apinfids`;
+
+ if (apIds && apIds.length > 0) {
+ const params = new URLSearchParams();
+ apIds.forEach(id => params.append('apId', id));
+ url += `?${params.toString()}`;
+ }
+
+ const response = await fetch(url, {
+ method: 'GET',
+ headers: {
+ 'System-ID': systemId,
+ },
+ });
+
+ if (!response.ok) {
+ throw new Error(`결재 연계 ID 조회 실패: ${response.status}`);
+ }
+
+ return await response.json();
+ } catch (error) {
+ console.error('결재 연계 ID 조회 오류:', error);
+ throw error;
+ }
+}
+
+/**
+ * 상신함 리스트 조회
+ * GET /approval/api/v2.0/approvals/submission
+ */
+export async function getSubmissionList(
+ systemId: string,
+ params?: Record<string, string>
+): Promise<SubmissionListResponse> {
+ try {
+ let url = `${process.env.KNOX_API_BASE_URL}/approval/api/v2.0/approvals/submission`;
+
+ if (params) {
+ const searchParams = new URLSearchParams(params);
+ url += `?${searchParams.toString()}`;
+ }
+
+ const response = await fetch(url, {
+ method: 'GET',
+ headers: {
+ 'System-ID': systemId,
+ },
+ });
+
+ if (!response.ok) {
+ throw new Error(`상신함 리스트 조회 실패: ${response.status}`);
+ }
+
+ return await response.json();
+ } catch (error) {
+ console.error('상신함 리스트 조회 오류:', error);
+ throw error;
+ }
+}
+
+/**
+ * 연계 이력 조회
+ * GET /approval/api/v2.0/approvals/apinfidinfos
+ */
+export async function getApprovalHistory(
+ systemId: string,
+ params?: Record<string, string>
+): Promise<ApprovalHistoryResponse> {
+ try {
+ let url = `${process.env.KNOX_API_BASE_URL}/approval/api/v2.0/approvals/apinfidinfos`;
+
+ if (params) {
+ const searchParams = new URLSearchParams(params);
+ url += `?${searchParams.toString()}`;
+ }
+
+ const response = await fetch(url, {
+ method: 'GET',
+ headers: {
+ 'System-ID': systemId,
+ },
+ });
+
+ if (!response.ok) {
+ throw new Error(`연계 이력 조회 실패: ${response.status}`);
+ }
+
+ return await response.json();
+ } catch (error) {
+ console.error('연계 이력 조회 오류:', error);
+ throw error;
+ }
+}
+
+/**
+ * 상신 취소
+ * POST /approval/api/v2.0/approvals/{apInfId}/cancel
+ */
+export async function cancelApproval(
+ apInfId: string,
+ systemId: string
+): Promise<CancelApprovalResponse> {
+ try {
+ const response = await fetch(`${process.env.KNOX_API_BASE_URL}/approval/api/v2.0/approvals/${apInfId}/cancel`, {
+ method: 'POST',
+ headers: {
+ 'System-ID': systemId,
+ },
+ });
+
+ if (!response.ok) {
+ throw new Error(`상신 취소 실패: ${response.status}`);
+ }
+
+ return await response.json();
+ } catch (error) {
+ console.error('상신 취소 오류:', error);
+ throw error;
+ }
+}
+
+/**
+ * 저장된 결재경로 목록 조회
+ * GET /approval/api/v2.0/approvals/ownaplnlist
+ */
+export async function getOwnApprovalLineList(
+ systemId: string,
+ params?: Record<string, string>
+): Promise<OwnApprovalLineListResponse> {
+ try {
+ let url = `${process.env.KNOX_API_BASE_URL}/approval/api/v2.0/approvals/ownaplnlist`;
+
+ if (params) {
+ const searchParams = new URLSearchParams(params);
+ url += `?${searchParams.toString()}`;
+ }
+
+ const response = await fetch(url, {
+ method: 'GET',
+ headers: {
+ 'System-ID': systemId,
+ },
+ });
+
+ if (!response.ok) {
+ throw new Error(`저장된 결재경로 목록 조회 실패: ${response.status}`);
+ }
+
+ return await response.json();
+ } catch (error) {
+ console.error('저장된 결재경로 목록 조회 오류:', error);
+ throw error;
+ }
+}
+
+/**
+ * 저장된 결재경로 상세 조회
+ * GET /approval/api/v2.0/approvals/{pslAplnId}/ownaplndetail
+ */
+export async function getOwnApprovalLineDetail(
+ pslAplnId: string,
+ systemId: string
+): Promise<OwnApprovalLineDetailResponse> {
+ try {
+ const response = await fetch(`${process.env.KNOX_API_BASE_URL}/approval/api/v2.0/approvals/${pslAplnId}/ownaplndetail`, {
+ method: 'GET',
+ headers: {
+ 'System-ID': systemId,
+ },
+ });
+
+ if (!response.ok) {
+ throw new Error(`저장된 결재경로 상세 조회 실패: ${response.status}`);
+ }
+
+ return await response.json();
+ } catch (error) {
+ console.error('저장된 결재경로 상세 조회 오류:', error);
+ throw error;
+ }
+}
+
+// ========== 유틸리티 함수들 ==========
+
+/**
+ * 결재 상신 요청 데이터 생성 도우미
+ */
+export async function createSubmitApprovalRequest(
+ contents: string,
+ subject: string,
+ approvalLines: ApprovalLine[],
+ options: Partial<SubmitApprovalRequest> = {}
+): Promise<SubmitApprovalRequest> {
+ const now = new Date();
+ const sbmDt = now.toISOString().replace(/[-:T]/g, '').slice(0, 14);
+ const apInfId = `${process.env.KNOX_SYSTEM_ID || 'DEFAULT'}${sbmDt}${Math.random().toString(36).substr(2, 9)}`.padEnd(32, '0');
+
+ return {
+ contents,
+ subject,
+ aplns: approvalLines,
+ contentsType: 'TEXT',
+ docSecuType: 'PERSONAL',
+ notifyOption: '0',
+ urgYn: 'N',
+ sbmDt,
+ timeZone: 'GMT+9',
+ docMngSaveCode: '0',
+ sbmLang: 'ko',
+ apInfId,
+ importantYn: 'N',
+ ...options
+ };
+}
+
+/**
+ * 결재 라인 생성 도우미
+ */
+export async function createApprovalLine(
+ userInfo: { epId?: string; userId?: string; emailAddress?: string },
+ role: string,
+ seq: string,
+ options: Partial<ApprovalLine> = {}
+): Promise<ApprovalLine> {
+ return {
+ ...userInfo,
+ seq,
+ role,
+ aplnStatsCode: '0',
+ arbPmtYn: 'Y',
+ contentsMdfyPmtYn: 'Y',
+ aplnMdfyPmtYn: 'Y',
+ ...options
+ };
+}
+
+/**
+ * 결재 상태 문자열 변환
+ */
+export async function getApprovalStatusText(status: string): Promise<string> {
+ const statusMap: Record<string, string> = {
+ '-3': '암호화실패',
+ '-2': '암호화중',
+ '-1': '예약상신',
+ '0': '보류',
+ '1': '진행중',
+ '2': '완결',
+ '3': '반려',
+ '4': '상신취소',
+ '5': '전결',
+ '6': '후완결'
+ };
+
+ return statusMap[status] || '알 수 없음';
+}
+
+/**
+ * 결재 역할 문자열 변환
+ */
+export async function getApprovalRoleText(role: string): Promise<string> {
+ const roleMap: Record<string, string> = {
+ '0': '기안',
+ '1': '결재',
+ '2': '합의',
+ '3': '후결',
+ '4': '병렬합의',
+ '7': '병렬결재',
+ '9': '통보'
+ };
+
+ return roleMap[role] || '알 수 없음';
+}