何を実現したいのかを書きましょう
アプリAの「キー」「A」項目、アプリBの「キー」「B」項目について
アプリA及びアプリBの「キー」項目をキーに
アプリAからBにレコード追加もしくは更新をかけたいです。(キー→キー・A→Bに値をセット)
発生した問題やエラーメッセージを具体的に書きましょう
更新をかけることができません。
実行したコードをコピー&ペーストしましょう
(function() {
'use strict';
// アプリAのフィールドコード
var fieldCodeA = 'A'; // アプリAの連携項目のフィールドコード
var keyFieldCodeA = 'キー'; // アプリAのキー項目のフィールドコード
// アプリBのフィールドコード
var fieldCodeB = 'B'; // アプリBの連携項目のフィールドコード
var keyFieldCodeB = 'キー'; // アプリBのキー項目のフィールドコード
var appIdB = '123'; // アプリBのアプリID
// レコード追加・更新のイベント処理
kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], function(event) {
// アプリAのキー項目の値を取得
var keyValueA = event.record[keyFieldCodeA].value;
var ValueA = event.record[fieldCodeA].value;
// アプリBのレコードを取得
var queryB = keyFieldCodeB + '="' + keyValueA + '"';
var paramsB = { app: appIdB, query: queryB };
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', paramsB).then(function(response) {
if (response.records.length > 0) {
// アプリBのレコードが存在する場合は更新
var recordB = response.records[0];
// recordB[fieldCodeB].value = ValueA;
var updateData = {
app: appIdB,
updateKey: recordB.$id.value,
record: {}
};
updateData.record[keyFieldCodeB] = { value: keyValueA };
updateData.record[fieldCodeB] = { value: ValueA };
// var paramsUpdateB = { app: appIdB, updateKey: recordB.$id.value, record: recordB };
kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', updateData, function(resp) {
// 更新成功時の処理
console.log('アプリBの更新が成功しました');
}, function(error) {
// 更新失敗時の処理
console.log('設定値「fieldCodeB」:', fieldCodeB);
console.log('設定値「keyFieldCodeB」:', keyFieldCodeB);
console.log('設定値「response」:', response);
console.log('設定値「updateData」:', updateData);
console.log('アプリBの更新に失敗しました', error);
});
} else {
// アプリBのレコードが存在しない場合は新規作成
var recordB = {};
recordB[keyFieldCodeB] = { value: keyValueA };
recordB[fieldCodeB] = { value: event.record[fieldCodeA].value };
var paramsCreateB = { app: appIdB, record: recordB };
kintone.api(kintone.api.url('/k/v1/record', true), 'POST', paramsCreateB).then(function(responseCreateB) {
console.log('アプリBのレコードを新規作成しました:', responseCreateB);
}).catch(function(errorCreateB) {
console.error('アプリBのレコード新規作成エラー:', errorCreateB);
});
}
}).catch(function(errorGetB) {
console.error('アプリBのレコード取得エラー:', errorGetB);
});
return event;
});
})();