on ‎2022 Oct 06 11:21 AM
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
Request clarification before answering.
| User | Count |
|---|---|
| 15 | |
| 9 | |
| 6 | |
| 5 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.