ステップ2. 変換マップを定義する

LANSA Composer

ステップ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.引き続き[データベースオブジェクトの挿入]ダイアログで、[OK]ボタンをクリックします。 マップは以下のようになります。

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の「IBM DB2 for i5/OSの変換マップに関する追加考慮事項」に説明されています。 LANSA Composerバージョン3.0でIBM i データベースを参照する変換マップを処理する場合は、ここを読むようにしてください。

追加の注意事項:

MapForceの独自の"Strip schema names"が(マップの設計者によって、もしくは上記で説明されているように準備段階で自動的に)使用されたとしても、MapForceはユーザー入力のSQL名、つまりMapForceのSQL SELECT機能を使用して入力されたSQLからスキーマ名の修飾子は削除しません