diff options
| author | joonhoekim <26rote@gmail.com> | 2025-07-18 03:58:34 +0000 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-07-18 03:58:34 +0000 |
| commit | 3e59693e017742d971f490eb7c58870cb745a98d (patch) | |
| tree | f7f846613e40e4f058de70afca5809b8e6bd0e2d /lib/knox-api/employee | |
| parent | 2ef02e27dbe639876fa3b90c30307dda183545ec (diff) | |
(김준회) 결재 모듈 개발
Diffstat (limited to 'lib/knox-api/employee')
| -rw-r--r-- | lib/knox-api/employee/employee-guide.html | 2154 | ||||
| -rw-r--r-- | lib/knox-api/employee/employee.ts | 435 |
2 files changed, 2589 insertions, 0 deletions
diff --git a/lib/knox-api/employee/employee-guide.html b/lib/knox-api/employee/employee-guide.html new file mode 100644 index 00000000..806788fe --- /dev/null +++ b/lib/knox-api/employee/employee-guide.html @@ -0,0 +1,2154 @@ +<div class="body-content"> + <div class="sub-header margin"> + <h2 data-message-id="emp.subject">임직원</h2> + </div> + <div class="module-subsum"> + <p><span data-message-id="emp.guide.description">Knox Suite을 통한 임직원 및 조직 정보 조회 기능을 제공합니다.</span></p> + </div><br> + <div class="module-font type03"><span data-message-id="emp.guide.policy01">[정책 및 제약사항]</span></div> + <div class="module-font type04"> + <dl> + <dt><span data-message-id="emp.guide.policy02">1. <b>재직, 휴직</b> 상태 임직원만 조회 가능합니다.</span></dt> + <dt><span data-message-id="emp.guide.policy03">2. 연계 신청시 요청한 <b>조회대상 회사</b>의 임직원, 조직정보만 조회 가능합니다.</span> + </dt> + <dt><span data-message-id="emp.guide.policy04">3. 연계 신청 시 <b>파견 포함</b>을 선택한 경우에만 파견된 임직원 정보까지 조회 + 가능합니다.</span></dt> + <dt><span data-message-id="emp.guide.policy05">4. <b>회사코드</b>를 이용한 조회 시, 해당 회사 정보만 조회 가능합니다.</span></dt> + <dt><span data-message-id="emp.guide.policy06">5. 조직도 조회의 경우, 조회 대상 회사에 <b>신청 회사 외 타사가 등록되어 있으면 일부 속성만</b> + 조회 가능합니다.</span></dt> + <dt><span data-message-id="emp.guide.policy07">6. 부분이름 검색 시 검색어는 <b>한국어 기준 2자, 영어 기준 4자 이상</b>이어야 + 합니다.</span></dt> + <dt><span data-message-id="emp.guide.policy08">7. 부분이름 검색 시 검색 기능 최적화를 위해 <b><sup>1)</sup>특정 영문명</b>으로는 조회할 + 수 없습니다.</span></dt> + <dt><span data-message-id="emp.guide.policy09">8. 모든 검색어에는 *, % 를 포함할 수 없습니다. 임직원 이름 검색 시 _ 도 포함할 수 + 없습니다.</span></dt> + <dt><span data-message-id="emp.guide.policy10">9. 목록으로 검색 시 목록의 값은 중복될 수 없습니다.</span></dt> + <dt><span data-message-id="emp.guide.policy11">10. 목록으로 검색 시 <b>목록의 크기는 100</b>을 넘을 수 없으며, <b>검색어의 길이는 + 100자</b>를 넘을 수 없습니다.</span></dt> + <dt><span data-message-id="emp.guide.policy12">11. 임직원 <b>검색 결과는 2,000개, 조직 검색 결과는 5,000개</b>로 제한합니다.</span> + </dt> + <dt><span data-message-id="emp.guide.policy13">12. <b>분당 호출 횟수 1,000건 이하</b>로 분산해야 합니다.</span></dt> + <dt><span data-message-id="emp.guide.policy14">13. <b>대량 호출 시 야간(22시 이후) 수행</b>을 권장합니다. (주간 수행 시 Knox + Portal과 협의 필요)</span></dt> + <dt> </dt> + <dt><span data-message-id="emp.guide.policy15"><sup>1)</sup> kim, lee, park, choi, jung, kang, cho, yoon, + jang, lim, han, shin, oh, seo, kwon, hwang, song, ahn, ryu, hong<br> nguy, youn, + young, hyun, sung, sang, jeon, dong, nguye, nguyen, jong, seun, seung, jeong, chan, yong, stre, + stres, stress, nguyễn, <br> nguyễn, chang, kyun, kyung, seon, jang, shin, yoon, + yang, song, byun, seong, kwan, hwan, byung, chun, kwang, jaeh, hyung, + hwang,<br> wang, sangh, moon, kyou, mari, kuma, kwon, yeon, andr, thi, chen, zhan, + zhang</span></dt> + </dl> + </div><br> + <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/d23ef677-9952-4311-aa56-cb891791a694"><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"> + <div class="tbl-list-head"> + <table> + <colgroup> + <col width="20%"> + <col width="20%"> + <col width="10%"> + <col> + </colgroup> + <thead> + <tr> + <th>API</th> + <th>URI</th> + <th>Method</th> + <th>Description</th> + </tr> + </thead> + </table> + </div> + <div class="tbl-list-body"> + <table> + <colgroup> + <col width="20%"> + <col width="20%"> + <col width="10%"> + <col> + </colgroup> + <tbody> + <tr> + <td class="left"><a href="#emp"><span data-message-id="emp.guide.api02">임직원 조회</span></a></td> + <td class="left">/employee/api/v2.0/employees</td> + <td>POST</td> + <td class="left desc"><span data-message-id="emp.guide.api03">임직원 정보를 조회한다.</span></td> + </tr> + <tr> + <td class="left"><a href="#org"><span data-message-id="emp.guide.api04">조직도 조회</span></a></td> + <td class="left">/employee/api/v2.0/organizations</td> + <td>GET</td> + <td class="left desc"><span data-message-id="emp.guide.api05">부서 정보를 조회한다.</span></td> + </tr> + <tr> + <td class="left"><a href="#title"><span data-message-id="emp.guide.api06">직급정보 조회</span></a> + </td> + <td class="left">/employee/api/v2.0/titles</td> + <td>GET</td> + <td class="left desc"><span data-message-id="emp.guide.api07">직급 정보를 조회한다.</span></td> + </tr> + </tbody> + </table> + </div> + </div><br><br><br> + <div class="dan-border"></div> + <div class="module-font type01" id="emp"><span data-message-id="emp.guide.empsearch">임직원 조회</span></div> + <div class="module-font type02"> + <p>Request Parameter</p> + </div> + <div class="tbl-list01 kc-tbl"> + <div class="tbl-list-head"> + <table> + <colgroup> + <col width="4%;"> + <col width="10%;"> + <col width="14%;"> + <col width="9%;"> + <col width="9%;"> + <col width="8%;"> + <col width="18%;"> + <col> + </colgroup> + <thead> + <tr> + <th>No.</th> + <th>Properties</th> + <th>Attribute</th> + <th>Mandatory</th> + <th>Parameter<br>Type</th> + <th>Data<br>Type</th> + <th>Sample Data</th> + <th>Note</th> + </tr> + </thead> + </table> + </div> + <div class="tbl-list-body"> + <table> + <colgroup> + <col width="4%;"> + <col width="10%;"> + <col width="14%;"> + <col width="9%;"> + <col width="9%;"> + <col width="8%;"> + <col width="18%;"> + <col> + </colgroup> + <tbody> + <tr> + <td title="1">1</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request01">연계 아이디</span></td> + <td class="left">System-ID</td> + <td>Y</td> + <td>Header</td> + <td>String</td> + <td class="left">C60REST0001</td> + <td class="left desc"></td> + </tr> + <tr> + <td title="2">2</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request02">회사코드</span></td> + <td class="left">companyCode</td> + <td>N</td> + <td>Query</td> + <td>String</td> + <td class="left">C60</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.request.description02">3~10번 속성 + 중 1개의 속성만 사용 가능</span></td> + </tr> + <tr> + <td title="3">3</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request03">임직원 이름</span></td> + <td class="left">fullName</td> + <td rowspan="8">Y</td> + <td>Query</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request.sample01">김삼성</span></td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.request.description04">검색엔진 (검색 + 키워드 완전 일치 검색)</span></td> + </tr> + <tr> + <td title="4">4</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request04">부서코드</span></td> + <td class="left">departmentCode</td> + <td>Query</td> + <td>String</td> + <td class="left">C60AH959</td> + <td class="left desc"></td> + </tr> + <tr> + <td title="5">5</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request05">사번</span></td> + <td class="left">employeeNumber</td> + <td>Query</td> + <td>String</td> + <td class="left" title="123123">123123</td> + <td class="left desc"></td> + </tr> + <tr> + <td title="6">6</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request06">이름</span></td> + <td class="left">name</td> + <td>Query</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request.sample02">삼성</span></td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.request.description05">검색엔진 (검색 + 키워드 부분일치 검색)</span></td> + </tr> + <tr> + <td title="7">7</td> + <td class="left">epId</td> + <td class="left">epIds</td> + <td>Query</td> + <td>String</td> + <td class="left" title="D100118130308C600299">D100118130308C600299</td> + <td class="left desc"></td> + </tr> + <tr> + <td title="8">8</td> + <td class="left">ID</td> + <td class="left">userIds</td> + <td>Query</td> + <td>String</td> + <td class="left">knoxportal</td> + <td class="left desc"></td> + </tr> + <tr> + <td title="9">9</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request07">메일주소</span></td> + <td class="left">emailAddresses</td> + <td>Query</td> + <td>String</td> + <td class="left" title="knoxportal@samsung.com">knoxportal@samsung.com</td> + <td class="left desc"></td> + </tr> + <tr> + <td title="10">10</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request08">직급코드</span></td> + <td class="left">titleCode</td> + <td>Query</td> + <td>String</td> + <td class="left">B3K</td> + <td class="left desc"><span + data-message-id="emp.guide.empsearch.request.description06">compCode, page 함께 받아야 + 함</span></td> + </tr> + <tr> + <td title="11">11</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request09">페이지 번호</span></td> + <td class="left">page</td> + <td>N</td> + <td>Query</td> + <td>String</td> + <td class="left" title="1">1</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.request.description08"><span + class="ellipsis">- companyCode&departmentCode /</span><br><span + class="ellipsis">companyCode&title /</span><br><span class="ellipsis"> name 인 + 경우에만 paging 적용가능</span><br><span class="ellipsis">- page 입력 시 500건씩 + 조회</span><br><span class="ellipsis">- page 미입력 시 최대 2000건 조회</span></span></td> + </tr> + <tr> + <td title="12">12</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request10">검색결과 타입</span></td> + <td class="left">resultType</td> + <td>Y</td> + <td>Body</td> + <td>String</td> + <td class="left">basic<br>optional</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.request.description09"><span + class="ellipsis">- basic : 기본 속성 리턴</span><br><span class="ellipsis">- optional : + attributes 정의 속성만 리턴</span></span></td> + </tr> + <tr> + <td title="13">13</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request11">조회할 임직원 속성</span></td> + <td class="left">attributes</td> + <td>N</td> + <td>Body</td> + <td>String</td> + <td class="left" title="["emailAddress","userId"]">["emailAddress","userId"] + </td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.request.description11">지정한 속성에 + 대해서만 결과 값 리턴</span><br><span + data-message-id="emp.guide.empsearch.request.description10">resultType이 optional인 경우 + 필수</span></td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="module-font type02"> + <p>Response Parameter</p> + </div><span data-message-id="emp.guide.empsearch.request.description12">resultType 쿼리 타입에 따라 리턴 항목이 다름. <br>- basic + : 기본 속성만 리턴 (아래 * 표시된 30개 항목)<br>- optional : body에 보낸 attributes 데이터만 리턴</span> + <div class="tbl-list01 kc-tbl"> + <div class="tbl-list-head"> + <table> + <colgroup> + <col width="4%;"> + <col width="16%;"> + <col width="15%;"> + <col width="10%;"> + <col width="20%;"> + <col width="35%;"> + </colgroup> + <thead> + <tr> + <th>No.</th> + <th>Properties</th> + <th>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="4%;"> + <col width="16%;"> + <col width="15%;"> + <col width="10%;"> + <col width="20%;"> + <col width="35%;"> + </colgroup> + <tbody> + <tr> + <td title="1">1</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response01">API 호출 성공 여부</span></td> + <td class="left">result</td> + <td>String</td> + <td class="left">success<br>fail</td> + <td></td> + </tr> + <tr> + <td title="2">2</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response02">현재 페이지</span></td> + <td class="left">currentPage</td> + <td>int</td> + <td class="left" title="1">1</td> + <td></td> + </tr> + <tr> + <td title="3">3</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response03">총 결과 페이지 수</span></td> + <td class="left">totalPage</td> + <td>int</td> + <td class="left" title="3">3</td> + <td></td> + </tr> + <tr> + <td title="4">4</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response04">검색된 임직원의 수</span></td> + <td class="left">totalCount</td> + <td>int</td> + <td class="left" title="30">30</td> + <td></td> + </tr> + <tr> + <td title="5">5</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response05">임직원 정보</span></td> + <td class="left">employees</td> + <td>JSON String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="6">6</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response06">계정신청상태</span></td> + <td class="left"> accountStatus</td> + <td>String</td> + <td class="left">A</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description01"><span + class="ellipsis">A: 아이디 승인</span><br><span class="ellipsis">W: 아이디 + 신청</span><br><span class="ellipsis">M: 아이디 미발급</span></span></td> + </tr> + <tr> + <td title="7">7</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response07">사업장코드</span></td> + <td class="left"> busiCode</td> + <td>String</td> + <td class="left">C60B0001</td> + <td></td> + </tr> + <tr> + <td title="8">8</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response08">사업장명</span></td> + <td class="left"> busiName</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response.sample01">잠실동관</span></td> + <td></td> + </tr> + <tr> + <td title="9">9</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response09">회사코드</span> *</td> + <td class="left"> companyCode</td> + <td>String</td> + <td class="left">C60</td> + <td></td> + </tr> + <tr> + <td title="10">10</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response10">회사명</span> *</td> + <td class="left"> companyName</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response.sample02">삼성SDS</span></td> + <td></td> + </tr> + <tr> + <td title="11">11</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response11">국가</span></td> + <td class="left"> country</td> + <td>String</td> + <td class="left">KR</td> + <td></td> + </tr> + <tr> + <td title="12">12</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response12">기본소속구분코드</span></td> + <td class="left"> defaultCompanyCode</td> + <td>String</td> + <td class="left">O</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description02"><span + class="ellipsis">O: 원소속</span><br><span class="ellipsis">S: 파견소속</span></span></td> + </tr> + <tr> + <td title="13">13</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response13">부서코드</span> *</td> + <td class="left"> departmentCode</td> + <td>String</td> + <td class="left">C60AH959</td> + <td></td> + </tr> + <tr> + <td title="14">14</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response14">부서명</span> *</td> + <td class="left"> departmentName</td> + <td>String</td> + <td class="left"><span + data-message-id="emp.guide.empsearch.response.sample03">Knox개발그룹(솔루션개발)</span></td> + <td></td> + </tr> + <tr> + <td title="15">15</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response15">담당업무</span> *</td> + <td class="left"> description</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response.sample04">Knox Suite + 개발</span></td> + <td></td> + </tr> + <tr> + <td title="16">16</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response16">이메일 + 주소</span> *</td> + <td class="left"> emailAddress</td> + <td>String</td> + <td class="left" title="knoxportal@samsung.com">knoxportal@samsung.com</td> + <td></td> + </tr> + <tr> + <td title="17">17</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response17">사번</span> *</td> + <td class="left"> employeeNumber</td> + <td>String</td> + <td class="left" title="123123">123123</td> + <td></td> + </tr> + <tr> + <td title="18">18</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response18">임직원 + 상태</span> *</td> + <td class="left"> employeeStatus</td> + <td>String</td> + <td class="left">B</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description03"><span + class="ellipsis">B: 재직</span><br><span class="ellipsis">V: 휴직</span></span></td> + </tr> + <tr> + <td title="19">19</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response19">임직원 + 구분</span></td> + <td class="left"> employeeType</td> + <td>String</td> + <td class="left">N</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description04"><span + class="ellipsis">N:정규직 (@samsung.com)</span><br><span class="ellipsis">U:협력직 C:자회사 + T:임시직 (@partner.samsung.com)</span><br><span class="ellipsis">X:협력직 Y:자회사 Z:임시직 + (@samsung.com)</span></span></td> + </tr> + <tr> + <td title="20">20</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response20">영문 + 사업장명</span></td> + <td class="left"> enBusiName</td> + <td>String</td> + <td class="left">SDS East Campus</td> + <td></td> + </tr> + <tr> + <td title="21">21</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response21">영문 + 회사명</span> *</td> + <td class="left"> enCompanyName</td> + <td>String</td> + <td class="left">SAMSUNG SDS</td> + <td></td> + </tr> + <tr> + <td title="22">22</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response22">영문 + 부서명</span> *</td> + <td class="left"> enDepartmentName</td> + <td>String</td> + <td class="left" title="Knox Development Group">Knox Development Group</td> + <td></td> + </tr> + <tr> + <td title="23">23</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response23">영문 + 담당업무</span> *</td> + <td class="left"> enDiscription</td> + <td>String</td> + <td class="left" title="Knox Portal User Mgmt.">Knox Portal User Mgmt.</td> + <td></td> + </tr> + <tr> + <td title="24">24</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response24">영문 + 성명</span> *</td> + <td class="left"> enFullName</td> + <td>String</td> + <td class="left">Samsung Kim</td> + <td></td> + </tr> + <tr> + <td title="25">25</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response25">영문 + 이름</span> *</td> + <td class="left"> enGivenName</td> + <td>String</td> + <td class="left">Samsung</td> + <td></td> + </tr> + <tr> + <td title="26">26</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response26">영문 + 직위명</span> *</td> + <td class="left"> enGradeName</td> + <td>String</td> + <td class="left">Manager</td> + <td></td> + </tr> + <tr> + <td title="27">27</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response27">영문 + 회사주소</span></td> + <td class="left"> enOfficeAddress</td> + <td>String</td> + <td class="left" title="123, Olympic-ro 35-gil, Songpa">123, Olympic-ro 35-gil, Songpa</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description05">우편번호로 + 구분되는 회사주소</span></td> + </tr> + <tr> + <td title="28">28</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response28">영문 + 지역명</span></td> + <td class="left"> enRegionName</td> + <td>String</td> + <td class="left">Jamsil</td> + <td></td> + </tr> + <tr> + <td title="29">29</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response29">영문 파견 + 사업장명</span></td> + <td class="left"> enSendBusiName</td> + <td>String</td> + <td class="left">Jamsil</td> + <td></td> + </tr> + <tr> + <td title="30">30</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response30">영문 파견 + 회사명</span></td> + <td class="left"> enSendCompanyName</td> + <td>String</td> + <td class="left">Samsung Electronics</td> + <td></td> + </tr> + <tr> + <td title="31">31</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response31">영문 파견 + 부서명</span></td> + <td class="left"> enSendDepartmentName</td> + <td>String</td> + <td class="left">IT Service</td> + <td></td> + </tr> + <tr> + <td title="32">32</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response32">영문 파견 + 직위명</span></td> + <td class="left"> enSendGradeName</td> + <td>String</td> + <td class="left">Lab Leader</td> + <td></td> + </tr> + <tr> + <td title="33">33</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response33">영문 파견 + 지역명</span></td> + <td class="left"> enSendRegionName</td> + <td>String</td> + <td class="left">Suwon</td> + <td></td> + </tr> + <tr> + <td title="34">34</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response34">영문 파견 + 총괄명</span></td> + <td class="left"> enSendSubOrgName</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="35">35</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response35">영문 파견 + 직급명</span></td> + <td class="left"> enSendTitleName</td> + <td>String</td> + <td class="left">E5</td> + <td></td> + </tr> + <tr> + <td title="36">36</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response36">영문 + 성</span> *</td> + <td class="left"> enSirName</td> + <td>String</td> + <td class="left">Kim</td> + <td></td> + </tr> + <tr> + <td title="37">37</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response37">영문 + 총괄명</span></td> + <td class="left"> enSubOrgName</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="38">38</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response38">영문 + 직급명</span> *</td> + <td class="left"> enTitleName</td> + <td>String</td> + <td class="left">Senior Engineer</td> + <td></td> + </tr> + <tr> + <td title="39">39</td> + <td class="left"> epId *</td> + <td class="left"> epId</td> + <td>String</td> + <td class="left" title="D100118130308C600299">D100118130308C600299</td> + <td></td> + </tr> + <tr> + <td title="40">40</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response39">임원여부</span></td> + <td class="left"> executiveYn</td> + <td>String</td> + <td class="left">N</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description06"><span + class="ellipsis">Y: 임원</span><br><span class="ellipsis">N: 직원</span></span></td> + </tr> + <tr> + <td title="41">41</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response40">외부 + 메일주소</span></td> + <td class="left"> externalEmailAddress</td> + <td>String</td> + <td class="left">knoxportal@gmail.com</td> + <td></td> + </tr> + <tr> + <td title="42">42</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response41">성명</span> *</td> + <td class="left"> fullName</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request.sample01">김삼성</span></td> + <td></td> + </tr> + <tr> + <td title="43">43</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response42">이름</span> *</td> + <td class="left"> givenName</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.request.sample02">삼성</span></td> + <td></td> + </tr> + <tr> + <td title="44">44</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response43">직위명</span> *</td> + <td class="left"> gradeName</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response.sample07">책임</span></td> + <td></td> + </tr> + <tr> + <td title="45">45</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response44">직위직급 + 표시코드</span> *</td> + <td class="left"> gradeTitleIndiCode</td> + <td>String</td> + <td class="left">B</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description07"><span + class="ellipsis">G: 직위</span><br><span class="ellipsis">T: 직급</span><br><span + class="ellipsis">B: 직위/직급 모두</span></span></td> + </tr> + <tr> + <td title="46">46</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response45">내부 + 부서코드</span></td> + <td class="left"> inDepartmentCode</td> + <td>String</td> + <td class="left">RE_KO41</td> + <td></td> + </tr> + <tr> + <td title="47">47</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response46">내부 + 부서명</span></td> + <td class="left"> inDepartmentName</td> + <td>String</td> + <td class="left">Samsung Research</td> + <td></td> + </tr> + <tr> + <td title="48">48</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response47">직무명</span> *</td> + <td class="left"> jobName</td> + <td>String</td> + <td class="left">AEB</td> + <td></td> + </tr> + <tr> + <td title="49">49</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response48">직무코드</span></td> + <td class="left"> jobCode</td> + <td>String</td> + <td class="left">SystemS/W</td> + <td></td> + </tr> + <tr> + <td title="50">50</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response49">현채인 + 여부</span></td> + <td class="left"> localStaffYn</td> + <td>String</td> + <td class="left">N</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description08"><span + class="ellipsis">Y: 현채인</span><br><span class="ellipsis">N: 현채인 아님</span></span> + </td> + </tr> + <tr> + <td title="51">51</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response50">핸드폰</span></td> + <td class="left"> mobile</td> + <td>String</td> + <td class="left">+82-10-1111-2222</td> + <td></td> + </tr> + <tr> + <td title="52">52</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response51">닉네임</span></td> + <td class="left"> nickName</td> + <td>String</td> + <td class="left">nick</td> + <td></td> + </tr> + <tr> + <td title="53">53</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response52">근무지 + 주소</span></td> + <td class="left"> officeAddress</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response.sample05">송파구 올림픽로35길 + 123</span></td> + <td></td> + </tr> + <tr> + <td title="54">54</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response53">근무지 상세 + 주소</span></td> + <td class="left"> officeDetailAddress</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response.sample06">동관 19층</span> + </td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description09">상세 + 회사주소</span></td> + </tr> + <tr> + <td title="55">55</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response54">근무지 + 팩스번호</span></td> + <td class="left"> officeFaxNumber</td> + <td>String</td> + <td class="left">+82-2-2255-1999</td> + <td></td> + </tr> + <tr> + <td title="56">56</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response55">근무지 + 우편번호</span></td> + <td class="left"> officeZipCode</td> + <td>String</td> + <td class="left">138-240</td> + <td></td> + </tr> + <tr> + <td title="57">57</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response56">근무지 + 전화번호</span></td> + <td class="left"> officeTelNumber</td> + <td>String</td> + <td class="left">82-70-9999-9999</td> + <td></td> + </tr> + <tr> + <td title="58">58</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response57">선호언어</span></td> + <td class="left"> preferredLanguage</td> + <td>String</td> + <td class="left">ko</td> + <td></td> + </tr> + <tr> + <td title="59">59</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response58">실명 + 여부</span> *</td> + <td class="left"> realNameYn</td> + <td>String</td> + <td class="left">R</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description10"><span + class="ellipsis">R:실명</span><br><span class="ellipsis">V:가명</span></span></td> + </tr> + <tr> + <td title="60">60</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response59">지역코드</span></td> + <td class="left"> regionCode</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="61">61</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response60">지역명</span></td> + <td class="left"> regionName</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="62">62</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response61">보안등급</span> *</td> + <td class="left"> securityLevel</td> + <td>String</td> + <td class="left" title="5">5</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description11"><span + class="ellipsis">1:회장단(회장,부회장,비서실장)</span><br><span + class="ellipsis">2:사장단(사장,부사장,전무)</span><br><span + class="ellipsis">3:임원진(상무,이사,고문,감사)</span><br><span + class="ellipsis">4:간부(부,차,과장)</span><br><span + class="ellipsis">5:사원(대리,사원)</span><br><span class="ellipsis">9:협력사 + 임직원</span></span></td> + </tr> + <tr> + <td title="63">63</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response62">파견 + 사업장코드</span></td> + <td class="left"> sendBusiCde</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="64">64</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response63">파견 + 회사코드</span></td> + <td class="left"> sendCompanyCode</td> + <td>String</td> + <td class="left">C10</td> + <td></td> + </tr> + <tr> + <td title="65">65</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response64">파견 + 회사명</span></td> + <td class="left"> sendCompanyName</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response.sample09">삼성전자</span></td> + <td></td> + </tr> + <tr> + <td title="66">66</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response65">파견 + 부서코드</span></td> + <td class="left"> sendDepartmentCode</td> + <td>String</td> + <td class="left" title="C10CB04CB040060">C10CB04CB040060</td> + <td></td> + </tr> + <tr> + <td title="67">67</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response66">파견 + 부서명</span></td> + <td class="left"> sendDepartmentName</td> + <td>String</td> + <td class="left">IT Services</td> + <td></td> + </tr> + <tr> + <td title="68">68</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response67">파견 + 직위명</span></td> + <td class="left"> sendGradeName</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="69">69</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response68">파견 + 직위직급 표시코드</span></td> + <td class="left"> sendGradeTitleIndiCode</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="70">70</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response69">파견 + 지역코드</span></td> + <td class="left"> sendRegionCode</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="71">71</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response70">파견 + 보안등급</span></td> + <td class="left"> sendSecurityLevel</td> + <td>String</td> + <td class="left" title="5">5</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description11"><span + class="ellipsis">1:회장단(회장,부회장,비서실장)</span><br><span + class="ellipsis">2:사장단(사장,부사장,전무)</span><br><span + class="ellipsis">3:임원진(상무,이사,고문,감사)</span><br><span + class="ellipsis">4:간부(부,차,과장)</span><br><span + class="ellipsis">5:사원(대리,사원)</span><br><span class="ellipsis">9:협력사 + 임직원</span></span></td> + </tr> + <tr> + <td title="72">72</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response71">파견 + 총괄코드</span></td> + <td class="left"> sendSubOrgCode</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="73">73</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response72">파견 + 총괄명</span></td> + <td class="left"> sendSubOrgName</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="74">74</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response73">파견 + 직급명</span></td> + <td class="left"> sendTitleName</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response.sample07">책임</span></td> + <td></td> + </tr> + <tr> + <td title="75">75</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response74">파견 + 직급코드</span></td> + <td class="left"> sendTitleCode</td> + <td>String</td> + <td class="left">E5</td> + <td></td> + </tr> + <tr> + <td title="76">76</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response75">파견 직급 + 정렬 순서</span></td> + <td class="left"> sendTitleSortOrder</td> + <td>String</td> + <td class="left" title="309">309</td> + <td></td> + </tr> + <tr> + <td title="77">77</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response76">거점</span> *</td> + <td class="left"> serverLocation</td> + <td>String</td> + <td class="left">KR</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description12"><span + class="ellipsis">KR: 한국</span><br><span class="ellipsis">GB: 구주</span><br><span + class="ellipsis">US: 미주</span></span></td> + </tr> + <tr> + <td title="78">78</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response77">성</span> *</td> + <td class="left"> sirName</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response.sample08">김</span></td> + <td></td> + </tr> + <tr> + <td title="79">79</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response78">총괄코드</span></td> + <td class="left"> subOrgCode</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="80">80</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response79">총괄명</span></td> + <td class="left"> subOrgName</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="81">81</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response80">직급명</span> *</td> + <td class="left"> titleName</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.empsearch.response.sample07">책임</span></td> + <td></td> + </tr> + <tr> + <td title="82">82</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response81">직급코드</span> *</td> + <td class="left"> titleCode</td> + <td>String</td> + <td class="left">B2K</td> + <td></td> + </tr> + <tr> + <td title="83">83</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response82">직급정렬순서</span> *</td> + <td class="left"> titleSortOrder</td> + <td>String</td> + <td class="left" title="54">54</td> + <td></td> + </tr> + <tr> + <td title="84">84</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response83">고유코드</span></td> + <td class="left"> openCode</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="85">85</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response84">로그인 + 아이디</span> *</td> + <td class="left"> userId</td> + <td>String</td> + <td class="left">knoxportal</td> + <td></td> + </tr> + <tr> + <td title="86">86</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response85">인터넷 + 전화번호</span></td> + <td class="left"> voipNumber</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="87">87</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response86">퇴직/휴직일</span></td> + <td class="left"> withdrawDate</td> + <td>String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="88">88</td> + <td class="left"> <span data-message-id="emp.guide.empsearch.response87">ID + 유효기간</span></td> + <td class="left"> epIdExpiryDate</td> + <td>String</td> + <td class="left" title="20201231">20201231</td> + <td></td> + </tr> + <tr> + <td title="89">89</td> + <td class="left"> <span + data-message-id="emp.guide.empsearch.response88">타임존</span></td> + <td class="left"> timeZone</td> + <td>String</td> + <td class="left" title="Asia/Seoul">Asia/Seoul</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.response.description13">이름으로 검색 + 시에는 제공하지 않음</span></td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="module-font type02"> + <p>Sample</p> + </div> + <div class="tbl-list01 kc-tbl"> + <div class="tbl-list-head"> + <table> + <colgroup> + <col width="40%;"> + <col width="60%;"> + </colgroup> + <thead> + <tr> + <th>Request</th> + <th>Response</th> + </tr> + </thead> + </table> + </div> + <div class="tbl-list-body"> + <table> + <colgroup> + <col width="40%;"> + <col width="60%;"> + </colgroup> + <tbody> + <tr> + <td> + <pre><span data-message-id="emp.guide.empsearch.response.sample10"><span class="ellipsis">(1)</span><br><span class="ellipsis">/employees?departmentCode=C60AH959</span><br><span class="ellipsis">{"resultType" :"basic"}</span><br><span class="ellipsis"></span><br><span class="ellipsis"></span><br><span class="ellipsis">(2)</span><br><span class="ellipsis">/employees?companyCode=C60&userIds=es.jen.cho,ye.chang</span><br><span class="ellipsis">{"resultType" :"optional",</span><br><span class="ellipsis"> "attributes":["emailAddress","userId"]</span><br><span class="ellipsis">}</span></span> + </pre> + </td> + <td> + <pre><span data-message-id="emp.guide.empsearch.response.sample11"><span class="ellipsis">(1)</span><br><span class="ellipsis">* 기본 값으로 설정된 attributes값만 리턴</span><br><span class="ellipsis">{"result":"success",</span><br><span class="ellipsis"> "currentPage":1,</span><br><span class="ellipsis"> "totalPage":2,</span><br><span class="ellipsis"> "totalCount":612,</span><br><span class="ellipsis"> "employees":[</span><br><span class="ellipsis"> {"fullname":"조은성",</span><br><span class="ellipsis"> "departmentname":"개발그룹(SC_인트라넷)",</span><br><span class="ellipsis"> "departmentcode":"C60AH959",...},</span><br><span class="ellipsis"> {"fullName":"김민정","departmentname".....}]</span><br><span class="ellipsis">}</span><br><span class="ellipsis"></span><br><span class="ellipsis"></span><br><span class="ellipsis"></span></span> +<span data-message-id="emp.guide.empsearch.response.sample12"><span class="ellipsis">(2)</span><br><span class="ellipsis">* body에 설정된 attributes값만 리턴</span><br><span class="ellipsis">{"result":"success",</span><br><span class="ellipsis"> "currentPage":1,</span><br><span class="ellipsis"> "totalPage":1,</span><br><span class="ellipsis"> "totalCount":2,</span><br><span class="ellipsis"> "employees":[{"emailAddress":"es.jen.cho@stage.samsung.com","userId":"es.jen.cho"},</span><br><span class="ellipsis"> {"emailAddress":"ye.chang@stage.samsung.com","userId":"ye.chang"}]</span><br><span class="ellipsis">}</span></span> + </pre> + </td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="module-font type02"> + <p>Error Code</p> + </div> + <div class="tbl-list01 kc-tbl"> + <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="emp.guide.empsearch.error00">HTTP응답코드</span></th> + <th><span data-message-id="emp.guide.empsearch.error01">에러코드</span></th> + <th><span data-message-id="emp.guide.empsearch.error02">에러메시지</span></th> + <th><span data-message-id="emp.guide.empsearch.error03">조치방안</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>400</td> + <td>EM0001</td> + <td class="left desc">Search request with more than 100 list can not be proceeded.</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.error04">조회건수 100건 초과하여 에러 발생. + Parameter 추가하여 조회 건수 축소</span></td> + </tr> + <tr> + <td>400</td> + <td>EM0004</td> + <td class="left desc">Please insert the search keyword.</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.error05">Parameter 누락 확인</span> + </td> + </tr> + <tr> + <td>400</td> + <td>EM0005</td> + <td class="left desc">Search keyword length is not valid.</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.error06">Parameter 길이 확인</span> + </td> + </tr> + <tr> + <td>400</td> + <td>EM0006</td> + <td class="left desc">Search keyword should be no longer than 100 characters.</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.error07">Parameter 길이 100자 이하로 + 작성</span></td> + </tr> + <tr> + <td>400</td> + <td>EM0007</td> + <td class="left desc">Search keyword can not include the caracter.</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.error08">Parameter에 *, % 이 포함되어 + 있는지 확인</span></td> + </tr> + <tr> + <td>500</td> + <td>EM0010</td> + <td class="left desc">EPWebservice.{} Abnormal.</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.error09">Parameter 누락 또는 잘못된 + 형식인지 확인</span></td> + </tr> + <tr> + <td>400</td> + <td>EM0014</td> + <td class="left desc">Please enter {} as required.</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.error11">{} 필수값 누락</span></td> + </tr> + <tr> + <td>400</td> + <td>EM0015</td> + <td class="left desc">Please enter {} according to the specified format.</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.error12">잘못된 형식으로 인한 오류</span> + </td> + </tr> + <tr> + <td>400</td> + <td>EM0016</td> + <td class="left desc">Only one of {} can be selected.</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.error13">{} 중 한 개만 선택하여 검색 + 가능</span></td> + </tr> + <tr> + <td>400</td> + <td>EM0017</td> + <td class="left desc">For the requested search conditions, paging is not possible.</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.error14">페이징 지원 불가</span></td> + </tr> + <tr> + <td>400</td> + <td>EM0018</td> + <td class="left desc">Please remove the {} keyword from the requested search conditions and try + again.</td> + <td class="left desc"><span data-message-id="emp.guide.empsearch.error15">요청한 검색조건 중, {} 조건 제거 후 + 다시 시도 바랍니다.</span></td> + </tr> + </tbody> + </table> + </div> + </div><br><br><br> + <div class="dan-border"></div> + <div class="module-font type01" id="org"><span data-message-id="emp.guide.orgsearch">조직도 조회</span></div> + <div class="module-font type02"> + <p>Request Parameter</p> + </div> + <div class="tbl-list01 kc-tbl"> + <div class="tbl-list-head"> + <table> + <colgroup> + <col width="4%;"> + <col width="10%;"> + <col width="15%;"> + <col width="9%;"> + <col width="9%;"> + <col width="9%;"> + <col width="15%;"> + <col> + </colgroup> + <thead> + <tr> + <th>No.</th> + <th>Properties</th> + <th>Attribute</th> + <th>Mandatory</th> + <th>Parameter<br>Type</th> + <th>Data<br>Type</th> + <th>Sample Data</th> + <th>Note</th> + </tr> + </thead> + </table> + </div> + <div class="tbl-list-body"> + <table> + <colgroup> + <col width="4%;"> + <col width="10%;"> + <col width="15%;"> + <col width="9%;"> + <col width="9%;"> + <col width="9%;"> + <col width="15%;"> + <col> + </colgroup> + <tbody> + <tr> + <td title="1">1</td> + <td><span data-message-id="emp.guide.orgsearch.request01">연계 아이디</span></td> + <td>System-ID</td> + <td>Y</td> + <td>Header</td> + <td>String</td> + <td>C60REST0001</td> + <td class="left desc"></td> + </tr> + <tr> + <td title="2">2</td> + <td><span data-message-id="emp.guide.orgsearch.request02">회사코드</span></td> + <td>companyCode</td> + <td>Y</td> + <td>Query</td> + <td>String</td> + <td>C60</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.request.description01"><span + class="ellipsis">2번 항목 단독 검색 또는</span><br><span class="ellipsis">3~5번 항목 중 하나와 결합하여 + 검색</span></span></td> + </tr> + <tr> + <td title="3">3</td> + <td><span data-message-id="emp.guide.orgsearch.request03">상위부서코드</span></td> + <td>uprDepartmentCode</td> + <td rowspan="3">N</td> + <td>Query</td> + <td>String</td> + <td>C60AI572</td> + <td class="left desc"><span + data-message-id="emp.guide.orgsearch.request.description03">companyCode 쿼리와 함께 + 사용</span><br><span data-message-id="emp.guide.orgsearch.request.description02"><span + class="ellipsis">(3~5번 중</span><br><span class="ellipsis">한 가지만 선택 가능)</span></span> + </td> + </tr> + <tr> + <td title="4">4</td> + <td><span data-message-id="emp.guide.orgsearch.request04">부서코드</span></td> + <td>departmentCode</td> + <td>Query</td> + <td>String</td> + <td>C60AH959</td> + <td class="left desc"><span + data-message-id="emp.guide.orgsearch.request.description03">companyCode 쿼리와 함께 사용</span> + </td> + </tr> + <tr> + <td title="5">5</td> + <td><span data-message-id="emp.guide.orgsearch.request05">부서명</span></td> + <td>departmentName</td> + <td>Query</td> + <td>String</td> + <td title="123123">123123</td> + <td class="left desc"><span + data-message-id="emp.guide.orgsearch.request.description03">companyCode 쿼리와 함께 사용</span> + </td> + </tr> + <tr> + <td title="6">6</td> + <td><span data-message-id="emp.guide.orgsearch.request06">페이지 번호</span></td> + <td>page</td> + <td>N</td> + <td>Query</td> + <td>String</td> + <td title="1">1</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.request.description05"><span + class="ellipsis">companyCode로만 조회하는 경우에만</span><br><span class="ellipsis">paging + 적용가능</span><br><span class="ellipsis">page 입력 시 500건씩 조회</span><br><span + class="ellipsis">page 입력하지 않을 경우 최대 2,000건 조회</span></span><br><span + data-message-id="emp.guide.orgsearch.request.description04"><span + class="ellipsis">(companyCode로만</span><br><span class="ellipsis">검색 시 + 필수)</span></span></td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="module-font type02"> + <p>Response Parameter</p> + </div><span data-message-id="emp.guide.orgsearch.response.description01">- 조회대상 회사의 조직정보만 리턴<br>- 조회대상 회사에 신청 회사 외 + 타사 등록 시 일부 속성(아래 * 표시한 11개 항목)만 조회 가능</span> + <div class="tbl-list01 kc-tbl"> + <div class="tbl-list-head"> + <table> + <colgroup> + <col width="4%;"> + <col width="16%;"> + <col width="15%;"> + <col width="10%;"> + <col width="15%;"> + <col width="25%;"> + </colgroup> + <thead> + <tr> + <th>No.</th> + <th>Properties</th> + <th>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="4%;"> + <col width="16%;"> + <col width="15%;"> + <col width="10%;"> + <col width="15%;"> + <col width="25%;"> + </colgroup> + <tbody> + <tr> + <td title="1">1</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response01">API 호출 성공 여부</span></td> + <td class="left">result</td> + <td>String</td> + <td class="left">success<br>fail</td> + <td></td> + </tr> + <tr> + <td title="2">2</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response02">현재 페이지</span></td> + <td class="left">currentPage</td> + <td>int</td> + <td class="left" title="1">1</td> + <td></td> + </tr> + <tr> + <td title="3">3</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response03">총 결과 페이지 수</span></td> + <td class="left">totalPage</td> + <td>int</td> + <td class="left" title="3">3</td> + <td></td> + </tr> + <tr> + <td title="4">4</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response04">검색된 조직정보의 수</span></td> + <td class="left">totalCount</td> + <td>int</td> + <td class="left" title="30">30</td> + <td></td> + </tr> + <tr> + <td title="5">5</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response05">조직 정보 리스트</span></td> + <td class="left" title="organizations">organizations</td> + <td>JSON String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="6">6</td> + <td class="left"> <span + data-message-id="emp.guide.orgsearch.response06">회사코드</span> *</td> + <td class="left"> companyCode</td> + <td>string</td> + <td class="left">C60</td> + <td></td> + </tr> + <tr> + <td title="7">7</td> + <td class="left"> <span + data-message-id="emp.guide.orgsearch.response07">회사명</span> *</td> + <td class="left"> companyName</td> + <td>string</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response.sample01">삼성SDS</span></td> + <td></td> + </tr> + <tr> + <td title="8">8</td> + <td class="left"> <span + data-message-id="emp.guide.orgsearch.response08">부서코드</span> *</td> + <td class="left"> departmentCode</td> + <td>string</td> + <td class="left">C60AH959</td> + <td></td> + </tr> + <tr> + <td title="9">9</td> + <td class="left"> <span + data-message-id="emp.guide.orgsearch.response09">부서레벨</span></td> + <td class="left"> departmentLevel</td> + <td>string</td> + <td class="left" title="3">3</td> + <td></td> + </tr> + <tr> + <td title="10">10</td> + <td class="left"> <span + data-message-id="emp.guide.orgsearch.response10">부서명</span> *</td> + <td class="left"> departmentName</td> + <td>string</td> + <td class="left"><span + data-message-id="emp.guide.orgsearch.response.sample02">Knox개발그룹(솔루션개발)</span></td> + <td></td> + </tr> + <tr> + <td title="11">11</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response11">부서간 + 순위</span></td> + <td class="left"> departmentOrder</td> + <td>string</td> + <td class="left" title="2">2</td> + <td></td> + </tr> + <tr> + <td title="12">12</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response12">영문 + 회사명</span> *</td> + <td class="left"> enCompanyName</td> + <td>string</td> + <td class="left">SAMSUNG SDS</td> + <td></td> + </tr> + <tr> + <td title="13">13</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response13">영문 + 부서명</span> *</td> + <td class="left"> enDepartmentName</td> + <td>string</td> + <td class="left" title="Knox Development Group">Knox Development Group</td> + <td></td> + </tr> + <tr> + <td title="14">14</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response14">영문 부서장 + 직급</span></td> + <td class="left"> enManagerTitle</td> + <td>string</td> + <td class="left" title="Principal Engineer/Group Leader">Principal Engineer/Group Leader</td> + <td></td> + </tr> + <tr> + <td title="15">15</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response15">영문 + 총괄명</span> *</td> + <td class="left"> enSubOrgCode</td> + <td>string</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="16">16</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response16">내부부서 + 코드</span> *</td> + <td class="left"> inDepartmentCode</td> + <td>string</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="17">17</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response17">하위 + 부서존재 유무</span></td> + <td class="left"> lowDepartmentYn</td> + <td>string</td> + <td class="left">T</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.response.description02"><span + class="ellipsis">T: 존재함</span><br><span class="ellipsis">F: 존재하지 않음</span></span> + </td> + </tr> + <tr> + <td title="18">18</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response18">부서장 + 아이디</span></td> + <td class="left"> managerId</td> + <td>string</td> + <td class="left">kch.jung</td> + <td></td> + </tr> + <tr> + <td title="19">19</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response19">부서장 + 성명</span></td> + <td class="left"> managerName</td> + <td>string</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response.sample03">정기철</span></td> + <td></td> + </tr> + <tr> + <td title="20">20</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response20">부서장 + 직급</span></td> + <td class="left"> managerTitle</td> + <td>string</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response.sample04">Principal + Engineer/그룹장(Sr. SCP)</span></td> + <td></td> + </tr> + <tr> + <td title="21">21</td> + <td class="left"> <span + data-message-id="emp.guide.orgsearch.response21">표현언어</span> *</td> + <td class="left"> preferredLanguage</td> + <td>string</td> + <td class="left">ko</td> + <td></td> + </tr> + <tr> + <td title="22">22</td> + <td class="left"> <span + data-message-id="emp.guide.orgsearch.response22">총괄코드</span> *</td> + <td class="left"> subOrgCode</td> + <td>string</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="23">23</td> + <td class="left"> <span + data-message-id="emp.guide.orgsearch.response23">총괄명</span> *</td> + <td class="left"> subOrgName</td> + <td>string</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="24">24</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response24">상위 + 부서코드</span></td> + <td class="left"> uprDepartmentCode</td> + <td>string</td> + <td class="left">C60AJ336</td> + <td></td> + </tr> + <tr> + <td title="25">25</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response25">영문 상위 + 부서명</span></td> + <td class="left"> enUprDepartmentName</td> + <td>string</td> + <td class="left">Solution Development Team</td> + <td></td> + </tr> + <tr> + <td title="26">26</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response26">상위 + 부서명</span></td> + <td class="left"> uprDepartmentName</td> + <td>string</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response.sample05">솔루션개발팀</span> + </td> + <td></td> + </tr> + <tr> + <td title="27">27</td> + <td class="left"> <span data-message-id="emp.guide.orgsearch.response27">부서 숨김 + 여부</span></td> + <td class="left"> hiddenDepartmentYn</td> + <td>string</td> + <td class="left">F</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.response.description03"><span + class="ellipsis">T: 비노출</span><br><span class="ellipsis">F: 노출</span></span></td> + </tr> + <tr> + <td title="28">28</td> + <td class="left"> <span + data-message-id="emp.guide.orgsearch.response28">법인코드</span></td> + <td class="left"> corpCode</td> + <td>string</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response.sample08">A001</span></td> + <td></td> + </tr> + <tr> + <td title="29">29</td> + <td class="left"> <span + data-message-id="emp.guide.orgsearch.response29">법인명</span></td> + <td class="left"> corpName</td> + <td>string</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response.sample09">영국법인</span></td> + <td></td> + </tr> + <tr> + <td title="30">30</td> + <td class="left"> <span + data-message-id="emp.guide.orgsearch.response30">영문법인명</span></td> + <td class="left"> enCorpName</td> + <td>string</td> + <td class="left"><span data-message-id="emp.guide.orgsearch.response.sample10">UK CORP</span> + </td> + <td></td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="module-font type02"> + <p>Sample</p> + </div> + <div class="tbl-list01 kc-tbl"> + <div class="tbl-list-head"> + <table> + <colgroup> + <col width="50%;"> + <col width="50%;"> + </colgroup> + <thead> + <tr> + <th>Request</th> + <th>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="emp.guide.orgsearch.response.sample06">/organizations?companyCode=C60&departmentCode=C60AH959</span> + </pre> + </td> + <td> + <pre><span data-message-id="emp.guide.orgsearch.response.sample07"><span class="ellipsis">{</span><br><span class="ellipsis"> "currentPage":"1",</span><br><span class="ellipsis"> "totalPage":"1",</span><br><span class="ellipsis"> "totalCount":"1",</span><br><span class="ellipsis"> "organizations":[{"companyCode":"C60",</span><br><span class="ellipsis"> "departmentname":"knox개발그룹",</span><br><span class="ellipsis"> "enDepartmentName":"Knox Development Group ",</span><br><span class="ellipsis"> ...}]</span><br><span class="ellipsis">}</span></span> + </pre> + </td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="module-font type02"> + <p>Error Code</p> + </div> + <div class="tbl-list01 kc-tbl"> + <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="emp.guide.empsearch.error00">HTTP응답코드</span></th> + <th><span data-message-id="emp.guide.orgsearch.error01">에러코드</span></th> + <th><span data-message-id="emp.guide.orgsearch.error02">에러메시지</span></th> + <th><span data-message-id="emp.guide.orgsearch.error03">조치방안</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>400</td> + <td>ORG0003</td> + <td class="left desc">Please insert the search keyword.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error04">Parameter 확인</span> + </td> + </tr> + <tr> + <td>400</td> + <td>ORG0004</td> + <td class="left desc">Search keyword must be larger than 4 bytes.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error05">Parameter 길이 4자 이상으로 + 작성</span></td> + </tr> + <tr> + <td>400</td> + <td>ORG0005</td> + <td class="left desc">Search keyword should be no longer than 100 characters.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error06">Parameter 길이 100자 이내로 + 작성</span></td> + </tr> + <tr> + <td>400</td> + <td>ORG0006</td> + <td class="left desc">Search keyword can not include the caracter.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error07">Parameter에 *, % 이 포함되어 + 있는지 확인</span></td> + </tr> + <tr> + <td>500</td> + <td>ORG0010</td> + <td class="left desc">ORGWebservice. {} Abnormal.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error08">Parameter 누락 또는 잘못된 + 형식인지 확인</span></td> + </tr> + <tr> + <td>400</td> + <td>ORG0011</td> + <td class="left desc">Please enter {} as required.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error09">{} 필수값 누락</span></td> + </tr> + <tr> + <td>400</td> + <td>ORG0012</td> + <td class="left desc">Please enter {} according to the specified format.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error10">잘못된 형식으로 인한 오류</span> + </td> + </tr> + <tr> + <td>400</td> + <td>ORG0013</td> + <td class="left desc">Only one of {} can be selected.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error11">{} 중 한 개만 선택하여 검색 + 가능</span></td> + </tr> + <tr> + <td>400</td> + <td>ORG0014</td> + <td class="left desc">For the requested search conditions, paging is not possible.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error12">페이징 지원 불가</span></td> + </tr> + </tbody> + </table> + </div> + </div><br><br><br> + <div class="dan-border"></div> + <div class="module-font type01" id="title"><span data-message-id="emp.guide.titlesearch">직급정보 조회</span></div> + <div class="module-font type02"> + <p>Request Parameter</p> + </div> + <div class="tbl-list01 kc-tbl"> + <div class="tbl-list-head"> + <table> + <colgroup> + <col width="4%;"> + <col width="13%;"> + <col width="16%;"> + <col width="12%;"> + <col width="10%;"> + <col width="10%;"> + <col width="15%;"> + <col width="20%;"> + </colgroup> + <thead> + <tr> + <th>No.</th> + <th>Properties</th> + <th>Attribute</th> + <th>Mandatory</th> + <th>Parameter Type</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="4%;"> + <col width="13%;"> + <col width="16%;"> + <col width="12%;"> + <col width="10%;"> + <col width="10%;"> + <col width="15%;"> + <col width="20%;"> + </colgroup> + <tbody> + <tr> + <td title="1">1</td> + <td class="left"><span data-message-id="emp.guide.titlesearch.request01">연계 아이디</span></td> + <td class="left">System-ID</td> + <td>Y</td> + <td>Header</td> + <td>String</td> + <td class="left">C60REST0001</td> + <td></td> + </tr> + <tr> + <td title="2">2</td> + <td class="left"><span data-message-id="emp.guide.titlesearch.request02">회사코드</span></td> + <td class="left">companyCode</td> + <td>Y</td> + <td>Query</td> + <td>String</td> + <td class="left">C60</td> + <td></td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="module-font type02"> + <p>Response Parameter</p> + </div> + <div class="tbl-list01 kc-tbl"> + <div class="tbl-list-head"> + <table> + <colgroup> + <col width="4%;"> + <col width="18%;"> + <col width="10%;"> + <col width="10%;"> + <col width="18%;"> + <col width="25%;"> + </colgroup> + <thead> + <tr> + <th>No.</th> + <th>Properties</th> + <th>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="4%;"> + <col width="18%;"> + <col width="10%;"> + <col width="10%;"> + <col width="18%;"> + <col width="25%;"> + </colgroup> + <tbody> + <tr> + <td title="1">1</td> + <td class="left"><span data-message-id="emp.guide.titlesearch.response01">API 호출 성공 여부</span> + </td> + <td class="left">result</td> + <td>String</td> + <td class="left">success<br>fail</td> + <td></td> + </tr> + <tr> + <td title="2">2</td> + <td class="left"><span data-message-id="emp.guide.titlesearch.response02">직급정보 배열</span></td> + <td class="left">titles</td> + <td>JSON String</td> + <td class="left"></td> + <td></td> + </tr> + <tr> + <td title="3">3</td> + <td class="left"> <span + data-message-id="emp.guide.titlesearch.response03">회사코드</span></td> + <td class="left"> companyCode</td> + <td>String</td> + <td class="left">C60</td> + <td></td> + </tr> + <tr> + <td title="4">4</td> + <td class="left"> <span + data-message-id="emp.guide.titlesearch.response04">직급코드</span></td> + <td class="left"> titleCode</td> + <td>String</td> + <td class="left">B3K</td> + <td></td> + </tr> + <tr> + <td title="5">5</td> + <td class="left"> <span + data-message-id="emp.guide.titlesearch.response05">직급명</span></td> + <td class="left"> titleName</td> + <td>String</td> + <td class="left"><span data-message-id="emp.guide.titlesearch.response.sample01">책임</span></td> + <td></td> + </tr> + <tr> + <td title="6">6</td> + <td class="left"> <span + data-message-id="emp.guide.titlesearch.response06">영문직급명</span></td> + <td class="left"> enTitleName</td> + <td>String</td> + <td class="left">Senior Engineer</td> + <td></td> + </tr> + <tr> + <td title="7">7</td> + <td class="left"> <span data-message-id="emp.guide.titlesearch.response07">직급정렬 + 순서</span></td> + <td class="left"> sortOrder</td> + <td>String</td> + <td class="left" title="1">1</td> + <td></td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="module-font type02"> + <p>Sample</p> + </div> + <div class="tbl-list01 kc-tbl"> + <div class="tbl-list-head"> + <table> + <colgroup> + <col width="40%;"> + <col width="60%;"> + </colgroup> + <thead> + <tr> + <th>Request</th> + <th>Response</th> + </tr> + </thead> + </table> + </div> + <div class="tbl-list-body"> + <table> + <colgroup> + <col width="40%;"> + <col width="60%;"> + </colgroup> + <tbody> + <tr> + <td> + <pre><span data-message-id="emp.guide.titlesearch.response.sample02">/titles?companyCode=C60</span> + </pre> + </td> + <td> + <pre><span data-message-id="emp.guide.titlesearch.response.sample03"><span class="ellipsis">{</span><br><span class="ellipsis"> "result":"success",</span><br><span class="ellipsis"> "titles":[{"companyCode":"C60",</span><br><span class="ellipsis"> "titleCode":"J8",</span><br><span class="ellipsis"> "titleName":"사장",</span><br><span class="ellipsis"> "enTitleName":"CEO",</span><br><span class="ellipsis"> "sortOrder":"1"},</span><br><span class="ellipsis"> {"companyCode":"C60",</span><br><span class="ellipsis"> "titleCode":"J7",</span><br><span class="ellipsis"> "titleName":"상무",</span><br><span class="ellipsis"> "enTitleName":"상무",</span><br><span class="ellipsis"> "sortOrder":"2"},</span><br><span class="ellipsis"> ...]</span><br><span class="ellipsis">}</span></span> + </pre> + </td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="module-font type02"> + <p>Error Code</p> + </div> + <div class="tbl-list01 kc-tbl"> + <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="emp.guide.empsearch.error00">HTTP응답코드</span></th> + <th><span data-message-id="emp.guide.orgsearch.error01">에러코드</span></th> + <th><span data-message-id="emp.guide.orgsearch.error02">에러메시지</span></th> + <th><span data-message-id="emp.guide.orgsearch.error03">조치방안</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>400</td> + <td>ORG0003</td> + <td class="left desc">Please insert the search keyword.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error04">Parameter 확인</span> + </td> + </tr> + <tr> + <td>400</td> + <td>ORG0005</td> + <td class="left desc">Search keyword should be no longer than 100 characters.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error06">Parameter 길이 100자 이내로 + 작성</span></td> + </tr> + <tr> + <td>400</td> + <td>ORG0006</td> + <td class="left desc">Search keyword can not include the caracter.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error07">Parameter에 *, % 이 포함되어 + 있는지 확인</span></td> + </tr> + <tr> + <td>500</td> + <td>ORG0010</td> + <td class="left desc">ORGWebservice. {} Abnormal.</td> + <td class="left desc"><span data-message-id="emp.guide.orgsearch.error08">Parameter 누락 또는 잘못된 + 형식인지 확인</span></td> + </tr> + </tbody> + </table> + </div> + </div> +</div>
\ No newline at end of file diff --git a/lib/knox-api/employee/employee.ts b/lib/knox-api/employee/employee.ts new file mode 100644 index 00000000..885b5a3f --- /dev/null +++ b/lib/knox-api/employee/employee.ts @@ -0,0 +1,435 @@ +"use server" + +// Knox API 임직원 관련 서버 액션들 + +// 기본 설정 타입 +interface KnoxConfig { + baseUrl: string; + systemId: string; +} + +// 공통 응답 타입 +interface BaseResponse { + result: "success" | "fail"; +} + +// 임직원 조회 관련 타입 +interface EmployeeSearchParams { + companyCode?: string; + fullName?: string; + departmentCode?: string; + employeeNumber?: string; + name?: string; + epIds?: string; + userIds?: string; + emailAddresses?: string; + titleCode?: string; + page?: string; + resultType: "basic" | "optional"; + attributes?: string[]; +} + +interface Employee { + accountStatus?: string; + busiCode?: string; + busiName?: string; + companyCode: string; + companyName: string; + country?: string; + defaultCompanyCode?: string; + departmentCode: string; + departmentName: string; + description?: string; + emailAddress?: string; + employeeNumber?: string; + employeeStatus?: string; + employeeType?: string; + enBusiName?: string; + enCompanyName?: string; + enDepartmentName?: string; + enDiscription?: string; + enFullName?: string; + enGivenName?: string; + enGradeName?: string; + enOfficeAddress?: string; + enRegionName?: string; + enSendBusiName?: string; + enSendCompanyName?: string; + enSendDepartmentName?: string; + enSendGradeName?: string; + enSendRegionName?: string; + enSendSubOrgName?: string; + enSendTitleName?: string; + enSirName?: string; + enSubOrgName?: string; + enTitleName?: string; + epId: string; + executiveYn?: string; + externalEmailAddress?: string; + fullName: string; + givenName?: string; + gradeName?: string; + gradeTitleIndiCode?: string; + inDepartmentCode?: string; + inDepartmentName?: string; + jobName?: string; + jobCode?: string; + localStaffYn?: string; + mobile?: string; + nickName?: string; + officeAddress?: string; + officeDetailAddress?: string; + officeFaxNumber?: string; + officeZipCode?: string; + officeTelNumber?: string; + preferredLanguage?: string; + realNameYn?: string; + regionCode?: string; + regionName?: string; + securityLevel?: string; + sendBusiCde?: string; + sendCompanyCode?: string; + sendCompanyName?: string; + sendDepartmentCode?: string; + sendDepartmentName?: string; + sendGradeName?: string; + sendGradeTitleIndiCode?: string; + sendRegionCode?: string; + sendSecurityLevel?: string; + sendSubOrgCode?: string; + sendSubOrgName?: string; + sendTitleName?: string; + sendTitleCode?: string; + sendTitleSortOrder?: string; + serverLocation?: string; + sirName?: string; + subOrgCode?: string; + subOrgName?: string; + titleName?: string; + titleCode?: string; + titleSortOrder?: string; + openCode?: string; + userId?: string; + voipNumber?: string; + withdrawDate?: string; + epIdExpiryDate?: string; + timeZone?: string; +} + +interface EmployeeResponse extends BaseResponse { + currentPage: number; + totalPage: number; + totalCount: number; + employees: Employee[]; +} + +// 조직도 조회 관련 타입 +interface OrganizationSearchParams { + companyCode: string; + uprDepartmentCode?: string; + departmentCode?: string; + departmentName?: string; + page?: string; +} + +interface Organization { + companyCode: string; + companyName: string; + departmentCode: string; + departmentLevel?: string; + departmentName: string; + departmentOrder?: string; + enCompanyName?: string; + enDepartmentName?: string; + enManagerTitle?: string; + enSubOrgCode?: string; + inDepartmentCode?: string; + lowDepartmentYn?: string; + managerId?: string; + managerName?: string; + managerTitle?: string; + preferredLanguage?: string; + subOrgCode?: string; + subOrgName?: string; + uprDepartmentCode?: string; + enUprDepartmentName?: string; + uprDepartmentName?: string; + hiddenDepartmentYn?: string; + corpCode?: string; + corpName?: string; + enCorpName?: string; +} + +interface OrganizationResponse extends BaseResponse { + currentPage: number; + totalPage: number; + totalCount: number; + organizations: Organization[]; +} + +// 직급정보 조회 관련 타입 +interface TitleSearchParams { + companyCode: string; +} + +interface Title { + companyCode: string; + titleCode: string; + titleName: string; + enTitleName: string; + sortOrder: string; +} + +interface TitleResponse extends BaseResponse { + titles: Title[]; +} + +// 설정 가져오기 (환경변수 또는 설정에서) +const getKnoxConfig = (): KnoxConfig => { + return { + baseUrl: process.env.KNOX_API_BASE_URL || "https://api.knox.samsung.com", + systemId: process.env.KNOX_SYSTEM_ID || "C60REST0001" + }; +}; + +// 공통 헤더 생성 +const createHeaders = (systemId: string): Record<string, string> => { + return { + "Content-Type": "application/json", + "System-ID": systemId + }; +}; + +/** + * 임직원 조회 API + * POST /employee/api/v2.0/employees + */ +export async function searchEmployees(params: EmployeeSearchParams): Promise<EmployeeResponse> { + const config = getKnoxConfig(); + + try { + // URL 파라미터 구성 + const searchParams = new URLSearchParams(); + + if (params.companyCode) searchParams.append("companyCode", params.companyCode); + if (params.fullName) searchParams.append("fullName", params.fullName); + if (params.departmentCode) searchParams.append("departmentCode", params.departmentCode); + if (params.employeeNumber) searchParams.append("employeeNumber", params.employeeNumber); + if (params.name) searchParams.append("name", params.name); + if (params.epIds) searchParams.append("epIds", params.epIds); + if (params.userIds) searchParams.append("userIds", params.userIds); + if (params.emailAddresses) searchParams.append("emailAddresses", params.emailAddresses); + if (params.titleCode) searchParams.append("titleCode", params.titleCode); + if (params.page) searchParams.append("page", params.page); + + // Body 데이터 구성 + const body = { + resultType: params.resultType, + ...(params.attributes && { attributes: params.attributes }) + }; + + const response = await fetch( + `${config.baseUrl}/employee/api/v2.0/employees?${searchParams.toString()}`, + { + method: "POST", + headers: createHeaders(config.systemId), + body: JSON.stringify(body) + } + ); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + return data as EmployeeResponse; + } catch (error) { + console.error("임직원 조회 오류:", error); + throw error; + } +} + +/** + * 조직도 조회 API + * GET /employee/api/v2.0/organizations + */ +export async function searchOrganizations(params: OrganizationSearchParams): Promise<OrganizationResponse> { + const config = getKnoxConfig(); + + try { + // URL 파라미터 구성 + const searchParams = new URLSearchParams(); + searchParams.append("companyCode", params.companyCode); + + if (params.uprDepartmentCode) searchParams.append("uprDepartmentCode", params.uprDepartmentCode); + if (params.departmentCode) searchParams.append("departmentCode", params.departmentCode); + if (params.departmentName) searchParams.append("departmentName", params.departmentName); + if (params.page) searchParams.append("page", params.page); + + const response = await fetch( + `${config.baseUrl}/employee/api/v2.0/organizations?${searchParams.toString()}`, + { + method: "GET", + headers: createHeaders(config.systemId) + } + ); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + return data as OrganizationResponse; + } catch (error) { + console.error("조직도 조회 오류:", error); + throw error; + } +} + +/** + * 직급정보 조회 API + * GET /employee/api/v2.0/titles + */ +export async function searchTitles(params: TitleSearchParams): Promise<TitleResponse> { + const config = getKnoxConfig(); + + try { + // URL 파라미터 구성 + const searchParams = new URLSearchParams(); + searchParams.append("companyCode", params.companyCode); + + const response = await fetch( + `${config.baseUrl}/employee/api/v2.0/titles?${searchParams.toString()}`, + { + method: "GET", + headers: createHeaders(config.systemId) + } + ); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + return data as TitleResponse; + } catch (error) { + console.error("직급정보 조회 오류:", error); + throw error; + } +} + +/** + * 편의 함수들 + */ + +/** + * 사번으로 임직원 조회 + */ +export async function getEmployeeByNumber(employeeNumber: string, companyCode?: string): Promise<Employee | null> { + try { + const response = await searchEmployees({ + employeeNumber, + companyCode, + resultType: "basic" + }); + + if (response.result === "success" && response.employees.length > 0) { + return response.employees[0]; + } + return null; + } catch (error) { + console.error("사번으로 임직원 조회 오류:", error); + return null; + } +} + +/** + * 이메일로 임직원 조회 + */ +export async function getEmployeeByEmail(emailAddress: string, companyCode?: string): Promise<Employee | null> { + try { + const response = await searchEmployees({ + emailAddresses: emailAddress, + companyCode, + resultType: "basic" + }); + + if (response.result === "success" && response.employees.length > 0) { + return response.employees[0]; + } + return null; + } catch (error) { + console.error("이메일로 임직원 조회 오류:", error); + return null; + } +} + +/** + * 부서 코드로 임직원 목록 조회 + */ +export async function getEmployeesByDepartment(departmentCode: string, page?: string): Promise<Employee[]> { + try { + const response = await searchEmployees({ + departmentCode, + page, + resultType: "basic" + }); + + if (response.result === "success") { + return response.employees; + } + return []; + } catch (error) { + console.error("부서별 임직원 조회 오류:", error); + return []; + } +} + +/** + * 회사의 모든 부서 조회 + */ +export async function getDepartmentsByCompany(companyCode: string): Promise<Organization[]> { + try { + const response = await searchOrganizations({ + companyCode + }); + + if (response.result === "success") { + return response.organizations; + } + return []; + } catch (error) { + console.error("회사별 부서 조회 오류:", error); + return []; + } +} + +/** + * 회사의 모든 직급 조회 + */ +export async function getTitlesByCompany(companyCode: string): Promise<Title[]> { + try { + const response = await searchTitles({ companyCode }); + + if (response.result === "success") { + return response.titles; + } + return []; + } catch (error) { + console.error("회사별 직급 조회 오류:", error); + return []; + } +} + +// 타입 export +export type { + EmployeeSearchParams, + Employee, + EmployeeResponse, + OrganizationSearchParams, + Organization, + OrganizationResponse, + TitleSearchParams, + Title, + TitleResponse +}; |
