SAP Jobsuche bei DV-Treff
Dawyqui
  • Dawyqui
  • SAP Forum - Neuling Thema Starter
vor 3 Jahre
Unten seht ihr das Programm:

Ich habe etwas mit dem Aufzeichnungstool aufgenommen und damit ich die einzelnen Daten

nicht jedes Mal im Editor ändern muss wollte ich noch eine Inputbox hinzufügen damit ich

jedes Mal abgefragt werde welche Daten ich denn einfügen möchte.

Ich habe irgendwas gebastelt da ich keinen Schimmer habe wie das genau funktioniert hat

es natürlich nicht geklappt.

Die Gelb markierten Bereiche habe ich eingefügt oder Verändert

Ich bin froh um jede Hilfe.

Box "Daten eingeben:"

InputField "Anlagenkürzel" name="AV_ANLG" size=18 techname="DANI-ANLG" -uppercase

InputField "VI oder SO?" name="AV_ART" size=18 techname="DANI-ART" -uppercase

InputField "Technischerplatz?" name="AV_TP" size=18 techname="DANI-TP" -uppercase

InputField "AV_EQuipment Nummer?" name="AV_EQ" size=18 techname="DANI-EQ" -uppercase

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]").resizeWorkingPane 117,46,false

session.findById("wnd[0]/usr/subSUBSCREEN_HEAD:SAPLIWP3:6000/txtRMIPM-WPTXT").text =

AV_ART & "_" & AV_ANLG

session.findById("wnd[0]/usr/subSUBSCREEN_MITEM:SAPLIWP3:8002/tabsTABSTRIP_ITEM/tabpT\11

/ssubSUBSCREEN_BODY2:SAPLIWP3:8022/subSUBSCREEN_ITEM_1:SAPLIWO1:0100/ctxtRIWO1-TPLNR").

text = AV_TP

session.findById("wnd[0]/usr/subSUBSCREEN_MITEM:SAPLIWP3:8002/tabsTABSTRIP_ITEM/tabpT\11

/ssubSUBSCREEN_BODY2:SAPLIWP3:8022/subSUBSCREEN_ITEM_1:SAPLIWO1:0100/ctxtRIWO1-EQUNR").

text = AV_EQ

session.findById("wnd[0]/usr/subSUBSCREEN_MITEM:SAPLIWP3:8002/tabsTABSTRIP_ITEM/tabpT\11

/ssubSUBSCREEN_BODY2:SAPLIWP3:8022/subSUBSCREEN_MAINT_ITEM_TEXT:SAPLIWP3:6005/txtRMIPM-

PSTXT").text = AV_ART & "_ME_INSP_" & AV_ANLG

Förderer

ScriptMan
vor 3 Jahre
Hallo Dawyqui,

lege deine Daten stattdessen in eine Excel-Mappe (z.B. MeineDaten.xlsx) und zeichne das Skript so auf, damit jeder Datensatz aus Excel in einer zu durchlaufenden Programmschleife ausgeführt werden kann. Wenn das Ende einer Programmschleife nicht wieder automatisch am Anfang der nächsten stehen sollte, müsste in die Skriptaufzeichnung auch noch der Transaktionaufruf aufgenommen werden.

z.B.

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

Set xclapp = CreateObject("Excel.Application")

Set xclwbk = xclapp.Workbooks.Open("c:\tmp\MeineDaten.xlsx")

set xclsht = xclwbk.Sheets("Tabelle1")

for i = 2 to xclapp.ActiveCell.SpecialCells(11).Row

for j = 1 to xclapp.ActiveCell.SpecialCells(11).Column

if j=1 then AV_ANLG = xclsht.Cells(i,j).Value

if j=2 then AV_ART = xclsht.Cells(i,j).Value

if j=3 then AV_TP = xclsht.Cells(i,j).Value

if j=4 then AV_EQ = xclsht.Cells(i,j).Value

next

session.findById("wnd[0]/usr/subSUBSCREEN_HEAD:SAPLIWP3:6000/txtRMIPM-WPTXT").text = AV_ART & "_" & AV_ANLG

session.findById("wnd[0]/usr/subSUBSCREEN_MITEM:SAPLIWP3:8002/tabsTABSTRIP_ITEM/tabpT\11

/ssubSUBSCREEN_BODY2:SAPLIWP3:8022/subSUBSCREEN_ITEM_1:SAPLIWO1:0100/ctxtRIWO1-TPLNR").text = AV_TP

session.findById("wnd[0]/usr/subSUBSCREEN_MITEM:SAPLIWP3:8002/tabsTABSTRIP_ITEM/tabpT\11

/ssubSUBSCREEN_BODY2:SAPLIWP3:8022/subSUBSCREEN_ITEM_1:SAPLIWO1:0100/ctxtRIWO1-EQUNR").text = AV_EQ

session.findById("wnd[0]/usr/subSUBSCREEN_MITEM:SAPLIWP3:8002/tabsTABSTRIP_ITEM/tabpT\11

/ssubSUBSCREEN_BODY2:SAPLIWP3:8022/subSUBSCREEN_MAINT_ITEM_TEXT:SAPLIWP3:6005/txtRMIPM-PSTXT").text = AV_ART & "_ME_INSP_" & AV_ANLG

. . .

'Hier könnte ein möglicher Rest des VBScriptes stehen.

next

msgbox "Alle " & cstr(xclapp.ActiveCell.SpecialCells(11).Row - 1) & " Excel-Zeilen sind verarbeitet worden."

Set xclwbk = Nothing

Set xclsht = Nothing

xclapp.Quit

set xclapp = Nothing

Grüße, ScriptMan