コンバータ (ファイルコピー)

コンバータ (ファイルコピー)

Converter (Copy File)

この工程は、ファイル型データ項目の添付ファイルを、指定したファイル型データ項目に複製します。コピー元ファイルが1つなら、ファイル名を変更することも可能です。

Basic Configs
工程名
メモ
Auto Step icon
Configs for this Auto Step
conf_SourceFileDataId
C1: コピー元ファイル型データ項目 *
conf_DestinationFileDataId
C2: コピー先ファイル型データ項目 *
conf_DeleteOtherFiles
C3: 保存時に他のファイルを削除する
conf_FileName
C4: 保存ファイル名 (空白の場合、コピー元のファイル名で保存されます)#{EL}

Notes

  • コピー元のファイルが複数の場合、コピー先のファイル名は指定できません

Capture

See also

Script (click to open)
  • 次のスクリプトが記述されている XML ファイルをダウンロードできます
    • converter-file-copy.xml (C) Questetra, Inc. (MIT License)
    • Professional のワークフロー基盤では、ファイル内容を改変しオリジナルのアドオン自動工程として活用できます

function main() {
    //// == 自動工程コンフィグの参照 / Config Retrieving ==
    const sourceFileDef = configs.getObject("conf_SourceFileDataId"); // (returns ProcessDataDefinitionView)
    const destinationFileDef = configs.getObject("conf_DestinationFileDataId"); // (returns ProcessDataDefinitionView)

    const deleteOtherFiles = configs.getObject("conf_DeleteOtherFiles");
    // ワークフローデータからファイル型データの配列を取得。
    const sourceFiles = engine.findData(sourceFileDef);
    const destinationFiles = engine.findData(destinationFileDef);

    // コピー元のファイルがない場合
    if (sourceFiles === null) {
        throw new Error('Source file is empty.');
    }

    let fileName = configs.get("conf_FileName");
    if (fileName !== "" && fileName !== null) {
        if (sourceFiles.size() > 1) {
            // ファイル名が指定されていて、コピー元のファイル型データに複数添付されている場合、エラー
            throw new Error("Attachment of multiple files can not be named.");
        }
    }

    // コピー元データ項目にあるファイルをコピー
    const newFiles = copyFiles(sourceFiles, fileName);

    if (deleteOtherFiles === false && destinationFiles !== null) {
        // コピー先データ項目に元からあるファイルを残す場合、リストに、残すファイルを追加する
        newFiles.addAll(0, destinationFiles); //「先にコピー前から存在するファイル、後にコピーされたファイル」の順番
    }

    //// == ワークフローデータへの代入 / Data Updating ==
    engine.setData(destinationFileDef, newFiles);
}

/**
  * ファイルをコピーする
  * @param {Qfile} sourceFiles コピー元ファイル
  * @param {String} filename 保存ファイル名
  * @return {java.util.ArrayList<QfileView>} files コピーファイルを追加した配列
  */
function copyFiles(sourceFiles, fileName) {

    const files = new java.util.ArrayList();
    for (let i = 0; i < sourceFiles.size(); i++) {
        let qfile;
        let sourceFilesInfo = sourceFiles.get(i);
        if (fileName !== "" && fileName !== null) {
            qfile = new com.questetra.bpms.core.event.scripttask.NewQfile(fileName, sourceFilesInfo.getContentType(), sourceFilesInfo);
        } else {
            qfile = new com.questetra.bpms.core.event.scripttask.NewQfile(sourceFilesInfo.getName(), sourceFilesInfo.getContentType(), sourceFilesInfo); //ファイルデータをそのまま複製保存する
        }
        files.add(qfile);
    }
    return files;
}

上部へスクロール

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む