背景・実現したいこと
テーブル内のフィールド(コード)をキーに別アプリを参照し、該当レコードの名前をテーブル内の名称を表示したい。もし、該当レコードがない場合、テーブルのフィールドにエラー「対象レコードがありません」と表示し、名称には空白又は「商品がみつかりません」と表示したい。
現在の状況は、レコードがヒットした場合は、テーブルの名称に品名を表示できておりますが、ヒットしなかった場合、上記のようにエラーは表示できるのですが、 テーブルの名称に空白もしくは「商品がみつかりません」と表示ができません。
下記定義を書くと上記までは漕ぎつけ、なんとかchanges.row.valueで値が変わった行に対してアプローチはできるのですがなぜ下記定義で表示できるのか理由があまり理解できておりません。
var record = event.record;
kintone.app.record.set({record});
又、errorを表示しないようにすると(// changes.row.value.code.error = error_name;)
レコードにヒットしない場合、名称が空白もしくは「商品がみつかりません」と表示ができます。
つまり、フィールドにエラー「対象レコードがありません」且つ、名称に空白もしくは「商品がみつかりません」の両者を表示実現する記述の仕方とkintone.app.record.set({record});との意味合いをどなたか教えていただけませんでしょうか。
よろしくお願いいたします。
利用したソースコード
(function(){
‘use strict’;
const events =[
‘app.record.create.submit’,
‘app.record.edit.submit’,
‘app.record.create.show’,
‘app.record.edit.show’
];
kintone.events.on(‘app.record.create.change.code’,function(event) {
var changes = event.changes;
var register_id = changes.row.value.code.value;
var body = {
“app”: 9,
“query”: "HINCOD = " + register_id,
“fields”: [“HINNAME”]
};
var wk_name; //品名
var error_name;
kintone.api(kintone.api.url(‘/k/v1/records.json’, true), ‘GET’, body, (resp) => {
// success
if (resp.records.length === 0){
wk_name = ‘商品がみつかりません’;
error_name = ‘対象レコードがありません’;
}
else{
wk_name = resp.records[0].HINNAME.value;
error_name = null;
}
changes.row.value.name.value = wk_name;
changes.row.value.code.error = error_name;
var record = event.record;
kintone.app.record.set({record});
}, (error) => {
// error
console.log(error);
}
);
return event;
});
})();