サブテーブルに行を追加し変更履歴を残したい。

現在、報酬年額というフィールドに変更があった際に変更された日付と変更後の金額を入れるプログラムを作成していますが、サブテーブルがうまく扱えず苦戦しています。

'app.record.edit.change.報酬年額’で変更があったときに値を取得し、今日の日付とともにサブテーブルを作成したいと考えて以下のコードを作成しましたが全くうまく動きません。

どこがだめなのかご教示いただけると幸いです。

  1.     var events1 = [
  2.         ‘app.record.create.change.報酬年額’,
  3.         ‘app.record.edit.change.報酬年額’
  4.     ];
  5.  
  6.     kintone.events.on([“app.record.detail.show”], function(event) {
  7.         // 一覧にアクセスしたときに全レコードを取得
  8.         var record = event[‘record’];
  9.         console.log(record);
  10.         
  11.         kintone.events.on(events1, function(event) {
  12.             // 今日の日付を取得
  13.             moment.locale(‘ja’);
  14.             var today = moment().format(‘YYYY-MM-DD’);
  15.  
  16.             var arr = [];
  17.             var d = [];
  18.  
  19.             // 更新ボタンを押したときに全レコードを取得
  20.             var rec = event[‘record’];
  21.             console.log(rec.レコード番号.value);
  22.  
  23.             arr.push({
  24.                 “value”:{
  25.                     “報酬年額変更月”: {
  26.                         “value”: today
  27.                     },
  28.                     “合計_報酬年額”: {
  29.                         “value”: rec.報酬年額.value
  30.                     }
  31.                 }
  32.             });
  33.  
  34.             d.push({
  35.                 “変更履歴”:{
  36.                     “value”:arr
  37.                 }
  38.             });
  39.  
  40.             var body = {
  41.                 “app”:6,
  42.                 “id”:record.レコード番号.value,
  43.                 “records”:d
  44.             };
  45.  
  46.             console.log(body);
  47.  
  48.             kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘PUT’, body, function(result) {
  49.                 console.log(result); 
  50.             }, function(error) {
  51.                 console.log(error);
  52.             });
  53.             return event
  54.         });
  55.         return event
  56.     });

こんにちは。

イベントハンドラーの記述が以下のように入れ子になってしまってるようです。

kintone.events.on(["app.record.detail.show"], function(event) {

kintone.events.on(events1, function(event) {

});

});

 

報酬年額というフィールドに変更があった時に処理を実行するのであれば、以下のイベントハンドラーがあれば良いかと思います。

kintone.events.on(events1, function(event) {

});

 

希望する通りに動かない場合、以下の記事を参考にどこに問題があるのかを調べてみる事をお勧めします。

https://developer.cybozu.io/hc/ja/articles/360038920252