我正在使用 IBM iLog.NET 业务规则引擎(v7r1 或类似版本),但我找不到我的规则失败的原因。我如何追查失败的原因、位置和原因?
我有一个本地对象模型,它调用我在 IIS 6.0 上的 IBM 规则服务中托管的规则。
我的大约一半规则配置为使用新状态代码修改其中一个输入对象。当我认为应该设置代码时,代码没有设置,但我无法确定哪些规则受到了影响。
我正在使用 IBM iLog.NET 业务规则引擎(v7r1 或类似版本),但我找不到我的规则失败的原因。我如何追查失败的原因、位置和原因?
我有一个本地对象模型,它调用我在 IIS 6.0 上的 IBM 规则服务中托管的规则。
我的大约一半规则配置为使用新状态代码修改其中一个输入对象。当我认为应该设置代码时,代码没有设置,但我无法确定哪些规则受到了影响。
我发现IBM iLog.NET 文档将答案深深埋藏在内心深处。持续的 Google 搜索显示,我可以ILOG.Rules.ExecutionServer.Trace.EventFilterCategories
在ExecutionRequest
将对象发送到服务器之前对其进行设置。
ExecutionRequest request = new ExecutionRequest(rulePath);
request.TraceFilter.EventFilters
= ILOG.Rules.ExecutionServer.Trace.EventFilterCategories.All;
...
ExecutionResponse response = session.Execute(request);
ILOG.Rules.ExecutionServer.Trace.Trace trace = response.Trace;
Debug.WriteLine(trace.SerializedExecutionTrace);
序列化的跟踪包含调用的所有输入和输出,以及在执行期间触发的所有规则和根本没有命中的规则。