はじめに
この記事では、CAIプロセスでプレーンテキストファイルを作成する手順を確認しています。
なお、この記事は次の記事の内容を理解していることを前提としています。
テキストファイルの作成
ファイルアプリケーション接続の作成
-
IICSにログインして アプリケーション統合 のページに移動、 新規メニュー を選択して アプリケーション接続 の作成画面を表示します。
-
アプリケーション接続の 名前 に recipe-appConn-FileWrite、ランタイム環境に Secure Agent を指定します。
-
イベントターゲット タブを選択して、File Writer イベントを追加します。このイベントはプレーンテキストファイルやXMLファイルなどの生成時に利用します。
-
File Writer イベントの必須項目かつ規定値がブランクである Directory プロパティを設定します。このプロパティにはファイルを保存するSecure Agent実行環境のディレクトリを指定します。
各プロパティについては後述する参考 - File接続ターゲットイベントの各プロパティに概要を記載しています。 -
イベントターゲット タブを選択して、Delimited Content Writer イベントを追加します。このイベントは、CSVファイルの生成時に利用します(今回のレシピでは使用しません、別のレシピで使用します)。
-
Delimited Content Writer の必須項目かつ規定値がブランクである Directory プロパティを設定します。このプロパティにはファイルを保存するSecure Agent実行環境のディレクトリを指定します。
-
アプリケーション接続の保存、パブリッシュ を実行します。
CAIプロセスの作成
次の手順では作成したアプリケーション接続を利用するCAIプロセスを作成しています。
-
CAIプロセスを次の設定で作成します。
- 名前を recipe-pca-fileWritePlainText とする
- 匿名アクセス を許可する
- クラウドサーバー にデプロイする
-
一時フィールドとして tmpFileWrite を定義します。定義された接続タイプ には作成したアプリケーション接続を指定、タイプ として File write task を指定します。
-
割り当てステップを選択して、次のように各フィールドに値を指定します。
フィールド 割り当て 値 tmpFileWrite
> File name計算式 'test-recipe-pca-fileWritePlainText.csv' tmpFileWrite
> Content Formatコンテンツ Plain Text tmpFileWrite
> Plain File Content計算式 concat("This is File Write Test", " ", "by CAI Process")
改行を含めた文字列を生成しています -
サービスステップを選択して、サービスタイプ=接続,接続=recipe-appConn-FileWrite(作成したアプリケーション接続),アクション=FileWriter を指定します。
-
サービスステップの 入力フィールド を選択して、fileWriteTask に一時フィールド tmpFileWrite を指定します。
CAIプロセスの実行
curlコマンドを例とした動作確認結果です。CAIプロセスが正常終了してレスポンスコードとしてHTTP 200が返ってくる動作、CAIプロセスで指定した値がテキストファイルに出力されている動作を確認できます。
curl -I https://usw5-cai.dm-us.informaticacloud.com/active-bpel/public/rt/<---ご利用のOrg ID--->/recipe-pca-fileWritePlainText
//実行結果
HTTP/2 200
略
//出力ファイルの確認
$ cat test-recipe-pca-fileWritePlainText.csv
This is File Write Test
by CAI Process
参考 - File接続ターゲットイベントの各プロパティ
共通プロパティ
-
ディレクトリ(Directory)
ファイルを格納するディレクトリの相対パスを指定します。 -
ファイルの存在(File Exists)
同じ名前のファイルがすでに存在している場合の処理を決定します。
上書き(OVerride): 既存のファイルを置き換えます。ターゲットが生成されたときに既存のファイルをどのように処理するかを決定するには、[削除の強制]オプションを選択します。
付加(Append): 既存のファイルにコンテンツを追加します。一時的なプレフィックスや一時的なファイル名は指定しないでください。
失敗(Fail): 競合ファイルをスキップして、ファイル名がすでに存在することを示す例外をスローします。
無視(Ignore): 競合ファイルをスキップして、問題を無視します(例外のスローなし)。
移動(Move): ターゲットファイルに書き込む前に既存のファイルを移動します。既存のファイルの移動先フォルダを指定するには、[既存の移動]を使用します。
名前の変更(TryRename): ファイル名が存在するかどうかを確認せずに、ファイルの名前を一時的な名前から実際の名前に変更します。[一時的なファイル名]も指定している場合にのみ使用します。一部のファイルシステムまたはFTPサーバーでは、この方が早い場合があります。 -
既存の移動(Move Existing)
[ファイルの存在]の[移動]オプションと一緒に使用すると、ターゲットに書き込む際に既存のファイルの場所を指定できます。
このフィールドに「backup」と入力するだけで、既存のフィールドをバックアップフォルダに移動できます。バックアップファイルの名前を移動時に変更し、以降の操作でバックアップファイルが新しいバージョンに置き換わらないようにするには、ファイル名を決定するための式を入力します。以下に例を示します。
backup\${file:name}_${file:modified}
この式は、既存のファイルが移動されるたびに新しいファイルをバックアップフォルダに作成し、ファイル名にタイムスタンプを追加します。
Apache Camel File Expression言語を活用できます。 -
削除の強制(Eager Delete)
一時ファイルに書き込む前にターゲットファイルを削除するには、 [はい]を選択します。この場合、[ファイルの存在]オプションに[上書き]を選択し、[一時的なファイル名]を指定する必要もあります(以下を参照)。
待機して、一時ファイルに書き込んで出力ファイルの名前に変更する準備が整った場合にのみターゲットファイルを削除するには、 [いいえ]を選択します。これは、書き込み操作が完了するまでの間、既存のファイルを使えるようにする場合などに使用できます。 -
書き込みの強制(Force Writes)
ファイルシステムがすべてのデータをターゲットファイルに書き込むようにし、システム障害が発生した場合はすべてのデータが維持されるようにするには、 [はい]を選択します。
ログデータを扱っており、ファイルシステム障害が発生した場合のデータフラグメントの損失も気にしない場合は、 [いいえ]を選択します。これにより、パフォーマンスがやや向上します。 -
書き込みバッファサイズ(Write Buffer Size)
書き込みバッファのサイズ(バイト単位)を決定します。
File Writerイベント
-
一時的なプレフィックス(Temp File Name)
ファイルに一時的な名前を付ける場合に、ファイル名のプレフィックスを入力します。書き込み操作が完了したら元の名前に戻します。
[ファイルの存在]オプションに[付加]を選択した場合は無視されます。 -
一時的なファイル名(Write Buffer Size)
プレフィックスの代わりに、一時ファイル名を決定するための式を入力します。
Apache Camel File Expression言語を活用できます。
[ファイルの存在]オプションに[付加]を選択した場合は無視されます。 -
文字セット(Character Set)
ファイルのエンコーディングを決定します。指定しない場合、イベントターゲットはUTF-8のファイルエンコーディングを使用します。
Delimited Content Writerイベント
-
区切り文字(Delimiter)
このイベントターゲットが生成したファイルで使用するための区切り文字。スペースまたはタブを使用するには、エスケープ文字(「\s」または「\t」)として入力します。 -
テキスト修飾子(Text Qualifier)
このイベントターゲットが作成したファイルで使用するテキスト修飾子。スペースまたはタブを使用するには、エスケープ文字(「\s」または「\t」)として入力します。 -
ヘッダーのスキップ(Skip Headers)
生成したコンテンツにヘッダー名があるかどうかを確認します。ヘッダー名なしで区切りコンテンツを保存する場合は [はい]を選択します。 -
行の末尾のスタイル(Line Ending Style)
生成されたコンテンツでの行の末尾のスタイルを決定します(Windowsスタイルは\r\n、Unixスタイルは\n)。