pentaho data integration を使ってSalesforceのデータを抽出したり更新したりする話11(文字列結合)

2つの文字列を結合するときに、nullが存在する可能性がある場合は注意が必要です。

例として。
入力ファイルに適当な文字列を作る。
2015-09-14_pentaho06.jpg

ktrは計算を入れる。
2015-09-14_pentaho07.jpg


計算はA+Bにして文字列を結合させる。
2015-09-14_pentaho08.jpg

その結果。
2015-09-14_pentaho09.jpg

nullな項目があると、結合してくれないです。空文字として扱ってくれないのですね。



そこで対処ですが、どうしても計算でがんばりたい場合はちょっとしんどいですが各項目をnullかどうかフィルタをかけ、場合分けしていけばなんとかなります。
2015-09-14_pentaho10.jpg

片方がnull、もう片方は値ありの場合は、計算の「フィールドAの値をコピー」で結合結果の列に値をコピーします。
または、、フィールド値設定のステップでコピーをしてもいいかもしれません。
2015-09-14_pentaho11.jpg

両方nullの場合は、結合結果の列に空文字を入れるという意味で、定数追加を入れておいてあげます。

これで、無事結合できました。
2015-09-14_pentaho12.jpg



しかし、このやり方は見づらい、しんどい。
ので、javascriptまたは数式を使うとすっきりします。
javascriptだと以下のような例になります。
2015-09-14_pentaho13.jpg

javascript内で結合の式を書いてあげる。っと
2015-09-14_pentaho14.jpg


var ketugou = "";
if(文字列その1 != null && 文字列その2 == null){
    ketugou = 文字列その1;
}else if(文字列その1 == null && 文字列その2 != null){
    ketugou = 文字列その2;
}else if(文字列その1 != null && 文字列その2 != null){
    ketugou = 文字列その1 + 文字列その2;
}

これで、だいぶすっきりしました。



数式の場合は以下のような感じです。
2015-09-14_pentaho15.jpg

数式でもNullチェックは入れてあげる必要があるみたいです。IFNAを使ってみました。
2015-09-14_pentaho16.jpg

IF(ISNA([文字列その1]);"";[文字列その1])&IF(ISNA([文字列その2]);"";[文字列その2])


数式を使ったほうが処理が早いってうわさをどこかで聞きましたが、javascriptのほうがメンテナンスしやすいかと思います。
お好みでしょうか?






pentaho data integrationの話は、ここでネタ切れのため、いったん終了です。
また何か新しい発見があった場合はメモしていきます。

データローダの代わりに使うってことで勉強したけれど、まあ意外とクセがあってどっちもどっちですね。
データ量が多くてExcel操作をするとよく固まる。っていう場合は試してみてもいいかと思います。
少量のデータでうまくいくか試しておけば、大量データでもkrtを使いまわせるのは強みだと思っています。
関連記事


--------------------------------------------------------------------------------------

コメントの投稿

非公開コメント

このブログについて
  • 全記事一覧(時間順)
  • このブログについて
  • 私のプロフィール
  • 当ブログで扱っている動画について
  • 記事違いなコメントのお返事

  • カテゴリー
    twitter
    カレンダー
    05 | 2017/06 | 07
    - - - - 1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 -
    Amazon
    でたらめな当ブログにぴったりな商品を自動で表示するみたいです。



    月別アーカイブ
    プロフィール

    たづみ

    Author:たづみ
    ・1981年生まれの男
    ・もう少し詳細なプロフィールはこちらで

    最新コメント
    アクセスランキング
    [ジャンルランキング]
    日記
    1757位
    アクセスランキングを見る>>

    [サブジャンルランキング]
    会社員・OL
    357位
    アクセスランキングを見る>>