kintone REST APIにてAアプリの「キッチン写真」(添付ファイルフィールド)からBアプリの「キッチン写真先」(添付ファイルフィールド)へコピーしたいと考えております。
その際のupdatekeyを「ID」ではなく別のレコードキー(重複禁止・文字列フィールド)で更新したいと考えております。
以下コードを記載させていただきます。
(function () {
"use strict";
kintone.events.on(['app.record.edit.submit.success', 'app.record.index.edit.submit.success'], function (event) {
var event = event.record;
SyncExecute(event);
});
})();
function SyncExecute(record) {
var fileData = [];
for (key in record.キッチン写真.value[0]) {
fileData.push(record.キッチン写真.value[0][key]);
}
return fileDownload(fileData[0]).then(function (resp) {
fileUpload(fileData[1], fileData[2], resp);
});
function fileDownload(fileKey) {
return new Promise(function (resolve, reject) {
var url = kintone.api.url('/k/v1/file', true) + '?fileKey=' + fileKey;
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.responseType = 'blob';
xhr.onload = function () {
if (xhr.status === 200) {
resolve(xhr.response);
} else {
reject(Error('ファイルダウンロードエラー :' + xhr.statusText));
}
};
xhr.onerror = function () {
reject(Error('ネットワークエラー'));
};
xhr.send();
});
}
function fileUpload(fileName, contentType, data) {
var blob = new Blob([data], {
type: contentType
});
var formData = new FormData();
formData.append(" __REQUEST_TOKEN__", kintone.getRequestToken());
formData.append("file", blob, fileName);
xmlHttp = new XMLHttpRequest();
xmlHttp.open("POST", encodeURI('/k/v1/file.json'), false);
xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xmlHttp.responseType = 'multipart/form-data';
xmlHttp.send(formData);
var key = JSON.parse(xmlHttp.responseText).fileKey;
var PutPara = {
"app": 74,
"updateKey": {
"field": "設備チェック番号",
"value": event.record[設備チェック番号][value]
},
"record": {
"キッチン写真先": {
"value": [{
"fileKey": key
}]
}
}
};
kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', PutPara, function (resp) {
// success
console.log('データの更新に成功しました');
}, function (error) {
// error
console.log('データの更新に失敗しました');
})
}
}
上記で試したところ「Uncaught (in promise) ReferenceError: 設備チェック番号 is not defined」というエラーが出ていまいます。
updatekeyでレコード取得は行えないのでしょうか。
お手数おかけいたしますがご教授の程宜しくお願いいたします。