Error al reproducir Script

Buenos días. Mi nombre es Carlos, encantado de saludarles.

Os escribo porque estoy desesperado, estoy creando un script desde el menú principal de SAP (ALT+F12) y “Grabar o Reproducir Script” y al reproducirlo me aparece un error de advertencia que dice “Se esperaba un final de instrucción -”. Procedo a poner paso por paso lo que hago.

1- Entro a la tabla Z* que necesito actualizar.
2- Procedo a generar el script desde el menú principal de SAP y pulsando en la opción “Grabar o Reproducir Script”.
3- Lo grabo con los pasos pertinentes.
4- Lo guardo y monto normalmente.
5- Procedo a ejecutar una prueba con cinco datos para ver que los inserta correctamente (tengo que meter unos 5000 datos en una tabla)
6- Los inserta correctamente, y acto seguido modifico el fichero antes utilizado borrando las líneas ya insertadas.
7- Al ejecutarlo de nuevo, me aparece un error que dice “Se esperaba un final de instrucción -” y no me deja ejecutar nada más, habiéndolo ejecutado un segundo antes sin problemas.

¿Qué puede estar pasando? Facilito el código de ejemplo del Script:

If Not IsObject(application) Then
   Set SapGuiAuto  = GetObject("SAPGUI")
   Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
   Set connection = application.Children(0)
End If
If Not IsObject(session) Then
   Set session    = connection.Children(0)
End If
If IsObject(WScript) Then
   WScript.ConnectObject session,     "on"
   WScript.ConnectObject application, "on"
End If
session.findById("wnd[0]").resizeWorkingPane 112,40,false
session.findById("wnd[0]/tbar[1]/btn[5]").press
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/ctxtZEJEMPLO01-BUKRS[0,0]").text = "1.1"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-REPID[1,0]").text = "1.2"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-CAMPO[2,0]").text = "1.3"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-SECNR[3,0]").text = "1.4"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-SIGN[4,0]").text = "1.5"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-OPTI[5,0]").text = "1.6"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-LOW[6,0]").text = "1.7"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-HIGH[7,0]").text = "1.8"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-DESCR[8,0]").text = "1.9"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/btn[11]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
session.findById("wnd[0]").resizeWorkingPane 112,40,false
session.findById("wnd[0]/tbar[1]/btn[5]").press
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/ctxtZEJEMPLO01-BUKRS[0,0]").text = "2.1"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-REPID[1,0]").text = "2.2"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-CAMPO[2,0]").text = "2.3"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-SECNR[3,0]").text = "2.4"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-SIGN[4,0]").text = "2.5"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-OPTI[5,0]").text = "2.6"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-LOW[6,0]").text = "2.7"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-HIGH[7,0]").text = "2.8"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-DESCR[8,0]").text = "2.9"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/btn[11]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press

Como aclaración, mi versión de SAP es la 770 Final Release. Si necesitan cualquier otra cosa, me dicen.

Muchas gracias de antemano y un saludo.

¿Nadie puede ayudarme?

Hola,

El problema que estás enfrentando al reproducir el script puede deberse a varias causas, desde errores en el script hasta problemas con la configuración del entorno. Aquí te dejo algunos pasos y recomendaciones para solucionar el error “Se esperaba un final de instrucción -”:

Revisión del Script

Primero, revisa que el script no tenga errores sintácticos. A veces, los errores de advertencia pueden ser causados por espacios en blanco, caracteres especiales o errores de indentación. Aquí hay algunos pasos para depurar tu script:

  1. Validar Estructura del Script:
    Asegúrate de que todas las estructuras de control estén correctamente cerradas y que no falten palabras clave esenciales.

  2. Probar con Pequeñas Modificaciones:
    Intenta ejecutar el script con solo unos pocos registros para asegurarte de que funciona correctamente antes de agregar todos los datos. Esto ayuda a identificar errores en una sección específica del script.

  3. Manejo de Errores:
    Agrega manejo de errores para capturar mensajes de error específicos y ayudar en la depuración. Puedes usar On Error Resume Next y If Err.Number <> 0 Then para capturar errores.

Ejemplo de Script Mejorado

He ajustado y mejorado tu script para incluir manejo básico de errores y asegurarme de que los pasos sean claros. Aquí tienes un ejemplo ajustado:

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

If Not IsObject(connection) Then
   Set connection = application.Children(0)
End If

If Not IsObject(session) Then
   Set session    = connection.Children(0)
End If

If IsObject(WScript) Then
   WScript.ConnectObject session, "on"
   WScript.ConnectObject application, "on"
End If

On Error Resume Next

' Primer conjunto de datos
session.findById("wnd[0]").resizeWorkingPane 112, 40, False
session.findById("wnd[0]/tbar[1]/btn[5]").press
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/ctxtZEJEMPLO01-BUKRS[0,0]").text = "1.1"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-REPID[1,0]").text = "1.2"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-CAMPO[2,0]").text = "1.3"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-SECNR[3,0]").text = "1.4"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-SIGN[4,0]").text = "1.5"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-OPTI[5,0]").text = "1.6"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-LOW[6,0]").text = "1.7"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-HIGH[7,0]").text = "1.8"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-DESCR[8,0]").text = "1.9"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/btn[11]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press

' Segundo conjunto de datos
session.findById("wnd[0]").resizeWorkingPane 112, 40, False
session.findById("wnd[0]/tbar[1]/btn[5]").press
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/ctxtZEJEMPLO01-BUKRS[0,0]").text = "2.1"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-REPID[1,0]").text = "2.2"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-CAMPO[2,0]").text = "2.3"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-SECNR[3,0]").text = "2.4"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-SIGN[4,0]").text = "2.5"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-OPTI[5,0]").text = "2.6"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-LOW[6,0]").text = "2.7"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-HIGH[7,0]").text = "2.8"
session.findById("wnd[0]/usr/tblSAPLZEJEMPLO01TCTRL_ZEJEMPLO01/txtZEJEMPLO01-DESCR[8,0]").text = "2.9"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/btn[11]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press

If Err.Number <> 0 Then
   MsgBox "Error: " & Err.Description
End If

On Error GoTo 0

Consejos Adicionales

  1. Dividir el Script:
    Divide tu script en partes más pequeñas y prueba cada una por separado. Esto puede ayudarte a identificar la sección específica que está causando el problema.

  2. Revisar Errores de Sintaxis:
    Asegúrate de que todas las líneas de tu script estén correctamente formateadas y no haya errores de sintaxis.

  3. Probar en Entornos Diferentes:
    Intenta ejecutar el script en diferentes entornos (si es posible) para descartar problemas específicos del sistema.

Resumen Consultoria-SAP

Para resolver el problema con la ejecución del script en SAP, es importante verificar la estructura del script, manejar los errores y probar en pequeñas secciones. Si sigues enfrentando problemas, puede ser útil buscar apoyo adicional en la comunidad o contactar a un consultor especializado.

¡Estamos aquí para ayudarte!