例 : CheckResults
以下のコードは、CheckResults をオーバーライドします。このコードの目的は、プロダクションの実行結果と Tutorial.ExampleOperation に送信した 2 つの要求メッセージの送信結果を検証することです。このコードは、以下の処理を実行します。
-
イベント・ログに新しい 2 つの “ユーザ” エントリがあることを確認します。ビジネス・オペレーションは、要求メッセージの処理を終えるたびに新いエントリを追加します。New 変数には、新しいユーザ・イベント・ログ・エントリの数が含まれます。
-
最初のイベント・ログ・エントリのテキスト・コンテンツが “OK” であることを確認します。
-
2 つ目のイベント・ログ・エントリのテキスト・コンテンツが “ERROR” であることを確認します。
Method CheckResults(ByRef Log As %String, New As %String) As %Status
{
Set tSC = $$$OK
Set r = $$$AssertEquals($Get(New),2,"Should be 2 (found: "_+$Get(New)_")")
Set text = $Get(Log(1,"Text"))
Do $$$AssertEquals(text,"OK","Should be 'OK' (found: '"_text_"')")
Set text = $Get(Log(2,"Text"))
Do $$$AssertEquals(text,"ERROR","Should be 'ERROR' (found: '"_text_"')")
if 'r set tSC=..Error("Expected event log entries don't match")
Return tSC
}
Log 配列には、イベント・ログ情報の各部 (Text、Type、TimeLogged、SessionId、SourceMethod、ConfigName など) に対応するノードが含まれています。
Note:
ビジネス・オペレーションは、$$$LOGINFO マクロを使用して、イベント・ログにエントリを追加しました。