サブテーブルの一括更新について

第11回 kintone REST APIを利用したレコード更新

https://developer.cybozu.io/hc/ja/articles/204537310-%E7%AC%AC11%E5%9B%9E-kintone-REST-API%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%9F%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B4%E6%96%B0 

を参考に更新はできました。

サブテーブルに変更したいのですが、可能でしょうか?

putRecordsの指定が間違っているとは思うのですが、

どのように指定すれば良いのでしょうか?

 

【前提条件】

テーブル名:見本マスタ_Table

フィールド名:見本マスタ登録番号

 

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

// 連携アプリID
var updateAppId = 1852;

/**
* 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];
var Tab = record.見本マスタ_Table.value;

putRecords[i] = {
id: record.$id.value,
record: {
見本マスタ_Table: {
見本マスタ登録番号: {
value: Tab[0].value.見本マスタ登録番号.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': '見本マスタ登録番号 in ("' + 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('ルックアップの更新でエラーが発生しました。' + error.message);
return event;

});
});
})();

サブテーブルの更新は以下が参考になるかと思います。

https://developer.cybozu.io/hc/ja/articles/200752984-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B4%E6%96%B0%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E6%93%8D%E4%BD%9C%E3%81%AE%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF

見積マスタ_Tableのところは、以下のような感じでしょうか。

            putRecords[i] = {
                id: record.$id.value,
                record: {
                    見本マスタ_Table: {
                        value: [
                            {
                                value: {
                                    見本マスタ登録番号: {
                                        value: Tab[0].value.見本マスタ登録番号.value
                                    }
                                }
                            }
                        ]
                    }
                }
            };

 

PV様

 

ご回答ありがとうございます。

ご教授頂いたプログラムで動作確認致します。

取り急ぎお礼まで。