---
title: "複雑な機能に対する、迅速な解決策"
date: "2011-06-27"
tags: 
  - "data-integration"
  - "data-mapping"
  - "mapforce"
  - "version-2011"
description: Altova MapForce 2011は、複雑なデータマッピングを簡素化するために、ユーザーが関数をグラフィカルに組み合わせて利用できる機能を提供します。また、正確なデータ変換を実現するために、段階的なテスト機能をサポートしています。
---
Status: #blog

Tags:  #data-integration #data-mapping #mapforce #version-2011

Categories: [Altova](/blog/ja/category/altova.md) 
# 複雑な機能に対する、迅速な解決策

現代の複雑なデータ通信の要件を満たすためには、データ変換の中には複数のステップを必要とするものがあります。 [Altova MapForce 2011](https://www.altova.com/ja/mapforce.html)を使用すると、様々な種類の数学関数、論理関数、文字列関数、およびその他の[特殊な関数](https://www.altova.com/ja/mapforce/data-processing-functions.html)をグラフィカルに組み合わせることで、複雑な「データ方程式」を構築し、必要な結果を得ることができます。 大規模で複雑なマッピング作業を行っている場合、初めて使用する関数を使用する場合、または関数がさらに処理が必要な中間結果を生成する場合、作業を進める中で、各段階でテストを行うことが役立ちます。 以下の文章を翻訳してください [シンプルなテキストファイル](https://www.altova.com/ja/mapforce/flat-file-mapping.html) 一時的な目標として、現在開発中の関数がどのような結果を返すかを確認するために使用します。 例えば、既存の出力ファイルとそれに対応する情報を記録する際に、データが生成された日時を記録するために、日付と時刻の情報を追加したいとします。 現在、MapForceの「now」機能を使って、テキストファイルに直接接続する簡単なマッピングを作成し、簡単に実験することができます。 

[![テキストファイルに関連付けられた関数](https://lh4.ggpht.com/-NecSm6arE0g/Tf-MKZyrP4I/AAAAAAAAAZM/DyO5RHvbDpU/technote27_1_thumb%25255B2%25255D.png?imgmax=800 "A function connected to a text file")](http://lh3.ggpht.com/-nlHcCbcvjFc/Tf-MJ9mMqQI/AAAAAAAAAZI/lFddbb7blzc/s1600-h/technote27_1%25255B4%25255D.png)

マッピングウィンドウの下部にある「出力」ボタンをクリックすると、すぐに結果が表示されます 

[![`now()`関数の出力](https://lh3.ggpht.com/-d_iemv_ykrc/Tf-MLG7DA1I/AAAAAAAAAZU/tPounch7Ofc/technote27_2_thumb%25255B2%25255D.png?imgmax=800 "Output of the now function")](http://lh5.ggpht.com/-_I-NteTD0tE/Tf-MK-qeWAI/AAAAAAAAAZQ/byuCmyEmvrA/s1600-h/technote27_2%25255B4%25255D.png) 

はい、それでうまくいきますが、出力ファイルの利用者が、より洗練された形式でデータを見たいと思うかもしれません。様々な日付・時刻や文字列の関数を活用し、複雑な処理を行うことで、最終的に以下のような形式でデータを出力することができます 

[![複雑な関数で、文字列を生成します](https://lh3.ggpht.com/-zuEPfPxnuLY/Tf-MMIRLZKI/AAAAAAAAAZc/zj0xQr561RU/technote27_3_thumb%25255B2%25255D.png?imgmax=800 "Complicated function to produce a string")](http://lh6.ggpht.com/-429i3ML-88k/Tf-MLsxsfjI/AAAAAAAAAZY/n5PU6-z0sjs/s1600-h/technote27_3%25255B4%25255D.png) 

あるいは、文字列定数を使って、`format-dateTime`変換関数で書式を定義することもできます 

[![カスタム形式での日付と時刻の出力を行うために、format-dateTime関数を使用します](https://lh3.ggpht.com/-It_hoxtBz5I/Tf-MM0Jw2oI/AAAAAAAAAZk/bsKoKQGZkNc/technote27_4_thumb%25255B2%25255D.png?imgmax=800 "Using the format-dateTime function for customized output")](http://lh5.ggpht.com/-aHLThUl46bI/Tf-MMWQUnkI/AAAAAAAAAZg/oVQM37fNsAg/s1600-h/technote27_4%25255B4%25255D.png) 

作業中に、いつでも「出力」ボタンを押すことができます。そして、以下のような結果が得られるまで、何度でも試すことができます 

[![日付と時刻のカスタム表示形式](https://lh4.ggpht.com/-94YVgt5hGAc/Tf-MNzI5DaI/AAAAAAAAAZs/f1hokVgdvBo/technote27_5_thumb%25255B2%25255D.png?imgmax=800 "Custom string for date and time")](http://lh3.ggpht.com/-mOgE_ufw_ds/Tf-MNTQyQvI/AAAAAAAAAZo/gMCh3pkDtSI/s1600-h/technote27_5%25255B4%25255D.png) 

もし、毎日日付と時刻のデータ型を扱っているわけではない場合、最初から完璧な書式設定文字列を作成して、期待通りの結果を得るのは難しいでしょう。何度かの試行錯誤や、MapForceのヘルプを参照した結果、最終的に以下の書式設定文字列を作成し、日付と時刻の変換関数における書式設定入力に接続された文字列定数に保存しました 

[![dateTimeのフォーマットを定義するための文字列](https://lh4.ggpht.com/-vJlxfpnWDLE/Tf-MOqGOehI/AAAAAAAAAZ0/5kU5pfLXnjI/technote27_6_thumb%25255B2%25255D.png?imgmax=800 "String to define format for dateTime")](http://lh6.ggpht.com/-HT699QUkXRg/Tf-MOSslQNI/AAAAAAAAAZw/qAjirhgmTKw/s1600-h/technote27_6%25255B4%25255D.png)

これまでのところ、基本的なCSVファイルとして定義されたテキストファイルを使用していましたが、ファイルを開き、プロパティダイアログでフィールドを追加したり、よりカスタマイズされた出力ファイルを作成することも可能です。

[![シンプルなテキストファイルのプロパティ設定](https://lh6.ggpht.com/-uU2CKqIDYDQ/Tf-MPvuAgYI/AAAAAAAAAZ8/SzheowFYP3w/technote27_7_thumb%25255B3%25255D.png?imgmax=800 "Properties settings for a simple text file")](http://lh4.ggpht.com/-qZ5CeImVIuI/Tf-MPNq4zRI/AAAAAAAAAZ4/lfbmBTAuC_g/s1600-h/technote27_7%25255B5%25255D.png) 

テキストファイルを出力先として使用する利点の一つは、関数結果の型チェックが行われないため、テキストファイル出力先を使用することで、あらゆる関数の出力を確認し、検証することができます。以下に示すスクリーンショットでは、数学的な関数を作成し、その結果をテキストファイルに出力するために、別のフィールドを追加しています。 

[![2つの対象フィールドを含むテキストファイル](https://lh4.ggpht.com/-bkqK8zHzSGc/Tf-MQXFDV8I/AAAAAAAAAaE/lXmO7FFVIVE/technote27_8_thumb%25255B2%25255D.png?imgmax=800 "Text file with two target fields")](http://lh5.ggpht.com/-i2GuUy7xGa4/Tf-MP0AmpQI/AAAAAAAAAaA/DoEDCUBTPRw/s1600-h/technote27_8%25255B4%25255D.png)

現在の出力は、以下のように、1行でカンマ区切りになった結果になります

[![シンプルなテキストファイルにおける2つのフィールド](https://lh6.ggpht.com/-pZMEjI9YzCA/Tf-MRRwlbrI/AAAAAAAAAaM/H61gauIPrpw/technote27_9_thumb%25255B2%25255D.png?imgmax=800 "Two fields in a simple text file")](http://lh3.ggpht.com/-4qI-JEQq6KU/Tf-MREv_AEI/AAAAAAAAAaI/TlRYz1Ucn_o/s1600-h/technote27_9%25255B4%25255D.png) 

もし最終的なターゲットがデータベースのフィールドや、整数型のデータを持つXML要素である場合、この数学関数が期待されるデータ型を生成しないことがすぐにわかります。テスト環境で関数を完璧に調整したら、それを選択し、コピーして、そのまま大きなマッピングに貼り付けることができます。その後、関数の出力結果を最終的なターゲットに接続します。以下に示すスクリーンショットでは、`dateTime`というフォーマット関数が、文字列として定義されているXMLスキーマ内の要素にマッピングされています。

[![関数を、より大きなマッピング（対応関係）に組み込む](https://lh4.ggpht.com/-yWufMDEjtr4/Tf-MSSrvKUI/AAAAAAAAAaU/jy-aqhTO4vI/technote27_10_thumb%25255B2%25255D.png?imgmax=800 "Function pasted into larger mapping")](http://lh3.ggpht.com/-V7xU_lpVjpA/Tf-MR4WsmXI/AAAAAAAAAaQ/hfRmKCiFRFM/s1600-h/technote27_10%25255B4%25255D.png) 

もしこの機能が今後も繰り返し使用したいものであれば、ユーザー定義関数として定義し、ライブラリに保存することで、簡単に再利用することができます。 

[![Altova MapForce の関数メニュー](https://lh6.ggpht.com/-Qx5nsgVq1MA/Tf-MS30X-JI/AAAAAAAAAac/_IyIHiUGYWE/technote27_11_thumb%25255B5%25255D.png?imgmax=800 "Altova MapForce Function menu")](http://lh6.ggpht.com/-sL7Qf6AitKg/Tf-MSuQoegI/AAAAAAAAAaY/Yz14z0P3Uvo/s1600-h/technote27_11%25255B9%25255D.png) 

複雑な機能を、より大きなマッピングの一部として構築し、テストするために、テキストファイルを一時的なターゲットとして使用することも可能です。その場合、マッピングは複数の出力結果を持つことになります。各出力ファイルの上部右側に配置された「目」のアイコンをクリックすると、出力ウィンドウに表示される出力ファイルを選択できます。

[![より大きなマッピング処理における一時的なターゲットとして、テキストファイルを使用します](https://lh6.ggpht.com/-ROHTGmMGhCc/Tf-MUbPViPI/AAAAAAAAAak/1OdyEKLbGvY/technote27_12_thumb%25255B2%25255D.png?imgmax=800 "Text file as a temporary target")](http://lh3.ggpht.com/-JEuO0O-O1d8/Tf-MTy-EOVI/AAAAAAAAAag/q10Mjah9tBQ/s1600-h/technote27_12%25255B4%25255D.png) 

出力プレビューとしてテキストファイルを選択した場合、MapForceの実行エンジンは、大規模なマッピング処理全体ではなく、テキストファイルに接続されている関数のみを処理します。これにより、関数の結果を確認したい場合や、大規模なデータ処理を行うマッピング全体を実行したくない場合、データベースに不正なデータを挿入するリスクを避けたい場合など、多くの状況で大幅な時間短縮につながります。

**ご自身で、MapForceをデータマッピングプロジェクトに適用することの容易さを体験してください！**
[**30日間の無料トライアルをダウンロード**](https://www.altova.com/ja/download/mapforce/data_mapping_enterprise.html)
**MapForceをお試しください。**
