何を実現したいのかを書きましょう
別アプリの添付ファイルフィールドにある添付ファイルを、自アプリ側でレコード保存したタイミングでコピーしたいです。
下記のサイトを参考にしていますが、初心者の為、ソースの書き方がルール無視やあり得ない順番になっている可能性があります。判読しづらく大変恐縮ですがお力をお借りしたくよろしくお願いいたします。
■参考としたサイト
・KintoneRestAPIClient()を利用したレコード取得方法
・KintoneRestAPIClient()を利用した添付ファイルのダウンロードキー、アップロードキーの操作方法
発生した問題やエラーメッセージを具体的に書きましょう
エラーは発生していませんが、1行ずつデバッグした際に、アップロードキーが更新するデータ(const params)に入っているのに、自アプリに添付ファイルがコピー(更新)されません。
実行したコードをコピー&ペーストしましょう
(() => {
kintone.events.on(["app.record.edit.submit.success"], async(event) => {
const record = event.record;
var record_id = 1;
// kintone REST API Client の力を借りる 別アプリのレコード情報取得用
const client_guest = new KintoneRestAPIClient();
// kintone REST API Client の力を借りる 自アプリの添付ファイルアップロード用
const client_host = new KintoneRestAPIClient();
(async() => {
try {
const res = await client_guest.record.getRecord({
app: "124",
id: record_id
});
const dl_fileKey = res.record.会社ロゴ.value[0].fileKey;
// 添付ファイルフィールドのダウンロードキーからblobを作成
const blob = await client_host.file.downloadFile({
fileKey: dl_fileKey, // ダウンロードファイルキー
});
// アップロードするファイルを作成
const FILE = {
name: res.record.会社ロゴ.value[0].name, // ファイル名
data: blob,
};
// アップロードしてアップロードキーを取得する
const ulFileKey = await client_host.file.uploadFile({
file: FILE,
});
//自アプリの添付ファイルフィールドにアップロードキーを保存(更新)する
const new_fileKey = ulFileKey.fileKey;
const params = {
app: kintone.app.getId(),
id: kintone.app.record.getId(),
record: {
file: {
value: [{
fileKey: new_fileKey
}]
}
}
};
kintone.api(kintone.api.url('/k/v1/record.json', true), 'PUT', params);
} catch (err) {
console.log(err);
}
})();
return event;
});
})();