新規投稿
フォローする

自動ルックアップにて「指定されたフィールド(lookup)がみつかりません」というエラーが出てしまう。

ご質問失礼致します。

第11回 kintone REST APIを利用したレコード更新(ルックアップ自動更新)

https://developer.cybozu.io/hc/ja/articles/204537310

こちらをご参考にルックアップ自動更新を試しております。

 

【状況】

・更新元アプリ:appid→32、ルックアップ対象1~4

・更新対象アプリ:appid→34、ルックアップに更新元の「レコード番号」を設定

 

 

コードは、コピー先のアプリのidしか変更してません。そこだけの変更で良いと理解したつもりでした。

  // コピー先のアプリ
  var updateAppId = 34;(★ここが変更箇所)

この内容で作成したjsファイルを、コピー元のアプリに取り込み実行しましたが、

このような状態です。

 

初歩的な部分を理解できていない状態かと思います中で、大変恐縮ですが、宜しくお願い致します。

 

以下コード

 

 


/*
 * ルックアップ更新のサンプルプログラム
 * Copyright (c) 2019 Cybozu
 *
 * Licensed under the MIT License
 */
(function() {
  'use strict';

  // 見積もり管理アプリのアプリID
  var updateAppId = 34;

  /**
   * kintone REST APIで一括更新するrecordsデータを作成する関数
   * @param records kintone REST APIで一括取得したrecordsデータ
   * @returns {Array} kintone REST APIで一括更新するrecordsデータ
   */
  function createPutRecords(records) {
      var putRecords = [];
      for (var i = 0, l = records.length; i < l; i++) {
          var record = records[i];
          putRecords[i] = {
              id: record.$id.value,
              record: {
                  lookup: {
                      value: record.lookup.value
                  }
              }
          };
      }
      return putRecords;
  }

  // 保存成功後イベント
  kintone.events.on(['app.record.edit.submit.success', 'app.record.index.edit.submit.success'], function(event) {

      // レコードの一括取得(100件まで)
      var paramGet = {
          'app': updateAppId,
          'query': 'lookup = ' + event.record['レコード番号'].value
      };
      return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', paramGet).then(function(resp) {

          // ルックアップの更新
          var records = resp.records;
          var paramPut = {
              'app': updateAppId,
              'records': createPutRecords(records)
          };
          return kintone.api(kintone.api.url('/k/v1/records', true), 'PUT', paramPut);

      }).then(function(resp2) {

          // 処理成功
          alert('ルックアップの更新が完了しました!');
          return event;

      }).catch(function(error) {

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

      });
  });
})();
1

2件のコメント

Avatar
Lorenz Ras

Haruka様

lookupというフィールドはないようです。フィールドコードを確認してください。

1
Avatar
Haruka

LorenzRas様

コメント頂きありがとうございます。

私の理解が誤っておりました、lookupがフィールドコードを指していたいたのですね。

添付の通り、修正しましたところ、「ルックアップの更新が完了しました」というダイアログが表示されました。

ただ、コピー元(ルックアップ元)の値を更新したのですが、ルックアップ先のレコードが更新されておりません。

(手動でルックアップすると更新されます)

恐らく、更新したいレコードデータを取得する

createPutRecords関数に問題があるかと思います。
 
更新先のIDフィールド(フィールドコードもID)をこのように2パターンで指定してみたのですが、
指定の仕方が誤っておりますでしょうか?
 
 
お手数ですが、ご確認お願い致します。
0
サインインしてコメントを残してください。