Manipular permisos o autorizaciones de usuarios en SAP Business One

Antes que nada, evita cambiar permisos o autorizaciones del usuario manager o cualquier otro usuario que tenga privilegios de administración del sistema.

Previamente, antes de cargar o modificar permisos en la tabla de SAP, debemos crear un archivo parecido al siguiente:

ejemplo_Excel

Este archivo, depende de los IDs de permisos o autorizaciones que vienen ya configurados desde la instalación de SAP.

Finalmente, debemos tener la siguiente Macro de Excel, que hará la lectura del archivo Excel, conexión a la base de datos SAP y escritura:

Sub importar_permisos()
'
' importar_permisos Macro
'
    Dim SboGuiApi As New SAPbouiCOM.SboGuiApi
    Dim SBO_App As SAPbouiCOM.Application
    Dim oCompany As New SAPbobsCOM.Company
    SboGuiApi.Connect ("0030002C0030002C00530041005000420044005F00440061007400650076002C0050004C006F006D0056004900490056")
    Set SBO_App = SboGuiApi.GetApplication()
    Set oCompany = SBO_App.Company.GetDICompany()
    Dim oRsSUers As SAPbobsCOM.Recordset
    Dim oSBObob As SAPbobsCOM.SBObob
    Set oSBObob = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoBridge)
    Set oRsSUers = oSBObob.GetUserList()
    col = 5

    Do While ActiveSheet.Cells(1, col)  ""
        UserName = ActiveSheet.Cells(1, col)
        Row = 3
        'Do While ActiveSheet.Cells(row, 1)  "" Or ActiveSheet.Cells(row, 1)  "UP_MAIN_HEADER"
        Do While ActiveSheet.Cells(Row, 1)  "" '"UP_MAIN_HEADER"
            ' Where has no son, There can Authoritaion rewrited
            If ActiveSheet.Cells(Row, col)  "" And ActiveSheet.Cells(Row, 4) = 0 Then
                Select Case ActiveSheet.Cells(Row, col)
                    Case "Autorización total"
                        lPermission = 1
                    Case "Sólo lectura"
                        lPermission = 2
                    Case "Falta autorización"
                        lPermission = 3
                    Case "Varias autorizaciones"
                        lPermission = 4
                    Case "No definido"
                        lPermission = 6
                    Case Else
                        lPermission = -1
                End Select

                If lPermission  -1 Then
                    Call oSBObob.SetSystemPermission(UserName, ActiveSheet.Cells(Row, 1), lPermission)
                    If oCompany.GetLastErrorCode  0 Then
                        ActiveSheet.Cells(Row, col).Color = "123456"
                    End If
                End If
            End If
            Row = Row + 1
        Loop
        col = col + 1
        oRsSUers.MoveNext
    Loop
    oCompany.Disconnect
    
End Sub

Una web que tomé como referencia fue ésta, pero realmente tiene unas líneas con errores, así que decidí hacer mi propia Macro, pero no estuvo de más la referencia.

Otro sitio interesante de ayuda es éste.

Por otro lado, bien recibida la ayuda del los amigos en el foro iberoamericano Ayuda SAP.

Advertisements

About felixurbina

Humano con todos los defectos y virtudes que vienen de fábrica.
This entry was posted in Excel, Ofimática, SAP, Windows. Bookmark the permalink.

4 Responses to Manipular permisos o autorizaciones de usuarios en SAP Business One

  1. sidvicius1 says:

    Hubiese estado bueno que nos menciones como sitio de interés, ya que más o menos creo que llegaste al sitio del SCN gracias a nuestra comunidad de ayuda SAP en español 😉

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s