Skip to Content
0
Former Member
Feb 27, 2010 at 01:31 AM

Condicional no SAP Script

2545 Views

Senhores,

Como resolver a questão abaixo:

- Estou usando o Script do SAP 4.7 e ao elaborar uma rotina em uma transação foi surpreendido com duas alternativas de feedback ao sistema, ou seja, existe duas possibilidades de resposta ao sistema.

Foi justamente nessas duas possibilidades que peço a ajuda de vocês para dar solução:

Estou usando esta rotina:

session.findById("wnd[0]").maximize

session.findById("wnd[0]/tbar[0]/okcd").text = "cj02"

session.findById("wnd[0]").sendVKey 0

session.findById("wnd[0]/usr/ctxt*PROJ-PSPID").text = ""

For i = 2 To 65000

Set objExcel = GetObject(,"Excel.Application")

objExcel.Visible = True

objExcel.DisplayAlerts = False

with objExcel

.Workbooks.Open ("c: oboNorma_Peps.xls")

.Windows("Norma_Peps.xls").Activate

.Visible = True

.DisplayAlerts = False

.Sheets("Marcar para Eliminação").Select

.Cells(i,1).Select

pep = objexcel.Cells(i,1)

.Cells(i,1) = pep

End With

session.findById("wnd[0]/usr/ctxt*PROJ-PSPID").text = ""

session.findById("wnd[0]/usr/ctxt*PROJ-PSPID").text = ""

session.findById("wnd[0]/usr/ctxt*PRPS-POSID").text = pep

session.findById("wnd[0]/usr/ctxt*PRPS-POSID").setFocus

session.findById("wnd[0]/usr/ctxt*PRPS-POSID").caretPosition = 0

session.findById("wnd[0]").sendVKey 0

session.findById("wnd 0]/usr/tabsTABCJLE/tabpLEGR/ssubLISTE:SAPLCJWB:0902/tblSAPLCJWBTAB_902").getAbsoluteRow(0).selected = true

session.findById("wnd[0]/usr/tabsTABCJLE/tabpLEGR/ssubLISTE:SAPLCJWB:0902/tblSAPLCJWBTAB_902/txtPRPS-STUFE[1,0]").setFocus

session.findById("wnd[0]/usr/tabsTABCJLE/tabpLEGR/ssubLISTE:SAPLCJWB:0902/tblSAPLCJWBTAB_902/txtPRPS-STUFE[1,0]").caretPosition = 0

session.findById("wnd[0]/mbar/menu[1]/menu[2]/menu[10]").select

Até neste momento o programa funciona.

Daqui em diante, o programa tem que identificar que tipo de janela e tomar a ação devida.

Se for a janela A, deve seguir com a rotina abaixo:

session.findById("wnd[1]/usr/btnOPTION2").press

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

session.findById("wnd[0]/usr/ctxt*PROJ-PSPID").text = ""

session.findById("wnd[0]/usr/ctxt*PRPS-POSID").text = ""

session.findById("wnd[0]/usr/ctxt*PRPS-POSID").setFocus

session.findById("wnd[0]/usr/ctxt*PRPS-POSID").caretPosition = 0

with objExcel

.Windows("Norma_Peps.xls").Activate

.Visible = True

.DisplayAlerts = False

.Sheets("Marcar para Eliminação").Select

.Cells(i,2).Select

.Cells(i,2) = "X"

.ActiveWorkbook.Save

End With

Next

End Function

Se for a janela B, deve seguir com a rotina abaixo:

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

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

session.findById("wnd[0]/usr/ctxt*PROJ-PSPID").text = ""

session.findById("wnd[0]/usr/ctxt*PRPS-POSID").text = ""

session.findById("wnd[0]/usr/ctxt*PRPS-POSID").setFocus

session.findById("wnd[0]/usr/ctxt*PRPS-POSID").caretPosition = 0

Next

End Function

Como elaborar uma condicional que consiga saber qual ação tomar ?

Agradeço,

Eduardo