ファイル, 複製
ファイル, 複製 (Files, Duplicate)

ファイル型データを複製します。ファイル型データ項目Aに格納されているファイルデータが全て、ファイル型データ項目Bに上書きコピーされます。

2020-02-21 (C) Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/files-duplicate/

Configs
  • A: ファイル型データを選択してください *
  • B: ファイル型データを選択してください(更新)
  • B2: ファイル型データを選択してください(追記)
  • C: 別名保存したい場合には、ファイル名をセットしてください ( 例 “apple.png,orange.jpeg” ) #{EL}
Script
// Notes:
// Use the standard function for duplication of string, numeric, date, etc.
// - Automated Step (BPMN Icons): "Service Task (Data Assignment)"
// - M227: Auto Executing Data Binding, Arithmetic Operations
// If you want to add files without erasing already stored files, use B2.
// If no setting to save as, the file names will not be changed.
// For rename purposes, set A and B to the same data item and set names at C.
//
// Notes (ja):
// 文字列型・数値型・日付型などのデータ複製には、標準機能をご活用ください。
// - 自動処理工程(BPMNアイコン): [サービスタスク(データ設定)]
// - M227: 業務データの結合や四則演算が自動実行されるように設定する
// 既に格納されているファイルを消さずにファイル追加したい場合は、B2をご利用ください。
// 別名保存の設定が無い場合(足りない場合)は、既存のファイル名のまま保存されます。
// AとBを同じデータ項目に設定し、Cをセットすれば、リネームの用途にもご利用いただけます。

//////// START "main()" ////////////////////////////////////////////////////////////////
main();
function main(){


//// == Config Retrieving / 工程コンフィグの参照 ==
const dataIdA   = configs.get( "conf_DataIdA" ) + ""; // required
const dataIdB   = configs.get( "conf_DataIdB" ) + ""; // not required
const dataIdB2  = configs.get( "conf_DataIdB2") + ""; // not required
const csvSaveAs = configs.get( "conf_CsvSaveAs"  ) + ""; // not required
// 'java.lang.String' to javascript primitive 'string'

if( csvSaveAs === "" ){
  engine.log( " AutomatedTask Config:" +
              " File Names to Save-as {C} is empty" );
}else{
  engine.log( " AutomatedTask Config:" +
              " File Names to Save-as: " + csvSaveAs );
}
const arrSaveAs = csvSaveAs.split(",");


//// == Data Retrieving / ワークフローデータの参照 ==
const inputFiles = engine.findDataByNumber( dataIdA ); 
// java.util.ArrayList
// - com.questetra.bpms.core.event.scripttask.QfileView
if( inputFiles === null ){
  throw new Error( "\n AutomatedTask UnexpectedFilesError:" + 
                   " Files {A} is empty \n" );
}
let originalFiles = new java.util.ArrayList();
if( dataIdB2 !== "" ){
  if( engine.findDataByNumber( dataIdB2 ) !== null ){
    originalFiles = engine.findDataByNumber( dataIdB2 ); 
    // java.util.ArrayList
  }
}


//// == Calculating / 演算 ==
let outputFiles1 = new java.util.ArrayList();
if( dataIdB !== "" ){
  for( let i = 0; i < inputFiles.size() - 0; i++){
    let tmpName = inputFiles.get(i).getName();
    if( i < arrSaveAs.length ){
      if( arrSaveAs[i] !== "" ){
        tmpName = arrSaveAs[i];
      }
    }
    outputFiles1.add(
      new com.questetra.bpms.core.event.scripttask.NewQfile(
        tmpName,
        inputFiles.get(i).getContentType(), 
        inputFiles.get(i)
      )
    );
    engine.log( " AutomatedTask:" +
                " Add to B[" + i + "]: " + tmpName );
  }
}

let outputFiles2 = new java.util.ArrayList();
if( dataIdB2 !== "" ){
  for( let i = 0; i < originalFiles.size() - 0; i++){
    let tmpName = originalFiles.get(i).getName();
    outputFiles2.add(
      new com.questetra.bpms.core.event.scripttask.NewQfile(
        tmpName,
        originalFiles.get(i).getContentType(), 
        originalFiles.get(i)
      )
    );
    engine.log( " AutomatedTask:" +
                " Add to B2[" + i + "]: " + tmpName );
  }
  for( let i = 0; i < inputFiles.size() - 0; i++){
    let tmpName = inputFiles.get(i).getName();
    if( i < arrSaveAs.length){
      if( arrSaveAs[i] !== "" ){
        tmpName = arrSaveAs[i];
      }
    }
    outputFiles2.add(
      new com.questetra.bpms.core.event.scripttask.NewQfile(
        tmpName,
        inputFiles.get(i).getContentType(), 
        inputFiles.get(i)
      )
    );
    engine.log( " AutomatedTask:" +
                " Add to B2[" + (i + originalFiles.size()) + "]: " + tmpName );
  }
}


//// == Data Updating / ワークフローデータへの代入 ==
if( dataIdB !== "" ){
  engine.setDataByNumber( dataIdB, outputFiles1 );
}
if( dataIdB2 !== "" ){
  engine.setDataByNumber( dataIdB2, outputFiles2 );
}

} //////// END "main()" ////////////////////////////////////////////////////////////////

Download

Capture

ファイル型データを複製します。ファイル型データ項目Aに格納されているファイルデータが全て、ファイル型データ項目Bに上書きコピーされます。

Notes

  1. 文字列型・数値型・日付型などのデータ複製には、標準機能をご活用ください。
    1. – 自動処理工程(BPMNアイコン): [サービスタスク(データ設定)]
    2. – M227: 業務データの結合や四則演算が自動実行されるように設定する
  2. 既に格納されているファイルを消さずにファイル追加したい場合は、B2をご利用ください。
  3. 別名保存の設定が無い場合(足りない場合)は、既存のファイル名のまま保存されます。
  4. AとBを同じデータ項目に設定し、Cをセットすれば、リネームの用途にもご利用いただけます。

See also

コメントを残す

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

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