テキストファイル生成 (Generate Text File)
この工程は、任意のテキストファイルを生成し、ファイルデータ項目に格納します。
Configs:共通設定
  • 工程名
  • メモ
Configs
  • C1: テキストファイルを保存するファイル型データ項目 *
  • C2: 保存時に他のファイルを削除する
  • C3: 保存ファイル名 *#{EL}
  • C4: テキストファイルの内容 *#{EL}
  • C5: 保存する際のファイルタイプ

Notes

  • テキストファイルの文字コードは、UTF-8 になります
  • [C5: 保存する際のファイルタイプ]では以下のタイプを選択指定できます
    • text/plain
    • text/html
    • text/xml
    • application/json
  • ファイルタイプが未指定の場合、text/plain として保存されます

Capture

See also

Script (click to open)
  • 下記のスクリプトを記述した XML ファイルをダウンロードできます
    • generator-textfile.xml (C) Questetra, Inc. (MIT License)
    • Professional をご利用であればファイルの内容を改変することでオリジナルのアドオンとして活用できます


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

    //// == Config Retrieving & Caluculating / 工程コンフィグの参照 & 演算 ==
    const textdata = configs.get("Text_Data");
    const filename = configs.get("File_Name");
    const filedataId = configs.get("File_DataId");
    const deleteOtherFiles = configs.getObject("conf_DeleteOtherFiles");
    let contentType = configs.get("conf_ContentType");

    if (filename === "" || filename === null) {
        throw new Error("File Name is blank");
    }

    if (contentType === "" || contentType === null) {
        contentType = 'text/plain';
    }

    myFiles = retrieveData(textdata, filename, filedataId, deleteOtherFiles, contentType);
    updateData(filedataId, myFiles);
}

/**
  * テキストデータをファイル型データに変換する
  * @param {String} textdata テキストファイルの内容
  * @param {String} filename 保存ファイル名
  * @param {String} filedataId テキストファイルを保存するファイル型データ項目のデータ定義番号
  * @param {boolean} deleteOtherFiles 保存時に他のファイルを削除するかどうか
  * @param {String} contentType 保存時に他のファイルを削除するかどうか
  * @return {java.util.ArrayList<QfileView>} myFiles テキストデータをファイル型データとして追加した配列
  */
function retrieveData(textdata, filename, filedataId, deleteOtherFiles, contentType) {
    let myFiles;
    if (deleteOtherFiles === true) {
        myFiles = new java.util.ArrayList();
    } else {
        // ワークフローデータからファイル型データの配列を取得
        myFiles = engine.findDataByNumber(filedataId);// java.util.ArrayList
        if (myFiles === null) {
            myFiles = new java.util.ArrayList();
        }
    }
    if (textdata === null) {
        textdata = "";
    }

    // テキストデータをファイル型データに変換して追加した配列を返す
    myFiles.add(
        new com.questetra.bpms.core.event.scripttask.NewQfile(
            filename,
            `${contentType}; charset=UTF-8`,
            textdata
        )
    );
    return myFiles;
}

//// == Data Updating / ワークフローデータへの代入 ==
function updateData(filedataId, myFiles) {
    engine.setDataByNumber(filedataId, myFiles);
}

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