---
title: "MapForceにおける拡張可能なIf-Else文は、switch文と同様の機能を提供します"
date: "2011-04-26"
categories: 
  - "data-integration"
tags: 
  - "data-mapping"
  - "mapforce"
  - "v2011r2"
description: MapForce 2011 R2に搭載された改良版のif-elseコンポーネントが、switch文のように機能し、データマッピングの効率と可読性を向上させる仕組みについて解説します。
---
Status: #blog

Tags:  #data-mapping #mapforce #v2011r2

Categories: [data-integration](/blog/ja/category/data-integration.md)
# MapForceにおける拡張可能なIf-Else文は、switch文と同様の機能を提供します

ユーザーからのご要望を受け、MapForceのif-elseコンポーネントが、[MapForce 2011 Release 2](https://www.altova.com/ja/mapforce.html)において改良され、任意の数の変数を扱えるようになりました。この機能は、多くのプログラミング言語におけるswitch文に相当し、特定の条件に値を照合することで、マッピングプロジェクトにおけるデータの流れを容易に制御できます。例えば、以下のスクリーンショットは、他のコンポーネントと組み合わせて使用されたif-thenコンポーネントの例で、温度データを分析し、以下の結果を出力しています

- もし温度が20度より高い場合、`true` が `bool1` に、そして "high" が `value-true1` にそれぞれ渡されます。
- もし温度が5度未満の場合、`true` が `bool2` に渡され、"low" が `value-true2` に渡されます。
- 特定の温度において、値と真偽が一致するパラメータは一つしか存在できません。そして、そのパラメータの値が、対象となるコンポーネントの "desc" 属性に渡されます。

[![MapForceには、必要に応じて拡張可能なif-else文のサンプルが含まれています](https://lh4.ggpht.com/_REdrfeVqYdU/Ta2Lo1iDnOI/AAAAAAAAAX4/kmASc0NQELo/image%5B5%5D.png?imgmax=800 "Expandable if-else example included with MapForce")](https://www.altova.com/whatsnew.html#mapforce) 

上記のスクリーンショットは、MapForceのインストール時に付属するサンプルファイル「Classify Temperatures.mfd」から取得したものです。そのため、すぐにサンプルデータを処理したり、マッピングを修正して結果を確認したりすることができます。新しい展開可能なif-else機能は、開発者がデータマッピングをより迅速に構築するのに役立ち、条件付きテストをより効果的に表示するマッピング図を作成し、展開されたif-else関数が個々のコンポーネントの階層構造よりも読みやすいことから、テストとデバッグを容易にします。これは、多数の条件を評価する必要がある場合に特に顕著です。以下のスクリーンショットは、文字列を数値に変換する例で、文字列は月の3文字の略語で構成されています。（ここではスペースを節約するため、このif-else関数は年間最初の6ヶ月の文字列のみを処理します。） 

[![MapForceにおける、拡張可能なif-else文](https://lh6.ggpht.com/_REdrfeVqYdU/Ta2LpYGPmXI/AAAAAAAAAYA/E7bi5VFTTjU/image_thumb%5B5%5D.png?imgmax=800 "Expandable if-else statement in MapForce")](http://lh5.ggpht.com/_REdrfeVqYdU/Ta2LpLP_TFI/AAAAAAAAAX8/iZp2_aoamv8/s1600-h/image%5B10%5D.png) 

コピー＆ペーストの際に、うっかり5月に適用される出力定数を、4から5に更新する作業を忘れてしまいました。このような間違いは、すべての処理ロジックが一目で確認できる場合に、見つけやすく、修正も容易です！(**追記:** この例は、ネストされた条件分岐や連鎖的な条件分岐よりも、拡張された条件分岐が優れていることを示すために作成されました。これらの条件分岐は、すぐに画面全体に表示するには大きくなりすぎる可能性があります。この問題や、同様の変換を解決するためのより優れた設計については、[MapForceにおけるSwitch文とルックアップテーブルの比較](https://www.altova.com/blog/2011/05/switch-statement-vs-look-up-table-in.html)というブログ記事をご覧ください。) 

**ご自身のデータマッピングプロジェクトで、拡張されたif-else関数がいかに簡単に利用できるか、ぜひご自身で体験してみてください。** **[MapForceの無料30日間トライアル版をダウンロード](https://www.altova.com/ja/download/mapforce/data_mapping_enterprise.html)** **を今すぐお試しください。**
