下記のリンク先の「kintoneのルックアップ先を自動更新する3つの方法」という記事によれば、
”アプリ間レコード更新”で、kintoneのlookup元アプリのレコードが更新された時、
そのlooku先のアプリのレコードを、自動更新できるようですが、期待した動作とは成りませんでした。
https://www.comdec.jp/comdeclab/kintone-lookup-au/
試したことは、下記の様に3つのアプリを作って、”アプリ間レコード更新”するようなkintone rest api(put records)でルックアップ先の一部だけの自動更新を試みました。
★事前準備「
・会社マスタに、会社IDをレコード番号として、会社名や会社の本社の住所等を格納。
・事業所マスタに、事業所IDをレコード番号として、事業所名(再lookupが適切な情報)や、事業所に所属する社員の処遇(入所時のベース賃金の標準値みたいな再lookup不適切な情報)
・個人マスタに、個人IDをレコード番号とし、所属する事業所の事業所IDをlookupで転記した事業所名と事業所に所属する社員の処遇の初期値、
および、所属する会社IDとlookupで転記した会社の情報
」
★上手くゆかなかった事項;
「
1⃣事業所マスタのレコード保存時に発動するイベント(app.record.edit.show)の延長で動作する処理として、
事業所IDによるlookup先の一部だけを”アプリ間レコード更新”でコピーを指定したにも関わらず、最新の事業所情報が全く転記されなかった。
しかも、put records APIは、黙って正常終了していた。
2⃣ 個人マスタの会社ID lookupフィールドで会社の情報を設定した後、
該当する会社IDの会社マスタの情報を更新し、
事業所マスタのレコードを更新した後、
事業所マスタのレコード保存時に発動するイベント(app.record.edit.show)の延長で動作する処理の中で、
会社IDによるlookupフィールドの会社IDフィールドだけをコピー指定し、さらに会社IDの値は変更しなかったにも関わらず、
個人マスタのレコードをput recordsで更新したタイミングで あたかも再lookupされたかのように、lokupしていた会社情報の全てが更新された。
」
★期待していた挙動;
「
put records APIのrecordプロパティで、個人マスタの事業所IDフィールドでルックアップして取得していた事業所の情報の一部だけ(事業所名)が最新情報に更新され、
個人マスタの事業所IDフィールドに指定していても、put records APIのrecordプロパティに指定しなかったフィールドは更新されないコト。
」
とまあ、{kintone標準のlookup機能と、kintone標準ではない”アプリ間レコード更新”プラグイン}の組み合わせでは、期待していた動作となりませんでした。
多分{kintone標準のlookup機能と同等機能を実装する自作プラグインと、kintone標準ではない”アプリ間レコード更新”プラグイン}を両方自作すれば、期待する動作を実現できそうな気もしますが、「kintone標準のlookup機能と同等機能とは何ぞや?」を実装する前提の仕様を調べだすことソノモノが困難(kintoneの仕様変更の度に情報開示されないので保守も出来ない)です。
さて、何か旨い手段は無いものでしょうか?
<参考>
・Top > kintone > kintone API ドキュメント > kintone REST API > レコード >複数のレコードを更新する
https://cybozu.dev/ja/kintone/docs/rest-api/records/update-records/
★Kintone rest APIの仕様の引用「
テーブルを更新するとき
・制限事項
次のフィールドは、値を更新できません。
ルックアップ元からコピーされるフィールド
ステータス
カテゴリー
計算
作業者
作成者
作成日時
更新者
更新日時
自動計算が設定されている文字列 1 行フィールド
」
この仕様書記載内容によれば、上述の1⃣の問題現象の前半は理解できるのですが、
上述の1⃣の問題現象の後半の、「仕様書に”できません”と記載されていることをやってしまった時に、何もエラーメッセージが出なかった」のが不満です。