CodeEffects - ошибка существующих правил после обновления
После обновления codeeffects от 4.3.2.6 до 4.3.6.7 существующие правила, у которых есть какие-либо закодированные действия или методы, не могут быть загружены с ошибкой:
"Выделенные элементы правила не могут быть расположены в текущем исходном объекте. Пожалуйста, обновите это правило или откатите все изменения, внесенные в исходный объект".
Далее следует следующее в редакторе правил
Как это можно преодолеть?
До обновления правила не выдавали ошибок и действовали против данных, как и ожидалось. Ошибки и приведенный ниже XML взяты из загруженной демоверсии. После обновления демо я столкнулся с такими же проблемами.
XML для правила:
<?xml version="1.0" encoding="utf-8"?>
<codeeffects xmlns="http://codeeffects.com/schemas/rule/41" xmlns:ui="http://codeeffects.com/schemas/ui/4">
<rule id="2eb43e80-320c-496f-bf50-7ead12bae886" webrule="4.1.6.4" utc="2014-08-05T15:29:26.3909" type="CodeEffects.Rule.Demo.Bre.Mvc.Models.Patient, CodeEffects.Rule.Demo.Bre.Mvc.2013, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" eval="true">
<name>Check Date</name>
<definition>
<condition type="equal">
<method name="IsToday" type="CodeEffects.Rule.Demo.Bre.Mvc.Services.PatientService, CodeEffects.Rule.Demo.Bre.Mvc.2013, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<value type="System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]">2014-08-06T00:00:00.0000</value>
</method>
<value type="System.Boolean">true</value>
</condition>
</definition>
<format>
<lines />
</format>
</rule>
</codeeffects>
Я попытался обновить значение webrule="4.1.6.4" в XML, чтобы соответствовать новой версии, но безуспешно.
1 ответ
Во-первых, проверьте, действительно ли ваш проект объявляет "отсутствующий" метод. Затем опубликуйте здесь свой XML-код правила, по крайней мере, его часть, которая использует этот метод, если все правило слишком велико.