タスクフローステップのプロパティの設定 タスクフローにステップを追加する場合は、各ステップに関連付けられているプロパティを設定します。
割り当てステップ 割り当てステップを追加すると、次のプロパティを設定できます。
名前 完全修飾フィールド名。名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。
フィールド名は、[開始] > [フィールド] で定義されているフィールドの一覧から選択します。
割り当て フィールドの値を取得するソース。表示されるフィールドは、[開始] > [プロパティ] > [入力フィールド]または[一時フィールド] に対して定義されているデータ型に応じて異なります。
例えば、[入力フィールド]のデータ型を日付/時刻 と定義します割り当てステップのフィールドには、次の[値] オプションが表示されます。
- 特定の日付- 現在からの時間- 本日からの日数- 前/後の日数- フィールド- 計算式割り当てステップでは、ランタイムパラメータを上書きできます。
データタスクステップ データタスクステップを追加するときに、いくつかのプロパティを設定します。
次のセクションでは、データタスクステップのプロパティについて説明します。
全般 全般プロパティで、データタスクステップにわかりやすい名前を指定できます。
名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。
データタスク データタスクステップのプロパティで、タスクフローに追加するタスクを、既存のタスクリストから選択します。
注: タスクフローに追加する既存のタスクが必要です。タスクフロー作成プロセスでタスクを作成することはできません。
マッピングタスクをデータタスクステップに追加すると、説明、入力フィールド、および出力フィールドが表示されます。入力フィールドには、マッピングタスクが使用する入出力パラメータが表示されます。出力フィールドには、タスクフローの実行後にマッピングタスクが返す出力フィールドが表示されます。
データタスクステップで[追加] アイコンをクリックすると、次のいずれかのビューが表示されます。
• データタスクステップにタスクが含まれている場合、タスクの編集不可能なビューが開きます。• データタスクステップにタスクが含まれていない場合は、タスクを選択できるダイアログボックスが表示されます。タスクをデータタスクステップに追加すると、テキスト型の対応するタスクフロー一時フィールドが作成されます。データタスクステップにタスクを追加すると、一時フィールドのタイプはタスクの名前になります。詳細については、「
一時フィールド 」を参照してください。
入力フィールド タスクをタスクフローに追加すると、[入力フィールド] セクションが表示されます。
[最大待機時間(秒)] フィールドでは、データタスクステップがデータ統合タスクの完了を待機する最大時間を秒単位で設定できます。1秒から604800秒の間の値を指定します。デフォルトは604800秒、つまり7日間です。フィールドに指定された最大時間内にタスクが完了しない場合、タスクは実行を停止し、タスクフローの後続のタスクの実行が開始されます。
注: 指定した値が1未満または604800より大きい場合、最大待機時間は自動的に604800秒に設定されます。
上書きできるパラメータがタスクに含まれている場合は、入力フィールドを追加できます。入力フィールドのプロパティを設定して、
データ統合 ランタイムパラメータを上書きできます。ランタイムパラメータの詳細については、
データタスクステップでのパラメータまたはパラメータファイルの上書き を参照してください。
データタスクステップでPowerCenterタスクまたは マッピング タスクを使用する場合は、タスクの入力パラメータと入出力パラメータの値を上書きできます。
データタスクステップでマッピングタスクを使用する場合は、次の上書き操作を実行できます。
• マッピング タスクにSecure Agentマシンで使用可能なパラメータファイルが含まれている場合は、パラメータファイルディレクトリとパラメータファイル名を上書きできます。• マッピング タスクに、クラウドでホストされているリポジトリで使用可能なパラメータファイルが含まれている場合は、パラメータファイル接続とパラメータファイルオブジェクトを上書きできます。データ統合では、マッピング タスク用にAmazon S3 V2、Azure Data Lake Store Gen2、およびGoogle Storage V2の接続タイプのみがサポートされています。• マッピング タスクでデータ形式オプションを使用する場合は、ソースデータのデータ形式とデフォルトの精度値を上書きできます。これらのオプションは、形式ファイルがマッピング ではなくマッピング タスクにアップロードされている場合にのみ、入力フィールドで使用できます。デフォルトの精度フィールドに設定された精度値は、データ形式フィールドまたはマッピング タスクに設定された精度よりも優先されます。デフォルトの精度値は、形式ファイル内のすべてのカラムに適用されます。• マッピング タスクにルックアップトランスフォーメーションが含まれている場合は、ルックアップオブジェクトとルックアップ条件の値を上書きできます。注: パラメータファイルからの文字列またはテキストタイプの入力パラメータの値を上書きすることはできません。ただし、タスクフローからの入力パラメータ値は上書きすることができます。パラメータファイルからの接続パラメータ値は上書きできます。
データタスクステップで動的マッピング タスクを使用する場合、[ジョブフィルタ] という名前の入力パラメータを追加できます。入力フィールドの名前は編集できません。ただし、タスクフローで実行する動的マッピング タスクからグループとジョブを指定することはできます。
グループとジョブを指定するには、[編集] をクリックしてから、<group_name>.<job_name> という値をコンテンツタイプとともに入力フィールドに入力します。例えば、動的マッピング タスクからGroup_1とJob_1を実行する場合は、[ジョブフィルタ] 入力フィールドにGroup_1.Job_1 という値を入力します。
[ジョブフィルタ] 入力フィールドを追加しない場合、タスクフローではデフォルトで、動的マッピング タスクで使用可能なすべてのジョブが指定した順序で実行されます。
出力フィールド タスクフローに 同期 タスクまたはPowerCenterタスクを追加すると、 [出力フィールド] セクションが表示されます。 [出力フィールド] セクションは、タスクの実行時に表示される出力データフィールドの完全な一覧です。
次の図は、表示される出力フィールドを示しています。
マッピング タスクが詳細クラスタ で実行される場合は、次のフィールドが表示されます。
注: 詳細クラスタ で実行されるマッピング タスクの場合、タスクの実行時に、成功したソース行と失敗したソース行は取り込まれません。
データ転送 タスクまたは 動的マッピング タスクを使用すると 、次のフィールドが表示されます。
各出力フィールドの値を表示するには、タスクフローを実行し、[タスクフローインスタンスの詳細] ページに移動します。[タスクフローインスタンスの詳細] ページの詳細については、モニタ のヘルプ を参照してください。
データ決定または割り当てのステップで出力フィールドを使用できます。
例えば、値式の一時フィールドを作成し、次の式を使用してデータをフィールドに割り当てます。
if( ($temp.DataTask1[1]/output[1]/Failed_Target_Rows < 0 or $temp.DataTask1[1]/output[1]/Task_Status = '1') and ($temp.DataTask2[1]/output[1]/Success_Target_Rows > 0 and $temp.DataTask2[1]/output[1]/Failed_Target_Rows = 0) and $temp.DataTask3[1]/output[1]/Success_Target_Rows > 0) then 'Pass' else 'Fail'
決定ステップで一時フィールドを使用すると、次の条件が満たされた場合、タスクフローはPass パスを受け取ります。
• データタスク1には、失敗したターゲット行はありません。またはデータタスク1は、正常に実行されています。• データタスク2には、少なくとも1つの成功したターゲット行があります。• データタスク2では、失敗したターゲット行はゼロです。• データタスク3には、少なくとも1つの成功したターゲット行があります。タイマイベント タスクにタイマを追加するには、次のイベント プロパティを入力します。
タイマイベントを使用して、スケジュールに基づいてアクションを実行します。アクションは、特定の時刻または間隔の後のいずれかになります。
データタスクステップにタイマを追加すると、新しい分岐が表示されます。この分岐にイベントを追加し、特定の[時間] または間隔[以降] に実行するかどうかを指定します。
次の図では、タイマ分岐のイベント(データ決定ステップ)が、メインデータタスクの5分後に発生します。
タイマが起動すると、タスクフローは常にタイマ分岐全体を通して実行されます。データタスク1が決定1の前に終了する場合、タイマ分岐は実行されません。
タイマでメインデータタスクを中断する場合は、[中断] を選択します。中断タイマを設定すると、メインデータタスクが中断され、タスクフローはタイマ設定に基づいてイベントのみを実行します。
次の図は、メインデータタスクが開始されてから5分後に発生する中断タイマ設定を示しています。
タイマ分岐に基づくイベントの場合、データタスク2が実行され、データタスク1が中断されます。タスクフローはタイマ分岐に従います。つまり、タスクフローはデータタスク2を実行してから終了します。
中断タイマのタイマ分岐の終了ステップを削除すると、タイマ分岐はメイン分岐に再び参加します。
次の図は、終了ステップが削除された中断タイマ分岐を示しています。
タイマイベント(データタスク2)は、5分後に実行され、データタスク1を中断します。タイマ分岐は、メイン分岐に再び参加します。タスクフローは、データタスク2、並列パスステップを実行し、終了します。
中断タイマを使用する場合、メインデータタスクには、このタスクフローインスタンスに対する出力はありません。タスクフローのジョブの詳細ページには、メインデータタスクの出力フィールドが表示されません。
データタスクステップがタイマ、中断、または非中断の前に完了した場合、そのデータタスクステップに対してタイマは起動しません。
エラー処理 [エラー処理]セクションを使用すると、データタスクステップが警告またはエラーを検出したときにタスクフローがどのように動作するかを指定できます。データタスクステップに関連付けられたタスクが失敗した場合、または実行されなかった場合のタスクフローの動作を設定することもできます。
タスクを選択した後に、次のエラー処理のプロパティを入力します。
プロパティ
説明
警告時
データタスクステップで警告が発生したときにタスクフローが受け取るパス。
警告は、データタスクステップが誤った仕方で完了したか、または完了しなかった場合に発生します。例えば、データタスクステップで、テーブルAからテーブルBに25行のうち20行のみをコピーする場合、警告が表示されます。
次のオプションから選択できます。
- 警告を無視して次のステップに進むには、[無視] を選択します。注: 通知タスクステップが後に続くデータタスクステップに[無視] を選択してデータタスクが失敗した場合は、受信する電子メール通知にはフォールトの詳細は含まれません。電子メールでフォールトの詳細を確認するには、[カスタムエラー処理] を選択します。
- 警告が発生したときにタスクフローを中断状態に移行させるには、[タスクフローの中断] を選択します。[すべてのジョブ] 、[実行中のジョブ] 、および[マイジョブ] ページからタスクフローインスタンスを再開できます。タスクフローは、中断されたステップから再開します。警告の理由がわかっている場合は、問題を修正してからタスクフローを再開してください。
デフォルト値: 無視
エラー発生時
データタスクステップでエラーが発生したときにタスクフローが受け取るパス。
データタスクステップが失敗するとエラーが発生します。例えば、データタスクがテーブルAをテーブルBにコピーしない場合、エラーが表示されます。
次のオプションから選択できます。
デフォルト値: タスクフローの中断
タスクフローを完了時に終了
データタスクステップに関連付けられたタスクが失敗した場合、または実行されなかった場合のタスクフローの動作。
データタスクステップに関連付けられたタスクが失敗した場合、または実行されなかった場合に、完了時に失敗するようにタスクフローを設定できます。タスクが失敗するか実行されなかった場合、タスクフローは後続のステップの実行を続行します。ただし、タスクフローが完了すると、タスクフローのステータスは失敗に設定されます。
注: [フォールト時に一時停止] タスクフローの詳細プロパティと[タスクフローを完了時に終了] プロパティの両方を設定した場合は、[フォールト時に一時停止] プロパティが優先されます。この場合、データタスクステップに関連付けられたタスクが失敗するか実行されない場合、タスクフローは一時停止されます。タスクフローは、データタスクステップの後の後続のステップを実行しません。
次の図は、割り当てステップと別のデータタスクステップがある、カスタムエラー処理 パスを示しています。
IntegrationOpsタスクステップ IntegrationOpsタスクステップを使用して、パブリッシュされたアプリケーション統合プロセスをタスクフローから実行します。IntegrationOpsタスクステップでは、既存のパブリッシュされたアプリケーション統合プロセスを選択できます。
IntegrationOpsタスクステップを使用してタスクフローからアプリケーション統合プロセスを実行する場合は、次の制限を考慮してください。
• IntegrationOpsタスクステップでは、タスクフローに設定された認証が使用されます。プロセスに設定された基本認証は無視されます。• プロセス入力にカスタムプロセスオブジェクトを使用することはできません。代わりに、XML全体をカスタムプロセスオブジェクトの入力として渡すことができます。• IntegrationOpsタスクステップが失敗した場合、タスクフローでは引き続き後続のステップが実行されます。• IntegrationOpsタスクステップには、タスクフローでサポートされていない単純型の出力フィールドが含まれる場合があります。タスクフローでサポートされる単純型のフィールドのみが、後続の手順での調整に使用できます。• IntegrationOpsタスクステップで使用されるアプリケーション統合プロセスが変更された場合、変更されたプロセスを使用するにはプロセスを再選択する必要があります。そうしないと、IntegrationOpsタスクステップは実行時に失敗します。次のセクションでは、IntegrationOpsタスクステップのプロパティについて説明します。
全般 全般プロパティで、IntegrationOpsタスクステップにわかりやすい名前を指定できます。
名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。
IntegrationOpsタスク IntegrationOpsタスクステップのプロパティの[タスク実行者] フィールドで[CAIプロセス] を選択します。[タスク] フィールドで、タスクフローに追加するプロセスを選択します。[API名] フィールドに、アプリケーション統合プロセスのAPI名が入力されます。
注: タスクフローに追加する既存のパブリッシュされたプロセスが必要です。
[IntegrationOpsタスクの選択] ダイアログボックスには、パブリッシュされたすべてのアプリケーション統合プロセスが一覧で表示されます。バインディングがREST/SOAPに設定されているプロセスを選択していることを確認します。
プロセスをIntegrationOpsタスクステップに追加すると、説明、プロセスで使用される入力フィールド、およびプロセスで設定された出力フィールドが表示されます。入力フィールドと出力フィールドを使用して、タスクフロー内の後続のタスクを調整できます。
注: 複数のプロセスを含むインポートされたタスクフローアセットを開くと、[検証] パネルには、パブリッシュされていないプロセスを含むIntegrationOpsタスクステップのエラーが一覧で表示される場合があります。すべてのプロセスがパブリッシュされると、エラーは表示されなくます。
入力フィールド IntegrationOpsタスクステップで入力フィールドを含むプロセスを使用する場合は、入力フィールドの値を上書きできます。
IntegrationOpsタスクステップのシナリオ IntegrationOpsタスクステップでアプリケーション統合プロセスを使用する場合は、次のシナリオを考慮してください。
• プロセスが中断された場合、タスクフローは実行状態のままになります。ただし、タスクフローインスタンスは24時間後に再開されます。• プロセスに単純型リストの入力フィールドが含まれている場合、[フィールド] オプションを使用して入力フィールドに値を割り当てることはできません。ただし、[計算式] オプションを使用して値を割り当てることができます。• 入力フィールドまたは出力フィールド名にスペースが含まれている場合、IntegrationOpsタスクのステップは失敗します。通知タスクステップ 通知タスクステップは、指定した受信者に通知を送信します。
電子メール通知を送信する通知タスクステップを設定できます。例えば、タスクフローのデータタスクステップで見つかった成功した行とエラー行の数について受信者に知らせる電子メール通知を送信できます。
通知タスクステップのプロパティを定義して、電子メール受信者と電子メールコンテンツを設定できます。[電子メールの宛先] 、[電子メールのCC] 、および[電子メールのBCC] フィールドでは配布リストを使用できません。
次の節では、通知タスクステップのプロパティについて説明します。
全般プロパティ 全般プロパティで、通知タスクステップにわかりやすい名前を指定できます。
名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。
通知タスクプロパティ 次の通知タスクステップのプロパティを設定できます。
通知メソッド 送信する通知のタイプ。
このフィールドの値は、デフォルトで[電子メール] に設定されます。この値は編集できません。他の値は将来使用するために予約されています。
電子メールの宛先 必須。電子メール通知のプライマリ受信者。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
- コンテンツ 。有効な受信者の電子メールアドレスを1つ以上入力します。有効な電子メールアドレスを含むフィールドを追加することもできます。カンマ(,)またはセミコロン(;)を使用して電子メールアドレスおよびフィールドを区切ります。- フィールド 。このステップを実行するときに、タスクフローデザイナがこのフィールドに電子メールアドレスを書き込むために使用するフィールドを選択します。タスクフローの他のステップで追加された入力フィールドまたは一時フィールドを選択できます。- 式 。式エディタを開いて、このフィールドの値を計算する式を指定します。デフォルトは[コンテンツ] です。
電子メールのCC 電子メール通知のコピーが送信される必要のある受信者。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
- コンテンツ 。有効な受信者の電子メールアドレスを1つ以上入力します。有効な電子メールアドレスを含むフィールドを追加することもできます。カンマ(,)またはセミコロン(;)を使用して電子メールアドレスおよびフィールドを区切ります。- フィールド 。このステップを実行するときに、タスクフローデザイナがこのフィールドに電子メールアドレスを書き込むために使用するフィールドを選択します。タスクフローの他のステップで追加された入力フィールドまたは一時フィールドを選択できます。- 式 。式エディタを開いて、このフィールドの値を計算する式を指定します。デフォルトは[コンテンツ] です。
電子メールのBCC 電子メール通知のコピーを送信する必要がある追加の受信者。[電子メールの宛先] および[電子メールのCC] フィールドの受信者は、[電子メールのBCC] フィールドの受信者を表示できません。フィールドに複数の受信者が含まれている場合でも、受信者は[電子メールのBCC] フィールドの他の受信者を表示できません。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
- コンテンツ 。有効な受信者の電子メールアドレスを1つ以上入力します。有効な電子メールアドレスを含むフィールドを追加することもできます。カンマ(,)またはセミコロン(;)を使用して電子メールアドレスおよびフィールドを区切ります。- フィールド 。このステップを実行するときに、タスクフローデザイナがこのフィールドに電子メールアドレスを書き込むために使用するフィールドを選択します。タスクフローの他のステップで追加された入力フィールドまたは一時フィールドを選択できます。- 式 。式エディタを開いて、このフィールドの値を計算する式を指定します。デフォルトは[コンテンツ] です。
電子メールの件名 電子メールについて紹介する、短く説明的な件名。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
- コンテンツ 。電子メールの件名を入力します。- フィールド 。このステップを実行するときに、タスクフローデザイナがこのフィールドに電子メールの件名を書き込むために使用するフィールドを選択します。タスクフローの他のステップで追加された入力フィールドまたは一時フィールドを選択できます。- 式 。式エディタを開いて、このフィールドの値を計算する式を指定します。デフォルトは[コンテンツ] です。
電子メールのコンテンツタイプ 電子メールコンテンツで使用する形式のタイプ。
次のいずれかの値を選択します。
- HTML 。太字、斜体、下線、リスト、インデント、およびフォントなどの形式オプションを使用するには、[HTML] を選択します。表やリンクも挿入できます。- プレーンテキスト 。フォーマットや特別なレイアウトオプションを指定せずに、通常のテキストを追加するには、[プレーンテキスト] を選択します。デフォルトは[プレーンテキスト] です。
電子メールの本文 電子メールで送信するコンテンツ。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
- コンテンツ 。電子メール本文のコンテンツを入力します。[コンテンツの編集] をクリックすると、コンテンツの書式設定をするためのリッチテキストエディタを開くことができます。
電子メールのコンテンツは、[すべてのジョブ] 、[実行中のジョブ] 、および[マイジョブ] ページでHTMLタグの中に表示されます。
- フィールド 。このステップを実行するときに、タスクフローデザイナがこのフィールドに電子メール本文を書き込むために使用するフィールドを選択します。タスクフローの他のステップで追加された入力フィールドまたは一時フィールドを選択できます。- 式 。式エディタを開いて、このフィールドの値を計算する式を指定します。デフォルトは[コンテンツ] です。
電子メール通知の例 タスクフロー内のデータタスクの数に基づいて電子メール本文のコンテンツを定義し、HTMLコンテンツを含む電子メール通知を送信できます。
単一のデータタスク 単一のデータタスクに対して通知タスクステップを使用する場合、ソースタイプをコンテンツとして電子メール本文にデータタスクの詳細を入力できます。
例えば、次のXQuery式を渡すことができます。
Hi { $user }, Data task MyDataTask1 with Run Id { $temp.DataTask1/Output/RunId } started at { $temp.DataTask1/Output/Start_Time } and completed at { $temp.DataTask1/Output/End_Time } with a status of { sff:getTaskStatus($temp.DataTask1/Output/Status) }
複数のデータタスク 通知タスクステップを使用して複数のデータタスクのサマリを電子メールで送信する場合、ソースタイプを数式としてXQuery式を使用できます。
例えば、<DataTask1>と<DataTask2>という名前の2つのデータタスクを含むタスクフローに対して、次のXQuery式を渡すことができます。
<html> <head>Taskflow Tasks Status Summary</head> <body> <table> <tr> <td>Task Name</td> <td>Job Id</td> <td>Status</td> <td>Start Time</td> <td>End Time</td> </tr> { let $dataTasks := ($temp.DataTask1, $temp.DataTask2) for $dataTask in $dataTasks return <tr> <td>{ local-name($dataTask) }</td> <td>{ $dataTask/Output/RunId }</td> <td>{ sff:getTaskStatus($dataTask/Output/Status) }</td> <td>{ $dataTask/Output/StartTime }</td> <td>{ $dataTask/Output/EndTime }</td> </tr> } </table> </body> </html>
電子メール通知を送信する前に、受信者の場所に基づいてタイムゾーンを変換することをお勧めします。これを行うために、電子メールの件名または電子メールの本文でinfa:format XQuery関数を使用することができます。数式を使用してタイムゾーンを変換する方法の詳細については、次のコミュニティ記事を参照してください。
通知タスクステップのルールおよびガイドライン 通知タスクステップで[コンテンツ] オプションを使用して電子メール本文を指定し、[HTML] オプションを使用して電子メールのコンテンツタイプを指定した場合、特定の制限を受けます。
次のガイドラインを考慮します。
• HTMLコンテンツを使用すると、有効な形式の電子メールを受信できない場合があります。変数を使用してHTMLコンテンツを定義し、式エディタで変数をシリアル化する必要があります。例として、HTMLコンテンツが次のような場合を考えます。
<html> Order {$output.OrderID} has been submitted for {$input.CustomerEmail}. <br/> <b>Order details for your records.</b> <br/><br/> Item Cost: {$temp.InventoryDetails[1]/ItemCostPrice} Item Count: {$temp.InventoryDetails[1]/ItemCount } Item Sell Price: {$temp.InventoryDetails[1]/ItemSellingPrice } Commission Percentage: {$temp.InventoryDetails[1]/SalesCommissionInPercentage } <br/><br/> <b>Margins</b> Overall Profit: {$output.Calculate_Margin_ServiceResponse[1]/MarginBeforeCommission} Sales Commission: {$output.Calculate_Margin_ServiceResponse[1]/SalesCommission} Profit after Commission: {$output.Calculate_Margin_ServiceResponse[1]/MarginAfterCommission} </html>
式エディタで次のコンテンツを使用して、HTMLコンテンツの変数を定義し、変数をシリアル化して、有効な形式の電子メールを受信します。
let $doc := <html> Order {$output.OrderID} has been submitted for {$input.CustomerEmail}. <br/> <b>Order details for your records.</b> <br/><br/> Item Cost: {$temp.InventoryDetails[1]/ItemCostPrice} Item Count: {$temp.InventoryDetails[1]/ItemCount } Item Sell Price: {$temp.InventoryDetails[1]/ItemSellingPrice } Commission Percentage: {$temp.InventoryDetails[1]/SalesCommissionInPercentage } <br/><br/> <b>Margins</b> Overall Profit: {$output.Calculate_Margin_ServiceResponse[1]/MarginBeforeCommission} Sales Commission: {$output.Calculate_Margin_ServiceResponse[1]/SalesCommission} Profit after Commission: {$output.Calculate_Margin_ServiceResponse[1]/MarginAfterCommission} </html> return serialize($doc)
• HTMLコンテンツに有効なXMLが含まれる場合は、式エディタでXQuery関数util:toXML を使用して、コンテンツを文字列形式にシリアル化します。例として、HTMLコンテンツが次のような場合を考えます。
<html> <head>TaskDetails</head> <body> <table> <tbody> <tr> <td>Task Name</td> <td>Job Id</td> <td>Status</td> <td>Start Time</td> <td>End Time</td> </tr> <tr> <td>Williams</td> <td>John</td> <td>{fn:current-date()}</td> </tr> </tbody> </table> </body> </html>
式エディタで次のコンテンツを使用して、このコンテンツを文字列形式にシリアル化します。
util:toXML(<html> <head>TaskDetails</head> <body> <table> <tbody> <tr> <td>Task Name</td> <td>Job Id</td> <td>Status</td> <td>Start Time</td> <td>End Time</td> </tr> <tr> <td>Williams</td> <td>John</td> <td>{fn:current-date()}</td> </tr> </tbody> </table> </body> </html>)
• HTMLコンテンツに有効なXMLが含まれていない場合は、HTMLコンテンツを有効なXMLに変換する必要があります。HTMLコンテンツに有効なXMLが含まれていても、有効な形式の電子メールを受信しない場合があります。この場合、String Concat関数を使用する必要があります。例として、HTMLコンテンツが次のような場合を考えます。
<html> <table> <tr> <th>Task Property</th> <th>Property Value</th> </tr> <tr> <td>Task Name</td> <td>{$temp.DataTask1[1]/output[1]/Object_Name}</td> </tr> <tr> <td>Task Status</td> <td>{$temp.DataTask1[1]/output[1]/Task_Status}</td> </tr> <tr> <td>Error Message</td> <td>{$temp.DataTask1[1]/output[1]/Error_Message}</td> </tr> </table> </html>
式エディタでString Concat関数を使用して次のコンテンツを使用し、有効な形式の電子メールを送信します。
fn:concat(fn:concat(fn:concat(fn:concat(fn:concat("Task Details: <br/><br/>",$temp.DataTask1[1]/output[1]/Object_Name), "<br/><br/>"), $temp.DataTask1[1]/output[1]/Task_Status), "<br/><br/>"), $temp.DataTask1[1]/output[1]/Error_Message)
• HTMLコンテンツに有効なXMLが含まれない場合は、HTMLコンテンツを有効なXMLに変換するか、エスケープ文字を使用して文字列連結関数を使用する必要があります。次の例は、エスケープ文字と一緒に文字列連結関数を使用する方法を示します。
fn:concat("<html>
<head>TaskDetails</head>
<body>
<table>
<tbody>
<tr>
<td>Task Name</td>
<td>Job Id</td>
<td>Status</td>
<td>Start Time</td>
<td>End Time</td>
</tr>
<tr>
<td>Williams</td>
<td>John</td>
</tr>
</tbody>
</table>
</body>
</html>","")
コマンドタスクステップ コマンドタスクステップを使用して、Secure Agentマシン上の複数のスクリプトファイルから、シェルスクリプトまたはバッチコマンドを実行します。
例えば、コマンドタスクを使用して、ファイルの移動、ファイルのコピー、ファイルの圧縮や解凍、またはクリーンスクリプトやSQLスクリプトの実行をタスクフローの一部として行えます。コマンドタスクの出力を使用して、タスクフローの後続のタスクを調整できます。
コマンドタスクステップを使用するには、適切なライセンスが必要です。
タスクフローにコマンドタスクステップを追加するときに、次のプロパティを設定します。
全般プロパティ 全般プロパティで、コマンドタスクステップにわかりやすい名前を指定できます。
名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。
入力フィールド 入力フィールドで次のようなシステム変数を使用して、スクリプトファイル名、入力引数、および作業ディレクトリを定義できます。
• $PMRootDir• $PMLookupFileDir• $PMSessionLogDir• $PMBadFileDir• $PMCacheDir• $PMStorageDir• $PMTargetFileDir• $PMSourceFileDir• $PMExtProcDir• $PMTempDir• $PMWorkflowLogDirこれらの変数は、データ統合サーバーサービス用として管理者 で事前に定義されています。コマンドタスクステップでシステム変数を使用するには、共通の統合コンポーネントおよびデータ統合サーバーサービスが有効になっており、Secure Agentで実行されている必要があります。
入力フィールドで環境変数を使用して、スクリプトファイル名、入力引数、およびワークディレクトリを定義できます。環境変数を使用するには、Secure Agentに共通統合コンポーネントサービスバージョン14以降、およびコマンドエグゼキュータパッケージバージョン140以降が必要です。
コマンドタスクステップに次の入力フィールドを設定します。
いずれかのスクリプトが失敗すると、タスクも失敗します 複数のスクリプトファイルを使用する場合、いずれかのスクリプトが失敗した場合にコマンドタスクステップが失敗するように設定できます。
コマンドタスクステップで1つ以上のスクリプトを設定し、このオプションを選択すると、いずれかのスクリプトが失敗した場合にコマンドタスクステップのステータスが[失敗]に設定され、タスクフローではそれ以上のスクリプトや後続のステップは実行されません。
コマンドタスクステップで1つ以上のスクリプトを設定し、このオプションを無効にすると、タスクフローではすべてのスクリプトが実行されます。いずれかのスクリプトが失敗した場合、[すべてのジョブ] 、[実行中のジョブ] 、および[マイジョブ] ページで、失敗したスクリプトのステータスが[失敗]に設定され、コマンドタスクステップのステータスは[警告]に設定されます。ただし、データ統合ではコマンドタスクステップの実行が[成功]として扱われます。
このオプションはデフォルトで無効になっています。
ランタイム環境 必須。コマンドを実行するランタイム環境。この選択は、ランタイム環境またはサーバーレスランタイム環境に適用されます。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
最大待機時間(秒) [最大待機時間(秒)] フィールドでは、コマンドタスクステップがタスクの完了を待機する最大時間を秒単位で設定できます。1秒から86400秒の間の値を指定します。デフォルトは86400秒です。フィールドに指定された最大時間内にタスクが完了しない場合、タスクは実行を停止し、タスクフローの後続のタスクの実行が開始されます。注: 指定した値が1未満または86400より大きい場合、最大待機時間は自動的に86400秒に設定されます。
スクリプト コマンドタスクステップでは、複数のスクリプトを追加できます。スクリプトは、スクリプトファイル名、入力引数、および作業ディレクトリを指定することで設定できます。 スクリプトをさらに追加するには、[スクリプト]パネルの[追加] をクリックします。コマンドタスクに複数のスクリプトがある場合は、ドラッグアンドドロップでスクリプトを並べ替えることができます。
別のSecure Agentグループからのスクリプトを実行するには、別のランタイム環境に個別のコマンドタスクステップを追加する必要があります。
[すべてのジョブ] 、[実行中のジョブ] 、または[マイジョブ] ページから、タスクフローインスタンス内のすべてのスクリプトをコマンドタスクのサブタスクとして表示できます。スクリプトが失敗した場合は、ログファイルをダウンロードして、スクリプト失敗の理由を探ることもできます。
スクリプトの次の入力フィールドを設定します。
スクリプトファイル名 必須。実行するスクリプトファイルのパスおよび名前。
サーバーレスランタイム環境では、ファイルをcommand_scripts という名前のフォルダに配置する必要があります。このフォルダにはサブフォルダを含めることができます。Informatica Intelligent Cloud Services は、command_scripts ディレクトリ内のファイルをSecure Agentのエージェントインストールディレクトリapps/Common_Integration_Components/data/command/serverless/command_scripts に定期的に同期します。リモートストレージの場所(Amazon S3など)でファイルを更新した場合、Informatica Intelligent Cloud Services はそれらのファイルをSecure Agentに自動的に同期します。
デフォルトのプロファイルを使用して、AWSコマンドを含むスクリプトをサーバーレスランタイム環境で直接実行できます。サーバーレスランタイム環境でデフォルトのプロファイルを使用してAWSコマンドを実行する方法の詳細については、次のハウツーライブラリの記事を参照してください。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
▪ コンテンツ 。実行するスクリプトへのパスを入力します。▪ フィールド 。このステップを実行するときに、タスクフローデザイナがこのフィールドにスクリプトファイル名を書き込むために使用するフィールドを選択します。追加されたスクリプトファイル名は、タスクフローの他のステップの入力フィールド、一時フィールド、または出力フィールドとして選択できます。▪ 式 。スクリプトファイルの式を作成します。システム変数を使用して、実行するスクリプトファイルを定義できます。
例えば、ルートディレクトリにあるscript.batファイルを実行するには、$PMRootDir/script.bat という値を入力します。
環境変数を使用して、オペレーティングシステムに基づいてスクリプトファイルのパスを定義できます。
例えば、次のディレクトリにjava_script.batファイルがあるとします。
C:\Scripts
ディレクトリ用にScriptHomeという名前の環境変数を作成しました。java_script.batファイルを実行するには、Windowsの場合は%ScriptHome%\java_script.bat 、Linuxの場合は$ScriptHome\java_script.bat のように値を入力します。
また、スクリプトファイル名を含むフルパスの環境変数を作成することもできます。
サーバーレスランタイム環境のEFSまたはNFSファイルシステムにマウントされたEFSまたはNFSディレクトリを指定して、コマンドを実行できます。これは、Secure Agentグループ環境からサーバーレスランタイム環境にジョブを移行する場合に役立ちます。スクリプトファイルにコマンドを追加して、ファイルをEFSまたはNFSマウントディレクトリにコピーできます。
例えば、コマンドの出力をファイルに記録し、そのファイルをマウントされたディレクトリにコピーすることができます。
aws s3 ls > log_out.txt cp log_out.txt /mountDir/logfileName.txt
スクリプトを実行するためのスクリプトファイル名を含む、EFSまたはNFSマウントディレクトリを指定することもできます。
例えば、aws_script1.sh ファイルは次のEFSまたはNFSディレクトリにあります。
mountDir/scripts
aws_script1.sh ファイルを実行するには、値を/mountDir/scripts/aws_script1.sh として入力します。
EFSとNFSの詳細については、Administratorのヘルプの「ランタイム環境 」を参照してください。
入力引数 オプション。スクリプトの実行時にスクリプトに渡す引数。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
▪ コンテンツ 。スクリプトに渡す1つ以上の引数を入力します。各引数と値は二重引用符(")で囲み、カンマ(,)を使用して引数を区切ります。例えば、次のコマンドを実行したい場合は:
./ cli.sh runAJobCli -u <username>-p <password> -bu https://dm-us.informaticacloud.com/ma -un <sample_value> -t TASKFLOW -w true
次の例に示すように、入力引数を二重引用符で囲んで入力します。
"runAJobCli", "-u", "<username>", "-p", "<password>", "-bu", "https://dm-us.informaticacloud.com/ma", "-un", "<sample_value>", "-t", "TASKFLOW", "-w", "true"
スクリプト名にcli.sh を渡す必要があります。
▪ フィールド 。このステップを実行するときに、タスクフローデザイナがこのフィールドに入力引数を書き込むために使用するフィールドを選択します。追加された入力引数は、タスクフローの他のステップの入力フィールド、一時フィールド、または出力フィールドとして選択できます。▪ 式 。入力引数の式を作成します。各引数は二重引用符(")で囲み、カンマ(,)を使用して区切ります。入力引数は次の方法で定義できます。
システム変数の使用
システム変数を使用して、スクリプトの実行時にスクリプトに渡す入力引数を定義できます。例えば、ルートディレクトリまたは一時ディレクトリから引数を渡すには、次の値を入力します。
"$PMRootDir","$PMTempDir"
環境変数の使用
環境変数を使用して、オペレーティングシステムに基づいて入力引数を定義できます。例えば、次のディレクトリ用にScriptHomeという名前の環境変数を作成したとします。
C:\Scripts
このディレクトリからの引数を渡すためには、Windowsの場合は"%ScriptHome%" という値を入力し、Linuxの場合は"$ScriptHome" という値を入力します。
作業ディレクトリ オプション。スクリプトの出力が保存される作業ディレクトリへのパス。デフォルトでは、出力はスクリプトの保存先のパスに保存されます。
サーバーレスランタイム環境では、作業ディレクトリは次のように設定されます: /command_scripts 。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
▪ コンテンツ 。スクリプトの出力を保存する作業ディレクトリへのパスを入力します。▪ フィールド 。このステップを実行するときに、タスクフローデザイナがこのフィールドに作業ディレクトリを書き込むために使用するフィールドを選択します。追加された作業ディレクトリは、タスクフローの他のステップの入力フィールド、一時フィールド、または出力フィールドとして選択できます。▪ 式 。作業ディレクトリの式を作成します。システム変数を使用して、スクリプトの出力を保存する作業ディレクトリを定義できます。
例えば、ソースファイルディレクトリを作業ディレクトリとして使用する場合は、$PMSourceFileDir という値を入力します。
環境変数を使用して、オペレーティングシステムに基づいてワークディレクトリを定義できます。
例えば、次のディレクトリ用にScriptHomeという名前の環境変数を作成したとします。
C:\Scripts
このディレクトリをワークディレクトリとして使用するためには、Windowsの場合は%ScriptHome% 、Linuxの場合は$ScriptHome のように値を入力します。
注: スクリプトまたは入力フィールドで波括弧({})を使用する場合は、さらに別の波括弧({{}})を追加する必要があります。これに従っていない場合、エラーが発生します。これは、XQueryでは波括弧が特殊文字と見なされるためです。
出力フィールド タスクフローを実行するときに、次の出力フィールドがコマンドタスクステップ用に生成されます。
出力フィールド
タイプ
説明
実行ID
テキスト
コマンドタスクの実行ID。
開始時刻
日付/時刻
コマンドタスクの開始時刻。
終了時刻
日付/時刻
コマンドタスクの終了時刻。
終了コード
整数
コマンドタスクの実行後に返される終了コード。終了コードは次のいずれかの値を取る場合があります。
- 0: コマンドタスクが正常に実行されたことを示します。- 1: コマンドタスクが失敗したことを示します。実行ステータス
テキスト
コマンドタスクのステータスを[成功]として表示します。
標準エラー
テキスト
エラーメッセージを表示します。
各出力フィールドの値を表示するには、タスクフローを実行し、モニタ の[タスクフローインスタンスの詳細] ページに移動します。[タスクフローインスタンスの詳細] ページの詳細については、モニタ のヘルプ を参照してください。
イベント コマンドタスクにタイマを追加するには、[イベント] プロパティを設定します。
タイマイベントを使用して、スケジュールに基づいてアクションを実行します。アクションは、特定の時刻または間隔の後のいずれかになります。
コマンドタスクステップにタイマを追加すると、新しい分岐が表示されます。この分岐にイベントを追加し、特定の[時間] または間隔[以降] に実行するかどうかを指定します。
次の図では、タイマ分岐のイベントはデータ決定ステップ(決定1)で、メインコマンドタスク(コマンドタスク1)開始の5分後に発生します。
1 メイン分岐2 タイマ分岐この例では、タイマ分岐はコマンドタスク1が開始されてから5分後に実行されます。コマンドタスク1が決定1の前に終了する場合、タイマ分岐は実行されません。
メインコマンドタスクをタイマで中断する場合は、[中断] オプションを選択できます。
次の図は、メインコマンドタスクが開始されてから5分後に発生するように設定されている中断タイマを示しています。
1 メイン分岐2 タイマ分岐この例では、コマンドタスク2が5分後に実行され、コマンドタスク1が中断されます。タスクフローでは、コマンドタスク2のみが実行されて終了します。コマンドタスク1には、このタスクフローインスタンスの出力はありません。タスクフローのジョブの詳細ページには、コマンドタスク1の出力フィールドが表示されません。
コマンドタスク1がタイマより前に終了した場合、タスクフローはコマンドタスク1のみを実行して終了します。
中断タイマのタイマ分岐の終了ステップを削除すると、タイマ分岐はメイン分岐に再び参加します。
次の図は、終了ステップが削除された中断タイマ分岐を示しています。
1 メイン分岐2 タイマ分岐この例では、コマンドタスク2が5分後に実行され、コマンドタスク1が中断されます。タイマ分岐は、メイン分岐に再び参加します。タスクフローは、コマンドタスク2、決定ステップ、並列パスステップを実行し、終了します。
コマンドタスク1がタイマより前に終了した場合、タスクフローは、コマンドタスク1、決定ステップ、並列パスステップを実行し、終了します。
エラー処理 [エラー処理] タブを使用すると、コマンドタスクステップでエラーが発生したときにタスクフローがどのように動作するかを指定できます。コマンドタスクステップが失敗した場合、または実行されなかった場合のタスクフローの動作を設定することもできます。
タスクを選択した後に、次のエラー処理のプロパティを設定します。
エラー発生時 コマンドタスクステップでエラーが発生したときにタスクフローが取るパス。
コマンドタスクステップが失敗するとエラーが発生します。次のオプションから選択できます。
- [無視] を選択してエラーを無視し、次の手順に進みます。注: 通知タスクステップが後に続くコマンドタスクステップに[無視] を選択してコマンドタスクが失敗した場合は、受信する電子メール通知にはフォールトの詳細は含まれません。電子メールでフォールトの詳細を確認するには、[カスタムエラー処理] を選択します。
- エラーが発生したときにタスクフローを中断状態に移行させるには、[タスクフローの中断] を選択します。[すべてのジョブ] 、[実行中のジョブ] 、および[マイジョブ] ページからタスクフローインスタンスを再開できます。タスクフローは、中断されたステップから再開します。エラーの理由がわかっている場合は、問題を修正してからタスクフローを再開してください。
- 選択した方法でエラーを処理するには、[カスタムエラー処理] を選択します。[カスタムエラー処理] を選択すると、2つの分岐が表示されます。最初の分岐は、エラーが発生しない場合にタスクフローが続くパスです。2番目の分岐は、エラーが発生した場合にタスクフローが続くカスタムパスです。デフォルト値は[タスクフローの一時停止] です。
タスクフローを完了時に終了 コマンドタスクステップが失敗した場合、または実行されなかった場合のタスクフローの動作。
コマンドタスクステップが失敗した場合、または実行されなかった場合、完了時に失敗するようにタスクフローを設定できます。ステップが失敗するか実行されなかった場合、タスクフローは後続のステップの実行を続行します。ただし、タスクフローが完了すると、タスクフローのステータスは失敗に設定されます。
[フォールト時に一時停止] タスクフローの詳細プロパティと[タスクフローを完了時に終了] プロパティの両方を設定した場合は、[フォールト時に一時停止] プロパティが優先されます。この場合、コマンドタスクステップが失敗するか実行されない場合、タスクフローは一時停止されます。タスクフローは、そのコマンドタスクステップの後の後続のステップを実行しません。
次の図は、割り当てステップと別のコマンドタスクステップがある、カスタムエラー処理 パスを示しています。
フォールト フォールトフィールドは、スクリプトの失敗によりコマンドタスクが失敗した場合にのみ表示されます。この詳細は、フォールトの理由を分析する場合に役立ちます。その後、失敗したコマンドタスクに対して適切なアクションを実行し、タスクフローの実行を続行できます。
次の図に示すように、フォールトフィールドの詳細をタスクフローの後続のステップにパラメータとして追加できます。
コマンドタスクが失敗した場合は、次のフォールトの詳細を確認します。
プロパティ
タイプ
説明
実行ID
テキスト
コマンドタスクの実行ID。
開始時刻
日付/時刻
コマンドタスクの開始時刻。
終了時刻
日付/時刻
コマンドタスクの終了時刻。
終了コード
整数
コマンドタスクの実行後に返される終了コード。終了コードには0 ~255 の値を指定できます。値0 はコマンドタスクが正常に実行されたことを示します。
失敗したコマンドはゼロ以外の値を返します。値は、エラータイプまたはシェルスクリプト内の事前設定されたコードに基づきます。
実行ステータス
テキスト
コマンドタスクのステータスを[失敗]として表示します。
標準エラー
テキスト
エラーメッセージを表示します。
File Watchタスクステップ File Watchタスクステップをタスクフローに追加して、定義された場所にあるファイルをリッスンし、ファイルイベントを監視できます。
File Watchタスクステップでは、コネクタソースタイプを使用して既存のファイルリスナを選択できます。タスクフローの実行を調整するため、ファイルイベントを使用できます。例えば、ファイルが特定の場所に到着するまで待機してから、次のステップでそのファイルを使用するといったことができます。
File Watchタスクステップを含むタスクフローを実行すると、関連するファイルリスナが起動します。File Watchタスクはファイルイベントが発生すると実行され、ファイルの詳細とともに、到着、更新、および削除されたファイルのリストなどのファイルイベントの詳細が送信されます。その後、タスクフローは後続のステップに進みます。
ファイルイベントが発生しない場合、タスクフローは、デフォルトでは5分間または[タイムアウト] フィールドで定義したオーバーライド値の分だけ待機します。その後、File Watchタスクステップが完了し、タスクフローは後続のステップに進みます。
[タイムアウト] フィールドで定義できる最大値は7日間です。7日後、タスクフローのステータスは[一時停止中]に変わります。
次の節では、File Watchタスクステップのプロパティについて説明します。
全般プロパティ 全般プロパティで、ファイル監視タスクステップにわかりやすい名前を指定できます。
名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。
File Watchタスクステッププロパティ File Watchタスクステッププロパティで、タスクフローに追加するコネクタソースタイプを持った既存のファイルリスナを選択できます。ファイルリスナを選択すると、ファイルリスナの説明と出力フィールドが表示されます。
[出力フィールド] セクションには[fileEvents] フィールドが表示されます。[fileEvents] フィールドは、到着、更新、および削除されたファイルのリストやファイルの詳細など、ファイルイベントの詳細を返すオブジェクトのリストです。[fileEvents] フィールドには、処理された合計ファイル数が1,500を超えている場合でも、最大で1,500件のレコードが表示されます。
入力フィールド 入力フィールドを追加して、次のファイルリスナプロパティをオーバーライドできます。
• 最初の実行時にファイルが存在するかどうかを通知• ランタイム環境• ソース接続• タイムアウト• ファイルパターン• フォルダパスイベント File Watchタスクにタイマを追加するには、[イベント] プロパティを設定します。
タイマイベントを使用して、スケジュールに基づいてアクションを実行します。アクションは、特定の時刻または間隔の後のいずれかになります。
File Watchタスクステップにタイマを追加すると、新しい分岐が表示されます。この分岐にイベントを追加し、特定の[時間] または間隔[以降] に実行するかどうかを指定します。
次の図では、タイマ分岐のイベントは決定ステップ(決定1)で、メインのFile Watchタスク(File Watchタスク1)開始の5分後に発生します。
1 メイン分岐2 タイマ分岐この例では、タイマ分岐はFile Watchタスク1が開始されてから5分後に実行されます。File Watchタスク1が決定1の前に終了する場合、タイマ分岐は実行されません。
メインのFile Watchタスクをタイマで中断する場合は、[中断] オプションを選択できます。
次の図は、メインのFile Watchタスクが開始されてから5分後に発生する中断タイマ設定を示しています。
1 メイン分岐2 タイマ分岐この例では、File Watchタスク2が5分後に実行され、File Watchタスク1が中断されます。タスクフローでは、File Watchタスク2のみが実行されて終了します。File Watchタスク1には、このタスクフローインスタンスの出力はありません。タスクフローのジョブの詳細ページには、File Watchタスク1の出力フィールドが表示されません。
File Watchタスク1がタイマより前に終了した場合、タスクフローはFile Watchタスク1のみを実行して終了します。
中断タイマのタイマ分岐の終了ステップを削除すると、タイマ分岐はメイン分岐に再び参加します。
次の図は、終了ステップが削除された中断タイマ分岐を示しています。
1 メイン分岐2 タイマ分岐この例では、File Watchタスク2が5分後に実行され、File Watchタスク1が中断されます。タイマ分岐は、メイン分岐に再び参加します。タスクフローでは、File Watchタスク2、決定ステップ、並列パスステップが実行されて終了します。
File Watchタスク1がタイマより前に終了した場合、タスクフローでは、File Watchタスク1、決定ステップ、並列パスステップが実行されて終了します。
エラー処理のプロパティ [エラー処理] タブを使用すると、File Watchタスクステップがエラーを検出したときにタスクフローがどのように動作するかを指定できます。ファイルリスナを選択した後で、[エラー発生時] プロパティを設定できます。
[エラー発生時] プロパティにより、File Watchタスクステップでエラーが発生した場合にタスクフローがたどるパスを定義します。File Watchタスクステップが失敗すると、エラーが発生します。次のオプションから選択できます。
デフォルト値は[タスクフローの一時停止] です。
取り込みタスクステップ 取り込みタスクステップを使用して、ファイル取り込みタスクをタスクフローの調整に活用します。取り込みタスクステップでは、既存のファイル取り込みタスクを選択できます。
注: ファイルリスナコンポーネントをソースとして使用するファイル取り込みタスクは選択できません。
ファイルを中間位置に移動した後で、ファイルをターゲットに転送する前にデータ統合操作を実行することをお勧めします。この場合、取り込みタスクステップをデータタスクステップと組み合わせて使用できます。
例えば、取り込みタスクステップを使用してソースの場所から多数のファイルを読み取り、それらを中間位置に書き込むことができます。次に、データタスクステップを使用してファイルに対してデータ統合操作を実行し、別の取り込みタスクステップを使用して更新済みファイルを最終的なターゲットの場所に書き込むことができます。
次の節では、取り込みタスクステップのプロパティについて説明します。
全般プロパティ 全般プロパティで、取り込みタスクステップにわかりやすい名前を指定できます。
名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。
取り込みタスクステップのプロパティ 取り込みタスクステップのプロパティで、タスクフローに追加するファイル取り込みタスクを選択できます。ファイル取り込みタスクを選択すると、ファイル取り込みタスクの説明と出力フィールドが表示されます。
[出力フィールド] セクションには、次のフィールドが表示されます。
プロパティ
説明
成功ファイル
ターゲットに正常に転送されたファイルの数。
エラーファイル
ターゲットに転送されなかったファイルの数。
ファイルの詳細
作成、更新、および削除されたファイルのリストやファイル数など、ファイル転送の詳細を返すオブジェクトのリスト。[fileDetails] フィールドには、処理された合計ファイル数が1,500を超えている場合でも、最大で1,500件のレコードが表示されます。
入力フィールド 入力フィールドを追加して、次のファイル取り込みタスクのプロパティをオーバーライドできます。
• 全般プロパティ。- [最大ファイル制限] 。[出力フィールド] セクションの[fileDetails] フィールドに表示するレコードの最大数。取り込みタスクステップでファイル取り込みタスクを選択すると、[最大ファイル制限] フィールドがデフォルトで追加されます。指定可能な最大数値は1500です。デフォルトは0 です。- ランタイム環境 。タスクの実行に使用されるSecure Agentを含むランタイム環境。- ソース接続 。ファイル取り込みタスクがソースからの読み取りを行うために使用する接続。- ターゲット接続 。ファイル取り込みタスクがターゲットへの書き込みを行うために使用する接続。• ソースのプロパティ。- バッチサイズ 。ファイル取り込みタスクが1回のバッチで転送できるファイル数。- ファイルパターン 。転送するファイルの選択に使用されるファイル名パターン。- フォルダパス 。ファイルの転送元のフォルダパス。デフォルト値は接続で指定されたフォルダパスです。- ソースディレクトリ 。ファイルの転送元のディレクトリ。デフォルト値は接続で指定されたソースディレクトリです。• ターゲットプロパティ。- フォルダパス 。ファイルの転送先のフォルダパス。デフォルト値は接続で指定されたフォルダパスです。- ターゲットディレクトリ 。ファイルの転送先のディレクトリ。デフォルト値は接続で指定されたターゲットディレクトリです。イベント 取り込みタスクにタイマを追加するには、[イベント] プロパティを設定します。
タイマイベントを使用して、スケジュールに基づいてアクションを実行します。アクションは、特定の時刻または間隔の後のいずれかになります。
取り込みタスクステップにタイマを追加すると、新しい分岐が表示されます。この分岐にイベントを追加し、特定の[時間] または間隔[以降] に実行するかどうかを指定します。
次の図では、タイマ分岐のイベントは決定ステップ(決定1)で、メインの取り込みタスク(取り込みタスク1)開始の5分後に発生します。
1 メイン分岐2 タイマ分岐この例では、タイマ分岐は取り込みタスク1が開始されてから5分後に実行されます。取り込みタスク1が決定1の前に終了する場合、タイマ分岐は実行されません。
メインの取り込みタスクをタイマで中断する場合は、[中断] オプションを選択できます。
次の図は、メインの取り込みタスクが開始されてから5分後に発生する中断タイマ設定を示しています。
1 メイン分岐2 タイマ分岐この例では、取り込みタスク2が5分後に実行され、取り込みタスク1が中断されます。タスクフローでは、取り込みタスク2のみが実行されて終了します。このタスクフローインスタンスでは、取り込みタスク1の出力はありません。タスクフローのジョブの詳細ページには、取り込みタスク1の出力フィールドが表示されません。
取り込みタスク1がタイマより前に終了した場合、タスクフローは取り込みタスク1のみを実行して終了します。
中断タイマのタイマ分岐の終了ステップを削除すると、タイマ分岐はメイン分岐に再び参加します。
次の図は、終了ステップが削除された中断タイマ分岐を示しています。
1 メイン分岐2 タイマ分岐この例では、取り込みタスク2が5分後に実行され、取り込みタスク1が中断されます。タイマ分岐は、メイン分岐に再び参加します。タスクフローでは、取り込みタスク2、決定ステップ、並列パスステップが実行されて終了します。
取り込みタスク1がタイマより前に終了した場合、タスクフローでは、取り込みタスク1、決定ステップ、並列パスステップが実行されて終了します。
エラー処理のプロパティ [エラー処理] タブを使用すると、取り込みタスクステップがエラーを検出したときにタスクフローがどのように動作するかを指定できます。ファイル取り込みタスクを選択した後で、[エラー発生時] プロパティを設定できます。
[エラー発生時] プロパティにより、取り込みタスクステップでエラーが発生した場合にタスクフローがたどるパスを定義します。取り込みタスクステップが失敗するとエラーが発生します。次のオプションから選択できます。
デフォルト値は[タスクフローの一時停止] です。
サブタスクフローステップ サブタスクフローステップを追加する際は、既存のタスクフローを埋め込んで再利用できます。
サブタスクフローステップを使用すると、タスクフローの複数のブランチ間または異なるタスクフロー間で同じオーケストレーションフローを再利用できます。その後、異なるパラメータセットでタスクフローを呼び出すことができます。サブタスクフローは、親タスクフローをパブリッシュするときにパブリッシュされます。
多数のステップを含むタスクフローがある場合は、オーケストレーションロジックを複数の小さなタスクフローに分割することを検討してください。次に、サブタスクフローステップを使用して、より小さなタスクフローを親タスクフローに組み込むことにより、設計を簡略化できます。これは、モジュラー型設計につながるだけでなく、編集用にタスクフローを開いたときの読み込みを高速化するのにも役立ちます。
サブタスクフローのプロパティは定義できます。次の節では、サブタスクフローステップのプロパティについて説明します。
全般プロパティ 全般プロパティで、サブタスクフローにわかりやすい名前を指定できます。
名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。
サブタスクフローのプロパティ [サブタスクフロー] タブで、埋め込むタスクフローを選択します。データ統合 に、埋め込まれたタスクフローの場所、説明、入力フィールド、および出力フィールドが表示されます。
入力フィールド サブタスクフローをタスクフローに追加すると、[入力フィールド] セクションが表示されます。
上書きできるパラメータがタスクフローに含まれている場合は、入力フィールドを追加できます。入力フィールドのプロパティを設定して、データ統合 のランタイムパラメータを上書きできます。
フォールト処理のプロパティ 次のフォルト処理のプロパティを設定できます。
フォルトの取得 サブタスクフローステップのフォールト処理を有効にするには、このオプションを選択します。
デフォルトでは、このオプションは選択されていません。
フォルトフィールド名 [フォルトの取得] オプションを選択した場合は必須です。
フォールト情報を取得するフィールドの名前です。
デフォルトはfaultInfo です。
タスクフローを完了時に終了 サブタスクフローステップに関連付けられたサブタスクフローが失敗または実行されない場合の動作を定義します。
デフォルトでは、サブタスクフローステップに関連付けられたサブタスクフローが失敗すると、親タスクフローも失敗します。
サブタスクフローが失敗した場合に、タスクフローも完了時に失敗するように設定するには、[フォルトの取得] オプションと[このサブタスクフローが失敗した場合] オプションを選択します。サブタスクフローが実行されない場合に、タスクフローも完了時に失敗するように設定するには、[このサブタスクフローが実行されない場合] オプションを選択します。これらの場合、サブタスクフローが失敗するか実行されなくても、タスクフローは後続のステップの実行を続行します。ただし、タスクフローが完了すると、タスクフローのステータスは失敗に設定されます。
注: [フォールト時に一時停止] タスクフローの詳細プロパティと[タスクフローを完了時に終了] プロパティの両方を設定した場合は、[フォールト時に一時停止] プロパティが優先されます。この場合、サブタスクフローステップに関連付けられたサブタスクフローが失敗するか実行されない場合、タスクフローは一時停止されます。タスクフローは、そのサブタスクフローステップの後の後続のステップを実行しません。
決定ステップ 決定ステップを追加するときに、いくつかのプロパティを設定します。
次の決定ステップのプロパティを設定できます。
名前 決定ステップの名前。名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。 決定 タスクフローは、ここで定義したフィールド、計算式、およびパスに基づいて決定を行います。
次のいずれかのオプションを使用してパスを指定します。
- フィールド 。[開始] ステップで定義したフィールドのリストから入力フィールド、出力フィールド、または一時フィールドを選択します。決定ステップで決定を下すために必要な条件と値を入力します。
使用できる条件は、選択したフィールドによって異なります。
例えば、データ型のフィールドとして[単純型] > [テキスト] を選択した場合、次の条件が使用できます。
▪ 次の値に等しい▪ 次で開始する▪ 次で終わる▪ 次のいずれかで開始する▪ 次を含む- [計算式] 式エディタを開いて複合式を作成します。パスを定義し、適切な条件を設定できます。また、前のステップに依存せずに、決定ステップで単純式と複合式を直接評価することもできます。
[計算式] オプションを選択して式を定義すると、次の条件が使用可能になります。
▪ 内容▪ 次の値に等しい▪ 開始▪ 終了▪ 次のいずれかで開始する▪ 次に等しくない:▪ 次の値より小さい▪ 次の値以下▪ 次より大きい▪ 次の値以上ただし、式で使用される関数の戻り型に基づいて、適切な条件を選択する必要があります。
次の表に、戻り型に基づいてサポートされる条件およびサポートされない条件を示します。
戻り型
サポートされる条件
サポートされない条件
文字列とブール値
内容
次の値に等しい
次で開始する
次で終了する
次のいずれかで開始する
次に等しくない:
次の値より小さい
次の値以下
次より大きい
次の値以上
数値と整数
内容
次の値に等しい
次で開始する
次で終了する
次のいずれかで開始する
次に等しくない:
次の値より小さい
次の値以下
次より大きい
次の値以上
なし
日時
内容
次の値に等しい
次で開始する
次で終了する
次のいずれかで開始する
次に等しくない:
次の値より小さい
次の値以下
次より大きい
次の値以上
デフォルトは[フィールド] です。
選択した条件に対してテキスト値を入力できます。
決定ステップには複数の条件を追加できます。各条件は、潜在的なデータパスです。
追加したパスごとに、対応する分岐がUIに表示されます。分岐をドラッグして、分岐がUIに表示される順序を並べ替えます。
ほとんどの決定ステップには、別のパスがあります。テストの条件を満たしているデータがない場合、このパスが実行を処理します。
パスの評価 タスクフローは、指定した条件に基づいて条件を評価します。パスは必ず、交差しない条件を指定して作成します。
例えば、次のパスでデータ決定ステップを作成します。
• パス1: フィールドは100以下とする。• パス2: フィールドは75以下とする。• パス3: フィールドは25以下とする。• パス4: それ以外。データ決定ステップが作成された整数フィールドの値が25の場合、データ決定ステップはパス1を受け取ります。これは25が100未満で、パス1が最初のオプションであるためです。
データ決定ステップが「25未満のフィールド以下」のパスに従っていることを確認するには、次の条件でパスを再作成します。
• パス1: 0から25の間の整数。• パス2: 26から75の間の整数。• パス3: 76から100の間の整数。• パス4: それ以外。重要 : タスクフローは、トップダウン方式で条件を評価します。それ以外の分岐が最後のパスであることを確認します。
決定ステップは、別の決定ステップに連結できます。例えば、年間所得が10万ドルを超えると、分岐を実行できるなどと指定できます。同じパスの次の決定テストで、都市がボストンであるか、それ以外であるかをテストできます。この方法を使用するときには、最初の条件での真の分岐に基づいて2番目の条件をテストするため、ブール値ANDロジックを使用します。この例では、決定ステップを使用して、「年間収入が10万ドルを超え、都市はボストンである」というAND条件を設定します。
同様に、ブール型ORロジックをサポートするために、任意の分岐に2番目の条件のテストを追加できます。
タスクフローのデータタスクステップが失敗した場合は、データタスクの出力フィールドに基づいて決定を下すことができます。
次のいずれかの条件が満たされた場合に、出力フィールドを選択できます。
• [エラー時] フィールドが[無視] または[カスタムエラー処理] に設定されている。• [タスクフローを完了時に終了] オプションが[このタスクが失敗した場合] に設定されている。フィールドをデータタスク全体として選択した場合、決定ステップはデフォルトで、[設定されている] パスを取ります。
並列パスステップ 並列パスステップを追加するときに、いくつかのプロパティを設定します。
次の並列パスステップのプロパティを設定できます。
名前 並列パスステップの名前。名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。 並列パス タスクフローを並列で実行するパスを選択します。
[追加] をクリックして新しい分岐を追加します。
各分岐に複数のステップを追加できます。分岐にステップを追加するには、左側のパレットからステップをドラッグアンドドロップします。
マッピングタスクが同時に実行するように設定されている場合、同じマッピングタスクを並列パスステップの複数の分岐で実行できます。
ジャンプステップを並列パスステップと連動させて使用した場合は、同じ並列パスブランチ内の別のステップにのみジャンプできます。
ジャンプステップと並列パスステップを同時に使用する場合は次の制限を念頭に置いておいてください:
- 並列パスステップ上にいる場合は、同じ並列パスステップの別のブランチのステップにジャンプすることはできません。- 並列パスステップ上にいる場合は、並列パスステップ外のいかなるステップへもジャンプできません。- 並列パスステップの外にいる場合は、並列パスステップ内のいかなるステップへもジャンプすることはできません。ジャンプステップ ジャンプステップを追加するときは、ジャンプのターゲットを定義する[宛先] フィールドを設定します。使用可能なステップのリストから選択できます。
複数のステップが同じターゲットステップにジャンプできます。ターゲットとして特定のステップがあるジャンプステップの数を確認するには、ターゲットステップの横にある矢印の上にカーソルを置きます。
ジャンプステップを並列パスステップと連動させて使用した場合は、同じ並列パスブランチ内の別のステップにのみジャンプできます。
ジャンプステップと並列パスステップを同時に使用する場合は次の制限を念頭に置いておいてください:
• 並列パスステップ上にいる場合は、同じ並列パスステップの別のブランチのステップにジャンプすることはできません。• 並列パスステップ上にいる場合は、並列パスステップ外のいかなるステップへもジャンプすることはできません。• 並列パスステップの外にいる場合は、並列パスステップ内のいかなるステップへもジャンプすることはできません。• フォ-ルトパスからはいかなるステップへもジャンプすることはできません。ジャンプステップを追加するには、フォールトパスをメインタスクフローパスにマージして戻す必要があります。• フォールトパスの外にいる場合は、フォールトパス内のステップにジャンプすることはできません。設計のベストプラクティス タスクフロー内でジャンプステップを使用する場合は、次のベストプラクティスを使用してください。
• 外部フローからフォールトパス内のステップへのジャンプステップを使用する代わりに、ジャンプステップをフォールトパス内と同じフローに置き換えてタスクフローを設計します。• 反復する目的でジャンプステップを使用し、そのステップがフォールト処理を含むサブタスクフローステップを指している場合は、フォールト処理を含むサブタスクフローステップを別のサブタスクフローステップ内に囲みます。終了ステップ 終了ステップは、タスクフローの終了を示します。実行がこのステップに達すると、タスクフローは完了します。
次の終了ステップのプロパティを設定できます。
名前 ステップの名前。この値は編集できます。 終了タイプ デフォルト値はEnd of Process です。この値は編集できません。 HTTPステータス HTTP応答のステータスコード。デフォルト値は200 OK です。この値は編集できます。 待機ステップ 待機ステップを追加するときに、いくつかのプロパティを設定します。
次の待機ステップのプロパティを設定できます。
名前 待機ステップの名前。名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。 待機 タスクフローが一時停止する時刻と長さを決定するプロパティ。
次の条件を使用して、タスクフローを[特定の時間] または[待機期間後] に一時停止するかどうかを決定します。
- [特定の時間] を選択して、特定の時刻にタスクフローを一時停止します。タスクフローを一時停止し、必要に応じて[遅延] を指定する[時間] を入力します。[遅延] の値には、定義した整数またはフィールドを指定できます。例えば、3日後の午前2:00時に一時停止するようにタスクフローを設定するとします。2:00amは[時間] であり、3日は[遅延] です。
- 期間後にタスクフローを一時停止するには、[待機期間後] を選択します。この期間は、タスクフローが待機ステップに到達した時点で開始されます。タスクフローを一時停止する[待機期間] を入力します。[待機期間] の値には、定義した整数またはフィールドを指定できます。例えば、タスクフローが待機ステップに到達した時点から1時間、タスクフローを一時停止するように設定したりできます。
スローステップ スローステップを使用して、フォールトをキャッチし、フォールトの詳細を返し、タスクフローの実行を停止し、タスクフローのステータスを[失敗]に設定します。
スローステップは次のケースに使用できます。
タスクフロー内でフォールトをキャッチする スローステップをタスクフローのメインパスに追加することで、タスクフロー内でフォールトをキャッチし、フォールトの詳細を返すことができます。スローステップは中断ステップであるため、スローステップの後にステップを追加することはできません。フォールトが発生すると、スローステップはタスクフローの実行を停止し、タスクフローのステータスを[失敗]に設定します。
例えば、次のサンプルタスクフローについて考えてみます。
通知タスクステップ時にフォールトが発生すると、スローステップが実行されます。スローステップはタスクフローの実行を停止し、タスクフローのステータスを[失敗]に設定します。
タスクフローの特定のステップに対し境界イベントとして機能させる タスクフローステップに対してカスタムエラー処理を有効にすると、エラー処理パス内でスローステップを使用して、ステップへの境界イベントとして機能させることができます。境界イベントは、境界イベントが定義されたステップのスコープ内で生じたエラーをキャッチするイベントです。
スローステップはカスタムエラー処理をサポートしているため、次のステップのエラー処理パスに追加できます。
- データタスク- コマンドタスク- File Watchタスク- 取り込みタスクサブタスクフローステップでフォールトをキャッチするように設定してある場合は、スローステップをサブタスクフローステップのエラー処理パスに追加することもできます。サブタスクフローステップ内にあるタスクフローが失敗すると、親タスクフローも失敗します。Monitorで親タスクフローの実行の詳細を表示する場合は、サブタスクフローステップに関連付けられたスローステップをクリックして、サブタスクフローが失敗した理由を確認できます。
スローステップをエラー処理パスに追加すると、エラー処理パスがタスクフローのメインパスから分岐します。フォールトが発生すると、タスクフローは、エラー処理用に定義したパスに進みます。例えば、エラーパス内に通知タスクステップを追加して電子メール通知を送信し、続いてスローステップでフォールトをキャッチし、タスクフローの実行を停止することができます。
スローステップは中断ステップであるため、エラー処理パス内でスローステップの後にステップを追加することはできません。フォールトが発生すると、スローステップはタスクフローの実行を停止し、タスクフローのステータスを[失敗]に設定します。スローステップに関連付けられたステップ後に存在する、タスクフローのメインパス内の後続ステップは実行されません。
例えば、次のサンプルタスクフローについて考えてみます。
サブタスクフローステップは、フォールトをキャッチするように設定されています。フォールトが発生すると、通知タスクステップで設定されているとおりに電子メール通知が送信されます。その後、スローステップはタスクフローの実行を停止し、サブタスクフローが失敗した理由を示すフォールトの詳細を返し、タスクフローのステータスを[失敗]に設定します。データタスクステップは実行されません。
スローステップのプロパティ 次のセクションでは、スローステップのプロパティについて説明します。
全般プロパティ 全般プロパティで、スローステップにわかりやすい名前を指定できます。
名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。
フォールトのフィールド 次のフォールトフィールドを設定できます。
コード 必須。フォールトのコードを定義します。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
- コンテンツ 。フォールトのコードを入力します。- フィールド 。このステップを実行するときに、タスクフローデザイナがこのフィールドにコードを書き込むために使用するフィールドを選択します。タスクフローの他のステップで追加された入力フィールド、一時フィールド、出力フィールド、またはフォールトフィールドを選択できます。- 式 。式エディタを開いて、このフィールドの値を計算する式を指定します。デフォルトは[コンテンツ] です。
詳細 フォールトの詳細を定義します。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
- コンテンツ 。フォールトの詳細を入力します。- フィールド 。このステップを実行するときに、タスクフローデザイナがこのフィールドにフォールトの詳細を書き込むために使用するフィールドを選択します。タスクフローの他のステップで追加された入力フィールド、一時フィールド、出力フィールド、またはフォールトフィールドを選択できます。- 式 。式エディタを開いて、このフィールドの値を計算する式を指定します。デフォルトは[コンテンツ] です。
理由 フォールトが発生した理由を定義します。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
- コンテンツ 。フォールトが発生した理由を入力します。- フィールド 。このステップを実行するときに、タスクフローデザイナがこのフィールドにフォールトの理由を書き込むために使用するフィールドを選択します。タスクフローの他のステップで追加された入力フィールド、一時フィールド、出力フィールド、またはフォールトフィールドを選択できます。- 式 。式エディタを開いて、このフィールドの値を計算する式を指定します。デフォルトは[コンテンツ] です。