
テキストファイル生成
この工程は、任意のテキストファイルを生成し、ファイルデータ項目に格納します。
Basic Configs
- 工程名
- メモ
Configs for this Auto Step
- File_DataId
- C1: テキストファイルを保存するファイル型データ項目 *
- conf_DeleteOtherFiles
- C2: 保存時に他のファイルを削除する
- File_Name
- C3: 保存ファイル名 *#{EL}
- Text_Data
- C4: テキストファイルの内容 *#{EL}
- conf_CharacterEncoding
- C5: 保存する際の文字コード (未設定の場合、UTF-8)
- conf_ContentType
- C6: 保存する際のファイルタイプ (未設定の場合、text/plain)
Notes
- [C5: 保存する際の文字コード]では以下のタイプを選択指定できます
- UTF-8
- UTF-16BE (BOM あり)
- UTF-16LE (BOM あり)
- UTF-16BE (BOM なし)
- UTF-16LE (BOM なし)
- 文字コードが未指定の場合、UTF-8 として保存されます
- [C6: 保存する際のファイルタイプ]では以下のタイプを選択指定できます
- 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 characterEncoding = configs.get("conf_CharacterEncoding");
let contentType = configs.get("conf_ContentType");
if (filename === "" || filename === null) {
throw new Error("File Name is blank");
}
if (textdata === null) {
textdata = "";
}
if (characterEncoding === "" || characterEncoding === null) {
characterEncoding = 'UTF-8';
}
if (contentType === "" || contentType === null) {
contentType = 'text/plain';
}
myFiles = retrieveData(textdata, filename, filedataId, deleteOtherFiles, characterEncoding, contentType);
updateData(filedataId, myFiles);
}
/**
* テキストデータをファイル型データに変換する
* @param {String} textdata テキストファイルの内容
* @param {String} filename 保存ファイル名
* @param {String} filedataId テキストファイルを保存するファイル型データ項目のデータ定義番号
* @param {boolean} deleteOtherFiles 保存時に他のファイルを削除するかどうか
* @param {String} characterEncoding 保存する際の文字コード
* @param {String} contentType 保存する際のファイルタイプ
* @return {java.util.ArrayList<QfileView>} myFiles テキストデータをファイル型データとして追加した配列
*/
function retrieveData(textdata, filename, filedataId, deleteOtherFiles, characterEncoding, 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();
}
}
let fileType;
//x-UTF-16LE-BOM について QBPMS では contentType の charset は UTF-16 として扱われる
if (characterEncoding === 'x-UTF-16LE-BOM') {
fileType = `${contentType}; charset=UTF-16`;
} else if (characterEncoding === "UTF-8" && contentType === "application/json") {
//application/json で UTF-8 の場合は、charset 無しで application/json のみ
fileType = "application/json";
} else {
fileType = `${contentType}; charset=${characterEncoding}`;
}
// テキストデータをファイル型データに変換して追加した配列を返す
myFiles.add(
new com.questetra.bpms.core.event.scripttask.NewQfile(
filename,
fileType,
characterEncoding,
textdata
)
);
return myFiles;
}
//// == Data Updating / ワークフローデータへの代入 ==
function updateData(filedataId, myFiles) {
engine.setDataByNumber(filedataId, myFiles);
}