お世話になります。
サブテーブルを追加する際に、追加した行が1番上になるようプログラムを組みました。
設置したボタンをクリックすることで1番上に行が挿入されるようにはなりましたが、
サブテーブル内の添付ファイルフィールドが行挿入の時に消えてしまいます。
その際にエラーは表示されません
どのようにすればサブテーブルに添付ファイルをアップロードできるのでしょうか。
アドバイス頂けますと幸いです。
// 行追加関数 async function addRow(record) {
const client = new KintoneRestAPIClient();
//サブテーブル取得 const rectbl = record.テーブル.value;
//テーブル全削除 record.テーブル.value = []; kintone.app.record.set({ record: record });
//現在時刻とログインユーザー名取得 const addDate = dateToStr24HPad0(new Date()); const addUserName = kintone.getLoginUser().name;
//テーブルに追加 record.テーブル.value.push({ value: { "日時2": { value: addDate, type: 'DATETIME', }, "名前": { value: addUserName, type: 'SINGLE_LINE_TEXT', }, "リッチエディター_0": { value: '', type: 'RICH_TEXT', }, "添付ファイル_コメント": { value: '', type: 'FILE' } } }); kintone.app.record.set({ record: record });
//削除したテーブルのデータを2行目以降に追加 for (var i = 0; i < rectbl.length; i++) { //日付が入っていない行は飛ばす if (rectbl[i].value['日時2'].value !== undefined) {
let files;
if (rectbl[i].value['添付ファイル_コメント'].value.length > 0) {
files = [];
await dlKey2upkey(rectbl[i], '添付ファイル_コメント');
const filesObj = rectbl[i].value['添付ファイル_コメント'].value;
for (const f of filesObj) { let fObj = { "fileKey": f.fileKey } files.push(fObj); }; //files = await dlKey2upkey(rectbl[i].value['添付ファイル_コメント'].value);
}
record.テーブル.value.push({ value: { "日時2": { value: rectbl[i].value['日時2'].value, type: 'DATETIME', }, "名前": { value: rectbl[i].value['名前'].value, type: 'SINGLE_LINE_TEXT' }, "リッチエディター_0": { value: rectbl[i].value['リッチエディター_0'].value, type: 'RICH_TEXT', }, "添付ファイル_コメント": { value: files, type: 'FILE' } } }); kintone.app.record.set({ record: record }); } }
}
const dlKey2upkey = async (rectbl, field) => { const files = rectbl.value[field].value;
const client = new KintoneRestAPIClient();
for (const f of files) {
const blob = await client.file.downloadFile({ fileKey: f.fileKey, });
const FILE = { name: f.name, data: blob, };
const ulFileKey = await client.file.uploadFile({ file: FILE, });
f.fileKey = ulFileKey.fileKey; };
rectbl.value[field].value = files;
};