下記のカスタマイズで、ユーザー選択フィールド(承認者)でユーザを選択した際、別な文字列フィールド(役職と承認者所属)に値を入れておりますが、
ユーザー選択を解除した(空にした)場合、文字列フィールドの値もクリアしたいのですがフィールドの値が空になってくれません。
どなたか実現方法についてアドバイス頂けると助かります。
(function() {
"use strict";
kintone.events.on(["app.record.create.change.承認者","app.record.edit.change.承認者"], function(event) {
var userCode = event.record.承認者.value[0].code;
kintone.api(kintone.api.url('/v1/user/organizations'), 'GET', {code: userCode}).then(function(resp) {
if (resp.organizationTitles.length > 0) {
var position = resp.organizationTitles[0].title.name;
var syozoku = resp.organizationTitles[0].organization.name;
var record = kintone.app.record.get();
record.record.役職.value = position;
record.record.承認者所属.value = syozoku;
kintone.app.record.set(record);
}else{
record.record.役職.value = '';
record.record.承認者所属.value = '';
}
return event;
});
});
})();
こんにちは。
コードをパッと見ただけで動作確認はしてないのですが、if内の動作が問題ないようでしたら、
var record = kintone.app.record.get();
と
kintone.app.record.set(record);
↑をelseの中にも入れる必要があると思います。
FM様
お世話になっております。ご指摘、有難うございました。
確かに var record = kintone.app.record.get(); と kintone.app.record.set(record); が漏れておりました。
var record = kintone.app.record.get();
と
kintone.app.record.set(record);
を追加してみたのですが、ユーザ選択肢の値が空になった時点でcodeが取得できなくなり elseまで処理が進まない様で、テキストフィールド(役職と承認者所属)の値は空になってくれませんでした。
※ユーザ選択フィールドの値を空にした時点で、ブラウザ(開発者ツール)のコンソール上では「未定義または NULL 参照のプロパティ ‘code’ は取得できません」というエラーが表示されています。
そこで下記の様にカスタマイズした所、ユーザ選択フィールドの値を空にした時点で、テキストフィールド(役職と承認者所属)の値は空になってくれました。
(function() {
"use strict";
kintone.events.on(["app.record.create.change.承認者","app.record.edit.change.承認者"], function(event) {
if (event.record.承認者.value[0] == undefined) {
var record = event.record;
record['役職']['value'] = '';
record['承認者所属']['value'] = '';
}else{
var userCode = event.record.承認者.value[0].code;
kintone.api(kintone.api.url('/v1/user/organizations'), 'GET', {code: userCode}).then(function(resp) {
if (resp.organizationTitles.length > 0) {
var position = resp.organizationTitles[0].title.name;
var syozoku = resp.organizationTitles[0].organization.name;
var record = kintone.app.record.get();
record.record.役職.value = position;
record.record.承認者所属.value = syozoku;
kintone.app.record.set(record);
}
return event;
});
}
return event;
});
})();
取り急ぎ期待していた挙動にはなったのですが、もっと良い方法がありましたらアドバイス頂けると助かります。