Рабочий процесс утверждения форм Google - PullRequest
0 голосов
/ 26 августа 2018

Я пытаюсь настроить рабочий процесс, используя Google Forms, Sheets и Apps Script. Для простого примера, скажем, я настраиваю форму отпуска для компании. У меня есть форма для сотрудника, вводит свои данные отпуска. При отправке детали заносятся в лист, и электронное письмо отправляется кому-то на утверждение.

Это то место, где я застреваю. Каков наилучший способ одобрить запросы на отпуск? Я могу просто отредактировать лист, и как только столбец изменится с не утверждено на утверждено , и электронное письмо может быть отправлено, но я надеялся избежать необходимости редактировать лист вообще.

Есть ли лучший способ справиться с этим рабочим процессом?

1 Ответ

0 голосов
/ 23 июля 2019

Предположим, что 3 человека должны одобрить запрос. Утверждающие, которые должны рассмотреть запрос, являются утверждающими X, Y, Z.

  • Пользователь X получает электронное письмо с просьбой, чтобы он рассмотрел запрос
  • В электронном письме, которое получает пользователь X, будет использоваться HTML
  • В HTML будет ссылка
  • Ссылка в HTML отправляет запрос GET
  • Каждый раз, когда вы нажимаете на ссылку или вводите URL-адрес в адрес браузера bar, GET запрос сделан на URL
  • Веб-приложение скриптов приложений - это проект скриптов приложений, который публикуется как веб-приложение
  • У веб-приложения есть URL-адрес, по которому можно сделать запрос
  • Когда используется URL (ссылка), выполняется запрос GET
  • Запрос GET, отправленный в веб-приложение скрипта приложений, запустит doGet () функция
  • Как только эта функция doGet () будет запущена, вы можете сделать так, чтобы ваш код скрипта Apps делал все, что вы хотите
  • Может получать информацию, отправляемую ему из строки поиска
  • Затем отправьте другое письмо пользователю Y
  • Таким образом, когда пользователь X нажимает на ссылку, URL-адрес должен иметь информацию добавлен к URL в виде строки поиска

    httpz: // ссылка? WhichUser = X & Approved = 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');
  };


}
...