【アプリA】
ID
氏名
【アプリB】
ID(ルックアップ)
関係者
【アプリC】
ID(ルックアップ)
手続
年月日
【アプリB】にボタンを配置し,
上記3つのアプリから,IDが共通し,さらに【アプリC】の「手続」が"生年月日"の年月日を抽出し,csvファイルを作りたいです。
(例)
[ID] [氏名] [関係者] [生年月日]
999 山田太郎 山本良子 1999-01-01
以下のようにコードを書いてみたのですが,
【アプリC】に"生年月日"が無い場合,[生年月日]だけでなく,[氏名],[関係者]も空欄になってしまいます。
"生年月日"が無い場合は,[生年月日]欄を空欄で,[氏名],[関係者]を抽出したいです。
どのように修正したらいいでしょうか?
・・・
// csvデータの作成
function getMakeCsv(appId, customerRecords) {
var header = ['氏名', '関係者', '生年月日'].join(',');//CSVのヘッダー設定
var csvData = [header];
・・・
return new kintone.Promise(function(resolve, reject) {
fetchRelatedRecords().then(function(resp) {
csvData = csvData.concat(resp);
resolve(csvData);
});//function(resp)
});//kintone.Promise
・・・
function fetchRelatedRecords(opt_index, opt_data) {
var index = opt_index || 0;
var data = opt_data || [];
var name = record.関係者.value;
var JJID = record.ID.value;//queryで利用するためにデータのJIDを変数に入れる
var query = 'ID ="'+JJID+'"';
var query2 = 'ID ="'+JJID+'" and 手続 = "生年月日"';
var params = {
app: 【アプリA】,
query: query
};//params
var params2 = {
app: 【アプリC】,
query: query2
};//params2
・・・
return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params)
.then(function(resp) {
return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params2)
.then(function(resp2) {
・・・
var row = [name];
var relatedRecords = resp.records;
var relatedRecords2 = resp2.records;
・・・
if (relatedRecords.length > 0) {
relatedRecords.forEach(function(relatedRecord) {
relatedRecords2.forEach(function(relatedRecord2) {//←★★このあたりが原因?
row.push(relatedRecord.氏名.value);
row.push(relatedRecord2.年月日.value);
data.push(row.join(','));
});//relatedRecords.forEach
});//relatedRecords2.forEach
}//if
return data;
});//function(resp)
});//function(resp2)
}//function fetchRelatedRecords
}//getMakeCsv
});//app.record.detail.show
// ダウンロード関数
function downloadFile(data) {
var csv = data.join('\r');
// ファイル名
var filename = 'TEST.csv';//ファイル名(固定)
// Blob準備
var bom = new Uint8Array([0xef, 0xbb, 0xbf]);
var blob = new Blob([bom, csv], { type: 'text/csv' });
if (window.navigator.msSaveBlob) {
window.navigator.msSaveBlob(blob, filename);
} else {
var e = new MouseEvent('click', {view: window, bubbles: true, cancelable: true});
var url = window.URL || window.webkitURL;
var blobUrl = url.createObjectURL(blob);
var a = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
a.href = blobUrl;
a.download = filename;
a.dispatchEvent(e);
}