Retrieving Openbravo properties in DAL code

Openbravo.properties is the configuration page in which we specify the source folder, the database configuration and many other configuration parameters. For more information on Openbravo.properties configuration, refer here.

There will be many cases where we will need the values of the parameters configured in the Openbravo.properties. Few cases are.

  1. When you have a native jdbc connectivity code and you do not want to change that, but bring that under a DAL code.
  2. When you have attached a file to a record and want to process that using the actual file path.
  3. When you need your current database name. 
  4. When you need your current database parameters like URL, username,password, etc
  5. When you want the current context name using which the instance will be accessed.

Now lets see how we can access the Openbravo.properties in DAL code.

  1. Import the package  org.openbravo.base.session.OBPropertiesProvider.
  2. Use thegetProperty(property name) method on the OBPropertiesProvider
  3. Pass the name of the parameter whose value you require to the getProperty() method.

 Provided below is a sample code to retrieve the source path, database name, URL, database user name and database password.


package com.fugoconsulting.XXX.erpCommon.ad_process;

 import org.apache.log4j.*;
 import org.openbravo.erpCommon.utility.OBError;
 import org.openbravo.scheduling.ProcessBundle;
 import org.openbravo.dal.service.OBQuery;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.dal.core.SessionHandler;
 import org.openbravo.base.session.OBPropertiesProvider;
 import org.openbravo.service.db.DalBaseProcess;

 /**
  *
  * @author shankar
  */
 public class ImportFile implements org.openbravo.scheduling.Process{

    private static Logger log=Logger.getLogger(ImportFile.class);

    public void execute(ProcessBundle bundle) throws Exception {
         // TODO code application logic here
         try{

           String RecordId=(String) bundle.getParams().get("XXX_Import_ID");
           log.info("Record ID "+RecordId);
           String sourcepath=      OBPropertiesProvider.getInstance().getOpenbravoProperties().getProperty("source.path");
          String dburl= OBPropertiesProvider.getInstance().getOpenbravoProperties().getProperty("bbdd.url");
         String database = OBPropertiesProvider.getInstance().getOpenbravoProperties().getProperty("bbdd.sid");
         String systemUser = OBPropertiesProvider.getInstance().getOpenbravoProperties().getProperty("bbdd.systemUser");
          String systemPassword = OBPropertiesProvider.getInstance().getOpenbravoProperties().getProperty("bbdd.systemPassword"); </span>

}

catch(Exception e){
}

}

Happy Working…