Hi carlos, thank you for your most useful keyword "Model Validator". i was not aware of it. model validator is not working for me. i did the following
* created a custom model validator as below
- Code: Select all
public class MyOwnValidator implements ModelValidator {
/** Client */
private int m_AD_Client_ID = -1;
/** User */
private int m_AD_User_ID = -1;
/** Role */
private int m_AD_Role_ID = -1;
/** Logger */
private static CLogger log = CLogger.getCLogger(MyOwnValidator.class);
public MyOwnValidator() {
super();
}
@Override
public void initialize(ModelValidationEngine engine, MClient client) {
//Client = null for global validator
if (client != null) {
m_AD_Client_ID = client.getAD_Client_ID();
log.info(client.toString());
}else{
log.info("Initializing global validator : " + this.toString());
}
engine.addDocValidate(MOrder.Table_Name, this);
}
@Override
public int getAD_Client_ID() {
return m_AD_Client_ID;
}
@Override
public String login(int AD_Org_ID, int AD_Role_ID, int AD_User_ID) {
return null;
}
@Override
public String modelChange(PO po, int type) throws Exception {
if (po.get_TableName().equals("C_Order") && type == TIMING_BEFORE_REACTIVATE)
{
MOrder order = (MOrder)po;
System.out.println("Printer 1");
// return Msg.getMsg("EN-US", "validator is called");
}
return null;
}
@Override
public String docValidate(PO po, int timing) {
if (po.get_TableName().equals("C_Order") && timing == TIMING_BEFORE_REACTIVATE){
System.out.println("Printer 2");
// return Msg.getMsg("EN-US", "validator is called");
}
return null;
}
}
* and registered in client window -> model validation classes field -> as this "org.compiere.model.MyOwnValidator"
but nothing happens when re-activating purchase order. i even checked whether model validator is working by implementing this class "MyValidatorThailand" by looking at the sample
here. i am not able to guess wt i missed. Help me out if possible. Thank you so much!!

regards
vivek