【问题标题】:CodeEffects - Existing rules error after upgradeCodeEffects - 升级后现有规则错误
【发布时间】:2017-08-22 16:29:36
【问题描述】:

在将 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>

我尝试更新 XML 中的 webrule="4.1.6.4" 值以匹配新版本,但没有成功。

【问题讨论】:

    标签: rule-engine business-rules codeeffects


    【解决方案1】:

    首先,请检查您的项目是否确实声明了“缺失”方法。然后在此处发布您的规则 XML,如果整个规则太大,至少其部分使用该方法。

    【讨论】:

    • 已将 XML 添加到原始帖子中。在进一步调查中,虽然声明了外部方法( [ExternalMethod(typeof(PatientService), "IsToday")] ),但它似乎被忽略了。
    • 知道了,谢谢。今天晚些时候我会看看,很快就会回复。
    • 由于我们最近搬到了一个新的数据中心,Code Effects Downloader 指向一个无效的免费版本。现在它已经修复了。请下载更新的免费版本并再次尝试测试。感谢您报告此事!请将我们的回复标记为“已回答”。
    • 从您的网站下载,现在工作正常。 NuGet 下载也需要更新,因为它仍然存在同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2019-03-07
    • 2020-01-19
    相关资源
    最近更新 更多