テーブルで行の挿入を待機しています
このシナリオでは、サブジョブを実行するために、DBテーブルを読み取り、テーブルのデータ保管を待機するジョブについて説明しています。テーブルでデータ挿入の条件が満たされると、サブジョブはテーブル上でSelect*を実行し、挿入されたデータの内容を単に標準コンソールに表示します。
-
[Palette] (パレット)からtMysqlConnection、tWaitForSqlData、tMysqlInput、およびtLogRowコンポーネントをデザインワークスペースにドロップします。
-
右クリックのメニューにある[OnSubjobOK]リンクを使用して、tMysqlConnectionコンポーネントをtWaitforSqlDataに接続します。
-
次に、[Iterate] (反復処理)リンクを使用してtWaitForSqlDataコンポーネントをサブジョブに接続します。この部分では実際のデータは転送されません。実際は、条件が満たされるまで、単にループがtWaitForSqlDataによって実装されます。
-
条件が満たされた場合に実行されるサブジョブでは、 tMysqlInputが標準コンソールコンポーネントtLogRowに接続されます。接続でデータを渡す場合は、[Row] (行) [Main] (メイン)リンクを使用します。
-
ここでテーブルへの接続を一定の間隔でチェックするように設定します。tMysqlConnectionの[Component] (コンポーネント)タブの[Basic Settings] (基本設定)ビューで、DB接続のプロパティを設定するために使われます。
-
[Host] (ホスト)、[Port] (ポート)、[Database] (データベース)、[Username] (ユーザー名)、[Password] (パスワード)の各フィールドに入力して、データベーステーブルへの接続を開きます。
-
必要に応じて、関連する[Encoding] (エンコーディング)を選択します。
-
次に、tWaitForSqlDataコンポーネントを選択し、[Component] (コンポーネント)タブの[Basic Setting] (基本設定)ビューでプロパティを設定するために使われます。
-
[Wait at each iteration] (反復ごとに待機する時間)フィールドで、次の反復が始まるまでの待機時間を秒で設定します。
-
[Max iterations] (最大反復回数)フィールドで、ジョブ全体を強制終了するまでの最大反復回数を入力します。
-
tWaitForSqlDataコンポーネントを使用して定義した反復回数ループさせるには、接続がオープンしている必要があります。[Component List] (コンポーネントリスト)コンボボックスで、関連する接続(複数ある場合)を選択します。
-
[Table to scan] (スキャンするテーブル)フィールドに、スキャンするDB内のテーブルの名前、この例では、test_datatypesを入力します。
-
[Trigger action when rowcount is] (行数が次の場合にアクションをトリガー)と[Value] (値)フィールドで、サブジョブをトリガーするための条件を選択します。このユースケースでは、スキャンしたテーブルの行数は[be greater or equal to 1] (1以上)である必要があります。
-
[Then] (その場合)フィールドで、定義した反復回数に達する前に条件が満たされた時に実行するアクションを選択します。このユースケースでは、条件が満たされるとただちにループが終了されます。
-
次に、条件セットが満たされた時に実行するサブジョブを設定するために使われます。このユースケースでは、単にサブジョブでスキャンされたテーブルからデータを選択し、コンソールに表示します。
-
tMysqlInputコンポーネントを選択し、[Basic Setting] (基本設定)タブの[Component] (コンポーネント)ビューで、 テーブルへの接続を設定するために使われます。
-
接続がリポジトリーに設定されている場合は、リストの関連エントリーを選択します。または、[Use an existing connection] (既存の接続を使用)チェックボックスをオンにして、リストから関連する接続コンポーネントを選択します。
-
このユースケースでは、テーブルストラクチャーに対応するスキーマが[Repository] (リポジトリー)に保管されています。
-
[Table Name] (テーブル名)フィールドに、データの抽出元のテーブル、Test_datatypesを入力します。
-
次に、[Query] (クエリー)フィールドに Selectステートメントを入力して、テーブルからコンテンツを抽出します。
-
このユースケースのtLogRowコンポーネントでは、特に設定は必要ありません。
その後、ジョブを実行する前に条件(1以上)が満たされるようにするため、スキャンするテーブル(test_datatypes)が空であることを確認します。次に、キーボードの[F6]を押してジョブを実行します。反復ループの終了前に、条件を満たすためにtest_datatypesテーブルに1行以上の行を入力ます。
ループ中にこのテーブルの挿入が検出されると、ジョブは終了し、テーブルの内容がコンソールに表示されます。