Un Usuario hizo la siguiente pregunta
Estimados expertos,
Novato aquí.
Pude grabar algo (elegir el progreso en TC LT45) y generar un archivo VBS como resultado.
Ahora, este script se está ejecutando haciendo lo que debería estar haciendo, en lugar del temporizador: se ejecuta demasiado rápido y, por lo tanto, estoy buscando algunos comandos / código para pausar.
Tengo ejemplos como Application.Wait («0: 00: 1000») pero a SAP no le gusta eso.
Vea el código ‘mi’ a continuación.
Se agradecerá cualquier respuesta.
Gracias, nick
Si no es IsObject (aplicación) Entonces
Establecer SapGuiAuto = GetObject («SAPGUI»)
Establecer aplicación = SapGuiAuto.GetScriptingEngine
Terminara si
Si IsObject (enlace) Entonces
Conexión fija = aplicación Niños (0)
Terminara si
Si IsObject (sesión) Entonces
Sesión de configuración = conexión Niños (0)
Terminara si
Si IsObject (WScript), entonces
WScript.ConnectObject, sesión «en»
WScript.ConnectObject, aplicación «on»
Terminara si
seisiún.findById («wnd[0]») .resizeWorkingPane 263,47, falso
seisiún.findById («wnd[0]») .sendVKey 8
Application.Wait («0: 00: 1000»)
seisiún.findById («wnd[0]») .sendVKey 3
seisiún.findById («wnd[0]») .sendVKey 8
Application.Wait («0: 00: 5000»)
seisiún.findById («wnd[0]») .sendVKey 3
seisiún.findById («wnd[0]») .sendVKey 8
Application.Wait («0: 00: 1000»)
seisiún.findById («wnd[0]») .sendVKey 3
seisiún.findById («wnd[0]») .sendVKey 8
seisiún.findById («wnd[0]») .sendVKey 3
seisiún.findById («wnd[0]») .sendVKey 8
seisiún.findById («wnd[0]») .sendVKey 3
Editado por: N. Lagace el 8 de marzo de 2012 13:37
2 respuesta
Ex miembro
Hola N. Lagace,
en vbs-scripts tienes que usar esto:
milisegundos wscript.sleep
p.ej.
. . .
wscript.sleep 6000
. . .
El script esperará 60 segundos y continuará con el código.
Lo uso siempre.
Mirar:
http://technet.microsoft.com/en-us/library/ee156589.asp
Listado 3.13 Estableciendo el valor del tiempo de las Escrituras
Saludos,
netkid
Ex miembro
Desde el punto de vista del programa, es mejor no usar el estado de suspensión y el estado de espera, ya que hace que el script no sea confiable y lleva más tiempo de lo necesario para ejecutarse.
Por lo general, refiero los campos directamente por ID y luego les escribo directamente. ES DECIR:
seisiún.findById («wnd[1]/ usr / tabsTAB_STRIP / tabpSIVA / ssubSCREEN_HEADER: SAPLALDB: 3010 / tblSAPLALDBSINGLE / ctxtRSCSEL_255-SLOW_I[1,0]») .text =» CC * «
o una referencia más simple:
seisiún.findById («wnd[0]/usr/txtMAX_SEL»).text = «1000000»
wnd la ventana, entonces hay una jerarquía simple, entonces wnd (número de ventana]/[part of window]/[field name]).[text] = [in quotes, the text that should go into the field, or a variable/parameter (no quotes for those)]
Puede usar la función de grabación de secuencias de comandos para averiguar qué referencias son para dominios individuales, o puede usar GuiXT, navegar a un dominio y anotar el nombre del dominio en el cuadro de información de GuiXT.
Al usar referencias directas como esta, el sistema esperará automáticamente hasta que se complete una entrada de campo antes de pasar a la siguiente.
Creo que esta es una solución más elegante que registrar los períodos de espera en el guión.