Изменить скрипт SendGoogleForm - PullRequest
       0

Изменить скрипт SendGoogleForm

0 голосов
/ 19 сентября 2019

Я ищу модификацию сценария, который я нашел в Интернете для форм Google.Скрипт выбирает ответы и отправляет их по электронной почте.Мы используем это, чтобы позволить руководителям присылать вновь нанятых людей.Я не могу изменить сценарий, чтобы добавить новую строку в конце, где я могу использовать переменные из формы для автоматического ввода сценария powershell, который мы затем используем для создания учетных записей в активном каталоге и т. Д.

У меня уже есть сценарий powershell, но, похоже, я не могу включить его в сценарий форм Google.

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

    for ( var keys in columns ) {
      var key = columns[keys];
      if ( e.namedValues[key] && (e.namedValues[key] != "") ) {
        message += key + ' :: '+ e.namedValues[key] + "\n\n"; 

Это код формы Google

/* Send Google Form by Email v2.1 */
/* For customization, contact the developer at amit@labnol.org */
/* Tutorial: http://www.labnol.org/?p=20884 */

function Initialize() {

  var triggers = ScriptApp.getProjectTriggers();

  for(var i in triggers) {
    ScriptApp.deleteTrigger(triggers[i]);
  }

  ScriptApp.newTrigger("SendGoogleForm")
  .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
  .onFormSubmit()
  .create();

}

function SendGoogleForm(e) 
{  
  try 
  {      
    //Här fyller du i mailadresserna för resp avdelning.
    var security = "";
    var hr = "";
    var it = "";

    //Ärende på mailet
    var subject = "Test";  

    //Slår ihop alla mailadresser till en.
    var email = hr +","+ security +","+ it;

    // You may replace this with another email address
    //var email = Session.getActiveUser().getEmail();

    var s = SpreadsheetApp.getActiveSheet();
    var columns = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];    
    var message = "";    

    // Only include form fields that are not blank
    for ( var keys in columns ) {
      var key = columns[keys];
      if ( e.namedValues[key] && (e.namedValues[key] != "") ) {
        message += key + ' :: '+ e.namedValues[key] + "\n\n"; 
      }
      if (key == "Förnamn")
        var fornamn = e.namedValues[key];
      else if (key == "Efternamn")
        var efternamn = e.namedValues[key];

    }

    //Lägger till eventuellt namn i ämnesraden.
    subject += ", " + fornamn + " " + efternamn ;

    // This is the MailApp service of Google Apps Script that sends the email. You can also use GmailApp for HTML Mail.
    MailApp.sendEmail(email, subject, message); 

  } catch (e) {
    Logger.log(e.toString());
  }

}

Вот код powershell, который яхочу попасть в отправленное сообщение.Между каждым '' должна быть выбрана переменная из формы Google.

New-ADUser -SamAccountName 'fornamn.efternamn' -Name 'Förnamn Efternamn' -GivenName 'Förnamn' -Surname 'Efternamn' -Description 'Läkare' -OfficePhone '' -EmailAddress 'fornamn.efternamn@yrdy.com' -Path 'OU=Users-W10,OU=VC Hornstull,OU=Neron,DC=neron,DC=internal' -Company 1 -Department 2 -Title 3

1 Ответ

0 голосов
/ 20 сентября 2019

Если чувствительность к регистру не важна:

  //check if both efternamn and fornamn exist
  if(typeof fornamn !== 'undefined'&&typeof efternamn !== 'undefined'){
    subject += ", " + fornamn + " " + efternamn ;
    message+="New-ADUser -SamAccountName '"+fornamn+"."+efternamn+"' -Name '"+fornamn+" "+efternamn+"' -GivenName '"+fornamn+"' -Surname '"+efternamn+"' -Description 'Läkare' -OfficePhone ' ' -EmailAddress '"+fornamn+"."+efternamn+"@yrdy.com' -Path 'OU=Users-W10,OU=VC Hornstull,OU=Neron,DC=neron,DC=internal' -Company 1 -Department 2 -Title 3";
    MailApp.sendEmail(email, subject, message);     
  }

Комбинация одинарных и двойных кавычек позволяет включать переменные в строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...