Skip to Content
avatar image
Former Member

Reporte de usuario y sus autorizaciones

Estimados amigos

alguno de ustedes a logrado generar un reporte de usuarios con las respectivas autorizaciones que tiene dentro del B1 o sabe cómo hacerlo y que me pueda ayudar.

Al posicionarse sobre el formulario Autorizaciones B1 hace referencia a una tabla llamada OPRM sin embargo a buscarla aparentemente esta no existe.

De antemano gracias por su ayuda

Patricio

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

1 Answer

  • Best Answer
    avatar image
    Former Member
    Sep 02, 2008 at 09:38 PM

    extraido del foro en Ingles

    "The table OPRM stores authorization tree information which are static

    value will not be changed, so it is not stored in the DB, but hardcoded

    in the system."

    -


    USR1,USR2 is empty.

    USR3 is each user's authorizations for user-defined authorizations.

    AUSR is User history , nothing relates with authorization.

    OUPT is authorizations header for user-defined authorizations.

    OPRM is system table , can't open via SQL.

    -


    mediante SDK

    System authorisations are in the OUSR table but they are in a single ntext field (ALLOWENCES) and SAP have not released information on the algorithm needed to convert this field in to meaningful data.

    I ran your code and I didn't have any problem accessing permissions for a non-superuser. What version of SBO are you running? Here's my test code for SBO 2007A:

    private void CheckPermissions()
    {
        SAPbobsCOM.SBObob oSBObob = (SAPbobsCOM.SBObob)_sboCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoBridge);
     
        try
        {
            SAPbobsCOM.Recordset oRecordSet = oSBObob.GetSystemPermission(_sboCompany.UserName.ToString(), "222");
            _sboApp.MessageBox(oRecordSet.Fields.Item(0).Value.ToString(), 1, "Ok", "", "");
        }
        catch(Exception ex)
        {
            _sboApp.SetStatusBarMessage(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Medium, true);
        }
        finally
        {
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oSBObob);
            oSBObob = null;
            GC.Collect();
        }
    }

    Note: There was a mistake in your code because you were passing the UserSignature value in to GetSystemsPermission method when it should be the user code (which is the Company.UserName property in the DI API).

    -


    suerte

    Add comment
    10|10000 characters needed characters exceeded