コントロール ファイルによるフローのトリガー

モニタリング対象のディレクトリ内でコントロール ファイルが検出されたときに、フローを自動的に実行することができます。この機能は、フローの実行の前に別のプロセスの完了が必要という状況において便利です。例えば、別のビジネス プロセスによって生成される入力ファイルを必要とするフローが考えられます。コントロール ファイルをフォルダに配置するように別のプロセスを設定し、そのコントロール ファイルを検出したらフローを実行するように Spectrum™ Technology Platformを設定することができます。

注: 必ず、フローで必要なすべてのファイルの準備が整い、処理できる状態になった後に、コントロール ファイルをモニタリング対象のディレクトリに配置するようにしてください。
  1. フローをエクスポーズしていない場合は、エクスポーズします。

    フローをエクスポーズするには、Enterprise Designer でフローを開き、[ファイル] > [エクスポーズ/アンエクスポーズして保存] を選択します。

  2. Management Console を開きます。
  3. [フロー] > [スケジュール] に移動します。
  4. [追加] ボタン をクリックします。
  5. [名前] フィールドに、このスケジュールに付ける名前を入力します。これがスケジュールの一覧に表示される名前になります。
  6. [フロー] フィールドに、実行するジョブまたはプロセス フローを入力します。保存およびエクスポーズされたジョブとプロセス フローだけが、ここで使用可能です。
  7. フローを指定した後で、追加のフィールドが [フロー] フィールドの下に表示されます。フローの各ソース ステージ (Read from File など) と各シンク ステージ (Write to File など) に対応するフィールドが提供されます。これらのフィールドは、このスケジュールに従ってフローが実行されるときに使われるファイルを示します。デフォルトで、フローのソースとシンクで指定されたファイルが使用されます。スケジュールで使われるファイルを変えるには、ファイル パスを別のファイルへのパスに置き換えます。例えば、フローで使う Read from File ステージでデータがC:\FlowInput\Customers.csvから読み込まれるが、このスケジュールの実行に C:\FlowInput\UpdatedCustomers.csv のデータを使いたい場合は、C:\FlowInput\UpdatedCustomers.csv を [Read from File] フィールドに指定します。
    注: ソース ステージやシンク ステージで使われるファイルを変更するには、リソース - ファイル サーバー セキュア エンティティ タイプの読み取り権限が必要です。

    フローがスケジュールによって実行される場合、フローで使われるファイルは Management Console で外部リソースとして定義されたSpectrum™ Technology Platformサーバーまたはファイル サーバーに存在する必要があります。これはジョブと、プロセス フロー内のジョブ アクティビティの両方に適用されます。ソース ステージまたはシンク ステージがクライアント コンピュータ上のファイルを参照している場合は、次の手順のいずれかを実行します。

    オプション 説明
    オプション 1: データフローを変更する ファイルを Spectrum™ Technology Platformサーバーまたはファイル サーバーに移動し、データフローを変更します。
    1. Enterprise Designer でデータフローを開きます。
    2. ソースまたはシンク ステージをダブルクリックします。
    3. [ファイル名] フィールドで、参照ボタンをクリックします。
    4. [リモート マシン] をクリックして、必要なファイルを選択します。
      注: Spectrum™ Technology Platformサーバーと同じコンピュータ上で Enterprise Designer を実行している場合、[リモート マシン] のクリックは、[マイ コンピュータ] をクリックするのと同じであるように見えます。しかし、ファイルが Spectrum™ Technology Platformサーバー上に存在することをシステムに認識させるためには、[リモート マシン] を使用してファイルを選択する必要があります。
    オプション 2: このスケジュールの実行時にデータフローのファイルの場所をオーバーライドする このスケジュールを実行するときに、フロー内のファイル参照をオーバーライドします。これを行うには、ソース フィールドとシンク フィールドに表示されているデフォルト ファイルを Management Console で定義された Spectrum™ Technology Platformサーバー上のファイルまたはファイル サーバー リソースへのパスで置き換えます。
  8. [トリガー] フィールドで、[コントロール ファイル] を選択します。
  9. [コントロール ファイル] フィールドで、フローをトリガするコントロール ファイルのフル パスと名前を指定します。ファイル名は、そのまま指定するか、ワイルドカードとしてアスタリスク (*) を使用できます。たとえば、*.trg と指定すると、フォルダに拡張子 .trg の任意のファイルが現れたときフローがトリガされます。

    コントロール ファイルの存在は、フローで必要とされるファイルがすべて揃っていて、フローで使用される準備が整っていることを意味します。

    コントロール ファイルは空白のファイルでもかまいません。ジョブの場合、コントロール ファイルは、Write to File ステージまたは Read from File ステージで設定されるファイル パスのオーバーライドを指定できます。コントロール ファイルを使用してファイル パスをオーバーライドするには、Read from File ステージまたは Write from File ステージの名前と、その入力ファイルまたは出力ファイルを最後の引数として指定します。

    stagename=filename

    例:

    Read\ from\ File=file:C:/myfile_input.txt 
    Write\ to\ File=file:C:/myfile_output.txt

    コントロール ファイルで指定するステージ名は、データフロー内のステージのアイコンの下に表示されるステージ ラベルと一致する必要があります。例えば、入力ステージのラベルが "Read From File" である場合は、次のように指定します。

    Read\ From\ File=file:C:/inputfile.txt

    入力ステージのラベルが "Illinois Customers" である場合は、次のように指定します。

    Illinois\ Customers=file:C:/inputfile.txt
    Read from File または Write to File の場所をオーバーライドする場合は、次のガイドラインに従ってください。
    • パスの先頭に "file:" プロトコルを付けます。例えば、Windows では、"file:C:/myfile.txt" と指定し、Unix または Linux では、""file:/testfiles/myfile.txt"" と指定します。
    • ファイルのコンテンツには、ASCII ベースの ISO-8559-1 (Latin-1) 互換文字エンコーディングを使用する必要があります。
    • ファイルのパスには、バックスラッシュではなくスラッシュ (/) を使用する必要があります。
    • ステージ名に含まれるスペースは、バックスラッシュでエスケープする必要があります。
    • ステージ名は大文字と小文字を区別します。
    注: コントロール ファイルによるトリガーを使うスケジュールが複数ある場合は、それぞれで異なるコントロール ファイルをモニタリングする必要があります。そうしなければ、同じコントロール ファイルで複数のジョブまたはプロセス フローがトリガされ、予期せぬ動作を引き起こす恐れがあります。構造上の理由から、すべての必要なファイルとコントロール ファイルを専用ディレクトリに配置することをお勧めします。
  10. [ポーリング間隔] フィールドに、コントロール ファイルの有無をチェックする間隔を指定します。例えば、10 を指定するとモニタリング対象フォルダ内にコントロール ファイルがないか 10 秒間隔でチェックされます。

    デフォルトでは、60 秒に設定されています。

  11. [作業フォルダ] フィールドに、フローの実行中にコントロール ファイルを一時的に配置するフォルダを指定します。Spectrum™ Technology Platformは、フローの実行前に、モニタリング対象フォルダから作業フォルダにファイルをコピーします。これによりモニタリング対象フォルダが空になるため、同じコントロール ファイルによって再びフローが開始されることがなくなります。
  12. [作業フォルダのオプション] フィールドで、データフローの実行終了時に作業フォルダ内のファイルをどう処理するかを指定します。
    Keep
    ファイルを現在の場所に現在の名前で保持します。このオプションを選択した場合、作業フォルダ内のファイルはこのスケジュールが実行されるたびに上書きされます。
    Move to
    ファイルを作業フォルダから指定のフォルダに移動します。これにより、作業フォルダにあったファイルを別の場所に移動し、次回ファイル モニターが実行される際に上書きされないよう、これらのファイルを保持することができます。また、このオプションを使用して、別のデータフローなどの下流プロセスをトリガするように、ファイルを別のモニタリング対象フォルダに移動することもできます。
    Rename with time stamp
    作業フォルダ内のファイル名にタイムスタンプを付加します。これにより、作業フォルダ内のファイルのコピーを保持できます。フォルダの名前を変更すれば一意の名前が与えられるので、ファイル モニターがデータフローを次回実行してもファイルが上書きされなくなるからです。
    削除
    フローの実行終了時に作業フォルダ内のファイルを削除します。
  13. フローが電子メール通知用に設定されている場合は、スケジュールの実行時に通知が送信される受信者を追加で指定できます。ここで指定した受信者は、フローの通知設定で指定された受信者に追加される形で通知を受け取ります。通知を送信するフローを設定するには、Enterprise Designer でフローを開き、[編集] > [通知] を選択します。
  14. [保存] をクリックします。

例: モニタリング対象フォルダと作業フォルダ

例えば、あなたは自動車修理店を営んでいるとします。あなたは、毎日、前日に訪れた顧客に、今後のサービスの割引クーポンを送付したいと考えています。これを達成するために、この日の顧客のリストを取得し、顧客名の大文字と小文字の区別が正しいことを確認し、住所を検証するデータフローを用意しているとします。また、別のシステムによって、その日の顧客のリストが毎日夕方に生成されます。あなたは、このシステムにより生成される顧客リストを含むファイルを、データフローへの入力として使用しようと考えています。

顧客リストを生成するシステムにより、顧客リストがDailyCustomerReportという名前のフォルダに格納されます。さらに、完了すると、空白のトリガ ファイルがこのフォルダに格納されます。このフォルダを監視するようにSpectrum™ Technology Platformを設定するには、トリガ ファイルとして次を指定します。

C:\DailyCustomerReport\*.trg

これにより、このフォルダに拡張子 .trg の任意のファイルが現れると常に、Spectrum™ Technology Platformよりデータフローが実行されます。特定のファイル名を指定することも可能ですが、この例ではワイルド カードを使用しています。

DailyCustomerReportフォルダで .trg ファイルが検出された場合、Spectrum™ Technology Platform は、データフローを実行する前にこのファイルを別のフォルダに移動する必要があります。ファイルを移動しないと、次回のポーリング感覚で再びこのファイルが検出され、結果としてこのデータフローが再び実行されることになるためです。そのため、ファイルは「作業フォルダ」に移され、データフローの実行中はそのフォルダに格納されます。作業フォルダとして、C:\SpectrumWorkingFolderを選択します。

顧客リストを処理するデータフローの完了後は、請求プロセスをトリガするための別の場所にトリガ ファイルを移動させるとします。そのため、[フォルダへ移動] オプションを選択し、C:\DailyBilling という名前のフォルダを選択します。

この例では、トリガ ファイルは最初 C:\DailyCustomerReportに配置され、次に作業フォルダC:\SpectrumWorkingFolder に移動されます。データフローの官僚が、トリガ ファイルは C:\DailyBillingに移動され、請求プロセスを開始します。