Рабочий процесс утверждения форм Google
Я пытаюсь настроить рабочий процесс, используя Google Forms, Sheets и Apps Script. Для простого примера скажем, что я настраиваю форму отпуска для компании. У меня есть форма для сотрудника, вводит свои данные отпуска. При отправке детали заносятся в лист, и электронное письмо отправляется кому-то для одобрения.
Вот где я застреваю. Каков наилучший способ одобрить запросы на отпуск? Я могу просто отредактировать лист и после того, как столбец будет изменен с неутвержденного на одобренный, и электронное письмо можно будет отправить, но я надеялся избежать необходимости редактировать лист вообще.
Есть ли лучший способ справиться с этим рабочим процессом?
0 ответов
Предположим, что 3 человека должны одобрить запрос. Утверждающие лица, которым необходимо просмотреть запрос, - это утверждающие X,Y,Z.
- Пользователь X получает электронное письмо с просьбой просмотреть запрос.
- Электронное письмо, которое получает пользователь X, будет использовать HTML
- В HTML будет ссылка
- Ссылка в HTML отправляет запрос GET
- Всякий раз, когда вы нажимаете ссылку или вводите URL-адрес в адресную строку браузера, на URL-адрес выполняется запрос GET.
- Веб-приложение Apps Script - это проект Apps Script, который публикуется как веб-приложение.
- У веб-приложения есть URL-адрес, который можно использовать для отправки к нему запроса.
- Когда используется url (ссылка), выполняется запрос GET
- Запрос GET, сделанный к веб-приложению Apps Script, запустит функцию doGet()
- После запуска функции doGet() вы можете заставить код скрипта приложений делать все, что захотите.
- Он может получать информацию, отправленную ему из строки поиска
- Затем отправьте еще одно электронное письмо пользователю Y
Итак, когда пользователь X щелкает ссылку, к URL-адресу должна быть добавлена информация в виде строки поиска.
httpz:// ссылка?whichUser=X&authorized=true
Вы можете узнать о пользователе и о том, был ли он одобрен или нет, из "объекта события", часто обозначаемого буквой "е".
function doGet(e) {
var whatUserJustReviewed,isItApproved;
//Get the values passed in from "e" which is the event object
eventParam = e.parameter;
whatUserJustReviewed = eventParam.whichUser;
Logger.log(' whatUserJustReviewed : ' + whatUserJustReviewed )
isItApproved = eventParam. approved;
switch (whatUserJustReviewed) {
case "X"
if (isItApproved === 'true') {
// //Send an email to the next user which is Y
}
break;
case "Y"
if (isItApproved === 'true') {
// //Send an email to the next user which is Z
}
break;
case "Z"
if (isItApproved === 'true') {
//Send an email to all involved who need to know that it was approved.
}
break;
default:
console.error('There was an error getting user or status');
};
}