Hallo zusammen,
Ich bin relativ neu in dem Thema und habe deshalb nur wenig Erfahrung. Ich möchte in "SAP 7.70" ein Skript erstellen, welches automatisch einen Soll-/Istkostenabgleich durchführt.
Hierfür habe ich bereits folgenden Code:
session.findById("wnd[0]").maximize
Dim i, Gesamtmenge, Istkosten, Istkosten1, Sollkosten, Sollkosten1, Delta, HK, Personalzeit, Personalzeit1, Banf
session.findById("wnd[0]/tbar[1]/btn[18]").press
session.findById("wnd[0]/usr/tabsTABSTRIP_0115/tabpKOZE/ssubSUBSCR_0115:SAPLCOKO1:0120/txtCAUFVD-GAMNG").setFocus
Gesamtmenge = session.findById("wnd[0]/usr/tabsTABSTRIP_0115/tabpKOZE/ssubSUBSCR_0115:SAPLCOKO1:0120/txtCAUFVD-GAMNG").text
session.findById("wnd[0]/tbar[1]/btn[5]").press
session.findById("wnd[0]/tbar[1]/btn[31]").press
session.findById("wnd[0]/mbar/menu[3]/menu[3]/menu[3]").select
Istkosten = session.findById("wnd[1]/usr/txtSALDO-WOG_0").text
session.findById("wnd[1]/tbar[0]/btn[12]").press
session.findById("wnd[0]").sendVKey 71
session.findById("wnd[1]/usr/txtRCOSU-ARBPL").text = "9020"
Arbeitsplatz = session.findById("wnd[1]/usr/txtRCOSU-ARBPL").text
session.findById("wnd[1]").sendVKey 0
If Session.ActiveWindow.Name = "wnd[2]" Then
session.findById("wnd[2]/tbar[0]/btn[0]").press
session.findById("wnd[0]").sendVKey 71
session.findById("wnd[1]/usr/txtRCOSU-ARBPL").text = "3430"
Arbeitsplatz = session.findById("wnd[1]/usr/txtRCOSU-ARBPL").text
session.findById("wnd[1]").sendVKey 0
End If
session.findById("wnd[0]/usr/tblSAPLCOVGTCTRL_0100/txtAFVGD-VORNR[0,0]").setFocus
session.findById("wnd[0]").sendVKey 2
session.findById("wnd[0]/usr/subTAB_SUB_SCREEN:SAPLCOVF:0101/tabsTABSTRIP_0100/tabpVOGW").select
session.findById("wnd[0]/usr/subTAB_SUB_SCREEN:SAPLCOVF:0101/tabsTABSTRIP_0100/tabpVOGW/ssubSUBSCR_0101:SAPLCOVF:0130/txtAFVGD-VGW03").setFocus
Personalzeit = session.findById("wnd[0]/usr/subTAB_SUB_SCREEN:SAPLCOVF:0101/tabsTABSTRIP_0100/tabpVOGW/ssubSUBSCR_0101:SAPLCOVF:0130/txtAFVGD-VGW03").text
session.findById("wnd[0]/mbar/menu[3]/menu[3]/menu[0]").select
Sollkosten = InputBox("Bitte die Gesamtplankosten eintragen.","Gesamtplankosten?","")
Banf = InputBox("Bitte die Gesamtkosten der offenen Banfen eintragen.","Offene Bestellanforderungen?","0")
If Arbeitsplatz = 9020 Then
Istkosten1 = Istkosten + Banf
Sollkosten1 = (Istkosten1 / 100) * 105
Delta = Sollkosten - Sollkosten1
HK = (Sollkosten * 100 / Istkosten1) - 100
Personalzeit1 = ((Delta / 1.3074995) / Gesamtmenge) + Personalzeit
Else
Istkosten1 = Istkosten + Banf
Sollkosten1 = (Istkosten1 / 100) * 105
Delta = Sollkosten - Sollkosten1
HK = (Sollkosten * 100 / Istkosten1) - 100
Personalzeit1 = ((Delta / 0.661) / Gesamtmenge) + Personalzeit
End If
session.findById("wnd[0]/tbar[0]/btn[3]").press
session.findById("wnd[0]/usr/subTAB_SUB_SCREEN:SAPLCOVF:0101/tabsTABSTRIP_0100/tabpVOGW/ssubSUBSCR_0101:SAPLCOVF:0130/txtAFVGD-VGW03").setFocus
session.findById("wnd[0]/usr/subTAB_SUB_SCREEN:SAPLCOVF:0101/tabsTABSTRIP_0100/tabpVOGW/ssubSUBSCR_0101:SAPLCOVF:0130/txtAFVGD-VGW03").text = Personalzeit1
'i = MsgBox(HK & "%", vbExclamation, "")
Ich entschuldige mich schon einmal für die Formatierung, jedoch erlaubt SAP nur eine Bearbeitung im Editor...
Jedenfalls kommt es zu einem Typenkonfliktfehler, da zur Trennung der Personalzeiten - oder auch Währungen - systemseitig Kommata statt Punkten verwendet werden.
Leider weiß ich nun nicht wie ich dies ändern kann, sodass das Skript mit den Kommata die Berechnung durchführen kann.
Die Gesamtmenge, Istkosten, sowie die Personalzeit werden direkt aus SAP "kopiert" bzw. übernommen, die Sollkosten müssen derzeit noch (mit Komma) über die InputBox per Hand eingetragen werden. Die Ausgabe der Personalzeit1 soll dementsprechend auch mit Komma erfolgen.
Meine Frage wäre nun, inwiefern die Formeln abgeändert werden müssten, damit das Skript wie gewünscht funktioniert?
|