cancel
Showing results for 
Search instead for 
Did you mean: 

Reporte de usuario y sus autorizaciones

patricio_moraga
Explorer
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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

Answers (0)