サブテーブル内のルックアップフィールド(別アプリ参照)の値を書き換えたい

サブテーブル内のルックアップフィールド(別アプリ参照)の値を書き換えたいのですが、うまく動作しません。
お知恵を貸していただけますでしょうか。

[環境]

■ユーザーアプリ
・UserNm(ルックアップ元)

■作業実績アプリ
・サブテーブルSagyouTbl(ルックアップ「UserNm」を配置)

[困っていること]

サブテーブルSagyouTblのルックアップ「UserNm」の値を「ユーザーアプリ」に登録済みの別ユーザー名に書き換えて自動取得させたいのですが、更新されません。
参照元が他のアプリであることが原因なのでは…と推測しているのですが、何かやり方が間違っているのでしょうか。
[‘lookup’] = ‘UPDATE’ と [‘lookup’] = ‘true’ 、また [‘lookup’]を指定しないパターンそれぞれ試しましたがダメでした。

[ソース]

kintone.events.on(submitEvents, function(event) {
//レコードの取得
var record = event[‘record’];
var sagyoTbl = record[“SagyouTbl”][“value”];

for (var i = sagyoTbl.length-1; 0 <= i; i–) {

sagyoTbl[i][‘value’][‘UserNm’][‘value’]=‘USER1’ ;
sagyoTbl[i][‘value’][‘UserNm’][‘lookup’] = ‘UPDATE’;

console.log(sagyoTbl[i][‘value’][‘UserNm’][‘value’]);
//この時点では’USER1’ が値として確認できます

sagyoTbl[i][‘value’][‘UserKana’][‘value’]=‘ユーザー1’;
//同サブテーブル の他のフィールドはルックアップではないため、正常に更新されます
}
return event;
});

submitEventsは保存実行前のイベントでしょうか?submitイベントではルックアップフィールドの値を書き換えることができません。

https://developer.cybozu.io/hc/ja/articles/202166270#step4

 

showイベントやchangeイベントであれば記載してあるコードで動作します。

mls-hashimoto さん
ありがとうございます。
ご推察の通り、イベントは編集後のsubmitを指定しており、それが原因であると理解できました。

できれば保存時に、サブテーブル の内容を自動書き換えする処理を入れたいのですが、ルックアップフィールドを含む場合他に方法はないでしょうか。
今考えているのは、サブテーブル 更新用のボタンを自前で用意して、保存前にそのボタンを押してもらう方法です。
他に良いやり方があれば、お知恵をお借りできると幸いです。

ookawaki_devさま

保存時に同様の処理を行うのであれば、ルックアップフィールドは使用せず、REST APIで現在あるルックアップフィールドに指定したい値でクエリを指定してレコード取得→レスポンスからフィールドに反映、という方法で可能と思われます。

mls-hashimoto さん
なるほど、REST APIで取得すれば反映できるんですね。試してみます。
丁寧にアドバイスいただきありがとうございました。