В последнее время я использую BRE с лотами BizTalk 2016 (FP3 CU5).Когда это работает, это замечательно, но я обнаружил, что проблемы с устранением неполадок с выполнением политики были очень сложными, и хотел проверить, нашел ли кто-нибудь лучший способ.
Я использую форму оркестровки CallRules
для выполненияполитика.Я также создал модульные тесты, которые вызывают политику с DebugTrackingIntercerceptor
.В случае успешного выполнения политики, когда правила запускаются, выводимая отладочная информация выглядит примерно так:
FACT ACTIVITY 19/11/2018 07:59:12
Rule Engine Instance Identifier: 7bbad914-92a1-4783-b81a-f0a4d993fa9a
Ruleset Name: LCC.Corporate.NotificationService.BartecMissedBins
Operation: Assert
Object Type: TypedXmlDocument:Lcc.Integration.Corporate.CatsCrm.Schemas.CatsCrm_lcc_catscrm.GetServiceRequestDetailsResponse:/*[local-name()='GetServiceRequestDetailsResponse']/*[local-name()='GetServiceRequestDetailsResult']/*[local-name()='Customer']/*[local-name()='ContactTransports']/*[local-name()='ContactTransport'][*[local-name()="Name" and .="Email"]]
Object Instance Identifier: 9589157
AGENDA UPDATE 19/11/2018 07:59:12
Rule Engine Instance Identifier: 7bbad914-92a1-4783-b81a-f0a4d993fa9a
Ruleset Name: LCC.Corporate.NotificationService.BartecMissedBins
Operation: Add
Rule Name: BartecUpdate
Conflict Resolution Criteria: 0
RULE FIRED 19/11/2018 07:59:12
Rule Engine Instance Identifier: 7bbad914-92a1-4783-b81a-f0a4d993fa9a
Ruleset Name: LCC.Corporate.NotificationService.BartecMissedBins
Rule Name: BartecUpdate
Conflict Resolution Criteria: 0
FACT ACTIVITY 19/11/2018 07:59:12
Rule Engine Instance Identifier: 7bbad914-92a1-4783-b81a-f0a4d993fa9a
Ruleset Name: LCC.Corporate.NotificationService.BartecMissedBins
Operation: Retract
Object Type: TypedXmlDocument:Lcc.Integration.Corporate.CatsCrm.Schemas.CatsCrm_lcc_catscrm.CreateActivity
Object Instance Identifier: 49478415
Некоторые из правил в политике проверяют значение определенных элементов фактов XML-документа.Если в установленном факте отсутствует один из этих элементов (например, из первого правила в информации отладки активности, показанной выше), то нет очевидного указания на проблему из информации отслеживания.Единственный способ определить что-то не так, если вы заметите, что правило не сработало.Отсюда следует тщательно проверить наличие элементов, используемых в каждом правиле.
Есть ли лучший способ определить, почему правило не сработало?