Saltar al contenido

Script de VBS: espera, pausa, suspensión

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.