java - 字段的 Adempiere 列标注不适用于导入和从(来自代码)选项创建行
问题描述
Adempiere字段标注不适用于导入选项或从选项创建行。如果我通过代码而不是手动选择来做事,它会忽略字段标注。我想到了一种解决方案,
将标注代码转移到模型类 beforeSave() 或 afterSave() 但这对于所有功能来说太耗时了。
请分享,如果还有其他解决方案
解决方案
您是正确的,标注仅在用户输入表单或表格期间使用。如果您有需要以编程方式应用于数据更改的规则,则可以考虑以下几个选项:
- 正如您所提到的,模型更改,但除非这本质上是通用的,否则它会使您的代码与核心项目不同,并使升级更加费力;
- 模型验证器 - 您可以注册一个模型验证器,该模型验证器将在持久性对象 (PO) 的保存前或保存后调用。
- 在表定义中,您可以定义表验证规则。
为了避免对许多记录进行耗时的操作,您还可以将代码添加到导入验证器和“创建自”过程中,如果这些是您发现问题的区域。
最后,您可以创建一个单独的进程来验证数据并在需要时在后台运行它。
另一方面,如果代码运行得足够快,可以让用户调用(意味着用户没有注意到明显的延迟),那么将代码添加到模型验证器应该没问题。
推荐阅读
- sql - 你能告诉我这个 SQL 会做什么吗?
- sql - 有没有办法将总和限制为表格中的计算日期?
- python - 需要帮助决定将 powershell 脚本转换为 python 或查看脚本是否可以进一步重构。数据速度问题
- c# - Xamarin 将条目值从旧页面传递到新页面
- javascript - 如何保持 React 组件与后端同步?
- python - 使用正则表达式拆分标题和内容
- python - 如何在python中键入提示复合类的类型列表?
- javascript - 为什么新的 javascript 脚本会使 Capybara 测试失败?
- git - 什么时候单个文件被认为对 git 来说太大了?
- python - Python,Shell:如何提取数据并存储在可迭代变量中(特别是在列表中)?