diff options
Diffstat (limited to 'lib/knox-api/approval')
| -rw-r--r-- | lib/knox-api/approval/approval-guide.html | 4999 | ||||
| -rw-r--r-- | lib/knox-api/approval/approval.ts | 603 |
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> <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 > + epId > 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 > + epId > 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 > + epId > 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명, 병렬결재 & 병렬합의자는 최소 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 > + epId > 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 > + epId > 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 > + epId > 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명, 병렬결재 & 병렬합의자는 최소 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명, 병렬결재 & 병렬합의자는 최소 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 > + epId > 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 > + epId > 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 > + epId > 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 > + epId > 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 > + epId > 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 > + epId > 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 > + epId > 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 > + epId > 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명, 병렬결재 & 병렬합의자는 최소 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 > + epId > 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 > + epId > 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] || '알 수 없음'; +} |
