본문 바로가기

구글앱스로 강소기업만들기

여러 부서의 휴가신청서 제출 및 메일승인

구글앱스로 강소기업만들기 팀의 교육을 완료한 기업의 질문과 해결과정을 블로그를 통해 공개합니다. 

이 글을 읽기 전에 구글 스크립트를 활용한 회사 공용자원 신청하기 관련 포스팅을 꼭 참고하시길 바랍니다. 

2013/11/24 - [구글앱스/구글드라이브_독스] - 양식과 스크립트를 활용한 공용자원관리


질문 : 지난 교육 시 알려주신대로 구글 양식 및 스크립트를 활용하여 휴가신청절차를 완성하였습니다. 그런데 각 부서별 승인자가 달라서 부서별 승인자에게 휴가신청메일을 보내되, 하나의 데이터파일로 수집하였으면 하는데 방법이 없을까요?


질문해설 : 양식과 스크립트를 활용하여 휴가신청을 할 수 있습니다. 이 때 양식의 기본 기능에는 응답 발생시 메일 알람을 할 수가 없습니다. 이를 스크립트를 사용하여 신청자에게는 신청완료 메일이 휴가승인자에게는 휴가신청발생시 그 내용을 메일로 발생하게 하였습니다. 이 때 부서별로 승인자를 다르게 하여 메일알림을 하되, 휴가신청내역을 하나의 파일에 보관하고 싶다는 의미입니다. 


해결방법 : 부서별 승인자를 선택할 수 있도록 양식을 작성하고 스크립트 부분의 승인자 메일 값을 해당 값으로 지정하면 부서별 승인자에게만 메일 알림을 보낼 수 있습니다. 


위 포스팅을 읽고 기본적인 양식작성법을 익히고 있다는 전제 하에 상세한 설명 보다는 중요한 포인트를 위주로 설명하겠습니다. 


1. 양식만들기

휴가신청 양식을 만듭니다. 이 때 "응답자의 조직 내부의 사용자 이름을 자동 수집"을 체크하여야 응답자 이메일이 기록됩니다. 

승인자 부분에 있어 부서별 승인자의 이메일을 선택할 수 있도록 합니다. 


2. 응답시트를 연결합니다. 


B열의 사용자이름은 위에서 체크한 바와 같이 응답자의 이메일주소를 자동으로 기록합니다. 


3. 응답시트의 도구>스크립트 편집기 를 선택하여 빈 프로젝트에 다음과 같은 스크립트를 입력합니다. 

function onFormSubmit(e) {

MailApp.sendEmail(e.values[5], "휴가신청이 등록되었습니다.", "내역을 살펴 보시고, 신청자와 관리부서에 메일을 전달하시며 승인여부를 기재해 주세요.\n\n휴가일정 : " + e.values[4] + "\n휴가자 : " + e.values[2]);

MailApp.sendEmail(e.values[1], "휴가신청이 완료되었습니다.", e.values[2] + "님 출장 신청이 완료되었습니다. \n 휴가신청은 소속부서 승인자의 답장으로 승인이 이루어집니다. \n 승인 답장을 받으면, 관리부서에서 휴가처리를 완료합니다." + "\n휴가일정 : " + e.values[4]);

}

e.values[5] 값이 위 응답시트의 승인자 열을 뜻합니다. 승인자의 메일을 참조합니다. > 해당 부서의 승인자에게 메일을 보낼 수 있습니다. 

e.values[1] 값은 휴가 신청자의 메일값을 참조합니다. 

스크립트 작성 후 리소스 > 현재 트리거 > 응답 제출 시 를 선택하여 저장합니다. 


4. 휴가신청을 합니다. 



4. 휴가신청 완료시 다음과 같이 하나의 응답파일에 데이터가 쌓입니다. (테스트이므로 사용자이름과 휴가신청자는 같게 표기되었습니다만, 다른 사용자가 신청시 사용자이름과 휴가신청자는 변경되어 기록됩니다.)



5. 휴가신청을 하게 되면 위의 파일에 데이터가 남겨짐과 동시에 신청자와 승인자게에게 메일 알림이 전송됩니다. 


<휴가신청자가 수신하는 메일> 


<승인자가 수신하는 메일>


이렇게 승인자의 메일주소를 선택할 수 있도록 양식을 작성하고 스크립트를 활용하여 해당 값을 수신자로 지정하면, 여러 부서의 신청자가 하나의 양식으로 휴가신청을 하고 여러 부서장이 메일로 승인 할 수 있도록 활용할 수 있습니다. 







<구글 앱스 업무 할용, 2013.11,  디지털북스, 김동호 권순옥 서명석 김재문 이현석 저>


YES24 

http://www.yes24.com/24/goods/11370809