【実現したいこと】
アプリ(案件管理)でレコード更新時、記入されているテーブルの一部のデータを他のアプリ(請求書管理)にコピーしたいと思っております。
その際、請求書管理アプリ内で[請求月]・[取引先コード]を条件に、既に同条件のレコードがあれば、レコードのテーブルを追加してコピー、なければレコード作成しテーブルにコピーできればと考えております。
案件管理のテーブルから請求書管理のテーブルにコピーするデータは[明細行ID]・[行の種類]・[請求明細名]・[数量]・[単位]・[単価]・[金額]の7つです。
【問題点】
①下記コードで実行したところ、既存レコードにおいてはクエリでの検索は問題なく出来ておりましたが、テーブルを追加してコピーはできませんでした。
②下記コードだと新しくレコード作るものははいっていないためどうのように記述すればよろしいでしょうか。
コミュニティ内で参考にできそうなコードをもとに作成してみました。しかし、エラーはでておりませんが、うまくテーブルの値が反映されませんでした。初心者で無知なためご教授いただければ幸いです。
kintone.events.on([“app.record.create.submit”, “app.record.edit.submit”],
async function(event) {
const record = event.record;
const seitable =record.請求書.value;
const torihikicode = record.取引先コード.value;
const month = record.請求月.value;
for (var o = 0; o < seitable.length; o++) {
const mei = seitable[o].value[“明細行ID”].value
const gyou = seitable[o].value[“行の種類”].value
const sei = seitable[o].value[“請求明細名”].value
const suu = seitable[o].value[“数量”].value
const tani = seitable[o].value[“単位”].value
const tanka = seitable[o].value[“単価”].value
const kingaku = seitable[o].value[“金額”].value
const paramForGetStock1 = {'app': 603,
‘query’: ‘請求月 in ("’ + month + ‘") and 取引先コード= "’ +torihikicode+ ‘"’,}
const resp = await kintone.api(kintone.api.url(‘/k/v1/records’,true),‘GET’, paramForGetStock1);
console.log(resp);
if(!resp.records.length) return;
resp.records.forEach(async function(record) {
const seikyuTable = record[“請求明細行”].value;
let seikyuTable_ID = [];
for (var m = 0; m < seikyuTable.length; m++) {
seikyuTable_ID[m] = seikyuTable[m].value[“ID”]}
let appended_subtable = [];
let subtable = [];
if (!seikyuTable_ID.includes(mei)) {
for (let m = 0; m < seikyuTable.length; m++) {
subtable.push(seikyuTable[m]);
}
subtable.push({
value: {
“明細行ID”: {“value”:mei},
“行の種類”:{“value”:gyou},
“請求明細名”:{“value”:sei},
“数量”:{“value”:suu},
“単位”:{“value”:tani},
“単価”:{“value”:tanka},
“金額”: {“value”:kingaku}
}});
const paramForPut1 = {
“app”: 603,
“id”: resp.records[0].$id.value,
“record”: {
“明細行ID”: {“value”:mei},
“行の種類”:{“value”:gyou},
“請求明細名”:{“value”:sei},
“数量”:{“value”:suu},
“単位”:{“value”:tani},
“単価”:{“value”:tanka},
“金額”: {“value”:kingaku}
}
}
console.log(paramForPut1);
appended_subtable.push(paramForPut1);
subtable = subtable.concat(appended_subtable);
var put_record = {};
put_record[“請求明細行”] = {
value: subtable
}
const put_resp = await kintone.api(kintone.api.url(“/k/v1/record.json”, true), “PUT”, paramForPut1);
console.log(put_resp);
}else {}
window.alert(“請求書管理に反映しました。”);
return event;
})}})