private BusinessPartnerCategoryData getEditVariables(Connection con, VariablesSecureApp vars)
      throws IOException, ServletException {
    BusinessPartnerCategoryData data = new BusinessPartnerCategoryData();
    ServletException ex = null;
    try {
      data.adOrgId = vars.getRequiredGlobalVariable("inpadOrgId", windowId + "|AD_Org_ID");
      data.adOrgIdr = vars.getStringParameter("inpadOrgId_R");
      data.cBpGroupId = vars.getRequestGlobalVariable("inpcBpGroupId", windowId + "|C_BP_Group_ID");
      data.value = vars.getStringParameter("inpvalue");
      data.name = vars.getRequiredStringParameter("inpname");
      data.description = vars.getStringParameter("inpdescription");
      data.isactive = vars.getStringParameter("inpisactive", "N");
      data.isdefault = vars.getStringParameter("inpisdefault", "N");
      data.adClientId = vars.getRequiredGlobalVariable("inpadClientId", windowId + "|AD_Client_ID");
      data.createdby = vars.getUser();
      data.updatedby = vars.getUser();
      data.adUserClient = Utility.getContext(this, vars, "#User_Client", windowId, accesslevel);
      data.adOrgClient =
          Utility.getContext(this, vars, "#AccessibleOrgTree", windowId, accesslevel);
      data.updatedTimeStamp = vars.getStringParameter("updatedTimestamp");

      if (data.value.equals(""))
        data.value =
            Utility.getDocumentNoConnection(con, this, vars.getClient(), "C_BP_Group", true);
    } catch (ServletException e) {
      vars.setEditionData(tabId, data);
      throw e;
    }
    // Behavior with exception for numeric fields is to catch last one if we have multiple ones
    if (ex != null) {
      vars.setEditionData(tabId, data);
      throw ex;
    }
    return data;
  }