File Connector を使用してファイルを書き込む方法

Write 操作はファイル、FTP、および SFTP Connector で使用できます。これらのコネクタでは、この操作によりコンテンツが特定のパスにオンデマンドで書き込まれます。サポートされる一般的なユースケースを次に示します。

埋め込み DataWeave 変換

デフォルトでは、コネクタはメッセージペイロードに含まれるものをすべて書き込みます。

例: File Connector
<file:write path="output.csv" />
xml

ただし、ペイロードの形式が異なる (CSV ではないなど) ため、書き込む前に形式を変換する必要がある場合はどうしますか? Write 操作の前に Transform コンポーネントを配置した場合、メッセージペイロードが変更され、Write 操作の後に配置した操作に影響します。

この望ましくない影響を回避するには、変換を Write 操作の内部に配置して、送信中のメッセージに副次的影響を生じずに、書き込まれるコンテンツを生成できます。

次の例では、File Connector を使用してコンテンツを書き込みます。

例: ファイルの Write 操作内での変換
<file:write path="output.csv">
  <file:content>#[%dw 2.0
                  output application/csv
                  ---
                  payload.customers.email
                ]
  </file:content>
</file:write>
xml

ディレクトリへの書き込み

以下の例の ​a​、​b​、または ​c​ ディレクトリのいずれかが存在しない場合、デフォルトでは Write 操作は失敗します。ただし、​createParentDirectories​ を ​true​ に設定した場合、コネクタは、欠落しているディレクトリを自動的に作成します。

例: File Connector によるディレクトリへの書き込み
<file:write path="a/b/c/myFile.txt" />
xml

既存のファイルへの書き込み

コンテンツをファイルに書き込む場合、​[Write Mode (書き込みモード)]​ を次のいずれかのモードに設定します。

  • OVERWRITE (デフォルト)
    ファイルが存在する場合、ファイルを完全に上書きします。

  • APPEND
    ファイルが存在する場合、コンテンツを既存のファイルの最後に追加します。

  • CREATE_NEW
    新しいファイルを作成します。ファイルがすでに存在する場合、エラーになります。

ロック

Write​ 操作では、​Read​ 操作に似たロックがサポートされます。主な違いは、​Write​ 操作の終了後にロックが自動的にリリースされることです。​[Lock (ロック)]​ を次のいずれかのモードに設定します。

  • TRUE

  • FALSE (デフォルト)