いつもお世話になっております。
「第11回 REST APIを利用したレコード更新」のページで紹介されている、ルックアップを自動更新するJavaScriptのサンプルコードについて質問させていただきます。
このサンプルコードを利用してルックアップの自動更新をいくつかのアプリで設定しているのですが、うまく動作するアプリと動作しないアプリ(レコード)がございます。ここでいうところのアプリは「コピー元」の意味です。
動作しないアプリ(レコード)は、以下の症状が出ています。
①コピー先にルックアップでコピーしてあるレコードの場合、コピー元のフィールドの値を変更・保存しても動作しません
②コピー先にルックアップでコピーしていないレコードの場合、コピー元のフィールドを変更・保存すると「ルックアップの更新が完了しました!」というアラートが出ます
うまく動作するアプリと動作しないアプリの違いについて考えたのですが、思いついたのは、うまく動作するアプリは最近(3〜4か月以内)作成したもので、動作しないアプリは1年以上前に作成したものというくらいです。
アップデートによる影響なのかもしれませんが、他に考えられる原因などありますでしょうか?
ご教授いただければ幸いです。
菅原尚哉さん
アップデートによる影響なのかもしれませんが、他に考えられる原因などありますでしょうか?
kintoneのアップデートは、不具合改修や時折変更っぽいのもありますが、基本的に文字通りのアップデートですし、時限的な影響を(特にアプリ毎に)受けることはないと思います。アプリ間の動作に差異が見られるのであれば、設定かカスタマイズだと考えられます。
ルックアップ更新の大原則は、「第11回 REST APIを利用したレコード更新」にも記載がありますが、
- ルックアップ元のアプリのキーフィールドに重複禁止の設定を行う
- ルックアップのキーフィールドを指定して更新APIをリクエストすることで、ルックアップ先にコピーされるフィールドを更新する
だと思いますが、いかがでしょうか。こちらにもありますが、重複禁止設定が出来ていれば、キーフィールドをPUTするだけで更新できるはずですので、JSで出来ていなければ、まずPOSTMANやcURLでキーフィールドだけでの更新を成功させることが先決かもしれません。
Ryu Yamashita さま
早速のご連絡、誠にありがとうございました。
ルックアップ元のキーフィールドは「レコード番号」にしておりますので、その他の設定をもう一度確認したところ、ドロップダウンの値(約30項目)が若干、ルックアップ元の値と異なっておりました。
お手数おかけしました。
今後とも、よろしくお願い致します。
「第11回 REST APIを利用したレコード更新」ではキーの値そのものが変わると、更新対象を拾うGETにかからなくなりますね。重複禁止でもキーが書き換わる可能性が考えられる時には、運用上注意が必要ですね。