複数ファイル型データをまとめて複製 (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

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。