MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Formularios - SAPScript - Smartforms
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 27/03/17, 21:21:31
mesk-one mesk-one is offline
Junior Member
 
Fecha de Ingreso: mar 2017
Mensajes: 5
Script SAP para exportar datos a Excel

Responder Con Cita
  #2  
Viejo 30/03/17, 14:30:50
mesk-one mesk-one is offline
Junior Member
 
Fecha de Ingreso: mar 2017
Mensajes: 5
Este es el Script que tengo, solo necesito que me evalue el valor de un numero que muestra SAP para si es 0 no haga la transaccion, pero no se como referirme a ese valor. Dondoe pone "zzzzzz" es donde me falta la linea de codigo que no consigo sacar


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
Responder Con Cita
  #3  
Viejo 19/04/17, 14:38:46
cardama cardama is offline
Junior Member
 
Fecha de Ingreso: feb 2017
Localización: Luxembourg
Mensajes: 6
Saludos mesk-one.

Una respuesta exacta no te puedo dar, pero si una idea de como podrías controlarlo.

La idea que se me ocurre es que justo cuando vas a lanzar la consulta que te muestra esa ventana con el mensaje de que no hay ficheros, actives la grabación del script y pares justo la grabación después de pulsar el botón de aceptar ese mensaje.
En ese script posiblemente te aparezca algo similar a lo siguiente:

Session.findById("wnd[1]/tbar[1].bth[8]").press

El tema seria probar si puedes controlarlo de la forma:

if session.findById("wnd[1]").visible then ....

no se si es correcto hacerlo de esta forma, pero es una idea.
Tengo muchos años de experiencia en programación en vba pero muy poca en desarrollar script para controlar SAP.

Espero que te sirva la idea y ya indicaras si era posible.

Un saludo.
Responder Con Cita
  #4  
Viejo 21/04/17, 10:51:52
mesk-one mesk-one is offline
Junior Member
 
Fecha de Ingreso: mar 2017
Mensajes: 5


Es una buena idea, he intenado ponerlo así, pero no he conseguido que funciones, quizas las sintaxis del condicional no sea la correcta.

If (session.findById("wnd[1]").visible) Then

session.findById("wnd[1]/tbar[0]/btn[0]").press

End If


Muchas gracias



Este es el codigo al apretar el botón:
session.findById("wnd[0]").resizeWorkingPane 96,28,false
session.findById("wnd[0]/usr/subSUB_DETALLE:ZPPR_INC_SAPI_0026_V2:9000/btnBOT_HSUB").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
Responder Con Cita
  #5  
Viejo 06/12/17, 11:59:29
ricky_uy ricky_uy is offline
Junior Member
 
Fecha de Ingreso: sep 2009
Mensajes: 12
Podes poner codigo vbs


Hola,
Podrias poner codigo VBS dentro del script, en donde estas tomando la variable del excel,
inclusive podrias porner un "imput box" que te pregunte despliege el valor y tu decidas como continuar

la sentencia del if en vba es la siguiente:

if Variable >= 0 Then
.
.
.

else msgbox ("Variable es igual o menor que cero")
end if

(no necesitas cerrar cada sentencia con ";")

espero te sirva
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 20:24:13.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web