ご覧いただきありがとうございます。
マスタアプリから紐づくレコードを取得してアプリBのテーブルに出力するjavascriptを作成しています。
その中で、添付ファイルの操作で躓いてしまい、お力をお貸し頂ければと存じます。
■わからない所
①マスタアプリからダウンロードした添付ファイル情報を抽出してアップロードする部分の記述方法(例など頂けると助かります。)
②添付ファイルをアップロードする際のJSON形式での配列の書き方(for文で回して複数のレコードを取得してきている為、record[i].フィールド名.valueの部分のJSONでの書き方を知りたいです。※iは変数になります。)
■ソース
kintone.events.on([‘app.record.create.submit.success’, ‘app.record.edit.submit.success’], (event2) => {
var rec2 = event.record;
var params2 = {
‘app’: 5555
};
kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, params2).then(function (resp2) {
var Allrec2 = resp2.records.length;
let typeAll2 = new Array();
for (let s2 = 0; s2 < Allrec2; s2++) {
typeAll2[s2] = resp2.records[s2].レコードA.value;
}
for (let i2 = 0; i2 < Allrec2; i2++) {
let setfk = resp2.records[i2].添付ファイル.value[0];
if(typeof setfk != ‘undefined’) {
let filekey = setfk.fileKey;
// 手順1で取得したfileKeyをurlに設定します。
let url = kintone.api.urlForGet(‘/k/v1/file’, {fileKey: filekey}, true);
// ファイルダウンロードAPI を実行します。
let xhr = new XMLHttpRequest();
xhr.open(‘GET’, url);
xhr.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
xhr.responseType = ‘blob’;
xhr.onload = () => {
if (xhr.status === 200) {
// success
let blob = new Blob([xhr.response]);
let windowUrl = window.URL || window.webkitURL;
let blobUrl = windowUrl.createObjectURL(blob);
console.log(xhr.response.size);
console.log(xhr.response.type);
} else {
// error
console.log(xhr.responseText);
}
};
xhr.send();
let blobs = new Blob([‘ファイル’], {
type: ‘text/plain’
});
// FormDataにファイルを格納
let formData = new FormData();
formData.append(‘__REQUEST_TOKEN__’, kintone.getRequestToken());
formData.append(‘file’, blobs, ‘test.txt’);//■①個々の書き方がわからないです。
let xmlHttp = new XMLHttpRequest();
xmlHttp.open(‘POST’, kintone.api.url(‘/k/v1/file’, true), false);
xmlHttp.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
xmlHttp.onload = () => {
if (xmlHttp.status === 200) {
let key = JSON.parse(xmlHttp.responseText).fileKey;
console.log(key);
let json = {
“appId”: kintone.app.getId(),
“recordId”: kintone.app.record.getId(),
“record”:{ //■②個々の書き方がわからないです。
“必要書類一覧”:{
“value”: [{
“0”: [{
“value”: [{
“必要書類一覧_添付ファイル”: [{
“value”:[{fileKey: key}]
}]
}]
}]
}]
}
}
};
}
};
xmlHttp.send(formData);
}
}
});
});