お世話になっております。
自動ルックアップを作成していたのですが、うまく動作ができなってしました。
アドバイス頂けますようお願いいたします。
▼参考
https://developer.cybozu.io/hc/ja/articles/201941984#step9
▼やりたいこと
①編集画面を開いたら、「商品ID」の値を「商品IDルックアップ」に入れる⇢ルックアップが動く(商品価格が表示される)
②手動で「商品ID」を入力したら、「商品ID」の値を「商品IDルックアップ」に入れる⇢ルックアップが動く(商品価格が表示される)
③入力された「商品IDルックアップ」がエラーの場合は、「商品IDルックアップ」の値は削除される
▼現状
①と②はできているが、③は添付画像のようになり、値が削除できない。
▼アプリ設定
フィールド名/フィールドタイプ/フィールドコード
商品ID / 数値 / 商品ID
商品IDルックアップ / ルックアップ / 商品IDルックアップ
商品価格 / 文字列(1行) / 商品価格
以上、よろしくお願いいたします。
(function() {
"use strict";
// 今回の処理の場合、changeイベントではなく、submitイベントが適切かと思います。
// create.show edit.show などがある場合、最初は必ず未入力と入力されるため、削りましたが、その処理が必要な場合付け加えてください
// また、index.show でフィールドの値を書き換える場合 REST API を使用しないと書き換えられないので、今回は不要となります。
var events =[
'app.record.edit.show',
'app.record.create.change.商品ID',
'app.record.edit.change.商品ID',
'app.record.create.change.商品価格',
'app.record.edit.change.商品価格'];
kintone.events.on(events , function(event) {
// レコードの編集画面が開いたら、実行
var record = event.record;
record['商品IDルックアップ'].value = record['商品ID'].value; // ルックアップフィールドの値
record['商品IDルックアップ'].lookup = true; // または record['ルックアップ']['lookup'] = 'UPDATE';
var 商品ID = record['商品ID']['value'];
var 商品IDルックアップ = record['商品IDルックアップ']['value'];
// 商品IDが入力されたら、実行
if (!record['商品ID']['value']) {
event.record['商品IDルックアップ']['value'] = 商品ID;
event.record['商品IDルックアップ'].lookup = true; // または record['ルックアップ']['lookup'] = 'UPDATE';
// 手動ルックアップ時はエラー表示クリア
}else if (record['商品価格']['value'] !== null) {
var errorDisplayField = kintone.app.record.getSpaceElement('error_display_field');
if (errorDisplayField !== null) {
errorDisplayField.innerHTML = null;
}
}
return event;
});
})();