전자결재 결재라인 외부연동 API 전자결재 API 2021-06-03 신달수 0 댓글 0 1062 1. 기능 정의 본 OpenAPI는 지오유그룹웨어에서 제공하는 DB연동양식(예:ERP연동, ... 등등)을 통하여 전자결재를 이용할때 고객사내에서 정해놓은 결재라인을 강제적으로 적용하도록 하여 작성자의 결재라인 설정 오류등으로 인한 문제를 방지하고 사내 결재라인 정책을 유지시켜주는 기능입니다. 2. 사전 설정 및 확인사항 지오유 그룹웨어의 전자결재와 DB연동시스템간의 연동처리를 위해 function ActProc() 함수(javascript함수)가 반드시 존재해야 한다. DB연동양식은 전자결재의 "결재상신"버튼을 클릭 시, 사전 예약된 javascript함수인 function ActProc() 함수를 호출한다. 아래 정의된 리턴값(return value) 정의에 따라 "상신처리"를 진행하거나, 진행을 중지하고 작성상태를 유지한다. function ActProc() 내부의 처리는 연동 개발자의 의도대로 업무로직을 구현하면 된다.<br>다만, return value는 아래 정의된 내용에 따라 return해주어야 정상적인 결재상신처리가 이루어진다. 3. function ActProc()함수 리턴값(return value) 정의 결재상신신 호출되는 ActProc()함수의 리턴값이 false인 경우를 제외한 나머지 경우는 모두 정상처리로 간주하여 "결재문서상신" 처리를 진행합니다. True : boolean형<br>- 정상처리된 상태이므로 결재문서 상신처리를 진행 function ActProc(){ ... ... return true; } False : boolean형<br>- DB연동처리 실패가 발생한 경우로 결재작성 상태 유지 (상신작업을 진행하지 않음) function ActProc(){ ... ... return false; } LineNo : "Json String" or "Json Object"<br>- 사전에 설정되어있는 결재라인 번호 리턴(아래 "4. 리턴값 ( LineNo ) 세부 설명" 참조)<br>- 정상처리된 상태이므로 결재문서 상신처리를 진행 function ActProc(){ ... ... var str = '{"LineNo":14}'; return str; } or function ActProc(){ ... ... var str = '{"LineNo":14}'; var obj = JSON.parse(str); return obj; } LineStr : "Json String" or "Json Object"<br>- 결재라인 문자열을 정의된 형식으로 리턴(아래 "5. 리턴값 ( LineStr ) 세부 설명" 참조)<br>- 정상처리된 상태이므로 결재문서 상신처리를 진행 function ActProc(){ ... ... var str = '{"LineStr":"gildong|홍길동|2|개발팀|연구원|102|K|Y|YYN|||15|?ceo|대표자|1|회사|대표|49|K|Y|YYN|||2|?"}'; return str; } or function ActProc(){ ... ... var str = '{"LineStr":"gildong|홍길동|2|개발팀|연구원|102|K|Y|YYN|||15|?ceo|대표자|1|회사|대표|49|K|Y|YYN|||2|?"}'; var obj = JSON.parse(str); return obj; } InputFormValidationError : String형<br>- DB연동양식내부에서 validation 오류 발생시 리턴<br>- DB연동처리에서 Notification하므로 그룹웨어에서는 별도 알림없음.<br>- 결재작성 상태 유지 (상신작업을 진행하지 않음) 4. 리턴값 ( LineNo ) 세부 설명 결재문서의 내용에 따라, 결재라인을 미리 지정된 값으로 변경하고 싶을때 사용한다. 주로, "전결규정"의 경우에 해당한다고 볼 수 있다.<br> 예를들어, 동일 양식을 사용하여 결재상신을 진행할때 30만원 이하의 결재내용일 경우와 30만원 초과의 결재내용일 경우 각각 결재라인을 다르게 지정하여 상신되도록 할때 이용된다. "결재라인"은 전자결재 > 환경설정 > 결재라인관리에서 미리 설정해두어야 하며, 설정시 시스템에서 부여한 "라인번호"가 "LineNo"에 넘겨주어야할 값이다. 상신자가 작성시 지정한 결재라인은 무시되며, 반환된 "LineNo"에 설정되어 있는 결재라인이 강제적으로 적용되어 상신된다. 물론, 상신자에게 해당 내용이 인지될 수 있도록 화면표시 및 Notification 된다. 반환값이 "LineNo"를 포함한 Json String 또는 Json Objejct 인 경우, return true 의 의미를 포함하고 있으므로, 상신자가 정상적으로 결재문서를 "상신처리"한 상태가 된다. 5. 리턴값 ( LineStr ) 세부 설명 결재문서의 내용에 따라, 결재자 정보를 미리 지정된 값으로 변경하고 싶을때 사용한다. 상신자가 작성시 지정한 결재라인은 무시되며, 반환된 "LineStr"에 설정되어 있는 결재라인이 강제적으로 적용되어 상신된다. 물론, 상신자에게 해당 내용이 인지될 수 있도록 화면표시 및 Notification 된다. 해당 값의 구조는 아래와 같으며 각 항목은 "|"문자로 구분한다.<br> 예시) gildong|홍길동|2|개발팀|연구원|102|K|Y|YYN|||15|? "gildong" : 지오유그룹웨어에 설정되어 있는 사용자 ID "홍길동" : 지오유 그룹웨어에 설정되어 있으며, 결재라인정보에 표시될 성명 "2" : 지오유 그룹웨어에 설정되어 있는 소속 부서코드 (관리자페이지 > 사용자계정관리 > 수동으로 인사관리 > 부서관리 에서 확인) "개발팀" : 지오유 그룹웨어에 설정되어 있는 소속 부서명 "연구원" : 지오유 그룹웨어에 설정되어 있는 직위명 "102" : 지오유 그룹웨어에 설정되어 있는 직위코드 (관리자페이지 > 사용자계정관리 > 수동으로 인사관리 > 직위/직책코드 에서 확인) "K" : Sign구분 ("K":결재, "P":전결, "X":결재/전결, "H":협조, "T":통제, "W":합의, "R":참조, "F":승인) "Y" : 바로도착(동시동보) 여부 ('Y":바로도착, "N":바로도착아님) "YYN" : 권한정보<br> - (첫번째) "Y" : 바로도착 여부 ("Y" : 바로도착, "N" : 바로도착아님)<br> - (두번째) "Y" : 결재라인 수정권한 여부 ("Y" : 수정가능, "N" : 수정불가능)<br> - (세번째) "N" : 내용 수정권한 여부 ("Y" : 수정가능, "N" : 수정불가능) "" : 사용안함. "" : 사용안함. "15" : 직위정렬순서 (관리자페이지 > 사용자계정관리 > 수동으로 인사관리 > 직위/직책코드 에서 설정되어 있는 정렬순서값) "?" : 결재자별 구분자값. 결재자정보별 마지막에 반복적으로 들어가는 구분자값입니다.<br> - 예시) gildong|홍길동|2|개발팀|연구원|102|K|Y|YYN|||15|?ceo|대표자|1|회사|대표|49|K|Y|YYN|||2|? 결재자 정보가 여러명일 경우 결재라인정보의 왼쪽부터 오른쪽으로 결재가 진행되는 순서로 인식되어 처리된다. 반환값이 "LineStr"을 포함한 Json String 또는 Json Objejct 인 경우, return true 의 의미를 포함하고 있으므로, 상신자가 정상적으로 결재문서를 "상신처리"한 상태가 된다. 위에서 정의된 반환값이 아니거나 값의 형식이 다를경우 return false에 해당하는 것으로 간주하여 "상신처리"기능은 더이상 진행되지 않는다. (상신완료 페이지로 넘어가지 않음) 6. 연동하는 웹페이지 구현시 주의해야할 사항 Cross 도메인 문제가 있다면, document.domain의 값을 상위 도메인과 일치시켜야 한다. 반드시, javascript 함수인 "function ActProc()"이 존재해야 한다. 위 함수(ActProc())는 반드시 true, false, json string or object, validation에러문자 값 중 하나를 반환해야한다. 만약 ActProc() 함수가 없거나, 반환값이 유효하지 않다면(정해진 값이 아닌경우) return false로 간주하고 상신작업을 중지한다.