¿Cómo hacer login automático en SAP desde VBA?

Automatizar el inicio de sesión en SAP usando VBA (Visual Basic for Applications) puede ser útil para agilizar procesos repetitivos. Sin embargo, es importante hacerlo siguiendo las políticas de seguridad de tu organización, ya que automatizar el inicio de sesión implica manejar credenciales de usuario, lo cual siempre debe hacerse con cuidado.

Para realizar esta tarea, debes tener instalado y configurado el SAP GUI Scripting API en tu sistema. A continuación, te proporciono un ejemplo básico de cómo podría configurarse el inicio de sesión automático:

  • Activar el SAP GUI Scripting: Asegúrate de que el scripting esté habilitado en el servidor SAP y en el cliente SAP GUI. Esto suele hacerse en la transacción RZ11 configurando el parámetro `sapgui/user_scripting` en `TRUE`. En el cliente, ve a «Opciones de SAP Logon» y habilita el scripting en la sección Scripting.
  • Escribir el código VBA:
    • Abre Excel y presiona `ALT + F11` para abrir el Editor de VBA.
    • Inserta un nuevo módulo o utiliza uno existente.

Aquí tienes un ejemplo de código VBA para automatizar el login en SAP:

Sub LoginSAP()

    Dim SapGuiAuto As Object
    Dim SAPApp As Object
    Dim Connection As Object
    Dim Session As Object
    Dim SAPGUI As Object

    On Error Resume Next
    ' Obtén la aplicación SAP GUI
    Set SapGuiAuto = GetObject("SAPGUI")
    Set SAPApp = SapGuiAuto.GetScriptingEngine
    On Error GoTo 0
    
    If SAPApp Is Nothing Then
        MsgBox "SAP GUI no está disponible. Asegúrate de que SAP está abierto y el scripting está habilitado."
        Exit Sub
    End If
    
    ' Abre una conexión a un sistema específico. Asegúrate de ajustar los detalles del sistema
    Set Connection = SAPApp.OpenConnection("Descripción del Sistema SAP", True)
    Set Session = Connection.Children(0)
    
    ' Introduce las credenciales de usuario y password.
    Session.findById("wnd[0]/usr/txtRSYST-BNAME").Text = "tu_usuario"
    Session.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = "tu_contraseña"
    Session.findById("wnd[0]").SendVKey 0 ' Simula el botón Enter para iniciar sesión
    
    ' Realiza las acciones adicionales necesarias después de iniciar sesión, si es necesario.
    
    Set Session = Nothing
    Set Connection = Nothing
    Set SAPApp = Nothing
    Set SapGuiAuto = Nothing

End Sub
  • Personaliza el código:
    • Asegúrate de cambiar `»Descripción del Sistema SAP»`, `»tu_usuario»` y `»tu_contraseña»` con los valores respectivos que tú necesitas.
    • Ajusta las rutas de los objetos `findById` si la estructura de la pantalla de tu SAP es diferente. Este código asume una configuración estándar.
  • Ejecuta el Script:
    • Guarda los cambios y ejecuta el script desde el entorno de VBA.

Notas Importantes:

  • Seguridad: Nunca almacenes contraseñas en texto plano de forma inseguura. Considera utilizar métodos más seguros, como solicitar la contraseña al usuario durante el tiempo de ejecución.
  • Mantenimiento: Estos scripts pueden romperse si la interfaz de usuario de SAP cambia, así que es importante mantenerlos actualizados.
  • Permisos: Asegúrate de tener los permisos necesarios para utilizar el scripting de SAP GUI en tu organización.

Sigue siempre las directrices y prácticas recomendadas de tu empresa para el manejo de credenciales y scripting.

Conoce nuestros servicios

Conoce nuestra tienda

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Deja un comentario