SAP Jobsuche bei DV-Treff
SAP_Marco
  • SAP_Marco
  • SAP Forum - Neuling Thema Starter
vor 5 Jahre
Hallo Zusammen,

ich habe ein Problem mit meinem Skript und hoffe mir kann jemand helfen. Ich würde gerne eine Excel Datei auslesen, die Daten daraus sollen in eine von mir gebaute TA "Z_DEBITOR_STAMMDATEN" eingeben werden und danach soll das Ergebnis exportiert werden. DIe Anmeldung funktioniert dank den Beiträgen in anderen Foren von Skriptmen wunderbar. Der Export der Datei klappt über die Eingabe %pc auch super. Nun zum ersten Problem:

1. Wenn die Datei bereits existiert überschriebt er diese nicht. Das SKript wird ausgeführt und es passiert kein Export. Was muss ich im Skript noch anpassen, damit der Name immer überschrieben wird.

Das zweite Problem ist....

2. ICh habe leider keine IDee bisher wie ich Daten aus Excel in SAP einlesen kann und bräuchte hier wohl mal einen Denkanstoss. Ich habe eine Excel Datei in der in Zeile A1 "Name1" in Zeile B1 "Name2" etc. steht. Diese will ich gerne beim Ausführen des Skriptes in die dafür vorgesehenen Textpassagen übertragen.

Ich hoffe das Ihr mir helfen könnt.

**********ANMELDUNG************

'Sub SapGui()

'Dim oSapGui As Object

'Dim oApp As SAPFEWSELib.GuiApplication

'Dim oConn As SAPFEWSELib.GuiConnection

'Dim oSession As SAPFEWSELib.GuiSession

Set wshell = CreateObject("Wscript.Shell")

On Error Resume Next

Set oSapGui = GetObject("SAPGUI")

Set oApp = oSapGui.GetScriptingEngine

myError = Err.Number

On Error GoTo 0

If myError <> 0 Then

'Hier folgt ein Aufruf von LogonPad, das u.U. angepasst werden müsste.

wshell.Run Chr(34) & "C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe" & Chr(34), 6, False

'Application.Wait (Now + TimeValue("00:00:04"))

wscript.sleep 4000

myError = 0

On Error Resume Next

Set oSapGui = GetObject("SAPGUI")

Set oApp = oSapGui.GetScriptingEngine

myError = Err.Number

On Error GoTo 0

If myError <> 0 Then

MsgBox "SAP Logon ist nicht installiert.", vbInformation

End If

End If

On Error Resume Next

Set oConn = oApp.Children(0)

myError = Err.Number

' 1. Session der Connection

Set oSession = oConn.Children(0)

myError = Err.Number

On Error GoTo 0

If myError <> 0 Then

Set oConn = oApp.OpenConnection("SYSTEM", False)

Set oSession = oConn.Children(0)

'oSession.findById("wnd[0]").iconify

oSession.findById("wnd[0]/usr/txtRSYST-MANDT").Text = "XXX"

oSession.findById("wnd[0]/usr/txtRSYST-BNAME").Text = "XXXXX"

oSession.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = "XXXXXXX"

oSession.findById("wnd[0]").SendVKey 0

End If

Set oSession = Nothing

Set oConn = Nothing

Set oApp = Nothing

Set oSapGui = Nothing

'End Sub

***********Eingabe der Daten aus EXCEL IN SAP*********

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 = "Z_DEBITOR_STAMMDATEN"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/txtSP$00002-HIGH").setFocus
session.findById("wnd[0]/usr/txtSP$00002-HIGH").caretPosition = 0
session.findById("wnd[0]/usr/btn%_SP$00002_%_APP_%-VALU_PUSH").press
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,0]").text = "*[h]NAME1[/h]*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,1]").text = "*NAME2*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,2]").text = "*NAME3*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,3]").text = "*NAME4*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,4]").text = "*NAME5*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,5]").text = "*NAME6*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,6]").text = "*NAME7*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/btnRSCSEL_255-SOP_I[0,7]").setFocus
session.findById("wnd[1]").sendVKey 8
session.findById("wnd[0]/usr/txtSP$00004-HIGH").setFocus
session.findById("wnd[0]/usr/txtSP$00004-HIGH").caretPosition = 0
session.findById("wnd[0]/usr/btn%_SP$00004_%_APP_%-VALU_PUSH").press
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,0]").text = "*[h]ORT1*"[/h]
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,1]").text = "*[h]ORT2[/h]*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,2]").text = "*[h]ORT3[/h]*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,3]").text = "*ORT4*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,4]").text = "*ORT5*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,5]").text = "*ORT6*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,6]").text = "*ORT7*"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,7]").setFocus
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/txtRSCSEL_255-SLOW_I[1,7]").caretPosition = 0
session.findById("wnd[1]").sendVKey 8
session.findById("wnd[0]").sendVKey 8

****EXPORT DER DATEI in XLS*****

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

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

session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").select

session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").setFocus

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

session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "TEST.xls"

session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 7

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

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

SAP_Marco
  • SAP_Marco
  • SAP Forum - Neuling Thema Starter
vor 5 Jahre
Hallo nochmal,

zum ersten Punkt habe ich eine Lösung gefunden. Für alle die Schwierigkeiten bei der Skriptaufzeichnung und dem Export in Excel empfehle ich den Export über %pc vorzunehmen. Hier lässt sich ohne Windowsfenster ein download vornehmen und auch das ersetzen klappt damit super.