【问题标题】:Error ORA-01407 updating a field from a business service从业务服务更新字段时出现错误 ORA-01407
【发布时间】:2010-12-26 16:59:24
【问题描述】:

我正在尝试使用业务服务更新 BC 字段的值。执行时出现以下错误:

ORA-01407: cannot update ("SIEBEL".""."MODIFICATION_NUM") to NULL.

由于修改编号是一个系统字段,因此我什至不可能触及该特定列。无法理解为什么会出现此错误。

【问题讨论】:

  • 你能把业务服务的相关代码贴出来吗?
  • 你能显示一些代码吗?

标签: siebel


【解决方案1】:

我认为这里很可能是您的服务写入记录正在调用有条件运行的业务组件上的代码,然后它本身会从业务组件代码中强制写入记录。这可以在业务组件代码中显式完成,也可以通过脚本与组件交互的某些方式隐式完成。一旦发生这种情况,那么试图将修改号增加一的服务写入记录将无法这样做,因为此修改号会被可能的 BC 代码增加,并且您会收到此错误。为了解决这个问题,我会检查有问题的 BC 并注释掉 PreSetFieldValue、SetFieldValue、PreWriteRecord 等事件的代码,并查看错误是否仍然作为初始测试出现。然后您需要隔离导致错误的部分 BC 代码。

【讨论】:

    【解决方案2】:
    【解决方案3】:

    如果您查看 MODIFICATION_NUM,每次保存记录时它总是会增加 1。我相信这就是 Siebel 检测其他用户是否修改了记录的方式。您可以试试这个:开始更新记录,但不要保存它。从不同的计算机或只是一个单独的浏览器窗口以不同的用户身份登录并更新完全相同的记录,然后保存。现在回到第一个用户并尝试保存记录。您会收到一条错误消息。

    无论如何,如果您创建新记录,请将 MODIFICATION_NUM 设置为 0。如果您更新记录,请将 MODIFICATION_NUM 增加 1。

    不过,通常建议使用 EIM 或其他官方支持的方法(例如 Java 数据 Bean)来更新 Siebel 记录。

    【讨论】:

      【解决方案4】:

      请检查您正在使用的用户 id ..通常如果在该 id 的数据库中没有给出写访问权限 ..它可能会将 modify_num 更新为 null

      【讨论】:

        【解决方案5】:

        可能是您的代码有错误(您必须在此处发布示例以获得任何帮助!),或者相关 Siebel 对象的配置出现问题(检查底层 BC 以查看如果有人添加了导致错误的配置或代码),或者这是 Siebel 中的一个已知错误(在 Siebel SupportWeb 上搜索)。

        【讨论】:

          【解决方案6】:

          第一步是找到试图清除您的模组编号的总线计算机。为此,您必须找到更新 mod 编号的 SQL(它将是您的错误出现之前的那个),然后找到运行该 SQL 的 buscomp(从 SQL 之前的 ObjMgrSqlObjLog 日志条目)。将 ObjMgrSqlLog 和 ObjMgrSqlObjLog 事件都设置为 4 并重现您的错误,这应该会为您提供所需的内容。

          接下来,在 buscomp 上找到映射到 MODIFICATION_NUM 列的字段。

          最后,找出清除该字段的原因并修复它。可以是脚本、集成点、工作流程、buscomp 用户道具等...

          祝你好运。

          【讨论】:

            【解决方案7】:

            一个很好的猜测是您已将自定义字段映射到 MODIFICATION_NUM(您不应该这样做)并通过代码或在 UI 中激活该字段。检查您的 BC 是否使用 MODIFICATION_NUM 列。

            【讨论】:

              【解决方案8】:

              请检查有问题的 BC 是否有映射到 modify_num 列的字段(系统列不应添加到自定义字段),或检查写入记录事件本身是否正在调用显式保存记录的自定义服务,这应该抛出“您尝试修改的记录已被修改”之类的不同错误

              【讨论】:

                【解决方案9】:

                您可能在同一个函数或方法中使用了两次 WriteRecord()。可以查一下吗?

                最好的问候。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2020-12-18
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-12-31
                  相关资源
                  最近更新 更多