メイン コンテンツをスキップする 補完的コンテンツへスキップ

式ビルダーを使ってコードを作成

一部のジョブでは、コンポーネントのパラメーターを記述するため、コードを一部作成する必要があります。一部のコンポーネントの[Component] (コンポーネント)ビューでは、[Expression Builder] (式ビルダー)インターフェイスが、式として知られているこの種の(Java)コードの作成に役立ちます。

tMapの式ビルダーを使って、入力カラム、出力カラム、または変数の式を編集したり、複数の出力カラムの式を同時に変更したりできます。

個別の式を編集する

About this task

以下の例では、[Expression Builder] (式ビルダー)を使って2つの個別の式を編集する方法を示します。

tMapコンポーネント、tMysqlInputコンポーネント、tFileInputDelimitedコンポーネント、tLogRowコンポーネントを使ったジョブの例。

この例では、2つの入力フローがtMapコンポーネントに接続されています。

  • DB入力からは、名と姓を空白文字で区切った人名のリストが受信されます。

  • ファイル入力からは、小文字の米国の州のリストが受信されます。

tMapで式ビルダーを使用して、まず、名と姓を区切っている空白文字を下線文字に置き換えます。次に、州を小文字から大文字に変更します。

Procedure

  1. tMapでは、適切な内部結合を設定して参照マッピングを設定します。
    tMapの詳細は、tMap操作およびデータフローをマッピングをご覧ください。
  2. メイン(row1)入力からNamesカラムを出力エリアに、ルックアップ(row2)入力からStateカラムを同じ出力エリアに向けてドロップします。
  3. 最初の[Expression] (式)フィールド(row1.Name)をクリックし、次に式の横に表示される[...]ボタンをクリックします。
    [...]ボタンの場所。

    [Expression Builder] (式ビルダー)ダイアログボックスが開きます。

    [Expression Builder ] (式ビルダー)ダイアログボックスの概要。
  4. [Category] (カテゴリー)エリアから、実行する適切なアクションを選択します。In this example, select StringHandling and select the EREPLACEfunction.
  5. [Expression] (式)エリアで、テキストの部分にrow1.Nameを貼り付け、次のコードを取得します: StringHandling.EREPLACE(row1.Name," ","_")。この式で文字列の空白区切り文字を下線に置き換えます。
    特定の古い文字列内の特定の正規表現に一致するすべてのsubstringを特定の置換文字列に置き換え、新しい文字列を返すために、StringHandlingカテゴリーのCHANGEファンクションとEREPLACEファンクションが使用されています。これらのファンクションには次の3つのパラメーターがあります。
    • oldStr: 古い文字列。
    • newStr: 一致させる正規表現。
    • replacement: すべての一致について置き換える文字列。
  6. ここで[Test] (テスト)エリアの該当する[Value] (値)フィールドにプレースホルダー値のChuck Norrisを入力し、Test!をクリックして、出力が正しいかどうかをチェックします。この例では、Chuck_Norrisと正しく変更が実行されているはずです。
  7. OKをクリックして変更を確定した後、2番目のカラム[State] (州)に対して同じ操作を行います。
  8. tMap 出力でrow2.Stateの式を選択して[...]ボタンをクリックし、[Expression builder] (式ビルダー)を再度開きます。
    [Expression Builder ] (式ビルダー)ダイアログボックスの概要。

    今回使用するStringHandlingファンクションはUPCASEになります。完全な式では、StringHandling.UPCASE(row2.State)と表示されます。

  9. もう一度、[Test] (テスト)エリアでプレースホルダー(indianaなど)を使い、式の構文が正しいことをチェックします。この例では、Test!の結果は、INDIANAと表示されるはずです。次にOK をクリックして変更を確定します。

    [tMap Expression] (tMap式)フィールドには、現在両方の式が表示されています。

    [マップ]エディター。

Results

これらの変更はフロー処理で実行されます。この例の出力は次のように示されます。

いくつかの結果の例。

複数の出力カラムに式を同時に設定

About this task

tMapでは、複数の出力カラムの変換動作を同時に定義できます。

以下の例では、単純な変換ジョブを使用して、tMapで複数カラムの式をバッチ方式で定義する方法を示しています。

tFileInputDelimitedコンポーネント、tMapコンポーネント、tLogRowコンポーネントを使ったジョブの例。

以下は、この例で使用している入力CSVファイルの内容です。

id;firstname;lastname;city;state
               1; Andrew;Adams;Madison; Rhode Island
               2;Andrew; Garfield; Saint Paul;Colorado
               3; Woodrow;   Eisenhower    ; Juneau; New Hampshire
               4;Woodrow; Jackson;Denver;Maine
               5; Lyndon;Buchanan; Pierre; Kentucky
               6;  Bill;Tyler; Helena; New York
               7;George;Adams;Oklahoma City    ;Alaska
               8;Ulysses; Garfield;Santa Fe;Massachusetts
               9; Thomas;Coolidge  ;Charleston;   Mississippi
               10;John;Polk;   Carson City;  Louisiana

この例では、[String] (文字列)タイプの出力カラムはすべて切り詰めて整えられ、最初と最後のホワイトスペースが削除され、姓と州名が大文字に変換されます。

Procedure

  1. [Map Editor] (マップエディター)で入力と出力のマッピングを行います。
    [マップ]エディター。
  2. 出力テーブルで文字列タイプのカラムを選択します。すなわち、この例ではfirstnamelastnamecitystateです。選択したカラムを右クリックすると、[Apply Routine] (ルーチンを適用)ボタンが表示されます。
    マップエディターからの[Apply Routine] (ルーチンを適用)ボタン。
  3. [Apply Routine] (ルーチンを適用)ボタンをクリックして、[Expression Builder] (式ビルダー)ダイアログボックスを開きます。
    [Expression Builder ] (式ビルダー)ダイアログボックスの概要。
  4. [Categories] (カテゴリー)エリアでStringHandlingを選択し、[Functions] (ファンクション)エリアでTRIMファンクションをダブルクリックして、[Expression] (式)フィールドにStringHandling.TRIM(${0})を取得します。
    [Expression Builder] (式ビルダー)ダイアログボックスの[Expression] (式)フィールド。
  5. OKをクリックして[Expression Builder] (式ビルダー)ダイアログボックスを閉じます。
  6. [Map Editor] (マップエディター)の出力テーブルでlastnameカラムとstateカラムを選択し、選択したカラムを右クリックし、[Apply Routine] (ルーチンを適用)ボタンをクリックして[Expression Builder] (式ビルダー)ダイアログボックスを開きます。
  7. [Categories] (カテゴリー)エリアでStringHandlingを選択し、[Functions] (ファンクション)エリアでUPPERCASEファンクションをダブルクリックして、[Expression] (式)フィールドにStringHandling(${0})を取得します。
    [Expression Builder] (式ビルダー)ダイアログボックスの[Expression] (式)フィールド。
  8. OKをクリックして[Expression Builder] (式ビルダー)ダイアログボックスを閉じます。

Results

ここで、これらの出力カラムの式は次のようになります。

マップエディターからの[Output] (出力)セクション。
ファンクションはフロー処理で実行されます。この例の出力は次のように示されます。
いくつかの結果の例。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。