// Converter from Table to Excel-CSV (ver. 20180829)
// (c) 2018, Questetra, Inc. (the MIT License)
//// == Config Retrieving / 工程コンフィグの参照 ==
const dataIdA = configs.get( "conf_DataIdA" ) + "";
const colIds = configs.get( "conf_ColIds" ) + "";
const dataIdC = configs.get( "conf_DataIdC" ) + "";
const dataIdD = configs.get( "conf_DataIdD" ) + "";
//// == Data Retrieving / ワークフローデータの参照 ==
const myTable = engine.findDataByNumber( dataIdA );
// com.questetra.bpms.core.model.formdata.ListArray
const fileName = engine.findDataByNumber( dataIdC ) + "";
let myFiles = engine.findDataByNumber( dataIdD );// java.util.ArrayList
if( myFiles === null ){ myFiles = new java.util.ArrayList(); }
if( myTable === null){
throw new Error( "Source Table data is NULL" );
}
//// == Calculating / 演算 ==
let colIdArray = colIds.split(",");
let numOfCols = colIdArray.length;
let numOfRows = myTable.size() - 0; // 行(Tableの高さ)
let myTsv = "";
for( let i = 0; i < numOfRows; i++ ){
for( let j = 0; j < numOfCols; j++ ){
myTsv += myTable.get(i, parseInt( colIdArray[j] ) ) + "";
if( j != numOfCols - 1 ){
myTsv += "\t";
}
}
if( i != numOfRows - 1 ){
myTsv += "\n";
}
}
// for sjis-csv
let myCsv = myTsv.replace( /,/g, "" ).replace( /\t/g, "," );
myFiles.add(
new com.questetra.bpms.core.event.scripttask.NewQfile(
fileName,
// "text/tab-separated-values; charset=x-UTF-16LE-BOM",
"text/comma-separated-values; charset=Shift_JIS", // for sjis
// myTsv
myCsv
)
);
//// == Data Updating / ワークフローデータへの代入 ==
engine.setDataByNumber( dataIdD, myFiles );