新規投稿
フォローする

ルックアップの自動更新のエラーについて

 

いつもお世話になっております。

500件以上のレコード取得を用いたルックアップの自動更新について質問させていただきます。

「第11回 REST APIを利用したレコード更新」のページにならい、ルックアップの自動更新を試しております。

以前にも数回質問させていただき、いただいた回答を参考に進めて参りましたが、「入力内容が正しくありません」となってしまいます。

人名でのルックアップで、フィールドの種類は「文字列(1行)」です。

このエラーの解決方法はありますでしょうか。

初心者のため至らない点があるかと思いますが、どなたかご教授いただけますでしょうか。

 

*****

(function () {

'use strict';

// ルックアップ先アプリのアプリID

var updateAppId = 2;

/**

* 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) {

// レコードの一括取得

function fetch(opt_offset, opt_records) {

var offset = opt_offset || 0;

var records = opt_records || [];

var paramGet = {

'app':updateAppId,

'query': 'lookup = "'+'"'"' + event.record['ルックアップ元フィールドコード'].value + '"' + ' order by $id asc limit 500 offset ' + offset

};

return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', paramGet).then(function (resp) {

records = records.concat(resp.records);

if (resp.records.length === 500) {

//limitで指定した条件分取得できている場合はまだ残りのレコードがある可能性が高いのでoffsetをlimit分だけずらして再取得

return fetch(offset + 500, records);

}

return records;

});

}


fetch().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) {

// 処理成功

return event;

}).catch(function (error) {

// エラー表示をする

alert('ルックアップの更新でエラーが発生しました。\n' + error.message);

return event;

});

});

})();

 

0

2件のコメント

Avatar
村濱一樹

> 入力内容が正しくありません

 

errorのところでもっと詳細なエラーが表示されていると思います。error.messageだけだすのではなく、console.logなどつかってerror全体を見てもらえますでしょうか?

エラーのフィールドも表示されているはずですので、本当にルックアップのフィールドがおかしいのか、どういうふうにエラーなのかがわかるヒントになるかとおもいます

0
ログインしてコメントを残してください。