目次

Search

  1. はじめに
  2. タスクフローとリニアタスクフロー
  3. タスクフロー
  4. リニアタスクフロー

タスクフロー

タスクフロー

コマンドタスクステップ

コマンドタスクステップ

コマンドタスクステップを使用して、Secure Agentマシン上の複数のスクリプトファイルから、シェルスクリプトまたはバッチコマンドを実行します。
例えば、コマンドタスクを使用して、ファイルの移動、ファイルのコピー、ファイルの圧縮や解凍、またはクリーンスクリプトやSQLスクリプトの実行をタスクフローの一部として行えます。コマンドタスクの出力を使用して、タスクフローの後続のタスクを調整できます。
コマンドタスクステップを使用するには、適切なライセンスが必要です。
タスクフローにコマンドタスクステップを追加するときに、次のプロパティを設定します。

全般プロパティ

全般プロパティで、コマンドタスクステップにわかりやすい名前を指定できます。
名前には、英数字、アンダースコア(_)、スペース、およびUnicode文字のみを含めることができます。

入力フィールド

入力フィールドで次のようなシステム変数を使用して、スクリプトファイル名、入力引数、および作業ディレクトリを定義できます。
  • $PMRootDir
  • $PMLookupFileDir
  • $PMSessionLogDir
  • $PMBadFileDir
  • $PMCacheDir
  • $PMStorageDir
  • $PMTargetFileDir
  • $PMSourceFileDir
  • $PMExtProcDir
  • $PMTempDir
  • $PMWorkflowLogDir
これらの変数は、データ統合サーバーサービス用として
管理者
で事前に定義されています。コマンドタスクステップでシステム変数を使用するには、共通の統合コンポーネントおよびデータ統合サーバーサービスが有効になっており、Secure Agentで実行されている必要があります。
入力フィールドで環境変数を使用して、スクリプトファイル名、入力引数、およびワークディレクトリを定義できます。環境変数を使用するには、Secure Agentに共通統合コンポーネントサービスバージョン14以降、およびコマンドエグゼキュータパッケージバージョン140以降が必要です。
コマンドタスクステップに次の入力フィールドを設定します。
いずれかのスクリプトが失敗すると、タスクも失敗します
複数のスクリプトファイルを使用する場合、いずれかのスクリプトが失敗した場合にコマンドタスクステップが失敗するように設定できます。
コマンドタスクステップで1つ以上のスクリプトを設定し、このオプションを選択すると、いずれかのスクリプトが失敗した場合にコマンドタスクステップのステータスが[失敗]に設定され、タスクフローではそれ以上のスクリプトや後続のステップは実行されません。
コマンドタスクステップで1つ以上のスクリプトを設定し、このオプションを無効にすると、タスクフローではすべてのスクリプトが実行されます。いずれかのスクリプトが失敗した場合、
[すべてのジョブ]
[実行中のジョブ]
、および
[マイジョブ]
ページで、失敗したスクリプトのステータスが[失敗]に設定され、コマンドタスクステップのステータスは[警告]に設定されます。ただし、データ統合ではコマンドタスクステップの実行が[成功]として扱われます。
このオプションはデフォルトで無効になっています。
ランタイム環境
必須。コマンドを実行するランタイム環境。この選択は、ランタイム環境またはサーバーレスランタイム環境に適用されます。
次のいずれかのオプションを使用して、このフィールドの値を指定します。
  • コンテンツ
    。Secure Agentグループを選択します。
    サブ組織のユーザーが、使用可能なSecure Agentグループを表示するには、デザイナロールが必要です。
  • フィールド
    。このステップを実行するときに、タスクフローデザイナがこのフィールドにランタイム環境を書き込むために使用するフィールドを選択します。追加されたランタイム環境は、タスクフローの他のステップの入力フィールドまたは一時フィールドとして選択できます。値は、有効なSecure Agentグループ名である必要があります。
  • 。有効なSecure Agentグループ名を使用して、ランタイム環境の式を作成します。
最大待機時間(秒)
[最大待機時間(秒)]
フィールドでは、コマンドタスクステップがタスクの完了を待機する最大時間を秒単位で設定できます。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分後に発生します。
この図は、メインコマンドタスクの5分後に発生するデータ決定ステップを示します。
  1. メイン分岐
  2. タイマ分岐
この例では、タイマ分岐はコマンドタスク1が開始されてから5分後に実行されます。コマンドタスク1が決定1の前に終了する場合、タイマ分岐は実行されません。
メインコマンドタスクをタイマで中断する場合は、
[中断]
オプションを選択できます。
次の図は、メインコマンドタスクが開始されてから5分後に発生するように設定されている中断タイマを示しています。
この図は、メインコマンドタスクが開始されてから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
はコマンドタスクが正常に実行されたことを示します。
失敗したコマンドはゼロ以外の値を返します。値は、エラータイプまたはシェルスクリプト内の事前設定されたコードに基づきます。
実行ステータス
テキスト
コマンドタスクのステータスを[失敗]として表示します。
標準エラー
テキスト
エラーメッセージを表示します。