ステップ2. 変換マップを定義する
このステップでは、PSLMST(人事)ファイルをマップに追加し、テキスト・ファイル(CSV)を追加後、そのフィールドの定義をします。 その後、この2つのオブジェクト間の基本的なマッピング情報を定義します。
1. [詳細]タブからボタンを使ってMapforceを開きます。
2. Mapforceで、メニュー・オプションから[挿入]/[データベース]を選択します。
3.
で[IBM DB2 (ODBC)]を選択して、 ボタンをクリックします。
4. 新規データ・ソース・ネームを作成するオプションを選択し、[接続]ボタンをクリックします。
E
5. データソース・ネーム<server>_<library>を入力します。ここの<server>はIBM i、<library>はこの接続の省略値となる特定のライブラリです。 - このライブラリには人事デモストレーション・システム・ファイルが含まれていなければなりません。例: LICEDEMOLIB
6. [サーバー]タブを選択します。SQLのデフォルト・ライブラリ<library>を入力します。この<library>は人事デモストレーション・システム・ファイルが含まれるライブラリです。例: LICEDEMOLIB
7. [どのようにデータソースとサーバーの通信を行いますか?]の画面では、[ネイティブを使用]を選択して[OK]をクリックします。
8. [データベースオブジェクトを挿入]ダイアログでは、最初のIBM i ライブラリが強調表示されています。 矢印のアイコンを選び、ライブラリのドロップダウン・リストから必要なライブラリを選択します。 今までと同様、IBM i ライブラリはLANSA Composerのインストールにより異なります。例えばLICDEMOLIBなどになります。
9. DEPTAB(部門テーブル)ファイルを選択します。
10. 下にスクロールしてPSLMST(人事)ファイルを選択します。
11.
ボタンを選択します。12.
ダイアログで、 ボタンを選択して開始します。
13.左側の
欄で、DEPTABテーブルを、そしてDEPTMENT欄を選択します。 右側の 欄で、PSLMSTテーブルを、そしてDEPTMENT欄を選択します。
14.[OK]ボタンをクリックします。
15.引き続き
ダイアログで、 ボタンをクリックします。 マップは以下のようになります。
16.メニュー・オプションから[挿入]/[テキストファイル]を選択し、テキスト・ファイルを追加します。
17. [標準CSVまたは固定長のファイルに単純な処理を使用]のラジオ・ボタンを選択し、[続ける]をクリックします。
18.[最初の行をフィールドの行と見なす]のチェックボックスがチェックされていないことを確認します。 最初は1フィールドだけ定義されています。 一番上の行をクリックして、[フィールド1]を[EmployNumber]に置き換えます。
19.[フィールドを追加]ボタンを押して新しいフィールドを追加し、次のフィールドを加えます。
a. Surname
b. GivenName
c. Address1
d. Address2
e. Address3
f. PostCode
g. Department
h. DeptDescription
20.PostCodeをintger(整数)に変更します。
21.[最初の行をフィールドの名前と見なす]チェックボックスにチェックマークを入れ、[OK]ボタンをクリックして変更を保存します。
フォームは以下のようになります。
22. [OK]をクリックしてテキスト・ファイルを挿入します。
マップは以下のようになります。
23.PSLMSTテーブルの下のDEPTABテーブルを展開し、PSLMSTとDEPTABテーブル、およびテキスト・ファイルのフィールド間の必要なマッピングを定義します。 マップは以下のようになります。
ODBC DSNに関する注意事項
一般的にMapForceデータベース・コンポーネントはデータベース・スキーマ名で修飾されています。 IBM i でこれに相当するのはIBM i ライブラリ名です。
LANSA Composerの場合、準備された変換マップに指定のライブラリのデータベース・テーブルへの参照がハード・コーディングされているだけでは十分ではありません。LANSA Composerが何もしなければ、こうなってしまいます。
LANSA Composerバージョン3.0では、マップ定義(.mfdファイル)はMapForceがJavaコードを生成する前に修正されます。 (必要であると判断されると)マップ定義(.mfd)ファイルの準備段階でのみ使用される一時コピーに修正が加えられます(元のマップ定義ファイルは変更されません。) この修正により、MapForceのデータベース・コンポーネント内の"Strip schema names"オプションのスイッチが自動的にオンになり、MapForce独自のコード・ジェネレータが修飾のないデータベース参照を訂正します。 (このMapForceのオプションはMapForceの以前のバージョンにはありませんでした。)
ここでの考慮事項としては、"strip schema names" は以下のような理由で必要なファイルが見つからなかった場合に、"マップ準備の失敗"という結果になる可能性があります。
- マップがSQL SELECTとSQL-WHEREコンポーネントの両方もしくはどちらか一方を使用 かつ
- 使用しているODBC DSN が適切なライブラリ・リストを指定していない
つまり、このような場合は適切なSQLのデフォルトライブラリやライブラリ・リストを指定するDSNを使用する必要があります。
これに関する詳細は付録Cのに説明されています。 LANSA Composerバージョン3.0でIBM i データベースを参照する変換マップを処理する場合は、ここを読むようにしてください。
追加の注意事項:
MapForceの独自の"Strip schema names"が(マップの設計者によって、もしくは上記で説明されているように準備段階で自動的に)使用されたとしても、MapForceはユーザー入力のSQL名、つまりMapForceのSQL SELECT機能を使用して入力されたSQLからスキーマ名の修飾子は削除しません。