code: public CmsOrganizationalUnit createOrganizationalUnit(
          CmsRequestContext context,
          String ouFqn,
          String description,
          int flags,
          CmsResource resource)
      throws CmsException {
  
          CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
          CmsOrganizationalUnit result = null;
          try {
              checkRole(dbc, CmsRole.ADMINISTRATOR.forOrgUnit(getParentOrganizationalUnit(ouFqn)));
              checkOfflineProject(dbc);
              result = m_driverManager.createOrganizationalUnit(
                  dbc,
                  CmsOrganizationalUnit.removeLeadingSeparator(ouFqn),
                  description,
                  flags,
                  resource);
          } catch (Exception e) {
              dbc.report(null, Messages.get().container(Messages.ERR_CREATE_ORGUNIT_1, ouFqn), e);
          } finally {
              dbc.clear();
          }
          return result;
      }
docs: Creates a new organizational unit.<p>
  
  @param context the current request context
  @param ouFqn the fully qualified name of the new organizational unit
  @param description the description of the new organizational unit
  @param flags the flags for the new organizational unit
  @param resource the first associated resource
  
  @return a <code>{@link CmsOrganizationalUnit}</code> object representing
  the newly created organizational unit
  
  @throws CmsException if operation was not successful
  
  @see org.opencms.security.CmsOrgUnitManager#createOrganizationalUnit(CmsObject, String, String, int, String)