Informatica Cloud for Salesforce ~タスクウィザード編~

前回のInformatica Cloudのブログでは、Informatica Cloud 30日間無料体験を導入し、簡単に連携処理を作成するところまでやってみました。今回は特にSalesforceとの連携について、Informatica Cloudを使うと、どのような良いことがあるのか、タスクウィザードで連携処理を作成しながらご紹介します。

今回の例では、Salesforceからデータを取得して、データの加工を行い、Salesforceにデータを格納します。

処理のイメージ

 

まずは、タスクウィザードを開きます。
「メニュー>タスクウィザード>データ同期」と進みます。「新規」ボタンをクリックすると、「データ同期タスクウィザード」が立ち上がります。

1.定義

Salesforceに対する処理として、Insert/Update/Upsert/Deleteをサポートしています。

2.ソース

Salesforceをソースとして選択した場合、単一のオブジェクトをデータのソースとして選択することも可能ですが、さらに主従関係/参照関係で関連付けられた複数のオブジェクトを同時に取得することも可能です。画面上から関連するオブジェクトを選択するだけで設定でき、SOQLクエリを書く必要がありません。「」にチェックを入れると、表示される項目名をAPI名からラベル名に切り替えることも可能ですので、SalesforceのAPI名を見慣れないユーザでも設定が可能です。

screen3
複数オブジェクトの選択

 

3.ターゲット

細かいところですが、ソースやターゲットを選択する際のオブジェクト選択ダイアログも非常に使いやすくなっています。API名、ラベル名問わず、部分一致で検索することができます。こういったところに、エンジニアではなくとも簡単にデータ連携を構築することができるようにという、私たちのコンセプト「Any User」が現れています。

screen4
オブジェクト選択ダイアログ

 

4.フィルタ

フィルタの設定では、データをソースとなるオブジェクトから抽出する際の条件を指定します。以下の画面のように、「$LastRunTime」を使うことによって、データ連携が最後に行われた時刻以降に更新されたデータのみの差分抽出を行うことが可能です。Salesforceではデータのインタフェースに対して、バルク処理の実行回数などガバナ制限が存在します。またアップロードする際も同様にガバナ制限、一括処理のキューイングによる性能劣化が発生する可能性があります。連携するデータ量を必要最小限に抑えることで、そういった制限、制約に引っかかるリスクを低減できます。日付時刻項目ではなく、日付項目でフィルタを行う場合には「$LastRunDate」を使用します。

screen6
フィルタ設定

 

5.フィールドマッピング

フィールドマッピングではデータの変換、項目の移送などの定義を行います。フィールドマッピングの中で特に重要なのが「関連オブジェクト」、「フィールドの更新」、「関数」です。

・関連オブジェクト
この機能は、Salesforceの主従関係/参照関係項目にデータを投入する際に役立ちます。親オブジェクトの外部IDを指定してデータを登録することが可能となり、これにより親子関係のデータの登録を非常に簡単に行うことができます。

・フィールドの更新
[フィールドの更新] ボタンをクリックすると、メタ情報を最新の情報に更新します。新しく項目が追加された場合など、この機能を使うことで新たに追加されたオブジェクトのみを再設定し、項目の追加を行うことができます。非常に簡単かつ素早く項目の追加を行うことが可能となります。

・関数
Informatica Cloudでは、データ変換を行うために様々な関数を用意しています。一般的な文字列操作(文字列連結・文字列の抽出・トリム)/データ変換(データ型の変換・チェック、置換)/日付関数/条件/エラーファイルへの出力などおよそ120個の関数があります。Excelの関数を使うように簡単に使いこなすことのできる非常に強力なデータの変換機能で、この関数を利用することで、コード値の変換などを行うことが可能です。
Salesforceから提供されるDataLoaderを利用してデータ連携を実施するケースは多くあると思います。DataLoaderはデータをSalesforceから抽出する、登録するということに関してはとても使いやすく、バッチ処理の作成も可能であるため非常に便利なツールです。ただ、Dataloaderには変換処理がないために、登録時のトリガでコード値の変換を行ったり、Salesforceの数式を使うことによって、表示のみ数式項目を使用しているということはないでしょうか?各項目の項目値の変換処理をトリガに記述し、ソースとなるシステムの項目が変更・追加になるたびにコードを書き換えたり、数式をSOQLの条件に使う場合には性能懸念もあるため、コード値で検索をしたり、システムが大きく、時間がたつにつれ、徐々に複雑にわかりにくい構造となってしまいます。関数はシンプルな機能ですが、Salesforceで無理なコード変換を避けることにより、シンプルなSalesforce環境を構築することが可能となります。

ここで紹介した3つの機能の他にも、ルックアップ(マスタ情報からの項目値の取得)やオートマッチ(マッピング情報の自動設定)機能、PowerCenterのマプレットの利用、ドラッグ&ドロップでのマッピング作成が可能であり、使い勝手と機能性を兼ねそろえたマッピング機能を提供しています。

6.スケジュール

スケジュールでは最短で5分に1回の連携を組むことが可能です。また、繰り返したい曜日、繰り返しの期間などを設定することもできます。
Salesforceがデータソースとなっている場合には、Salesforceのアウトバウンドメッセージを利用してデータ連携を実行し、アウトバウンドメッセージで送信されたレコードをターゲットに格納することも可能です。

screen7
スケジュールの設定画面

また、連携処理の前処理、後処理を追加することも可能です。今回はSalesforce-Salesforceの連携を例示しましたが、ファイル-Salesforceの連携を行う場合には、連携後にファイル名を変換してアーカイブしておくことも可能です。

以下の画面は詳細オブションのセクションです。詳細Salesforceオプションでは、Nullでの更新やBulkAPI/SOAPAPIの選択の設定を行います。フィールド名の更新/挿入で外部IDを選択すれば、Salesforce IDではなく、外部IDによるデータの更新が可能です。実行モードで詳細を選択すると、連携処理実行時のログを出力します。ログを参照することで、データ連携処理がうまく行かない場合など原因の特定に役立ちます。

screen8
詳細オプション

設定がすべて終わりましたら、「保存して実行」として即時実行が可能です。スケジュールを使って実行しても良いでしょう。

最後に

ここまでタスクウィザード通してInformatica Cloudの機能を見てきました。非常にユーザビリティが高く、連携を行う処理・ソースコードをまったく意識することなく、そして十分業務に耐えうるデータ連携を組むことがご理解いただけたかと思います。
弊社では毎月Informatica Cloudセミナーを開催しておりますが、その中でもやはり「データ連携にかかるコスト/リードタイム」というところに課題認識されているお客様が多くいらっしゃいます。Salesforceの項目の追加は10分あれば(画面やテストを含めても1日あれば)終わるのに、データ連携に2週間、3週間もかけてしまっていては、ビジネス環境の変化についていくことはできません。Informatica Cloudを使うことによってそういった課題も解決することができるのです。
タスクウィザードはInformatica Cloudの機能のほんの一部です。他にもSalesforceを生かすための機能が数多く備わっています。Salesforceのデータのアーカイブ、アーカイブしたデータの分析基盤への連携、フルSandBoxデータのマスキングしたテストデータの活用、Revを活用したデータ分析など、引き続き、ブログにて公開していきますのでご期待ください。

コメント