Ich habe folgendes Problem.
Ich binde ein VBS Script ein, mit dem ich aus einer Excel Tabelle die Daten von verschiedenen TechnPlätzen auslese. Ich brauche das für unsere internen ´Schulungen, damit jeder Teilnehmer eine Inst Meldung für sein Auto hat.
Ich nehme dafür die IW21.
Das Script läuft auch alleine durch.
Wenn ich sie aber mit der Excel ausführe, bekomme ich eine Fehlermeldung:
This control can not be found by id.-
Wenn ich die Fehlermeldung jetzt wegklicke und die VBS nochmal durchführe, geht es auch bei der 2. Meldung. Dann bleibt er aber bei der 3. Meldung stehen.
Klicke ich die Fehlermaldung weg und führe das Scrip nochmal aus, geht es bei der 1., 2., und dritten Meldung. usw.
Das heißt, wenn ich das immer weiter so mache, läuft es durch.
Hat es dann bei allen funktioniert, läuft es auch auf dem Schulungsmandanten immer wieder durch.
Ich füge das Script mal ein. Vielleicht hat ja jemand eine Lösung.
Gruß aus dem Norden
Frank
'**************************************************************
' allg. SAPScript-Parameter
'**************************************************************
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
'**************************************************************
' Parameter für XLS-Datei
'**************************************************************
Dim ExcelApp, ExcelWB, ExcelWS
set ExcelApp=createobject("Excel.Application")
ExcelApp.visible=true
set ExcelWB=ExcelApp.Workbooks.Open("p:\motor\motor.xls")
set ExcelWS=ExcelWB.Worksheets("Tabelle1")
'**************************************************************
' Aufruf der Transaktion iw21
'**************************************************************
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "/niw21"
session.findById("wnd[0]").sendVKey 0
'**************************************************************
' XLS-Datei einlesen
'**************************************************************
zeile=1
do while true
zelle1=ExcelApp.Cells(zeile,1).Value
zelle2=ExcelApp.Cells(zeile,2).Value
zelle3=ExcelApp.Cells(zeile,3).Value
if zelle1 <> "ENDE" Then
call doit (zelle1,zelle2,zelle3)
else
msgbox "Sie haben jetzt alle Meldungen angelegt!!!"
exit do
end if
zeile=zeile+1
loop
ExcelWB.Close
ExcelApp.Quit
'**************************************************************
' Trancation einlesen
'**************************************************************
sub doit (kurztext,technplatz,equi)
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
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "iw21"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtRIWO00-QMART").text = "a2"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/subSCREEN_1:SAPLIQS0:1050/txtVIQMEL-QMTXT").text = kurztext
session.findById("wnd[0]/usr/subSCREEN_1:SAPLIQS0:1050/txtVIQMEL-QMTXT").caretPosition = 28
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7715/cntlTEXT/shellcont/shell").setSelectionIndexes 0,0
session.findById("wnd[0]/usr/subSCREEN_1:SAPLIQS0:1050/btnANWENDERSTATUS").press
session.findById("wnd[1]/usr/tblSAPLBSVATC_E/radJ_STMAINT-ANWS[0,1]").selected = true
session.findById("wnd[1]/usr/tblSAPLBSVATC_E/radJ_STMAINT-ANWS[0,1]").setFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7715/cntlTEXT/shellcont/shell").setSelectionIndexes 0,0
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7715/cntlTEXT/shellcont/shell").text = "Ort:" + vbCr + "Zeit:" + vbCr + "weitere Meldungen:" + vbCr + "Hinweise:" + vbCr + "" + vbCr + ""
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7715/cntlTEXT/shellcont/shell").setSelectionIndexes 40,40
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02").select
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7322/subOBJEKT:SAPLIWO1:0120/ctxtRIWO1-TPLNR").text = technplatz
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7322/subOBJEKT:SAPLIWO1:0120/ctxtRIWO1-TPLNR").setFocus
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7322/subOBJEKT:SAPLIWO1:0120/ctxtRIWO1-TPLNR").caretPosition = 17
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[1]").sendVKey 0
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7322/subOBJEKT:SAPLIWO1:0120/ctxtRIWO1-EQUNR").text = equi
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7322/subOBJEKT:SAPLIWO1:0120/ctxtRIWO1-EQUNR").setFocus
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB02/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7322/subOBJEKT:SAPLIWO1:0120/ctxtRIWO1-EQUNR").caretPosition = 8
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[1]").sendVKey 0
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10").select
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB01/ssubSUB_GROUP_20:SAPLIQS0:7110/tblSAPLIQS0POSITION_VIEWER/ctxtVIQMFE-FEGRP[4,0]").setFocus
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB01/ssubSUB_GROUP_20:SAPLIQS0:7110/tblSAPLIQS0POSITION_VIEWER/ctxtVIQMFE-FEGRP[4,0]").caretPosition = 0
session.findById("wnd[0]").sendVKey 4
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").expandNode " 2"
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").topNode = " 1"
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").selectItem " 8","3"
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").ensureVisibleHorizontalItem " 8","3"
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").doubleClickItem " 8","3"
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB01/ssubSUB_GROUP_20:SAPLIQS0:7110/tblSAPLIQS0POSITION_VIEWER/txtVIQMFE-FETXT[7,0]").text = "Ventile einstellen"
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB01/ssubSUB_GROUP_20:SAPLIQS0:7110/tblSAPLIQS0POSITION_VIEWER/txtVIQMFE-FETXT[7,0]").setFocus
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB01/ssubSUB_GROUP_20:SAPLIQS0:7110/tblSAPLIQS0POSITION_VIEWER/txtVIQMFE-FETXT[7,0]").caretPosition = 18
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB02").select
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB02/ssubSUB_GROUP_20:SAPLIQS0:7115/tblSAPLIQS0URSACHEN_VIEWER/ctxtVIQMUR-URGRP[1,0]").setFocus
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB02/ssubSUB_GROUP_20:SAPLIQS0:7115/tblSAPLIQS0URSACHEN_VIEWER/ctxtVIQMUR-URGRP[1,0]").caretPosition = 0
session.findById("wnd[0]").sendVKey 4
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").expandNode " 2"
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").topNode = " 1"
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").expandNode " 28"
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").topNode = " 1"
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").selectItem " 30","3"
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").ensureVisibleHorizontalItem " 30","3"
session.findById("wnd[1]/usr/cntlTREE_CONTROL_AREA/shellcont/shell").doubleClickItem " 30","3"
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB22").select
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB22/ssubSUB_GROUP_10:SAPLIQS0:8200/subDFPS_SCREEN:/ISDFPS/SAPLPM0_XQQM:0116/tabs/ISDFPS/FG_XQQM/tabp/ISDFPS/FG_XQQM_FC2").select
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB22/ssubSUB_GROUP_10:SAPLIQS0:8200/subDFPS_SCREEN:/ISDFPS/SAPLPM0_XQQM:0116/tabs/ISDFPS/FG_XQQM/tabp/ISDFPS/FG_XQQM_FC2/ssub/ISDFPS/FG_XQQM_SCA:/ISDFPS/SAPLPM0_XQQM:0202/txtGSCR_TRP-TA_ANSPAR").text = "Schirrmeister 1./215"
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB22/ssubSUB_GROUP_10:SAPLIQS0:8200/subDFPS_SCREEN:/ISDFPS/SAPLPM0_XQQM:0116/tabs/ISDFPS/FG_XQQM/tabp/ISDFPS/FG_XQQM_FC2/ssub/ISDFPS/FG_XQQM_SCA:/ISDFPS/SAPLPM0_XQQM:0202/txtGSCR_TRP-TA_PLZORT").text = "27711 OHZ"
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB22/ssubSUB_GROUP_10:SAPLIQS0:8200/subDFPS_SCREEN:/ISDFPS/SAPLPM0_XQQM:0116/tabs/ISDFPS/FG_XQQM/tabp/ISDFPS/FG_XQQM_FC2/ssub/ISDFPS/FG_XQQM_SCA:/ISDFPS/SAPLPM0_XQQM:0202/txtGSCR_TRP-TA_STRNR").text = "Bremer Strasse 111"
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB22/ssubSUB_GROUP_10:SAPLIQS0:8200/subDFPS_SCREEN:/ISDFPS/SAPLPM0_XQQM:0116/tabs/ISDFPS/FG_XQQM/tabp/ISDFPS/FG_XQQM_FC2/ssub/ISDFPS/FG_XQQM_SCA:/ISDFPS/SAPLPM0_XQQM:0202/txtGSCR_TRP-TA_STAAT").text = "Niedersachsen"
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB22/ssubSUB_GROUP_10:SAPLIQS0:8200/subDFPS_SCREEN:/ISDFPS/SAPLPM0_XQQM:0116/tabs/ISDFPS/FG_XQQM/tabp/ISDFPS/FG_XQQM_FC2/ssub/ISDFPS/FG_XQQM_SCA:/ISDFPS/SAPLPM0_XQQM:0202/txtGSCR_TRP-TA_TELNR").text = "0123-456789"
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB22/ssubSUB_GROUP_10:SAPLIQS0:8200/subDFPS_SCREEN:/ISDFPS/SAPLPM0_XQQM:0116/tabs/ISDFPS/FG_XQQM/tabp/ISDFPS/FG_XQQM_FC2/ssub/ISDFPS/FG_XQQM_SCA:/ISDFPS/SAPLPM0_XQQM:0202/txtGSCR_TRP-TA_EMAIL").setFocus
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB22/ssubSUB_GROUP_10:SAPLIQS0:8200/subDFPS_SCREEN:/ISDFPS/SAPLPM0_XQQM:0116/tabs/ISDFPS/FG_XQQM/tabp/ISDFPS/FG_XQQM_FC2/ssub/ISDFPS/FG_XQQM_SCA:/ISDFPS/SAPLPM0_XQQM:0202/txtGSCR_TRP-TA_EMAIL").caretPosition = 0
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01").select
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7715/cntlTEXT/shellcont/shell").setUnprotectedTextPart 0,"Ort:" + vbCr + "Zeit:" + vbCr + "weitere Meldungen:" + vbCr + "Hinweise:" + vbCr + ""
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_1:SAPLIQS0:7715/cntlTEXT/shellcont/shell").setSelectionIndexes 77,77
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/btn[11]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
end sub