0

Google Apps スクリプトを使用してワークフロー プロセスを作成しています。ほとんどのレイアウトについて、このビデオを見てきました。

ユーザーから入力データを受け取る Google Apps スクリプトでフォームを作成しました。次に、データはe.parameter値を含む行に送信されます。そのデータは承認者に電子メールで送信されます。承認者には、[ステータス] 列を承認済みに変更するために押す承認ボタンがあります。

問題: 正しい行を承認するためのデータを取得できません。row正しい行に対応するはずのパラメーターを渡していますが、機能していません。

これは、スプレッドシートにデータを送信し、データが電子メールで承認されたら、私のコードです。DoPost関数が実行され、行が承認されます。誰か助けてください!私は一日中解決策を見つけようとしてきました。

function sendEmail_(e) {
  var sheet = SpreadsheetApp.openById("0AuCblud0Ss7BdHA1bXZjYXA0Y0IyekhUQm5vWG02MVE").getActiveSheet();

  var range = sheet.getRange(sheet.getLastRow() + 1, 1, 1, 13);
  range.setValues([
    [e.parameter.LastName, e.parameter.FirstName, e.parameter.DivisionName, e.parameter.EffectiveDate,
    e.parameter.Network, e.parameter.EmployeeNewPosition, e.parameter.DivisionFolder, e.parameter.SpecificIndividual,
    e.parameter.Email, e.parameter.username, e.parameter.who, e.parameter.Banner, "Unapproved"]
  ]);


  var row = sheet.getLastRow() + 1;
  //"https://script.google.com/a/macros/wichitafallstx.gov/s/AKfycbwOgTTGqNsVwnqs-xfqa7TEJWGc_lJZdoyoEoixngKdDemVQuo/exec
  var body = '<form action= <form action = " https://sites.google.com/a/macros/wichitafallstx.gov/s/AKfycbxAOGO6q9ofauf34xlDA9sLG8sUXeZsuvQkDKATOQ/exec" method ="post">' +

    "<b>Last Name:</b>" + e.parameter.LastName + '<br><br>' +
    "<b>First Name:</b>" + e.parameter.FirstName + '<br><br>' +
    "<b>Division Name:</b>" + e.parameter.DivisionName + '<br><br>' +
    "<b>Effective Date:</b>" + e.parameter.EffectiveDate + '<br><br>' +
    "<b>Network:</b>" + e.parameter.Network + '<br><br>' +
    "<b>Employee New Position:</b>" + e.parameter.EmployeeNewPosition + '<br><br>' +
    "<b>Division Folder:</b>" + e.parameter.DivisionFolder + '<br><br>' +
    "<b>Specific Individual:</b>" + e.parameter.SpecificIndividual + '<br><br>' +
    "<b>Email:</b>" + e.parameter.Email + '<br><br>' +
    "<b>Username:</b>" + e.parameter.username + '<br><br>' +
    "<b>who:</b>" + e.parameter.who + '<br><br>' +
    "<b>Banner:</b>" + e.parameter.Banner +

    '<br />' +
    '<br />' +
    '<input type="hidden" name="row" value=" ' + row + ' "/>' +
    '<input type="submit" value="Approve" onclick="approve()" />' +
    '</form>';

  var owners = SitesApp.getSite("wichitafallstx.gov", "information-systems").getOwners();
  var mail = MailApp.sendEmail(owners.join(","), "test", '', {
    htmlBody: body
  });
}

//handles the payload that is posted back to appscript..from the form that is passed from the form created in send email.
function doPost(e) {
  var r = e.parameter["row"];
  var sheet = SpreadsheetApp.openById("0AuCblud0Ss7BdHA1bXZjYXA0Y0IyekhUQm5vWG02MVE").getActiveSheet();
  var values = sheet.getRange(r, 1, 1, 13).getValues();

  sheet.getRange(r, 13).setValue("Approved");

}
4

1 に答える 1

1

正しい行に対応するはずの行パラメーターを渡していますが、機能していません。

意図した行の下の行を通過しているようです。

  var range = sheet.getRange(sheet.getLastRow() + 1, 1, 1, 13);
  range.setValues([
    [e.parameter.LastName, e.parameter.FirstName, e.parameter.DivisionName, e.parameter.EffectiveDate,
    e.parameter.Network, e.parameter.EmployeeNewPosition, e.parameter.DivisionFolder, e.parameter.SpecificIndividual,
    e.parameter.Email, e.parameter.username, e.parameter.who, e.parameter.Banner, "Unapproved"]
  ]);

// In assignment below 'new' lastRow is the row you just filled 
// in with above and should not include + 1
  var row = sheet.getLastRow()   // no + 1;
于 2013-01-31T02:21:22.297 に答える