不适用于导入的字段的Adempiere列标注,并通过(来自代码)选项创建行

2020年8月12日 6点热度 0条评论

字段的临时标注不适用于导入选项或无法从选项创建行。如果我通过代码而不是手动选择操作,它将忽略字段标注。
我以为有一个解决方案,
将标注代码转移到模型类beforeSave()或afterSave()上,但这对于所有功能而言都非常耗时。
如果有其他解决方案,请分享

解决方案如下:

正确的是,标注仅在用户输入表单或表格时使用。如果您有需要以编程方式应用于数据更改的规则,则可以考虑以下几种选择:

正如您所提到的那样,模型发生了变化,但是除非本质上是通用的,否则它将使您的代码与核心项目有所不同,并使升级工作更加费力;
模型验证器-您可以注册一个模型验证器,该模型验证器将在持久性对象(PO​​)的保存之前或保存之后调用。
在表定义中,您可以定义表验证规则。

为避免对许多记录进行耗时的操作,如果您发现问题所在的区域,也可以将代码添加到导入验证器并“创建自”过程。

最后,您可以创建一个单独的过程来验证数据并在需要时在后台运行它。

另一方面,如果代码可以足够快地运行以进行用户标注(这意味着用户不会注意到明显的延迟),那么将代码添加到模型验证器中就可以了。