フラットファイルの読み取りと書き込み

次の例では、フラットファイルのコンテンツを読み取る方法に加えて、指定されたスキーマに従ってフラットファイルを書き込む方法も示しています。それぞれの例は、DataWeave を使用してフラットファイルの読み取りと書き込みを行う Mule アプリケーションで構成されています。

フラットファイルを操作するときは、フラットファイルのコンテンツの読み取りと書き込みに使用するフラットファイルスキーマを設定します。フラットファイルスキーマによってフラットファイルの構造が定義され、これによって Mule はこの形式で書き込みと読み取りを行うことができます。

これらの例のアプリケーションは、​「フラットファイルスキーマ」​で指定されているサンプルのフラットファイルデータとフラットファイルスキーマの例を操作するように設定されています。

フラットファイルの読み取りの例

次の例のアプリケーションは、以下で構成されています。

  1. フローをトリガーする Scheduler コンポーネント

  2. 指定されたパスからフラットファイルを読み取る File Read 操作

  3. フラットファイルから読み取られた内容を JSON 形式に変換する Transform Message コンポーネント

  4. 現在のペイロードを出力する Logger コンポーネント

Mule アプリケーションの例

アプリケーション XML ファイル
1 File Read 操作では次の属性が設定されます。
  • path​: 読み取るフラットファイルのパス

  • outputMimeType​: 内容の出力 MIME タイプで、この場合は ​application/flatfile

  • schemapath​: フラットファイルスキーマ (​.ffd​ ファイル) へのパスを指定するリーダープロパティ

このアプリケーション例の実行後に、次の出力が生成されます。

フラットファイルの書き込みの例

次の例のアプリケーションは、以下で構成されています。

  1. フローをトリガーする Scheduler コンポーネント

  2. 前の例からの JSON 出力が含まれるファイルを読み取る File Read 操作

  3. JSON ペイロードを指定されたフラットファイル形式に変換する Transform Message コンポーネント

  4. 現在のペイロードを出力する Logger コンポーネント

  5. ペイロードを指定された対象パスのフラットファイルに出力する File Write 操作

Mule アプリケーションの例

アプリケーション XML ファイル
1 Transform コンポーネントでは、スクリプトヘッダーで次のライタープロパティが指定されます。
  • output​: 変換の出力 MIME タイプで、この場合は ​application/flatfile

  • schemapath​: フラットファイルスキーマ (​.ffd​ ファイル) へのパスを指定するライタープロパティ

2 File Write 操作では ​path​ プロパティが指定され、フラットファイルをどこに書き込むかが定義されます。

このアプリケーション例の実行後に、次の出力が生成されます。

RQH201809011010A000000001USD
BAT000001HACME RESEARCH                 A000000001
BAT000000D          0000000000
BAT000000D          0000000000
BAT000004T0000120202CR000002A000000001
BAT000005HAJAX EXPLOSIVES               A000000002
BAT000000D          0000000000
BAT000000D          0000000000
BAT000008T0000003326DB000002A000000002
RQF0002000008000000116876CRA000000001

例をローカルでテストする

例をローカルでテストするには、次の手順に従って Mule アプリケーション例を作成して設定します。

  1. Anypoint Studio で新しい ​Mule プロジェクト​を作成します。

  2. テストするアプリケーションの XML コードをプロジェクトの ​[Configuration XML (設定 XML)]​ ビューにコピーします。

  3. 『[Add Modules (モジュールを追加)』]​ を使用して、ファイル用 Anypoint Connector (File Connector) をプロジェクトに追加します。

  4. Mule アプリケーションの ​src/main/resources​ フォルダー内に ​flatfileconfig.properties​ という名前のファイルを作成し、次のプロパティを使用してその内容を設定します。

    fileReadPath=flatfile
    schemaPath=flatfileschema.ffd
    fileWritePath=flatfilenew
    jsonFileReadPath=flatFileJson.json
    fileWorkingDir=#["${mule.home}/apps/${app.name}/"]
  5. Mule アプリケーションの ​src/main/resources​ フォルダー内に ​flatfile​ という名前のファイルを作成し、DataWeave フラットファイルスキーマ例からの「フラットファイルサンプルデータ」を使用してその内容を設定します。

  6. Mule アプリケーションの ​src/main/resources​ フォルダー内に ​flatfileschema.ffd​ という名前のファイルを作成し、DataWeave フラットファイルスキーマ例からの​「完全なスキーマ例」​を使用してその内容を設定します。

  7. Mule アプリケーションの ​src/main/resources​ フォルダー内に ​flatFileJson.json​ という名前のファイルを作成し、フラットファイルを読み取る例からの ​JSON 変換出力​を使用してその内容を設定します。