diff --git a/modules/org.openbravo.client.application/src/org/openbravo/client/application/ViewComponent.java b/modules/org.openbravo.client.application/src/org/openbravo/client/application/ViewComponent.java
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/ViewComponent.java
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/ViewComponent.java
@@ -46,6 +46,7 @@
 import org.openbravo.client.kernel.KernelConstants;
 import org.openbravo.client.kernel.OBUserException;
 import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.security.EntityAccessChecker;
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.erpCommon.obps.ActivationKey;
@@ -103,6 +104,8 @@
         Process process = OBDal.getInstance().get(Process.class, processId);
         if (process == null) {
           throw new IllegalArgumentException("Not found process definition with ID " + processId);
+        } else if (!hasAccess(process)) {
+          throw new OBUserException("AccessTableNoView");
         }
         return generateProcess(process);
       } else if (viewId.startsWith("attachment_")) {
@@ -116,6 +119,12 @@
     }
   }
 
+  private boolean hasAccess(Process process) {
+    String userLevel = OBContext.getOBContext().getUserLevel();
+    int accessLevel = Integer.parseInt(process.getDataAccessLevel());
+    return EntityAccessChecker.hasCorrectAccessLevel(userLevel, accessLevel);
+  }
+
   protected String generateWindow(Window window) {
     standardWindowComponent.setWindow(window);
     standardWindowComponent.setParameters(getParameters());
diff --git a/src/org/openbravo/dal/security/EntityAccessChecker.java b/src/org/openbravo/dal/security/EntityAccessChecker.java
--- a/src/org/openbravo/dal/security/EntityAccessChecker.java
+++ b/src/org/openbravo/dal/security/EntityAccessChecker.java
@@ -351,7 +351,7 @@
    *          the data access level defined in the table
    * @return true if access is allowed, false otherwise
    */
-  private boolean hasCorrectAccessLevel(String userLevel, int accessLevel) {
+  public static boolean hasCorrectAccessLevel(String userLevel, int accessLevel) {
     // copied from HttpSecureAppServlet.
     if (!OBContext.getOBContext().doAccessLevelCheck()) {
       return true;
