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?

例 : CheckResults HL7

以下のコードは、CheckResults メソッドをオーバーライドします。このコードの目的は、プロダクションの実行結果を検証することです。このコードは、以下の処理を実行します。

  • CompareFiles を使用して、プロダクションによって出力されたファイルを参照バージョンのファイルと比較します。デフォルトでは、このメソッドは HL7OutputDir で出力ファイルを検索します。また、デフォルトでは、このメソッドは出力ファイルを <OutputFileName>_Reference という名前のファイルと比較します。

  • ビジネス・ルール・ログのテーブルに対してクエリを実行して、MsgRouter と関連付けられたルーティング・ルールの最後のエントリを取得します。ビジネス・ルール・ログは Ens_Rule.Log に保管されています。

  • クエリによって結果が返されたことを確認します。

  • クエリによって結果が返された場合、このメソッドは、メッセージが正しいルールと適合したこと、およびルールによってメッセージが正しいターゲットに転送されたことを確認します。


Method CheckResults() As %Library.Status
{
    Do $$$AssertStatusOK(..CompareFiles("ABC1Out.txt",,,..MainDir))
    
    &SQL(Select TOP 1 ID,ActivityName,ErrorMsg,ReturnValue,Reason 
    INTO :Id,Act,Msg,Ret,Rea FROM Ens_Rule.Log
    WHERE RuleName='Tutorial.TutorialHL7MessageRouterRules'
    ORDER BY ID DESC
    )

    Set r = $$$AssertEquals(SQLCODE, 0, "Rule Log Entry")

    if r {
        Set r1=$$$AssertEquals(Rea,"rule#1:when#1", "Rule:("_Rea_")")
        Set r2=$$$AssertTrue(Ret["TutorialHL7FileOperation","Target: "_Ret)
    }

    Quit $$$OK
}
Note:

上記で使用した予備のメソッドは、すべて %UnitTest.TestProductionOpens in a new tab のクラス・ドキュメントで詳細に説明されています。

CheckResults は、埋め込み SQL を使用して、ビジネス・ルール・ログに対するクエリを実行します。埋め込み SQL について詳細に学習するには、"Caché SQL の使用法" の "埋め込み SQL の使用法" を参照してください。

FeedbackOpens in a new tab