マッピングのデバッグ

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

ホーム > 

マッピングのデバッグ

MapForce は、 MapForce 内蔵の変換言語のためのマッピングデバッガーを含みます。マッピングデバッガーは、以下の目的を達成する手助けをします:

 

マッピングにより生成された値を個別の コネクタ レベルで確認して分析します。
特定の値を作成するためのコンテキスト (ノードのセット) をマッピングでハイライトします。
各値をリアルタイムで処理または計算するかを確認するため、または、生成されるマッピング出力をプレビューするため、 MapForce をステップバイステップで実行します。
目的 (ブレークポイント) を、マッピングの実行に設定し、現在処理されている値を停止し、表示します。
現在の実行の箇所までのマッピングの実行により処理された値の履歴を確認します。

 

マッピングの変換言語がの BUILT-IN 場合、マッピングデバッガーを使用することができます。異なる言語のためにデザインされたマッピングのデバッグを開始すると、マッピングの言語を BUILT-IN に変換するようにプロンプトされます。メニューコマンド 「出力 / 内蔵の実行エンジン」を選択することにより、マッピングを BUILT-IN にすることにより変更することもできます。どちらの場合でも、マッピングが BUILT-IN 言語内(例: XSLT 関数) で使用することのできないコンポーネントを含む場合 BUILT-IN への変換は成功します。

 

MapForce デバッガーは、(MapForceを使用してコードを書く必要がないため) 従来のデバッガーと異なり、プログラムコードをラインごとにトラバースしません。代わりに、 MapForce により生成されたコードの結果は、デバッガーにより表示されます。具体的な方法は、 デバッガーは、入力と出力コネクタを介してパスされた値をログします。ログされた値は、マッピング専用のウィンドウを介して、直接分析のために使用することができます。

 

以下のセクションは、マッピングデバッガーを使用する複数の方法をハイライトします。

 

ブレークポイントを使用するデバッグ

マッピングの特定の箇所で、デバッグの実行を停止する必要がある場合、従来の開発環境で行われるように、ブレークポイントを設定します。相違点は、ブレークポイントはコードのラインに追加されるのではなく、マッピングコンポーネントの入力または出力コネクタに追加されます。ブレークポイントの条件も追加することができます (これは、設定された条件が満たされると実行を停止する場合役に立ちます)。

 

diagram_debugging_breakpoints

ブレークポイントを希望するコネクタ上で定義し、最初のブレークポイントに到達するまでマッピングを実行し、また次のブレークポイントまでマッピングを継続することができます。このようにして、選択されたコネクタと関連したマッピングコンテキストと値を分析することができます。デバッガーにより与えられた ステップ イン」、「ステップアウト」、 「ステップオーバー」、および 「最小ステップ」 コマンドを使用して実行のスピードを遅くしたり速くしたりすることができます。これらのコマンドによりマッピングの一部をスキップすることができ、またその反対に、必要であればマッピングの一部を更に詳しく実行することもできます。

 

ステップバイステップのデバッグ

デバッグをステップバイステップで行い、マッピングコンテキストとそれぞれのステップに関連した値を分析することができます。このシナリオは前のものと類似しており、 「ステップイン」、 「ステップアウト」、 「ステップオーバー」 および 「最小ステップ」 コマンド.を使用して実行のスピードを速くまたは遅くすることができます。

diagram_debugging_steps

 

値のログを分析する

MapForce にマッピングのデバッグ中に全てのコネクタにより処理された全ての値を記憶(履歴のトレース)するように構成することができます。履歴のトレースを保持することは、データを中心としたマッピングには、向いていないかもしれません。ですから、このオプションは、必要であれば無効化することができます。オプションが有効化されていると、各コネクタにより処理された値の現在の実行のポジションまでの、完全なログを分析することができます。値の作成の理由を理解することのできる、 MapForce に特定の値に関連したマッピングを再作成することもできます。

diagram_debugging_standard

 

現在の実行の箇所に関連した値のコンテキストを設定する

デバッガーがマッピングで特定の実行の位置にある場合、現在の実行の箇所に対応した過去の値のコンテキストを分析することができます。(これは、少し前の時間に戻ることにも比較することができます):

diagram_debugging_step_back

コンテキストはなぜ値が計算されるかを説明します。すなわち、生成されるマッピングの特定の値について説明します。コンテキストとは、 MapForce により近い過去のコンテキストとして設定することもできますが、通常現在の実行の箇所です。 コンテキストが特定の値に設定されている場合、 MapForce は関連するノードをマッピングで直接ハイライトし、マッピングコネクタの横にヒントを表示し、デバッガーに関連したウィンドウ内(値、 コンテキストブレークポイント ウィンドウ) で追加情報を表示します。

 

現在の実行の箇所と同じではない、マッピングのコンテキストを確認した後、コンテキストを現在の場所に再設定することができます:

diagram_debugging_reset

 

制限

現在、マッピングデバッガー は、Visual Studio のための MapForce プラグイン または Eclipseではサポートされていません。
MapForce がマッピングを実行する際、内部でコードを最適化します (例: データをキャッチ、または任意の箇所で中間結果を計算する場合)。これにより、特定のコネクタ(つまりブレークポイント)はデバッグで到達できない場合があります、この場合、 MapForce は通知を表示します。MapForce コード最適化は、マッピングに対するマッピング出力 (をしてこの結果、デバッガーの振る舞い) は同じ場合でも、 MapForce のリリースにより異なる場合があります。
デバッガー1つのターゲットコンポーネントのための出力をデバッグすることができます。マッピング上に複数のターゲットコンポーネントが存在する場合、デバッガーにより実行されるコンポーネントを選択する必要があります。
現在、データベーステーブルアクションデータベースコンポーネントの("全て挿入" や " If の場合更新"など)では、バッギングはサポートされません。
ブレークポイントは次のエンティティに追加することはできません: 定数、 core | position 関数、「全てコピー」 接続の子孫アイテム、 "インライン" ユーザー定義関数のパラメーター。

(C) 2019 Altova GmbH