Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

データ変換のテスト

データ変換クラスをコンパイルしたら、それをテストできます (テストすべきです)。この章では、その方法について説明します。この章は以下の節で構成されています。

Note:

この章は、DTL 変換とカスタム変換の両方に適用されます。

変換テスト・ページの使用法

管理ポータルで、変換テスト・ウィザードを使用できます。このウィザードには、管理ポータルの以下の場所からアクセスできます。

  • データ変換ビルダの [ツール] タブで [テスト] をクリックします。

  • 変換を選択して、[データ変換リスト] ページで [テスト] をクリックします。

初期状態では [出力メッセージ] ウィンドウは空で、[入力メッセージ] ウィンドウにはソース・メッセージに適した形式のテキスト・スケルトンが入力されています。テストするには、以下の手順を実行します。

  1. 適切なデータが含まれるように、[入力メッセージ] を編集します。この入力ボックスに表示される内容と入力する内容は、次のようにソースのタイプとクラスに応じて異なります。

    • HL7 やその他の EDI メッセージの場合は、このウィンドウには生のテキストが表示されます。したがって、いくつかの保存されたテキスト・ファイルを用意し、これらのファイルから [入力メッセージ] ボックスにテキストをコピー・アンド・ペーストできるようにします。

    • 通常の Ensemble メッセージの場合は、このウィンドウには、メッセージ・オブジェクト内の各プロパティのエントリを持つ XML スケルトンが表示されます。したがって、各プロパティの値を入力します。

  2. [テスト] をクリックします。

  3. [出力メッセージ] ボックスで結果を確認します。

以下に例を示します。

generated description: editor test

プログラムによる変換のテスト

変換をプログラムを使ってテストするには、ターミナルで以下を実行します (またはこれらのステップを含むルーチンまたはクラス・メソッドを作成します)。

  1. ソース・メッセージ・クラスのインスタンスを作成します。

  2. そのインスタンスのプロパティを設定します。

  3. 変換クラスの Transform() クラス・メソッドを呼び出します。このメソッドには、以下のシグニチャがあります。

    classmethod Transform(source As %RegisteredObject, ByRef target As %RegisteredObject) as %Status
    

    説明 :

    • source はソース・メッセージです。

    • target は変換によって作成されたターゲット・メッセージです。

  4. ターゲット・メッセージを検査して、期待どおりに変換されているかどうかを確認します。XML 形式の両方のメッセージを簡単に検査するには、次の手順を実行します。

    1. %XML.WriterOpens in a new tab のインスタンスを作成します。

    2. オプションで、そのインスタンスの Indent プロパティを 1 に設定します。

      これにより、出力に改行が追加されます。

    3. ソース・メッセージを引数として渡す Writerインスタンスの RootObject() メソッドを呼び出します。

    4. Writerインスタンスを強制終了します。

    5. ターゲット・メッセージで繰り返します。

以下に例を示します。

    //create an instance of the source message
    set source=##class(DTLTest.Message).CreateOne()
    
    set writer=##class(%XML.Writer).%New()
    set writer.Indent=1
    do writer.RootObject(source)
    w !!
    set sc=##class(DTLTest.Xform1).Transform(source,.target)
    if $$$ISERR(sc) {do $system.Status.DisplayError(sc)}

    set writer=##class(%XML.Writer).%New()
    set writer.Indent=1
    do writer.RootObject(target)
FeedbackOpens in a new tab