例 : 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
}
上記で使用した予備のメソッドは、すべて %UnitTest.TestProductionOpens in a new tab のクラス・ドキュメントで詳細に説明されています。
CheckResults は、埋め込み SQL を使用して、ビジネス・ルール・ログに対するクエリを実行します。埋め込み SQL について詳細に学習するには、"Caché SQL の使用法" の "埋め込み SQL の使用法" を参照してください。