コードを含む長文になります。
タイトルの件ですが、見積書アプリ → 売上管理アプリとサブテーブルを含むレコードの内容をそのまま持って行きたく、下記に示すようなコードを走らせてみたのですが、レコードの内容はコピーされるもののサブテーブルの内容を持って行くことができません。
どうやらサブテーブルの内容は配列にまでは格納されているっぽいので、根本的に何かがおかしいか、足りないと思います。
もし気のついたことがあればご教示いただくことはできますでしょうか?
(function() {
‘use strict’;
//見積書アプリの詳細画面から売上管理アプリへ
var salesDao = {};
kintone.events.on(‘app.record.detail.show’, function(e) {
//「見積書」のレコード情報取得
var record = e.record;
//「売上管理」アプリのアプリの番号
salesDao.APP_ID = 40;
//レコードコピーボタン要素作成
//***** 動的にボタンを生成しているが省略 *****
//ボタンをクリックしたときのイベント
btnCopy.onclick = function() {
//売上管理のデータ登録を実行する
salesDao.insert(record);
};
//ヘッダースペースにボタン要素を付加
kintone.app.record.getHeaderMenuSpaceElement().appendChild(btnCopy);
//売上管理アプリに1行追加。
salesDao.insert = function(recordInf) {
//見積書明細の各項目を配列に取得
var productID = []; //商品コード
var productName = []; //商品名
var unitPrice = []; //単価
var quantity = []; //数量
//サブテーブル(見積書明細)オブジェクトを取得
var tableRecords = record.見積書明細.value;
//サブテーブル(見積書明細)の内容を配列に格納
for (var i = 0; i < tableRecords.length; i++) {
//alert(‘商品コード = "’ + tableRecords[i].value[‘商品コード’].value + ‘"’);
productID[i] = tableRecords[i].value[‘商品コード’].value;
productName[i] = tableRecords[i].value[‘商品名’].value;
unitPrice[i] = tableRecords[i].value[‘単価’].value;
quantity[i] = tableRecords[i].value[‘数量’].value;
alert(unitPrice[i]); //動作確認
}
var params = {
“app”: salesDao.APP_ID,
//見積書の鑑
“record”: {
“見積書番号”: {
“value”: recordInf[‘見積書番号’][‘value’]
},
“取引先コード”: {
“value”: recordInf[‘取引先コード’][‘value’]
},
“取引先名”: {
“value”: recordInf[‘取引先名’][‘value’]
},
“敬称”: {
“value”: recordInf[‘敬称’][‘value’]
}
},
//見積書明細(サブテーブル)
“見積書明細”: {
“value”: [
{
“value”: {
“商品コード”: {
“value”: productID
}
},
“value”: {
“商品名”: {
“value”: productName
}
},
“value”: {
“単価”: {
“value”: unitPrice
}
},
“value”: {
“数量”: {
“value”: quantity
}
}
}
]
}
};
//Kintone REST API リクエスト
kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘POST’, params).then(function(resp) {
// 成功時、対応する「売上管理」画面を開く
if (window.confirm(‘この見積は売上管理に移行しました。該当する売上管理表を開きます。よろしいですか?’)) {
salesDao.showDetail();
}
}, function(resp) {
// 失敗時
if (resp.message !== undefined) {
alert(resp.message);
} else {
alert(‘売上管理の登録に失敗しました(2)。’);
}
});
};
//指定された売上管理アプリの詳細画面を開く
salesDao.showDetail = function() {
alert(‘この機能は現在実装されていません。売上管理には登録されています。’);
};
});
})();