[IDMC]Targetをパラメータ化して実行時に動的指定する

## はじめに
Informatica Intelligent Data Management Cloud(IDMC/旧称IICS)でのちょっとしたTipsを纏めていきます。日々の活動の中で検証した結果記録であり、忘れやすい自分のためのメモですが、少しでも皆様のお役に立てればと思い公開していきます。記述方法など試行錯誤しており随時更新するかもしれません。

## この記事のゴール：IDMC データ統合における Target接続のパラメータ化手段が解るようになる
共通のデータ連携処理を作り、接続先を実行時に動的指定して実行したい場合があると思います。IDMCのデータ連携ではパラメータを利用して実行時に動的に接続先を指定する事が出来ます。その具体的な設定例をメモしておきます。

尚この記事の内容は、R41 で検証しています。


### 具体的な手順
まずは普通に加工変換を含めたマッピング全体を作成し動作確認を行い、最後にターゲット接続部分をパラメータ化します。これは[以前の記事"Sourceのパラメータ化"](https://qiita.com/asekine-infajp/items/f255f53deb971c307898)と同じです。

今回の対象マッピングはこちら。Textファイルで提供された売上データをOracleデータベース(RDS)のテーブルに投入します(動作確認済み)。このマッピングのターゲット接続をパラメータ化して行きましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/05e70e9d-3191-1364-0c78-ef5559a31035.png)

#### 1. ”入力パラメータ”を作成
パラメータパネルを表示させ、”入力パラメータ"の新規追加(＋ボタン)をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/e1e03176-8a85-d01d-e744-3930ecbfc054.png)
表示される”新規入力パラメータ”ダイアログでパラメータを作成します。以下の箇所を設定します。
- 名前：パラメータ名。
- タイプ：接続 を指定します。
- 接続タイプ：今回は Oracleの接続を利用しますので Oracle。
- 実行時にパラメータのオーバーライドを許可する：チェック  ・・ 実行時にパラメータを上書き可能にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/5b56c7ec-38b3-0ecd-29f5-84d0fe29c8bd.png)

#### 2．Targetトランスフォーメーション の 接続をパラメータ化
Targetトランスフォーメーションのターゲットプロパティで、以下のように作成したパラメータを読み込むように設定変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/9a11fd2c-8b69-662e-8a7b-f70bf5bd1baa.png)

マッピングで必要な設定は上記まで。このマッピングを実行するマッピングタスクを作成します。

#### 3. マッピングタスクの設定
マッピングでTarget接続をパラメータ化した為、マッピングタスクでは実行時のTargetを指定するタブが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/d689a637-1b2b-5c36-4ea7-e34c1aec93e6.png)
Target接続パラメータ conn_OracleDBは Oracleタイプを選択したため、ここではOracleタイプの接続からいずれかを指定します。実行時に上書きできるのでここの接続名”_Oracle”は仮指定のような形となります。

上記まで設定すればマッピングタスクとして保存でき、完成となります。

## (補足)パラメータを指定して実行してみる
パラメータを動的に指定して実行する手段はいくつかありますが、今回はタスクフローにしてRestWebServiceとして実行してみました。
詳細は割愛(別途記事にする！いつか、、)しますが、、

こんな感じ↓に、入力フィールドにパラメータ用の文字列を受け付けるタスクフローとして、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/467719b6-ebe6-9f74-7f72-8b203e85c087.png)
データタスクに今回作成したマッピングのマッピングタスクを設定し、、入力フィールドで作成したin_conn_OracleDbStringを渡すようにしています。手順を少し紹介します。鉛筆ボタンを押して、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/bc13eb6d-b243-cc07-9dac-729c42722db1.png)
値の編集画面で 計算式 を選び、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/27b1375f-bee5-f833-052a-6c76e5ab38b3.png)
以下のように設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/d4f7edd9-0303-c662-e08c-dedb3082c431.png)
直接入力しても良いですが、式エディタで以下のように、入力フィールドで作成した”in_conn_OracleDbString”を「追加」すると、式として「$input.in_conn_OracleDbString」が設定されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/e51faffb-8130-cb40-8d53-9017c52bc496.png)
保存し、パブリッシュして、発行されたサービスURLをコピーして
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/19c36bee-0f14-9a23-3fe2-a64e10a81d1f.png)
そのURLをブラウザから呼出、実行してみます。そのときにパラメータとして、今回の処理で実際に利用するターゲット接続名”asekine_oraclerds_local”を渡します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/3fd2d248-132e-b3e7-4fe3-1bb4f300fd7d.png)
モニタで確認すると、パラメータが渡されて実行され成功したことが確認出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/90bc441b-bfd2-83f5-9cbc-6da758c0cc13.png)

以上、検証結果を記述してみました。何かのお役に立てば幸いです。