
こんにちは。CData Software Japan の齋藤です。
CData Arc は、CData 製品の中で「自動化/Automate」を担うデータ連携ツールです。Arc ではビルディングブロックとして用意された豊富なコネクタ同士を接続することで、データ処理フローを構築することができます。 コネクタ間でやりとりするデータはメッセージと呼ばれますが、その実態はインターネットメッセージ形式のファイルとなります。そのメッセージがアプリケーション内でローカルに処理される際、例えば EDI が XML に変換されたり、ファイルが新しい形式にマッピングされたりする場合に、ユーザ独自のファイル名を命名することが可能です。その際、マクロを利用することで識別子やタイムスタンプなどの動的な情報をファイル名に含めることが可能です。
マクロの概要
ファイルの命名規則にマクロを使用することで、データの文脈的理解が向上します。自動化という機械的な処理において識別子やタイムスタンプなどを動的に含めることができ、「どのコネクタが、いつ、どのようなデータを処理したか」のような文脈情報をファイル名から把握できるようになります。さらに、ファイル名に文脈が付与されることで、以下のような組織内の効率性改善につながります。
1. 人的エラーの削減
ファイル名の手動変更プロセスを排除することで、命名に起因するヒューマンエラーを防止します。
2. 自動化プロセスの拡張性向上
一貫性のある命名規則により、データ集計やレポート自動生成などの後続処理実装における開発工数を削減します。
3. 検索性・可視性の向上
一貫性のある命名規則により、ファイル名から処理内容および時系列を把握できます。また、必要なファイルの迅速な特定が可能になり、ファイル名を基準としたソート・フィルタリング処理も効率化されます。
マクロ一覧
以下のマクロは多くのコネクタで使用できる代表的なものです。
マクロ | 説明 |
ConnectorID | コネクタのConnectorID を返します。 |
Ext | コネクタが処理中のファイルの拡張子を返します。 |
Filename | コネクタが処理中のファイルのファイル名(拡張子を含む)を返します。 |
FilenameNoExt | コネクタが処理中のファイルのファイル名(拡張子なし)を返します。 |
MessageId | コネクタがアウトプットするメッセージのMessageId を返します。 |
RegexFilename:pattern | コネクタで処理中のファイルのファイル名にRegEx パターンを適用します。 |
Header:headername | コネクタが処理中のメッセージのヘッダー(headername)の値を返します。 |
LongDate | システムの現在の日時を長い形式(例:Wednesday, January 24, 2024)で返します。 |
ShortDate | システムの現在の日時をyyyy-MM-dd 形式(例:2024-01-24)で返します。 |
DateFormat:format | システムの現在の日時を指定されたフォーマット(format)で返します。 |
Vault:vaultitem | 指定されたVault 項目の値を返します。 |
ただし、コネクタによって使用できるマクロおよび、設定箇所が異なることもあります。例えば、Oracle コネクタをはじめとするデータベースコネクタ類はテーブル名を取得できる「Table」マクロや主キーの値を取得できる「PK」マクロ等が実装されています。ファイル名に上記のようなマクロを適用するためにはローカルファイルスキームと呼ばれる項目に値を設定する必要があります。一方で、以下の画像のようにSFTP コネクタ等ではローカルファイルスキームで使用可能なマクロとは別に、サーバコマンドに設定する独自のマクロ機能が実装されています。

マクロの構文
マクロを使用する際の構文は%マクロ名%となります。例えば、%ConnectorID%のように記述をします。一方で、一部のマクロでは引数の指定が必要です。引数が必要なマクロの構文は%マクロ名:引数%となります。代表的な例として、DateFormat マクロがあります。このマクロは引数に日付フォーマットを指定することで、システムの現在日時を任意の形式で取得できます。例えば、%DateFormat:yyyy-MM-dd-HH-mm-ss-fff% のマクロは「年-月-日-時-分-秒-ミリ秒」の形式でシステムの現在日時を出力します。
他にも、より詳細なマクロを作成することもできます。
複数のマクロを組み合わせて1つのファイル名にまとめる: %DateFormat:yyyy-MM-dd-HH-mm-ss-fff%%EXT%
マクロの外側にテキストを含める: MyFile_%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%
マクロの内側にテキストを含める: %DateFormat:'DateProcessed-'yyyy-MM-dd_'TimeProcessed-'HH-mm-ss%
マクロの使用例
この章では、マクロ機能を利用した実践的なユースケースを4つほどご紹介します。
1. ファイル名にタイムスタンプを追加
概要
このユースケースでは、コネクタが出力するファイル名にタイムスタンプを付与するマクロをご紹介します。これにより、自動化処理を実行したシステム日時がファイル名から一目で分かるようになります。また、同名のファイルが複数存在する場合でも上書きを防ぎ、各ファイルにユニークな命名ができるため、ファイルの重複管理や誤った上書きなどの将来的な取り違えを防ぐことができます。一例として、次の要件に基づくフローをご紹介します。
「Microsoft SharePoint からファイルを受信し、Encoding コネクタで文字コード変換を行い、ファイル名にタイムスタンプを付与した後、SharePoint 内の別ディレクトリへ移動する」
フロー
このフローは以下のコネクタで構成されています。

CData Arc 機能紹介 - SharePoint コネクタ
CData Arc - 文字コード変換をサポートするEncoding コネクタ
前提
受信対象のUTF-8 のテキストファイルは以下の画像の通りです。

マクロの設定
SharePoint コネクタのローカルファイルスキームに%FilenameNoExt%-%DateFormat:yyyyMMddHHmmss%%EXT%と設定します。

実行結果
フローを実行すると送信先のディレクトリに元々のファイル名に実行日時が付与されたテキストファイルを確認できました。文字コードも適切にUTF-8 からShift-JIS へ変換されています。

2. ダイナミックパスによる動的ファイル受信
概要
このユースケースでは、マクロ機能と受信アクションのFile コネクタを組み合わせることで動的に受信先のフォルダを変更します。実行時の日付などに応じてファイルパスを動的に変更することで、柔軟なファイル取得が可能になります。一例として、次の要件に基づくフローをご紹介します。
「年月日(YYYYMMDD)形式で命名されたローカルフォルダから、ファイルを日次で受信する」
前提
以下の画像のようにC:¥DailyAccess 配下にYYYYMMDD 形式で命名されたフォルダが存在しているものとします。

マクロの設定
File コネクタのパスにはC:\DailyAccess\%DateFormat:yyyyMMdd%と設定します。

実行結果
以下の画像のように実行日によって受信対象のディレクトリを動的に切り替えることができました。

3. メッセージヘッダを使用した動的ファイル送信
概要
このユースケースでは、マクロ機能とメッセージヘッダを組み合わせることでファイルの送信先フォルダを動的に変更します。一例として、次の要件に基づくフローをご紹介します。
「従業員テーブルからデータを取得し、部門別に作成されたローカルフォルダへファイルを送信する」
フロー
このフローは以下のコネクタで構成されています。
PostgreSQL コネクタ: 従業員テーブルからデータを受信
XML Map コネクタ: XML および、メッセージヘッダへのマッピング
File コネクタ: ファイルをローカルフォルダへ送信

前提
受信元のテーブルには以下画像のような従業員のデータが存在します。

XML Map コネクタではソースのdepartment 項目が宛先のメッセージヘッダ項目であるEmployeeDepartment へマッピングされています。

送信先フォルダであるC:¥Output 配下には部門名毎にフォルダが存在します。

マクロの設定
File コネクタのパスにはC:\Output\%Header:EmployeeDepartment%と設定します。

結果
従業員の部門に応じて、ファイルの送信先フォルダを動的に切り替えることができました。

4. Vault を使用した設定の集約管理と環境差異の軽減
このユースケースでは、マクロ機能とVault を組み合わせることで異なる環境間で使用する設定値を一元管理しながら、環境差異を軽減する柔軟なファイル名の命名を実現します。一例として、次の要件に基づくフローをご紹介します。
「コネクタを検証環境から本番環境へインポートし、コネクタの設定を変更せず環境に応じた値をファイル名に付与する」
前提
検証環境のVault には以下の画像のようにENV というアイテムが追加されており、設定値はDEV となっています。

本番環境のVault には以下の画像のように同名のアイテムが追加されており、設定値はPROD となっています。

マクロの設定
検証環境でPostgreSQL コネクタを作成し、ローカルファイルスキームには%Vault:ENV%-%Filename%と設定します。

結果
検証環境ではファイル名の接頭辞としてDEV が付与されました。

検証環境のコネクタを本番環境へインポートし、処理を実行するとファイル名の接頭辞としてPROD が付与されました。

おわりに
この記事では、実際の挙動を交えてCData Arc のコネクタのマクロ機能をご紹介しました。マクロ機能を活用することで、固定値を避けた柔軟なデータ連携が可能になります。CData Arc のマクロ機能については、こちらのコミュニティポストなども参考にしていただけます。
CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで275を超えるアプリケーションへの連携を実現できます。
皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。
CData Arc | データ連携、EAI、マネージドファイル転送(MFT)、電子データ交換(EDI)のオールインワンツール
製品を試していただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。
CData - サポートフォーム
この記事では CData Arc™ 2025 - 25.3.9469.0 を利用しています。