有一种方法可以查看Genexus的New / EndNew中的错误消息?

时间:2019-08-19 14:28:43

标签: genexus

我正在尝试在表中插入新记录,但是出了点问题,并且记录没有插入表中。

我实际上是在使用new/endnew来设置对象的属性。

我知道,如果我使用业务组件,则可以使用.GetMessages()接收错误消息,但是如何使用new/endnew接收错误消息?有办法吗?

2 个答案:

答案 0 :(得分:1)

首先请注意,使用业务组件执行这些任务将强制执行其中定义的业务规则,检查外键并更新相关的冗余公式,而使用new / endnew则是类似的到原始数据库插入。

您可以使用error_handler command / rule来捕获数据库错误(并采取措施)

以下是使用error_handler命令的示例:

Error_handler('OnDBError')
// the code that generates a violation

Sub 'OnDBError'
    msg(format(!'DBError: Code:%1  -  %2', &gxDBErr, &gxDBTxt), status)
    msg(format(!'Op: %1  -  Table: %2', &gxOper, &gxErrTbl), status)
    &gxErrOpt = 3
EndSub
  • &gxDBErr是数字(5)
  • &gxDBTxt是Character(255)
  • &gxOper是 角色(30)
  • &gxErrTbl是角色(255)
  • &gxErrOpt是数字(1)

如果要创建日志文件,可以激活GeneXus的日志记录功能(请参阅所选生成器的“属性”标签中的Logging部分)

答案 1 :(得分:0)

您要保存的记录,是来自默认数据存储表还是数据视图表?

也许数据视图定义不正确。

其他可尝试的东西:

  • 验证主键定义是否正确(将数据消息发送到 保存)

  • 使用“当重复时”显示消息,以防记录 那个键就存在了。