¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo integrar Excel y SAP mediante VBA para la importación de archivos - Problema de enfoque en ventana SAP

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

Hola, soy nuevo aquí.

¿Alguien puede ayudarme con la conexión entre Excel y SAP a través de VBA? Pido ayuda para enfocarme en otra ventana mientras se procesa un script. Es la ventana de SAP. Es SAP ARP - transacción CO02 - cambio de orden - añadiendo un archivo adjunto. Estoy en el paso final donde aparece una pequeña ventana de importación y solo necesito insertar o buscar la ruta del archivo que quiero agregar. Es una especie de ventana de Microsoft - a la izquierda hay grandes botones con escritorio, documentos y 2-3 más. Pero se llama Importar en la esquina superior izquierda. Quiero usar el comando sendkeys - la ruta será siempre la misma, por ejemplo, C:\Archivo\xxx.pdf. Así que pensé que sería muy fácil simplemente llamar al macro grabado en SAP hasta que aparezca la ventana, luego enviar la ruta "C:\Archivo\xxx.pdf" y luego continuar con el macro de SAP para confirmarlo y guardar - fin.

El problema es que cuando aparece la ventana y envío las teclas, no escribe nada en el cuadro de la ruta. Cuando ejecuto el macro hasta que aparece la ventana y escribo algo en el teclado, escribe normalmente en el cuadro.

¿Alguien puede ayudarme por favor con esto? He intentado una aplicación "enfocar" ("microsoft") prompt (las comillas son porque no recuerdo la frase exacta, no tengo aquí el Excel y el archivo con el macro o SAP). No ayuda... tal vez porque no es una ventana de Windows sino una ventana de SAP.

Windows 7, Office 2007, ordenador de trabajo - así que no tengo acceso a todas las funciones del sistema operativo, pero creo que no importa.

Si alguien puede decirme cómo se llama el prompt en SAP, entonces será fácil: Algo así como: findbyID.......importwindow.input.text = la ruta al archivo...

:

Muchas gracias por sus respuestas.

Mirek

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

4 Respuestas

0
Cargando...

No estoy seguro de si funcionará con Excel 2007, pero ya he intentado ese enfoque en Excel 2010. No funciona para mí. Una vez que se abre el cuadro de diálogo de importación, el script se detiene. Usar un temporizador para llamar a otro sub en el mismo módulo para appactivate y sendkey solo volverá a funcionar si el diálogo abierto inicialmente desde el primer sub se cierra y se vuelve a abrir manualmente. Bueno, eso o el VBE arroja un error porque no se encuentra la ventana, dependiendo de cómo lo codifiques.

Por cualquier razón técnica, ya sea en SAPGUI, Windows o Excel, la única forma de hacer esto es ejecutar los subprocesos desde dos instancias de proceso diferentes, con el primer script llamando al segundo script antes de llamar al cuadro de diálogo. Puedes usar VBA en dos archivos de Excel diferentes, VBA y VBS, VBS y otro VBS o dos instancias de proceso de script de los lenguajes de script que prefieras.

Creo que Scriptman usó 4 VBS diferentes para hacerlo: uno para llamar al diálogo, dos para esperar 0.1 seg y 1 seg, y otro para appactivate y sendkeys.

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

Nota:

Ahora estoy jugando con eso de nuevo. Así que ahora entiendo que tal vez necesito ejecutar una macro para

session.findById("wnd[0]/shellcont/shell").selectContextMenuItem "PCATTA_CREA"

luego finalizar la macro original y ejecutar otra con

AppActivate "Import file"

SendKeys "HEJ", True

Funciona.

Así que ahora necesito: ejecutar la macro - hasta que aparezca el archivo de importación - establecer algún tipo de temporizador - 1 segundo para ejecutar otro sub durante un segundo finalizar la macro original... y luego se iniciará el segundo sub... Sé que está escrito de manera estúpida pero es lo que Scriptman básicamente hizo hace 3 años en ese hilo, ¿verdad?

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

Hola, gracias por tu respuesta.
Por lo que he leído, es posible, pero usando un segundo archivo vbs creado... No tengo experiencia en la creación de archivos vbs, pero lo aprenderé.

Sin embargo, simplemente no entiendo por qué debe hacerse a través de 2 scripts, ¿por qué no podrían unirse? ¿Probablemente por qué el comando appactivate "Import file" simplemente no enfoca? Si conocemos el nombre de la ventana, debería seleccionarlo, y cuando esté abierto, el cursor está donde necesitamos que esté, así que simplemente escribimos... pero nada.

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

Estimado Mirek,

Se sabe que la ventana de diálogo de importación puede detener el proceso de script tanto para VBA como para VBS hasta que reciba una entrada ya sea manualmente o desde "sendkeys" enviados desde un script de llamada diferente.

Este asunto ha sido discutido en detalle con algunas opciones de solución aquí: http://scn.sap.com/thread/3448546 y aquí: http://scn.sap.com/thread/1799453

Gracias,

Sayuti

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?