Referencia a un valor para IF

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • mesk-one
    Junior Member
    • mar
    • 5

    #1

    Referencia a un valor para IF

    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.
  • mesk-one
    Junior Member
    • mar
    • 5

    #2
    Datos de SAP








    es lo ultimo que me falta para pulir la herramienta y no se como poner la secuencia para que evalúe el valor que se muestra antes de descargar los datos.


    Un saludo y mil gracias

    Comentario

    • ricky_uy
      Junior Member
      • sep
      • 12

      #3
      cargar el valor del campo a una variable

      Originalmente publicado por mesk-one
      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.
      Probaste cargar el valor del campo a una variable? y esa variable es la que usas en el script?

      Comentario

      Trabajando...