有没有办法在 genexus 中查看 New/EndNew 中的错误消息?

There's a way to see error messages in New/EndNew in genexus?

我正在尝试在 table 中插入新记录,但出了点问题,记录未插入 table。

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

我知道如果我使用业务组件,我可以使用 .GetMessages() 获取错误消息,但是我如何使用 new/endnew 获取错误消息?有办法得到这个吗?

首先请注意,使用业务组件执行这些任务会强制执行其中定义的业务规则,检查外键并更新相关的冗余公式,而使用 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 是字符 (255)
  • &gxOper 是 字符(30)
  • &gxErrTbl 是字符 (255)
  • &gxErrOpt 是数字 (1)

如果您想创建一个日志文件,您可以激活 GeneXus 的日志记录功能(请参阅您选择的生成器的属性选项卡中的 Logging 部分)

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

可能数据视图定义不当。

其他要尝试的事情:

  • 验证主键是否定义正确(数据消息到 得救)

  • 使用"when duplicate"显示消息,以防记录 存在该密钥。