同一アプリ内の別レコードのフィールドをコピー

文字列フィールドのchangeイベント時に同一アプリの別レコードにあるフィールドを取得して値を再利用したいと考えてます。

具体的には文字列フィールドに[203]と入力したら、レコード番号203のA_nameを取得してB_nameにセットしたいと考えております。

値は取得出来ているようなのですが、B_nameにセットされません。

ご教授お願いいたします。

var body = {
“app”: 70,
“id”: 203
};

kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘GET’, body, function(resp) {

event.record[‘B_name’].value = resp.record[‘A_name’].value;

});
return event;

https://developer.cybozu.io/hc/ja/community/posts/360027721512-create-change%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E6%99%82-%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E5%80%A4%E3%81%AE%E6%9B%B4%E6%96%B0%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84

 

https://developer.cybozu.io/hc/ja/community/posts/115019030723-%E4%BB%96%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%BF%BD%E5%8A%A0%E6%99%82%E3%81%AB%E5%80%A4%E3%82%92%E3%82%BB%E3%83%83%E3%83%88%E3%81%97%E3%81%9F%E3%81%84

 

これらと同じ話かと思います。

別レコードの値を取得すると通信が発生し、処理が非同期になり、処理が終わる前にreturn eventがされてしまいます。

(イベントがPromiseに対応していればその非同期の処理を待つことができるのですが…changeイベントは対応していません

なので、値を取得したあと、kintone.app.record.set() で値を書き換える必要があります。

 

村濱様

kintone.app.record.set() を利用して値をセットすることが出来ました。

ありがとうございます。