cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

SAP Scripting Looping Issue

nburaq
Explorer
0 Likes
494

Hi Gents,

I have created a script to call WO using IW31 Tcode however my script stops after completing the first row successfully. I might be making mistake at loop section. Is anyone can check my code where I make mistake? Thanks for your help!

Public SapGuiAuto, WScript, MsgCol

Public ObjGui As GuiApplication

Public ObjCon As GuiConnection

Public Session As GuiSession

Sub WOCreate()

'Connection to SAP

Application.DisplayAlerts = False

Application.ScreenUpdating = False

Set SapGuiAuto = GetObject("SAPGUI")

Set ObjGui = SapGuiAuto.GetScriptingEngine

Set ObjCon = ObjGui.Children(0)

Set Session = ObjCon.Children(0)

ObjGui.AllowSystemMessages = False

ObjGui.HistoryEnabled = False

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

Dim Rng As Range

Dim ActRng As Range

Dim i As Long

Set ActRng = Range("A1")

Set Rng = Sheets("Load").Range("A2")

Rowmax = Rng.End(xlDown).Row - Rng.Row 'Find no of rows used in the file

Session.findById("wnd[0]/tbar[0]/okcd").Text = "/NIW31" 'WO Creation Screen

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

For i = 1 To Rowmax 'Loop Starts

Session.findById("wnd[0]/tbar[0]/okcd").Text = "/NIW31" 'WO Creation Screen

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

Session.findById("wnd[0]/usr/ctxtAUFPAR-PM_AUFART").Text = ActRng.Offset(i, 0).Value

Session.findById("wnd[0]/usr/subOBJECT:SAPLCOIH:7120/ctxtCAUFVD-TPLNR").Text = ActRng.Offset(i, 1).Value

Session.findById("wnd[0]/usr/ctxtRC62C-REFNR").Text = ActRng.Offset(i, 2).Value

Session.findById("wnd[0]/usr/chkRC62C-FOLLOW_UP_ORDER").Selected = True

Session.findById("wnd[0]/usr/chkRC62C-COPY_OPR").Selected = True

Session.findById("wnd[0]/usr/chkRC62C-COPY_MAT").Selected = True

Session.findById("wnd[0]/usr/chkRC62C-FOLLOW_UP_ORDER").SetFocus

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

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

Session.findById("wnd[0]/usr/cmbCAUFVD-PRIOK").Key = "3"

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

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

Session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/subSUB_TEXT:SAPLCOIH:1103/cntlLTEXT/shell").Text = ActRng.Offset(i, 3) + vbCr + "" + vbCr + ""

Session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/subSUB_TEXT:SAPLCOIH:1103/cntlLTEXT/shell").SetSelectionIndexes 28, 28

Session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subHEADER:SAPLCOIH:0154/ctxtCAUFVD-INGPR").Text = ActRng.Offset(i, 4).Value

Session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subHEADER:SAPLCOIH:0154/ctxtCAUFVD-VAPLZ").Text = ActRng.Offset(i, 5).Value

Session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subHEADER:SAPLCOIH:0154/ctxtCAUFVD-ILART").Text = ActRng.Offset(i, 6).Value

Session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subTERM:SAPLCOIH:7300/ctxtCAUFVD-REVNR").Text = ActRng.Offset(i, 7).Value

Session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subTERM:SAPLCOIH:7300/ctxtCAUFVD-REVNR").SetFocus

Session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subTERM:SAPLCOIH:7300/ctxtCAUFVD-REVNR").CaretPosition = 7

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

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

ActRng.Offset(i, 8).Value = Session.findById("wnd[0]/sbar").Text 'Status Message

Next i

MsgBox "Process Completed"

End Sub

Accepted Solutions (0)

Answers (0)