複数ファイル型データをまとめて複製 (Files Duplicate From Multi Items)
ファイル型データを複製します。複数のファイル型データ項目Aに格納されているファイルデータが全て、ファイル型データ項目Bに追加コピーされます。コピー時、ファイル名の先頭に文字列を追加できます。
Configs
- A: 複製元のファイル型データ項目のフィールド名を記載してください。(複数可) *
- B: データが格納されるファイル型データを選択してください (更新) *
- C: (複製格納時)ファイル名の接頭文字を記載してください。eg.”copied-“#{EL}
Script (click to open)
// GraalJS Script (engine type: 2)
//////// START "main()" /////////////////////////////////////////////////////////////////
main();
function main(){
//// == 工程コンフィグの参照 / Config Retrieving ==
const strFieldNames = configs.get( "conf_DataIdA" ); //required
const copiedFileItem = configs.getObject( "conf_DataIdB" ); //required
const strPrefix = configs.get( "conf_DataIdC" );
//// == ワークフローデータの参照 / Data Retrieving ==
const arryFieldNames = strFieldNames.split(",");
let prefix = strPrefix;
if (strPrefix === null){ prefix = ""; }
//// == 演算 / Calculating ==
let listFileObj;
const historyObjs = engine.findData( copiedFileItem );
if (historyObjs === null){
listFileObj = new java.util.ArrayList();
}else{
engine.log("historyObjs not null " + historyObjs.size());
listFileObj = historyObjs;
}
engine.log("arryFieldNames.length: " + arryFieldNames.length);
for (let i=0; i < arryFieldNames.length; i++){
let list = engine.findDataByVarName(arryFieldNames[i]);
if (list !== null){
engine.log("list.size(): " + list.size());
for (let j=0; j < list.size(); j++){
let orgQFileObj = list.get(j);
let newQFileObj = new com.questetra.bpms.core.event.scripttask.NewQfile(prefix + orgQFileObj.getName() , orgQFileObj.getContentType() , orgQFileObj);
listFileObj.add( 0 , newQFileObj );
}
}
}
//// == ワークフローデータへの代入 / Data Updating ==
if (listFileObj.size() !== 0){
engine.setData( copiedFileItem , listFileObj);
}else{
engine.log("Copied File is not exist.");
}
} //////// END "main()" /////////////////////////////////////////////////////////////////
Download
2022-06-17 (C) Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/files-duplicate-from-multi-items-202208/
Addonファイルのインポートは Professional でのみご利用いただけます
自由改変可能な JavaScript (ECMAScript) コードです。いかなる保証もありません。
Notes
- 設定 “A: 複製元のファイル型データ項目のフィールド名を記載してください。(複数可)”
- 複数指定可能。
- 複製元の(ファイル型)データ項目のフィールド名をカンマ”,”区切りで記載。
- 設定 “C: (複製格納時)ファイル名の接頭文字を記載してください。eg.copied- “
- EL式の記載可能。
- 例:設定”I#{#format(#q_inquiry_datetime, ‘yyyyMMddHHmm’)}-” 対象ファイル名:”エラー画面キャプチャ.png”
- 出力ファイル名例: “I202209121031-エラー画面キャプチャ.png”
Capture
Arrangement Tips
- 複製元データ項目(ファイル型)の削除
- ”データ設定”自動処理工程を設置し、複製元データ項目に「(値をクリアする)」を指定。
See also
Related