¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Solución para deshabilitar la ventana emergente de OLE en SAP y Excel

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 188 Vistas
0
Cargando...

Hola a todos,

Soy bastante nuevo en el scripting de SAP, pero tengo algo de experiencia con VBA. Tengo el siguiente problema al intentar automatizar un proceso en SAP para mi posición actual. Estoy grabando una serie de procedimientos, pegando el código en una hoja de macros y haciendo que Excel lea el código VBS con los siguientes comandos:

    Dim SapGuiAuto As Object
Dim Application As Object
Dim Connection As Object
Dim Session As Object

Set SapGuiAuto = GetObject("SAPGUI")
Set Application = SapGuiAuto.GetScriptingEngine
Set Connection = Application.Children(0)
Set Session = Connection.Children(0)
    
  

Todo está bien, pero en una de las partes SAP realiza muchos cálculos que tardan unos minutos y alrededor de la mitad, Excel genera el mensaje:

Así que tengo que hacer clic en Aceptar para continuar, lo cual es molesto porque luego aparece sin parar y tengo que hacerlo unas 10-15 veces para alcanzar el objetivo, lo que elimina el propósito de la automatización. Cuando lo hago sin una macro, SAP no me da ningún error. Intenté desactivarlo con

Application.DisplayAlerts = False, pero no funciona, en su lugar me da:

Busqué en la red y en el sitio, pero apenas encontré información útil, tal vez porque mi pregunta es demasiado específica. Algunos detalles adicionales:

1. Mi computadora portátil es del trabajo y no puedo instalar ningún software adicional o actualizaciones sin permiso, así que por favor, dame soluciones alternativas si tenías eso en mente.

2. Intenté verificar la opción de Excel para DDE, pero solo me da un error cuando intento ejecutar el script:

3. Excel es 2013, SAP - ABAP.

Entonces, ¿alguien puede ayudarme a lograr una de las tres soluciones que se me ocurren?

1. Deshabilitar la ventana emergente de OLE.

2. Hacer clic automáticamente en Aceptar cada vez que aparezca.

3. ¿Hacer que Excel se congele y espere mientras SAP hace su trabajo? (no sé si eso tiene sentido...) - Por cierto, intenté con Application.Wait, pero sin éxito.

Realmente espero que alguien pueda ayudarme aquí,

Gracias de antemano,

Mihail

error.png
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Mihail,

"Application" es una palabra protegida en VBA. En su lugar, podrías usar lo siguiente:

Set SapGuiAuto = GetObject("SAPGUI")  'Obtener el objeto de scripting de GUI de SAP
Set SAPApp = SapGuiAuto.GetScriptingEngine 'Obtener el GUI de SAP actualmente en ejecución
Set SAPCon = SAPApp.Children(0) 'Obtener el primer sistema que está actualmente conectado
Set session = SAPCon.Children(0) 'Obtener la primera sesión (ventana) en esa conexión
...

Saludos,

ScriptMan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Si estás trasladando el script grabado a VBA, es mejor omitir por completo las primeras 14 líneas y utilizar las que he recomendado arriba. Por supuesto, añades las líneas restantes del script grabado a ello.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola ScriptMan,

Gracias por la sugerencia, sin embargo no puedo eliminar la declaración de Application. Cuando pego el código del script grabado, la palabra Application está incrustada dentro del código:

If Not IsObject(Application) Then Set SapGuiAuto = GetObject("SAPGUI") Set Application = SapGuiAuto.GetScriptingEngine

¿Debería cambiar algo adicionalmente en ese código?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?