
Para determinar si una sesión de SAP ya está abierta utilizando VBA, puedes comprobar si tienes acceso a la aplicación SAP GUI a través de los objetos de automatización que SAP proporciona. Aquí te dejo un ejemplo de cómo podrías realizar esta tarea:
Sub CheckSAPSession()
On Error Resume Next
Dim SapGuiApp As Object
Dim connection As Object
Dim session As Object
Dim i As Integer
Dim isSAPEecuting As Boolean
' Intenta obtener el objeto SAPGUI
Set SapGuiApp = GetObject("SAPGUI")
' Si no se puede obtener el objeto, la GUI de SAP probablemente no está ejecutándose
If SapGuiApp Is Nothing Then
MsgBox "SAP GUI no está ejecutándose."
Exit Sub
End If
' Intenta obtener la conexión
Set connection = SapGuiApp.Children(0)
' Si no se puede obtener la conexión, no hay conexión abierta
If connection Is Nothing Then
MsgBox "No hay conexiones de SAP abiertas."
Exit Sub
End If
' Comprueba cada sesión dentro de la conexión
isSAPExecuting = False
For i = 0 To connection.Children.Count - 1
Set session = connection.Children(i)
If Not session Is Nothing Then
' Si encuentras una sesión activa, considera que SAP ya está abierto
isSAPExecuting = True
Exit For
End If
Next i
If isSAPExecuting Then
MsgBox "SAP ya está abierto con una sesión."
Else
MsgBox "SAP no tiene sesiones activas abiertas."
End If
' Limpia los objetos
Set session = Nothing
Set connection = Nothing
Set SapGuiApp = Nothing
End Sub
Este script intenta acceder a la aplicación y las conexiones de SAP a través de `GetObject`. Si logra acceder sin errores, se asume que SAP está ejecutándose con al menos una sesión abierta. El script maneja errores potenciales usando `On Error Resume Next`, lo que permite que continúe ejecutándose incluso si encuentra problemas al acceder a objetos que probablemente no existan.
Recuerda que para ejecutar este código, necesitas tener SAP GUI instalado en tu equipo, y asegurarte de que “Script Recording & Playback” esté habilitado en SAP GUI Options (para acceder a esto, ve a SAPGUI Options -> Scripting -> Enable Scripting). Además, algunas configuraciones de seguridad en SAP pueden limitar la capacidad de los scripts para acceder a la GUI.
Conoce nuestros servicios



