Javascriptでルックアップ先の項目を自動更新しようとしているが、更新がかからない

お世話になっております。kintone、javascript初心者です。対応方法が分からずご教示ください。

何を実現したいのか

Javascriptにて、ルックアップ元アプリのデータを更新した場合に、ルックアップ先のデータを自動更新する処理を作りたいと考えています。

発生した問題やエラーメッセージを具体的に書きましょう

以下のサイトを参考にscriptを作ったのですが、ルックアップ先のデータの自動更新がなされません。

ルックアップ以外の項目の自動更新はできました。
考えられる原因と対策をご教示いただけますと幸いです。

//寄付者のお名前:ルックアップのキー項目。これを更新することでルックアップしているすべての項目が自動更新されるようにしたいのだが、更新がかからない。
//郵便番号:ルックアップで取得される項目の一つ。kintoneの仕様上これ単体での更新はできない?
//備考:ルックアップ以外の項目。このjsで更新することができた。

実行したコードをコピー&ペーストしましょう

(() => {
‘use strict’;
// 情報更新を反映させる「寄付の管理アプリ」のアプリIDを指定
const updateAppId = 39;
var donator_name = “”;
var yubin_numnber = “”;
var bikou =“”;
// 保存成功後イベント
kintone.events.on([
‘app.record.edit.submit.success’,
‘app.record.index.edit.submit.success’,
‘mobile.app.record.edit.submit.success’
], async (event) => {
// 検索する条件をまとめたオブジェクトを作成する
const paramGet = {
app: updateAppId,
query : 会員番号 = ${event.record['会員番号'].value} limit 500,
};

  console.log('---paramGet');
  console.log(paramGet);

  donator_name = event.record['名前寄付者'].value;
  yubin_numnber = event.record['郵便番号'].value;
  bikou = event.record['補足情報'].value;

  console.log('---donator_name');
  console.log('donator_name' + donator_name);

  try {
    // レコードを一括で取得する

    const resp = await kintone.api(
      kintone.api.url('/k/v1/records.json', true), 'GET', paramGet
    );
    console.log('---resp');
    console.log(resp);
    // レコードの更新データを用意する
    const estimationAppRecords = resp.records.map((record) => {
      return {
        id: record.$id.value,
        record: {
          "寄付者のお名前": {
            value: donator_name
          },
          "郵便番号": {
            value : yubin_numnber
          },
          "備考": {
            value : bikou
          }
        }
      };
    });

    // appにアプリid, recordsに更新データを入れたオブジェクトを作成する
    const paramPut = {
      app: updateAppId,
      records: estimationAppRecords
    };
    console.log('---paramPut');
    console.log(paramPut);

    // ルックアップの更新を行う
    await kintone.api(
      kintone.api.url('/k/v1/records.json', true), 'PUT', paramPut
    );
    
    // 処理成功のメッセージを表示する
    window.alert('ルックアップの更新が完了しました!');

  } catch (error) {
    // エラーを表示する
    window.alert('ルックアップの更新でエラーが発生しました。\n' + error.message);
  }
});

})();

備考が更新されているということでコード自体は動いている前提で考えますと
ルックアップフィールドである寄付者のお名前が重複禁止になってないのではないでしょうか。

このような仕様がありまして

関連付けたアプリのレコード閲覧権限があっても、「コピー元のフィールド」で選択したフィールドの値が、関連付けたアプリ内で重複している場合、ファイルの読み込み時に対象レコードが特定できないため、値を更新できません。

上記はファイルで、試してないのでわからないのですがAPIも同じ状況になってるのではないかな、とおもいます。

回避策としては寄付者のお名前を重複禁止にすることですが、フィールド名から察するにそれはむずかしそうなので、別のキーでルックアップを作るというのが良いと思います。

maruさん

ご回答ありがとうございます。ボランティアで土日に対応しており、回答が遅くなりまして申し訳ありません。
関連付けているアプリはレコードが1つだけなのでご指摘の原因ではないようです。

もしその他思い当たるものがありましたらご教示いただければ幸いです。

関連付けているアプリはレコードが1つだけなのでご指摘の原因ではないようです。

これは重複禁止に実際しているということでしょうか?
もしそうでない場合は、問題の切り分けのために実際に重複禁止にしてみて、動作を確認してみるのはどうでしょうか。(違う原因だったらすいません!)

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。