下記のようなソースコードで製品コードに特定の文字列が含まれていた場合、記号フィールドに入力を行いたいのですが、何度か試したものの入力できません。
試しにコンソールログを表示させたところそれは問題なく行えました。
このため何か基本的な見落としがあるのではないかと思います。
ご回答をよろしくお願いします。
(function() {
'use strict';
kintone.events.on(['app.record.create.show','app.record.detail.show'], function(event) {
var record=event.record;
var code=record.製品コード.value;
if (code.match(/1A/)){
console.log ("1A");
record['記号'].value= "1A";
}else if (code.match(/1B/)){
record['記号'].value= "1B";
}else{
console.log("その他");
}
return event;
});
})();
edit の間違いだと思います。
‘app.record.detail.show’
あと、製品コード変更時の「フィールド値変更時イベント」にも対応するといいかも。
回答ありがとうございます。
3行目の’app.record.detail.show’が誤りの原因ということでしょうか?
その場合、コンソールログの出力はなぜうまくいくのでしょう?
下記のように修正しましたがうまく動かないようです。ご回答よろしくお願いします。
kintone.events.on(['app.record.detail.show','app.record.edit.change.製品コード'],function(event) {
イベント処理の使い方に誤解があると思います。
レコード詳細イベント’app.record.detail.show’ では、event情報のフィールド値を書き換えても、画面に反映することはできません。
'app.record.detail.show’イベントで、変数を書き換えることは可能で、コンソールログの出力にも反映されますが、編集画面やレコードには反映されません。
もしレコード詳細画面表示時にレコードの情報を変更したいのであれば、REST APIでレコード情報を変更し、詳細画面を再表示する必要があります。
イベント処理で画面に反映させる場合は、レコード追加画面の表示後イベント、レコード追加画面のフィールド値変更イベント、レコード編集画面の表示後イベント、レコード編集画面のフィールド値変更イベントで処理を行なってみてください。
丁寧なご回答ありがとうございます。
やはり基本的な間違いだったのですね。
頂いたご回答を参考にコードを書き直してみます。大変ありがとうございました。