ユーザー選択フィールドと連動して値を表示する文字列フィールドの値を空にしたい。

下記のカスタマイズで、ユーザー選択フィールド(承認者)でユーザを選択した際、別な文字列フィールド(役職と承認者所属)に値を入れておりますが、
ユーザー選択を解除した(空にした)場合、文字列フィールドの値もクリアしたいのですがフィールドの値が空になってくれません。
どなたか実現方法についてアドバイス頂けると助かります。

(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;
});
})();

取り急ぎ期待していた挙動にはなったのですが、もっと良い方法がありましたらアドバイス頂けると助かります。