创建一个简单的ModelValidator
来源:互联网 发布:安卓版本 知乎 编辑:程序博客网 时间:2024/06/14 20:16
http://wiki.adempiere.net/ModelValidator
http://wiki.idempiere.org/en/Developing_Plug-Ins_-_ModelValidator
目的:可以将自己的插件与其他所有需要的信息共享,以使其能够运行。
环境:
步骤:
1、在已存在的插件里或者新建一个空的插件新建一个类--MyModelValidator.java
2、实现org.compiere.model.ModelValidator,代码如下:
package org.rhzn.mes.modelvalidator;
import org.compiere.model.MClient;
import org.compiere.model.MOrder;
import org.compiere.model.ModelValidationEngine;
import org.compiere.model.ModelValidator;
import org.compiere.model.PO;
import org.compiere.util.CLogger;
public class MyModelValidatorimplements ModelValidator{
CLogger log = CLogger.getCLogger(MyModelValidator.class);
private int m_AD_Client_ID = -1;
private int m_AD_Org_ID = -1;
private int m_AD_Role_ID = -1;
private int m_AD_User_ID = -1;
@Override
public void initialize(ModelValidationEngineengine, MClient client) {
// TODO Auto-generated method stub
// This line must come before registering the model changes
//client = null for global validator
if (client !=null) {
m_AD_Client_ID = client.getAD_Client_ID();
}
//register for model change on C_Order
engine.addModelChange(MOrder.Table_Name,this);
//register for document events on MOrder
engine.addDocValidate(MOrder.Table_Name,this);
}
/**
*Get Client to be monitored
*@return AD_Client_ID client
*/
@Override
public int getAD_Client_ID() {
// TODO Auto-generated method stub
return m_AD_Client_ID;
}
@Override
public String login(int AD_Org_ID,int AD_Role_ID,int AD_User_ID) {
// TODO Auto-generated method stub
m_AD_Org_ID = AD_Org_ID;
m_AD_Role_ID = AD_Role_ID;
m_AD_User_ID = AD_User_ID;
return null;
}
@Override
public String modelChange(POpo, int type)throws Exception {
// TODO Auto-generated method stub
if (po.get_TableName().equals("C_Order") &&type == TYPE_BEFORE_DELETE)
{
MOrder order = (MOrder)po;
System.out.println(">>>>>>>>>>>>>>>>>>>>>>");
// put your code here
}
return null;
}
@Override
public String docValidate(POpo, int timing) {
// TODO Auto-generated method stub
if (timing ==TIMING_BEFORE_COMPLETE) {
if (po.get_TableName().equals(MOrder.Table_Name))
{
//put your code here
//it is executed every time an order is about to complete
}
}
return null;
}
}
3、打开配置文件 并点击Extensions 1
新建一个ModelValidator 2
单击完成后右键>New>listener class为你创建的ModelValidator的全名(包名+类名)3
复制class 粘贴到 ID/ Name 4
4、启动程序 用Superuser/System实体选择System
5、打开Model Validator 菜单>新建一条数据(Activate选中) 5
6、重新启动,确保插件已经启动,登陆的时候实体选择GardenWorld
7、因为在第二步中是以销售订单删除为例: 6、7
所以此时打开 销售订单进行删除操作 此时后台会打印出>>>>>>>>> 8
- 创建一个简单的ModelValidator
- 创建一个简单的相册
- 创建一个简单的计算器
- 创建一个简单的触发器
- 创建一个简单的地图
- 创建一个简单的泛型类
- 创建一个简单的项目
- 创建一个简单的webapp
- 创建一个简单的wf
- 创建一个简单的线程
- 创建一个简单的按钮
- 创建一个简单的用户界面
- 创建一个简单的工作流
- 创建一个简单的WCF
- OC一个简单的模型的创建
- 创建一个简单的student的demo
- 一个简单的类的创建
- BPEL学习:创建一个简单的流程
- 最优化方法
- puppet 简单的安装及配置
- Struts2(六)---OGNL
- 策略模式
- Digit-Sum HDU
- 创建一个简单的ModelValidator
- Qt Project ERROR: Cannot run compiler 'cl'
- android 屏幕保持唤醒 不锁屏 android.permission.WAKE_LOCK
- React Native的环境搭配
- kylin 优化
- jqgrid(使用一)
- Spark Learning(RDD介绍)
- yii查询
- 为什么要资助TMMi?