Hola bueno dias, he grabado un Script en SAP para meterlo en un Excel que baje datos, funciona correctamente pero quiero meter un condicional IF que evalúe un campo de SAP y no se como referirme al valor de ese campo, ya que no conozco mucho el lenguaje de SAP.
Este es el código del Script, en rojo os marco donde debo meter el valor a evaluar por el IF.
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
Set objShell = WScript.CreateObject("WScript.Shell")
Set objVariableEntorno = objShell.Environment("Process")
Set xclapp = GetObject(, "Excel.Application")
Set hoja = xclapp.Sheets("Macro")
fechaInicio = hoja.Cells(1, 5).Value
fechaFin = hoja.Cells(2, 5).Value
CCA350S19 = hoja.Cells(2, 2).Value
session.findById("wnd[0]").resizeWorkingPane 113,27,false
session.findById("wnd[0]/tbar[0]/okcd").text = "ZPP_HORAS_ESTANDAR_N"
session.findById("wnd[0]/tbar[0]/btn[0]").press
session.findById("wnd[0]/usr/ctxtP_CECO").text = CCA350S19
session.findById("wnd[0]/usr/txtP_INI").text = fechaInicio
session.findById("wnd[0]/usr/txtP_FIN").text = fechaFin
session.findById("wnd[0]/usr/txtP_FIN").setFocus
session.findById("wnd[0]/usr/txtP_FIN").caretPosition = 10
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/usr/tblZPPR_INC_SAPI_0026_V2GBP_SUMAS").getAbsoluteRow (0).selected = true
session.findById("wnd[0]/usr/tblZPPR_INC_SAPI_0026_V2GBP_SUMAS/txtR_DATOS_GBP-GBP[0,0]").setFocus
session.findById("wnd[0]/usr/tblZPPR_INC_SAPI_0026_V2GBP_SUMAS/txtR_DATOS_GBP-GBP[0,0]").caretPosition = 0
session.findById("wnd[0]/usr/btnVER_DET").press
If( zzzzzzzz ) Then
session.findById("wnd[0]/usr/subSUB_DETALLE:ZPPR_INC_SAPI_0026_V2:9000/btnBOT_HINC").press
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").setCurrentCell -1,"INCU"
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").selectColumn "INCU"
session.findById("wnd[0]/tbar[1]/btn[30]").press
session.findById("wnd[0]/tbar[1]/btn[45]").press
session.findById("wnd[1]/usr/sub:SAPLSPO5:0101/radSPOPLI-SELFLAG[1,0]").select
session.findById("wnd[1]/usr/sub:SAPLSPO5:0101/radSPOPLI-SELFLAG[1,0]").setFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/usr/ctxtRLGRAP-FILENAME").text = "C:\Users\NG612C7\Documents\SAP\SAP GUI\IncurridasA350S19.xls"
session.findById("wnd[1]/usr/ctxtRLGRAP-FILENAME").caretPosition = 60
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
End If
Este sería el caso, que una veces el valor es 0 y otras no, el IF debe evaluar ese valor y si es distinto de 0 entra a la ejecución y si no pasa.

He intentado dar con el nombre del cambio y poner la secuencia correcta pero he sido incapaz.
Adjunto datos de las tablas SAP.
Este es el código del Script, en rojo os marco donde debo meter el valor a evaluar por el IF.
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
Set objShell = WScript.CreateObject("WScript.Shell")
Set objVariableEntorno = objShell.Environment("Process")
Set xclapp = GetObject(, "Excel.Application")
Set hoja = xclapp.Sheets("Macro")
fechaInicio = hoja.Cells(1, 5).Value
fechaFin = hoja.Cells(2, 5).Value
CCA350S19 = hoja.Cells(2, 2).Value
session.findById("wnd[0]").resizeWorkingPane 113,27,false
session.findById("wnd[0]/tbar[0]/okcd").text = "ZPP_HORAS_ESTANDAR_N"
session.findById("wnd[0]/tbar[0]/btn[0]").press
session.findById("wnd[0]/usr/ctxtP_CECO").text = CCA350S19
session.findById("wnd[0]/usr/txtP_INI").text = fechaInicio
session.findById("wnd[0]/usr/txtP_FIN").text = fechaFin
session.findById("wnd[0]/usr/txtP_FIN").setFocus
session.findById("wnd[0]/usr/txtP_FIN").caretPosition = 10
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/usr/tblZPPR_INC_SAPI_0026_V2GBP_SUMAS").getAbsoluteRow (0).selected = true
session.findById("wnd[0]/usr/tblZPPR_INC_SAPI_0026_V2GBP_SUMAS/txtR_DATOS_GBP-GBP[0,0]").setFocus
session.findById("wnd[0]/usr/tblZPPR_INC_SAPI_0026_V2GBP_SUMAS/txtR_DATOS_GBP-GBP[0,0]").caretPosition = 0
session.findById("wnd[0]/usr/btnVER_DET").press
If( zzzzzzzz ) Then
session.findById("wnd[0]/usr/subSUB_DETALLE:ZPPR_INC_SAPI_0026_V2:9000/btnBOT_HINC").press
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").setCurrentCell -1,"INCU"
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").selectColumn "INCU"
session.findById("wnd[0]/tbar[1]/btn[30]").press
session.findById("wnd[0]/tbar[1]/btn[45]").press
session.findById("wnd[1]/usr/sub:SAPLSPO5:0101/radSPOPLI-SELFLAG[1,0]").select
session.findById("wnd[1]/usr/sub:SAPLSPO5:0101/radSPOPLI-SELFLAG[1,0]").setFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/usr/ctxtRLGRAP-FILENAME").text = "C:\Users\NG612C7\Documents\SAP\SAP GUI\IncurridasA350S19.xls"
session.findById("wnd[1]/usr/ctxtRLGRAP-FILENAME").caretPosition = 60
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
End If
Este sería el caso, que una veces el valor es 0 y otras no, el IF debe evaluar ese valor y si es distinto de 0 entra a la ejecución y si no pasa.

He intentado dar con el nombre del cambio y poner la secuencia correcta pero he sido incapaz.
Adjunto datos de las tablas SAP.



Comentario