JSONに対するフィールドコートの指定

お世話になっております。下記のご相談があり、解決策のご教授願います。

 

実現したいこと

webhookでkintoneからデータを取得し、WEBアプリとしてデプロイしたGASでスプレッドシートへ転記する。

 

 

エラー箇所

不明です。GAS側で実行ログを確認しましたが原因がどこに書いてあるかわかりませんでした、、

下記の項目は確認済なのでエラーの原因ではないと思われます。

kintoneのwebhook実行(毎回成功していました)

GASのバージョン更新忘れ

 

 

試したこと

表題の通りフィールドコートの指定に問題があるのではと思い、いくつかの書き方試してみましたがいずれもエラーでした。

// 短縮案件名
let project = params.record.短縮案件名.value;
let project = params.record["短縮案件名"].value;
let project = params.record.["短縮案件名"].value;

 

そもそもエラーの原因になっているのは別の部分なのでしょうか?

初学者のためわからないことばかりで、、、

すみませんが、宜しくお願い致します。

 

 

コード

function doPost(e) {
  
  // kintoneからの更新データをeで受け取ったものをパースする
  let params = JSON.parse(e.postData.getDataAsString());
  
  // kintoneで付けたアプリ名を取得
  let kintoneAppName = params.app.name;
  
  //フィールドコート
  //開始、終了、短縮案件名、工事番号、顧客名、現場住所、内容、当日担当者


  // 開始日時
  let start_date = params.record.開始.value;
  start_date = new Date(start_date);
  start_date = Utilities.formatDate(start_date, 'Asia/Tokyo', 'yyyy年MM月dd日 hh:mm');


  // 終了日時
  let end_date = params.record.終了.value;
  end_date = new Date(end_date);
  end_date = Utilities.formatDate(end_date, 'Asia/Tokyo', 'yyyy年MM月dd日 hh:mm');
  
  // 短縮案件名
  let project = params.record.短縮案件名.value;
  
  //  工事番号
  let number = params.record.工事番号.value;


  //  顧客名
  let customer = params.record.顧客名.value;


  //  現場住所
  let adders = params.record.現場住所.value;


  //  内容
  let contents = params.record.内容.value;


  //  当日担当者
  let manager = params.record.当日担当者.value;


  // 取得したデータを整形
  let output = [];
    output.push.start_date;
    output.push.end_date;
    output.push.project;
    output.push.number;
    output.push.customer;
    output.push.adders;
    output.push.contents;
    output.push.manager;


  // スプレッドシートに出力
  let sheetOutput = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
  sheetOutput.getRange(2, 1, output.length+1, output[0].length).setValues(output);


}

山中友貴さん

こんにちは。

若干コードの修正が必要と思います。

配列へのpushとスプレッドシートの書き込みの処理を変えてみてください。

// 取得したデータを整形
let output = [];
output.push(start_date);
output.push(end_date);
output.push(project);
// 以下同様

// スプレッドシートに出力
let sheetOutput = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
sheetOutput.appendRow(output);

 

koichiさん

こんにちは。

早速修正してみたところ、正常に動きました!!感動!!

ありがとうございました!