Talend 処理された行数を知る NB_LINE
あるコンポーネントで処理された行数を取得したい場合、 globalMap.get() を使用することで処理された行数を取得することができます。 例えば、データベースから取得したレコード数が 0 の場合は、Aの処理を行い1以上の場合はBの処理を行うようなジョブを作りたい場合に使用できます。
行数の取得方法を確認するために、「テストデータが生成できる tRowGenerator とちょっと便利なTalendDataGeneratorルーチン」で作成したジョブを修正していきます。
処理された行数の取得
「テストデータが生成できる tRowGenerator とちょっと便利なTalendDataGeneratorルーチン」では、100行のデータが生成されるようにしていましたが、行数を確認したいというサンプルとしては面白くないので、生成する行数を次のように修正します。
デフォルトでは「生成する行数」に100と入っているのですが、この100を削除し「Ctrlキー+スペースキー」(入力補完)を押して表示されるリストの中から「random」(Numeric.random(0,100))を選択します。この関数により、0から100までの値がランダムに設定されるようになります。
次に tMsgBox コンポーネントを配置し tRowGenerator によるデータの生成が完了(SubjobOk)したらメッセージボックスを表示するよう繋いでいきます。
tMsgBox コンポーネントをダブルクリックしメッセージを次のように変更します。
((Integer)globalMap.get("tRowGenerator_1_NB_LINE")) + "行処理されました。"
((Integer)globalMap.get(“tRowGenerator_1_NB_LINE”))の部分は、「Ctrlキー+スペースキー」で表示されるリストから選択することができます。
処理された行数に関しては、「コンポーネント名 + NB_LINE」というキーで保持されるためglobalMap.getを使用して取得することができます。
作成したジョブを実行すると次のようなメッセージボックスが表示され、行数が取得できることを確認することができます。