diff --git a/src/org/openbravo/idl/proc/AssetsProcess.java b/src/org/openbravo/idl/proc/AssetsProcess.java
--- a/src/org/openbravo/idl/proc/AssetsProcess.java
+++ b/src/org/openbravo/idl/proc/AssetsProcess.java
@@ -15,6 +15,8 @@
 import org.openbravo.base.provider.OBProvider;
 import org.openbravo.base.structure.BaseOBObject;
 import org.openbravo.dal.service.OBDal;
+import org.openbravo.erpCommon.utility.OBError;
+import org.openbravo.erpCommon.utility.OBMessageUtils;
 import org.openbravo.erpCommon.utility.Utility;
 import org.openbravo.idl.initial_data_load.assetjob_0_1.AssetJob;
 import org.openbravo.model.ad.utility.Sequence;
@@ -23,6 +25,8 @@
 import org.openbravo.model.common.plm.Product;
 import org.openbravo.model.financialmgmt.assetmgmt.Asset;
 import org.openbravo.model.financialmgmt.assetmgmt.AssetGroup;
+import org.openbravo.service.db.DbUtility;
+import org.openbravo.erpCommon.ad_process.assets.AssetLinearDepreciationMethodProcess;
 
 /**
  * 
@@ -199,7 +203,25 @@
     OBDal.getInstance().flush();
 
     // Execute
-    callProcess("A_Asset_Post0", asset.getId());
+    //callProcess("A_Asset_Post0", asset.getId());
+    OBError msg = new OBError();
+    try {
+      AssetLinearDepreciationMethodProcess assetProcess = new AssetLinearDepreciationMethodProcess();
+      msg = assetProcess.generateAmortizationPlan(asset);
+    } catch (final Exception e) {
+      OBDal.getInstance().rollbackAndClose();
+
+      Throwable ex = DbUtility.getUnderlyingSQLException(e);
+      String message = OBMessageUtils.translateError(ex.getMessage()).getMessage();
+      msg.setType("Error");
+      msg.setTitle(OBMessageUtils.messageBD("Error"));
+      msg.setMessage(message);
+      throw new OBException(msg.getMessage());
+    }
+    if (msg.getType().equals("Error")){
+      OBDal.getInstance().rollbackAndClose();
+      throw new OBException(msg.getMessage());
+    }
 
     // End process
     OBDal.getInstance().commitAndClose();
