Extraer IDs de permisos o autorizaciones de tabla en SAP Business One

Trabajando con SAP Business One e intentando facilitar un poco las tareas administrativas, he ido probando cuanta herramienta útil me ha funcionado en ambientes Software Libre, y vaya que me ha ido muy bien. Sin embargo, existen otras herramientas que también pueden hacer las labores de manera rápida.

La siguiente Macro, corresponde a una extracción de IDs de la tabla de permisos o autorizaciones de SAP Business One:

Sub conexion_ui()
'
' conexion_ui Macro
    Application.Goto Reference:="conexion_ui"
    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()
    SBO_App.ActivateMenuItem ("3332")
    Dim oForm As SAPbouiCOM.Form
    Set oForm = SBO_App.Forms.ActiveForm

    ' Cabeceras en Excel
    ActiveSheet.Cells(1, 1) = "ID"
    ActiveSheet.Cells(1, 2) = "Nombre"
    ActiveSheet.Cells(1, 3) = "Nivel"
    ActiveSheet.Cells(1, 4) = "Número de hijos"    

    oForm.Items.Item("13").Click (ct_Regular)
    Dim oMatrix As SAPbouiCOM.Matrix
    Set oMatrix = oForm.Items.Item("6").Specific
    Row = 1
    For i = 1 To oMatrix.VisualRowCount
        Dim oEditPermCode As SAPbouiCOM.EditText
        Dim oEditPermName As SAPbouiCOM.EditText
        Dim oEditPermLevel As SAPbouiCOM.EditText
        Dim oEditPermNumOfSons As SAPbouiCOM.EditText
        Set oEditPermCode = oMatrix.Columns.Item("0").Cells.Item(i).Specific
        Set oEditPermName = oMatrix.Columns.Item("1").Cells.Item(i).Specific
        Set oEditPermLevel = oMatrix.Columns.Item("7").Cells.Item(i).Specific
        Set oEditPermNumOfSons = oMatrix.Columns.Item("6").Cells.Item(i).Specific
        ActiveSheet.Cells(Row, 1) = oEditPermCode.String
        ActiveSheet.Cells(Row, 2) = oEditPermName.String
        ActiveSheet.Cells(Row, 3) = oEditPermLevel.String
        ActiveSheet.Cells(Row, 4) = oEditPermNumOfSons.String
        If oEditPermCode.String = "UP_MAIN_HEADER" Then Exit For
        Row = Row + 1
    Next
End Sub

Para que la conexión de la Macro sea efectiva, debemos tener abierta una sesión en la base de datos de SAP que deseamos alterar o modificar, una vez abierta, la línea:

SboGuiApi.Connect ("0030002C0030002C00530041005000420044005F00440061007400650076002C0050004C006F006D0056004900490056")

Es la que nos hará la conexión hacia dicha base de datos, este número de muchos dígitos, está dentro de las rutas de ejemplo del propio SAP, específicamente en:

C:\Program Files (x86)\SAP\SAP Business One SDK\Samples\UDO\BlanketAgreement\GUI

También debemos considerar el objeto de dónde se tomarán los datos, la siguiente línea, representa dicho objeto:

SBO_App.ActivateMenuItem ("3332")

Para que funcionen las clases de SAP dentro de nuestra Macro, debemos decirle al ambiente de VBA de Excel, en: Herramientas -> Referencias, que se lean las clases necesarias, en mi caso debió quedar de la siguiente manera:

librearia_sap

Una vez cargada la Macro y se ejecuta, el archivo Excel debería quedar algo parecido a lo siguiente:

permisos_sap

Advertisements

About felixurbina

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

2 Responses to Extraer IDs de permisos o autorizaciones de tabla en SAP Business One

  1. Pingback: Manipular permisos o autorizaciones de usuarios en SAP Business One | Satélite Guayana

  2. Rey Gómez says:

    Hola buenos días, disculpa, la parte para sacar el número que hace referencia a la conexión, no he tenido éxito en encontrarlo, o no se porque no lo puedo abrir o porque no me sale, podrías decirme como lograr visualizarlo o que extensión tiene? de antemano muchas gracias

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