新規投稿
フォローする

自動ルックアップ時のエラーが出た際の値の削除について

お世話になっております。
自動ルックアップを作成していたのですが、うまく動作ができなってしました。
アドバイス頂けますようお願いいたします。

▼参考
https://developer.cybozu.io/hc/ja/articles/201941984#step9

https://developer.cybozu.io/hc/ja/articles/211429603-%E8%87%AA%E5%8B%95%E3%83%AB%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%81%A7%E5%90%8D%E5%85%A5%E3%82%8C%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E4%BD%9C%E3%82%8B

▼やりたいこと
①編集画面を開いたら、「商品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;
});




})();



0

2件のコメント

Avatar
rex0220

>③入力された「商品IDルックアップ」がエラーの場合は、「商品IDルックアップ」の値は削除される

「商品IDルックアップ」がエラーとなっても、特にイベントは発生しないので、

手動で「商品ID」を入力したら(変更されたイベントで)、対象アプリにレコードがあるかチェックして、エラーにするしかないのでは?

0
Avatar
katu

rex0220さん、コメントありがとうございます。

コメントで頂きましたとおり、エラーが出たら、イベントを発生させようと、上部の参考に記載させていただいた「自動ルックアップで名入れレコードを作る」をもとに、下記のコードを記載したのですが、うまくできない状態のため今回、「プログラミング初心者向けフォーラム」に記載させていただいた次第です。

// 手動ルックアップ時はエラー表示クリア
}else if (record['商品価格']['value'] !== null) {
var errorDisplayField = kintone.app.record.getSpaceElement('error_display_field');
if (errorDisplayField !== null) {
errorDisplayField.innerHTML = null;
}
}
return event;
});
0
サインインしてコメントを残してください。