diff --git a/src-db/database/model/tables/OBPOS_ERRORS.xml b/src-db/database/model/tables/OBPOS_ERRORS.xml
--- a/src-db/database/model/tables/OBPOS_ERRORS.xml
+++ b/src-db/database/model/tables/OBPOS_ERRORS.xml
@@ -61,6 +61,10 @@
         <default/>
         <onCreateDefault/>
       </column>
+      <column name="ATTEMPTS" primaryKey="false" required="false" type="DECIMAL" size="3,0" autoIncrement="false">
+        <default><![CDATA[0]]></default>
+        <onCreateDefault/>
+      </column>
       <foreign-key foreignTable="AD_CLIENT" name="OBPOS_ERRORS_CLIENT">
         <reference local="AD_CLIENT_ID" foreign="AD_CLIENT_ID"/>
       </foreign-key>
diff --git a/src-db/database/sourcedata/AD_COLUMN.xml b/src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml
+++ b/src-db/database/sourcedata/AD_COLUMN.xml
@@ -2615,6 +2615,40 @@
 <!--35EBF89A71054EDC840346811D362285-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
 <!--35EBF89A71054EDC840346811D362285--></AD_COLUMN>
 
+<!--36F400E6BA974C828E1A6708ED16ED0F--><AD_COLUMN>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <AD_COLUMN_ID><![CDATA[36F400E6BA974C828E1A6708ED16ED0F]]></AD_COLUMN_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <NAME><![CDATA[Attempts]]></NAME>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <COLUMNNAME><![CDATA[Attempts]]></COLUMNNAME>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <AD_TABLE_ID><![CDATA[0469743705E3458299DF4293C1019E4F]]></AD_TABLE_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <AD_REFERENCE_ID><![CDATA[11]]></AD_REFERENCE_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <FIELDLENGTH><![CDATA[12]]></FIELDLENGTH>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <DEFAULTVALUE><![CDATA[0]]></DEFAULTVALUE>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <SEQNO><![CDATA[170]]></SEQNO>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <AD_ELEMENT_ID><![CDATA[06C48C7618644260BA0DBE9ADB9037B2]]></AD_ELEMENT_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <POSITION><![CDATA[16]]></POSITION>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--36F400E6BA974C828E1A6708ED16ED0F-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--36F400E6BA974C828E1A6708ED16ED0F--></AD_COLUMN>
+
 <!--373512FBB92943EC8EC0D6B4EAC6CF81--><AD_COLUMN>
 <!--373512FBB92943EC8EC0D6B4EAC6CF81-->  <AD_COLUMN_ID><![CDATA[373512FBB92943EC8EC0D6B4EAC6CF81]]></AD_COLUMN_ID>
 <!--373512FBB92943EC8EC0D6B4EAC6CF81-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_ELEMENT.xml b/src-db/database/sourcedata/AD_ELEMENT.xml
--- a/src-db/database/sourcedata/AD_ELEMENT.xml
+++ b/src-db/database/sourcedata/AD_ELEMENT.xml
@@ -14,6 +14,19 @@
 <!--04E35B3219FA457FAB7D3F898E74842B-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
 <!--04E35B3219FA457FAB7D3F898E74842B--></AD_ELEMENT>
 
+<!--06C48C7618644260BA0DBE9ADB9037B2--><AD_ELEMENT>
+<!--06C48C7618644260BA0DBE9ADB9037B2-->  <AD_ELEMENT_ID><![CDATA[06C48C7618644260BA0DBE9ADB9037B2]]></AD_ELEMENT_ID>
+<!--06C48C7618644260BA0DBE9ADB9037B2-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--06C48C7618644260BA0DBE9ADB9037B2-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--06C48C7618644260BA0DBE9ADB9037B2-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--06C48C7618644260BA0DBE9ADB9037B2-->  <COLUMNNAME><![CDATA[Attempts]]></COLUMNNAME>
+<!--06C48C7618644260BA0DBE9ADB9037B2-->  <NAME><![CDATA[Attempts]]></NAME>
+<!--06C48C7618644260BA0DBE9ADB9037B2-->  <PRINTNAME><![CDATA[Attempts]]></PRINTNAME>
+<!--06C48C7618644260BA0DBE9ADB9037B2-->  <HELP><![CDATA[Number of attempts that this record has been tried to sync]]></HELP>
+<!--06C48C7618644260BA0DBE9ADB9037B2-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--06C48C7618644260BA0DBE9ADB9037B2-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--06C48C7618644260BA0DBE9ADB9037B2--></AD_ELEMENT>
+
 <!--0A061048930248768E023FE3189AE376--><AD_ELEMENT>
 <!--0A061048930248768E023FE3189AE376-->  <AD_ELEMENT_ID><![CDATA[0A061048930248768E023FE3189AE376]]></AD_ELEMENT_ID>
 <!--0A061048930248768E023FE3189AE376-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_FIELD.xml b/src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml
+++ b/src-db/database/sourcedata/AD_FIELD.xml
@@ -2565,6 +2565,32 @@
 <!--5B028B8B13CE467594812BB94CCC25D8-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
 <!--5B028B8B13CE467594812BB94CCC25D8--></AD_FIELD>
 
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--><AD_FIELD>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <AD_FIELD_ID><![CDATA[5B86FC88EC244CC78A5E8FDD2A2C4EB6]]></AD_FIELD_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <NAME><![CDATA[Attempts]]></NAME>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <AD_TAB_ID><![CDATA[EC4D45180BCB4EB5A78FA8E8F319FD1C]]></AD_TAB_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <AD_COLUMN_ID><![CDATA[36F400E6BA974C828E1A6708ED16ED0F]]></AD_COLUMN_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <ISDISPLAYED><![CDATA[N]]></ISDISPLAYED>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <DISPLAYLENGTH><![CDATA[12]]></DISPLAYLENGTH>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <SEQNO><![CDATA[100]]></SEQNO>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--5B86FC88EC244CC78A5E8FDD2A2C4EB6--></AD_FIELD>
+
 <!--5C1AD6BD30FB4A699C69D22DFDD5FE6E--><AD_FIELD>
 <!--5C1AD6BD30FB4A699C69D22DFDD5FE6E-->  <AD_FIELD_ID><![CDATA[5C1AD6BD30FB4A699C69D22DFDD5FE6E]]></AD_FIELD_ID>
 <!--5C1AD6BD30FB4A699C69D22DFDD5FE6E-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_PROCESS.xml b/src-db/database/sourcedata/AD_PROCESS.xml
--- a/src-db/database/sourcedata/AD_PROCESS.xml
+++ b/src-db/database/sourcedata/AD_PROCESS.xml
@@ -46,4 +46,26 @@
 <!--6E03EABD3B4E4E71897B6B826D522157-->  <IS_EXPLICIT_ACCESS><![CDATA[N]]></IS_EXPLICIT_ACCESS>
 <!--6E03EABD3B4E4E71897B6B826D522157--></AD_PROCESS>
 
+<!--7C8EF159C8144D5CABD19113989388DD--><AD_PROCESS>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <AD_PROCESS_ID><![CDATA[7C8EF159C8144D5CABD19113989388DD]]></AD_PROCESS_ID>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <VALUE><![CDATA[syncAllErrors]]></VALUE>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <NAME><![CDATA[Sync All Errors While Importing]]></NAME>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <ACCESSLEVEL><![CDATA[3]]></ACCESSLEVEL>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <ISUSERSTARTABLE><![CDATA[N]]></ISUSERSTARTABLE>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <ISREPORT><![CDATA[N]]></ISREPORT>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <ISDIRECTPRINT><![CDATA[N]]></ISDIRECTPRINT>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <CLASSNAME><![CDATA[org.openbravo.retail.posterminal.SyncAllErrorsWhileImporting]]></CLASSNAME>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <ISBACKGROUND><![CDATA[Y]]></ISBACKGROUND>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <ISJASPER><![CDATA[N]]></ISJASPER>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <ISEXTERNALSERVICE><![CDATA[N]]></ISEXTERNALSERVICE>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <AD_MODULE_ID><![CDATA[FF808181326CC34901326D53DBCF0018]]></AD_MODULE_ID>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <UIPATTERN><![CDATA[M]]></UIPATTERN>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <ISADVANCEDFEATURE><![CDATA[N]]></ISADVANCEDFEATURE>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <PREVENTCONCURRENT><![CDATA[N]]></PREVENTCONCURRENT>
+<!--7C8EF159C8144D5CABD19113989388DD-->  <IS_EXPLICIT_ACCESS><![CDATA[N]]></IS_EXPLICIT_ACCESS>
+<!--7C8EF159C8144D5CABD19113989388DD--></AD_PROCESS>
+
 </data>
diff --git a/src/org/openbravo/retail/posterminal/ErrorComparator.java b/src/org/openbravo/retail/posterminal/ErrorComparator.java
new file mode 100644
--- /dev/null
+++ b/src/org/openbravo/retail/posterminal/ErrorComparator.java
@@ -0,0 +1,46 @@
+package org.openbravo.retail.posterminal;
+
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.model.ad.domain.Reference;
+
+public class ErrorComparator implements Comparator<OBPOSErrors> {
+  private static String TYPES_REFERENCE = "20A228A295C844C68B4451622057A893";
+  private Map<String, Long> sequenceNumbers = new HashMap<String, Long>();
+
+  public ErrorComparator() {
+    super();
+    OBContext.setAdminMode(false);
+    try {
+      Reference ref = OBDal.getInstance().get(Reference.class, TYPES_REFERENCE);
+      for (org.openbravo.model.ad.domain.List listRef : ref.getADListList()) {
+        if (listRef.getSequenceNumber() != null) {
+          sequenceNumbers.put(listRef.getSearchKey(), listRef.getSequenceNumber());
+        }
+      }
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+
+  }
+
+  @Override
+  public int compare(OBPOSErrors error1, OBPOSErrors error2) {
+    Long l1 = sequenceNumbers.get(error1.getTypeofdata());
+    Long l2 = sequenceNumbers.get(error2.getTypeofdata());
+    if (l1 == null && l2 == null) {
+      return 0;
+    } else if (l1 == null && l2 != null) {
+      return -1;
+    } else if (l1 != null && l2 == null) {
+      return 1;
+    } else {
+      return l1.compareTo(l2);
+    }
+  }
+
+}
diff --git a/src/org/openbravo/retail/posterminal/SaveDataActionHandler.java b/src/org/openbravo/retail/posterminal/SaveDataActionHandler.java
--- a/src/org/openbravo/retail/posterminal/SaveDataActionHandler.java
+++ b/src/org/openbravo/retail/posterminal/SaveDataActionHandler.java
@@ -10,8 +10,6 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -30,7 +28,6 @@
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.erpCommon.utility.Utility;
 import org.openbravo.mobile.core.process.DataSynchronizationProcess;
-import org.openbravo.model.ad.domain.Reference;
 import org.openbravo.service.db.DalConnectionProvider;
 import org.openbravo.service.json.JsonConstants;
 
@@ -116,40 +113,3 @@
     return null;
   }
 }
-
-class ErrorComparator implements Comparator<OBPOSErrors> {
-  private static String TYPES_REFERENCE = "20A228A295C844C68B4451622057A893";
-  private Map<String, Long> sequenceNumbers = new HashMap<String, Long>();
-
-  public ErrorComparator() {
-    super();
-    OBContext.setAdminMode(false);
-    try {
-      Reference ref = OBDal.getInstance().get(Reference.class, TYPES_REFERENCE);
-      for (org.openbravo.model.ad.domain.List listRef : ref.getADListList()) {
-        if (listRef.getSequenceNumber() != null) {
-          sequenceNumbers.put(listRef.getSearchKey(), listRef.getSequenceNumber());
-        }
-      }
-    } finally {
-      OBContext.restorePreviousMode();
-    }
-
-  }
-
-  @Override
-  public int compare(OBPOSErrors error1, OBPOSErrors error2) {
-    Long l1 = sequenceNumbers.get(error1.getTypeofdata());
-    Long l2 = sequenceNumbers.get(error2.getTypeofdata());
-    if (l1 == null && l2 == null) {
-      return 0;
-    } else if (l1 == null && l2 != null) {
-      return -1;
-    } else if (l1 != null && l2 == null) {
-      return 1;
-    } else {
-      return l1.compareTo(l2);
-    }
-  }
-
-}
diff --git a/src/org/openbravo/retail/posterminal/SyncAllErrorsWhileImporting.java b/src/org/openbravo/retail/posterminal/SyncAllErrorsWhileImporting.java
new file mode 100644
--- /dev/null
+++ b/src/org/openbravo/retail/posterminal/SyncAllErrorsWhileImporting.java
@@ -0,0 +1,112 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.0  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2015 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ *************************************************************************
+ */
+package org.openbravo.retail.posterminal;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import javax.enterprise.inject.Any;
+import javax.enterprise.inject.Instance;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.inject.Inject;
+
+import org.apache.log4j.Logger;
+import org.codehaus.jettison.json.JSONObject;
+import org.hibernate.criterion.Restrictions;
+import org.openbravo.base.weld.WeldUtils;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBCriteria;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.erpCommon.utility.OBMessageUtils;
+import org.openbravo.mobile.core.process.DataSynchronizationProcess;
+import org.openbravo.scheduling.ProcessBundle;
+import org.openbravo.scheduling.ProcessLogger;
+import org.openbravo.service.db.DalBaseProcess;
+import org.openbravo.service.json.JsonConstants;
+
+/**
+ * @author malsasua
+ * 
+ */
+public class SyncAllErrorsWhileImporting extends DalBaseProcess {
+  private static final Logger log4j = Logger.getLogger(SyncAllErrorsWhileImporting.class);
+  private ProcessLogger logger;
+
+  @Inject
+  @Any
+  private Instance<POSDataSynchronizationProcess> syncProcesses;
+
+  @Override
+  protected void doExecute(ProcessBundle bundle) throws Exception {
+    logger = bundle.getLogger();
+    try {
+      OBCriteria<OBPOSErrors> queryListErrors = OBDal.getInstance().createCriteria(
+          OBPOSErrors.class);
+      queryListErrors.add(Restrictions.eq(OBPOSErrors.PROPERTY_ORDERSTATUS, "N"));
+      queryListErrors.add(Restrictions.le(OBPOSErrors.PROPERTY_ATTEMPTS, new Long("3")));
+      queryListErrors.addOrderBy(OBPOSErrors.PROPERTY_CREATIONDATE, true);
+
+      List<OBPOSErrors> listErrors = queryListErrors.list();
+      Collections.sort(listErrors, new ErrorComparator());
+
+      for (OBPOSErrors error : listErrors) {
+        String errorId = error.getId();
+        String type = error.getTypeofdata();
+
+        // RequestContext.get().setSessionAttribute("#AD_ORG_ID", "1000000");
+        POSDataSynchronizationProcess syncProcess = null;
+        BeanManager beanManager = WeldUtils.getStaticInstanceBeanManager();
+        Set<Bean<?>> beans = beanManager.getBeans(POSDataSynchronizationProcess.class,
+            new DataSynchronizationProcess.Selector(type));
+
+        for (Bean<?> bean : beans) {
+          syncProcess = (POSDataSynchronizationProcess) beanManager.getReference(bean,
+              POSDataSynchronizationProcess.class, beanManager.createCreationalContext(bean));
+        }
+        JSONObject record = new JSONObject(error.getJsoninfo());
+        record.put("posErrorId", errorId);
+        JSONObject data = new JSONObject();
+        data.put("data", record);
+        JSONObject result = syncProcess.exec(data, true);
+        try {
+          OBContext.setAdminMode(true);
+          error = OBDal.getInstance().get(OBPOSErrors.class, errorId);
+          if (result.get(JsonConstants.RESPONSE_STATUS).equals(
+              JsonConstants.RPCREQUEST_STATUS_FAILURE)) {
+            logger.logln("Record has not been synced: " + error.getIdentifier());
+          } else {
+            error.setOrderstatus("Y");
+            logger.logln("Record has been synced successfully: " + error.getIdentifier());
+          }
+          error.setAttempts(error.getAttempts() + 1);
+          OBDal.getInstance().save(error);
+          OBDal.getInstance().flush();
+          OBDal.getInstance().commitAndClose();
+        } finally {
+          OBContext.restorePreviousMode();
+        }
+      }
+      logger.logln(OBMessageUtils.messageBD("Success"));
+    } catch (Exception e) {// won't' happen
+      logger.logln(OBMessageUtils.messageBD("Error"));
+    }
+  }
+}
