サンプル: 固定長テキストファイルを(データベースへ)マッピング

 

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データソースとターゲット > CSV とテキストファイル >

サンプル: 固定長テキストファイルを(データベースへ)マッピング

 

このサンプルでは固定長テキストファイル (FLF) と MS Access データベースの間のマッピングを行います。このサンプルで使用されるファイルは、 <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ フォルダーに収められています。ソーステキストファイルとターゲット データベースは、従業員のリストを保管しています。ソースファイル内では、記録は明示的にサイズにより以下のようにカンマで区切られています:

 

フィールドの位置と名前

サイズ (文字数)

Field 1 (First name)

8

Field 2 (Last name)

10

Field 3 (Phone extension)

3

Field 4 (Email)

25

Field 5 (Position)

25

 

マッピングの目的は、データベース内の各社員の内線番号を、各内線番号のプレフィックスに "100" を追加し、ソースファイル内のものに更新することです。 このゴールを達成するには、 以下を行います:

 

 

ステップ 1: テキストコンポーネントの挿入と構成

1.メニューオプションの「挿入 | テキストファイル」を選択するか、テキストファイルを挿入アイコン ic-textをクリックします。テキストコンポーネントを挿入ダイアログボックスが表示されます。

dlg_insert_text_use_simple

単純な処理を使用... を選択して、「続ける」 ボタンをクリックします。

2.入力ファイルボタンをクリックして <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\Altova-FLF.txt ファイルを選択します。ファイルが 1 つの(大きな)文字列と、# の充填文字から構成されていることが確認できます。

tut_flf_01

3.固定長を選択します。

tut_flf_02

4.レコードの区切り文字があるものとして処理チェックボックスをクリアします。

tut_flf_03

5.黄色でハイライトされた3行は編集することができます。また、以下を指定することができます: i) フィールド名、ii) データ型、 iii) フィールドのサイズ。値を 8 に変更した後 Enter キーを押下します。 8文字ごとにフィールドが区切られるため、より多くのデータが最初のレコードに表示されます。

tut_flf_04

6.フィールドを追加ボタンをクリックして、新たなフィールドを追加します。2番目のフィールド長さを10文字に指定します。

tut_flf_05

7.同様の方法を使用して、更に3つのフィールドを作成します。長さはそれぞれ 3、25、25 文字になります。更にフィールドの名前をそれぞれ First、Last、Tel.-Ext、Email、Title とすることで、簡単にマッピングを行えるようにします。プレビューは以下のように表示されます:

tut_flf_06

8.固定長フィールド設定グループのカスタムテキストボックスをクリックして、ハッシュ文字 (#) を入力します。この操作により、充填文字として使用されている文字が入力文字列から取り除かれます。

tut_flf_07

9.「OK」をクリックします。

tut_flf_08

10.「コンポーネント名を変更」ボタンをクリックして、名前を変更します。テキストファイルコンポーネントがマッピングウィンドウに表示されます。このコンポーネントを使ったデータのマッピングが行えるようになります。

 

tut_flf_09

 

 

ステップ 2: データベースコンポーネントの挿入

1.メニューオプションの「挿入 | データベース」を選択し、Microsoft Access ラジオボタンを選択して 「次へ」 をクリックします。
2.<マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ フォルダー内にある altova.mdb データベースを選択し、「接続」 をクリックします。
3. Person テーブルのチェックボックスを選択し、「OK」をクリックします。

tut_flf_10

 

 

ステップ 3: マッピングのデザイン

1.core | concat 関数をライブラリウィンドウからマッピングタブへドラッグします。
2.メニューオプションの「挿入 | 定数」を選択し、数値ラジオボタンをクリックした後に、新たな内線番号のプレフィックスとして使用する 100 を入力します。この定数が内線番号のプレフィックスを保管します。

tut_flf_11

3.以下のスクリーンショットに示されるマッピングを作成します。

tut_flf_12

4.Person エントリーの隣にあるテーブルアクションボタン btn_dbcomp_action_in をクリックします。
5.「入力データアクション」 のコンボボックスをクリックし、「以下の条件で更新..」 エントリーを選択し、 FirstLast のフィールドが一致するように設定します。この操作により、First の内容がソーステキストファイルとデータベースにて一致する場合のみ、Person テーブルが更新されるようになります。条件が真の場合に取られるアクションはマッピングにより定義されており、この場合は "100" というプレフィックスが追加された内線番号が Person テーブルの PhoneExt フィールドに与えられます。

tut_flf_13

 

ステップ 4: マッピングの実行

出力タブをクリックして、生成された SQL ステートメントをプレビューします。SQL スクリプトの実行ボタン ic-start-sel をクリックして、SQL ステートメントを実行します。


(C) 2019 Altova GmbH