Einfaches Anlegen von Materialstämmen in SAP R/3
Das Beispiel basiert auf einem IDES SAP R/3 Release Enterprise.
Viele Kunden empfinden das Anlegen von Materialstämmen als mühselig und arbeitsintensiv. Das muss nicht sein, denn man kann mit GuiXT und dem InputAssistant den Prozess wesentlich einfacher und auch wesentlich schneller gestalten.
Ich stelle Ihnen hier ein einfaches Beispiel zur Verfügung.
Wenn Sie sich den ganzen Prozess anschauen möchten, dann sehen Sie sich untenstehendes Video an:
Download: mm01_easy_video.zip
(1 avi-Datei, zip-komprimiert, 566.48 KB)
Für den ganzen Prozess sind die zwei untenstehenden Scripts notwendig
saplmgmm.d0060.txt
// MM01 Material anlegen // Vereinfachte Variante Demo Beispiel für IDES SAP R/3 Enterprise // 01.05.2003 / Gérald Koehn / Koehn Consulting / www.guixt.ch if Q[Transaction=MM01] // Drucktasten löschen del P[/5] // Sichten del P[/6] // Org Ebenen del P[/7] // Daten Title "Material anlegen mit GuiXT" radiobutton (3,50) "Monitore" [Material.2] "M-04" [Materialart] "HAWA" radiobutton (2,50) "Festplatten" [Material.2] "M-03" [Materialart] "HAWA" radiobutton (4,50) "Gehäuse" [Material.2] "M-01" [Materialart] "HAWA" radiobutton (2,75) "Metallverarbeitung" [Material.2] "M-02" [Materialart] "HAWA" radiobutton (3,75) "Mechanik" [Material.2] "M-07" [Materialart] "HAWA" radiobutton (5,50) "Dienstleistungen" [Material.2] "M-06" [Materialart] "HAWA" box (1,1) (9,95) "Vorlage" del G[Vorlage] del F[Änderungsnummer] del [Branche] del [Materialart] del [Material] inputfield (4,2) "Verkaufsorganisation" (4,24) "name=MM01_Verkaufsorganisation" "size=4" "default=1000" inputfield (5,2) "Vertriebsweg" (5,24) "name=MM01_Vertriebsweg" "size=2" "default=10" inputfield (6,2) "Werk" (6,24) "name=MM01_Werk" "size=4" "default=1200" inputfield (7,2) "Lagerort" (7,24) "name=MM01_Lagerort" "size=4" "default=0001" comment (10,5) "Materialkurztext" inputfield (11,1) "name=MM01_Sprache_N1" "size=2" "default=DE" "-nolabel" inputfield (11,5) "name=MM01_TextDE" "size=60" "-nolabel" inputfield (12,1) "name=MM01_Sprache_N2" "size=2" "default=FR" "-nolabel" inputfield (12,5) "name=MM01_TextFR" "size=60" "-nolabel" inputfield (13,1) "name=MM01_Sprache_N3" "size=2" "default=IT" "-nolabel" inputfield (13,5) "name=MM01_TextIT" "size=60" "-nolabel" inputfield (15,1) "Warengruppe" (15,30) "name=MM01_Warengruppe" "size=9" "Techname=MARA-MATKL" inputfield (15,50) "Produkthierarchie" (15,70) "name=MM01_Produkthierarchie" "size=18" "Techname=MARA-PRDHA" inputfield (16,1) "Bruttogewicht" (16,30) "name=MM01_Bruttogewicht" "size=17" inputfield (16,50) "Nettogewicht" (16,70) "name=MM01_Nettogewicht" "size=17" inputfield (16,90) "Gewichtseinheit" (16,105) "name=MM01_Gewichtseinheit" "size=3" "Techname=MARA-GEWEI" inputfield (17,1) "Bewertungspreis in CHF" (17,30) "name=MM01_Bewertungspreis" "size=17" inputfield (17,50) "Verkaufspreis in CHF" (17,70) "name=MM01_Verkaufspreis" "size=17" Comment (18,5) "Einkaufstext (in Anmeldesprache)" Textbox (19,5) (25,90) Name="MM01_ETEXT" Comment (26,5) "Vertriebstext (in Anmeldesprache)" Textbox (27,5) (33,90) "Vertriebstext" Name="MM01_VTEXT" pushbutton (11,80) "Material anlegen easy" "process=MM01_anlegen.txt" "size=4" endif // Von Transaktion MM01
mm01_anlegen.txt
// Vereinfachte Anlegetransaktion für das Material MM01 // Autor G. Koehn / Koehn Consulting / www.guixt.ch // 01.05.2003 // Screen SAPLMGMM.0060 Enter "/5" StatusMessage Title="Materialstamm anlegen" Screen SAPLMGMM.0070 Enter "/20" // Alle Sichten markieren Screen SAPLMGMM.0070 // Sichten set C[Markierte Sichten anlegen] "X" Enter "/6" StatusMessage AddString="Sichten markiert" Size=(11,80) Screen SAPLMGMM.0080 // Organsationsdaten Set F[Werk] "&[MM01_Werk]" Set F[Lagerort] "&[MM01_Lagerort]" Set F[Verkaufsorg.] "&[MM01_Verkaufsorganisation]" Set F[Vertriebsweg] "&[MM01_Vertriebsweg]" // Organisationsdaten der Vorlage Set #[1,57] "&[MM01_Werk]" Set #[2,57] "&[MM01_Lagerort]" Set #[3,57] "&[MM01_Verkaufsorganisation]" Set #[4,57] "&[MM01_Vertriebsweg]" Enter StatusMessage AddString="Organisationsdaten gesetzt" Screen SAPMSDYP.0010 // Übergehen Meldung betreffend Dispoprofil Enter Screen SAPLMGMM.4004 Enter "/30" // Aufruf Kurztexte Screen SAPLMGMM.4300 Set cell[Table,Sprache,1] "DE" Set cell[Table,Materialkurztext,1] "&[MM01_TextDE]" Set cell[Table,Sprache,2] "FR" Set cell[Table,Materialkurztext,2] "&[MM01_TextFR]" Set cell[Table,Sprache,3] "IT" Set cell[Table,Materialkurztext,3] "&[MM01_TextIT]" Enter "/27" StatusMessage AddString="Kurtexte angelegt" Screen SAPLMGMM.4004 Set F[Warengruppe] "&[MM01_Warengruppe]" Set F[Produkthierar.] "&[MM01_Produkthierarchie]" Set F[Bruttogewicht] "&[MM01_Bruttogewicht]" Set F[Gewichtseinheit] "&[MM01_Gewichtseinheit]" Set F[Nettogewicht] "&[MM01_Nettogewicht]" Enter "SP04" // Aufruf Registerkarte Vertrieb 1 Screen SAPLMGMM.4000 Enter "=PB08" // Aufruf der Pflege der Konditionen // => Direkter Sprung in Pflege PR00 Screen SAPMV13A.0303 // Verzweigung in die Konditionenpflege Staffelbild Set cell[Staffeln,Staffelmenge,1] "1" Set cell[Staffeln,Betrag,1] "&[MM01_Verkaufspreis]" Enter "/3" StatusMessage AddString="Verkaufspreis PR00 angelegt" Screen SAPLMGMM.4000 Set F[Produkthierarchie] "&[MM01_Produkthierarchie]" Set F[Auslieferungswerk] "&[MM01_Werk]" Enter "=SP08" Screen SAPLMGMM.4040 // Vertriebstext SetCursor [Material] Enter "SP08" // Dieser Screen wird zweimal angesprungen, // da falls kein Text in Vorlage vorhanden // ist der Text sonst nicht angelegt wird Screen SAPLMGMM.4040 // Vertriebstext CopyText fromText="MM01_VTEXT" toScreen="X[LONGTEXT_VERTRIEBS]" Enter "=SP11" Screen SAPLMGMM.4040 // Einkaufstext StatusMessage AddString="Vertriebstext angelegt" SetCursor [Material] Enter "=SP11" // Hier gilt das gleiche wie beim Vertriebstext Screen SAPLMGMM.4040 // Einkaufstext CopyText fromText="MM01_ETEXT" toScreen="X[LONGTEXT_BESTELL]" Enter "=SP24" Screen SAPLMGMM.4000 StatusMessage AddString="Einkaufstext angelegt" Set F[Gleitender Preis] "&[MM01_Bewertungspreis]" Set F[Standardpreis] "&[MM01_Bewertungspreis]" Enter "/11" StatusMessage AddString="Bewertungspreis angelegt" StatusMessage AddString="***************** Fertig *********************" Screen SAPLMGMM.4000 Enter
Download: mm01_easy.zip
(2 txt-Dateien, zip-komprimiert, 4.59 KB)
Hallo Herr Koehn,
habe versucht, Ihr Beispiel auf menen Bedarf anzupassen. Abgesehen davon, dass bei mir 5000er Screens abgearbeitet werden, komme ich aus dem Reiter Einkaufsdaten nicht heraus.
Der GUIXT-Debugger meldet
„Script Error: Bildelement ‚C[MARC-KAUTB]‘ nicht gefunden“ und
„Script Error: Bildelement ‚F[MARA-EKWSL]‘ nicht gefunden“
Das Inputscript bricht dann mit
„E: Füllen Sie alle Mußfelder aus“
ab (betrifft den Einkaufswerteschlüssel).
Haben Sie einen Tipp für mich?
Gruß
U. Arnoldi
Hallo Herr Arnoldi,
So aus der Ferne wird das schwierig. Sie müssten mir schon Ihre Scripte zukommen lassen und ev. ein Tracefile in welchem der Fehler enthalten ist.
MfG
G. Koehn
Guten Tag, eine tolle Sache. Eigentlich genau das was wir bräuchten.
Vielen Dank. Besteht auch die Möglichkeit einer manuellen Nummernvergabe? Mit freundlichen grüßen.
Hallo Herr Borowski,
Ja, man müsste dafür natürlich die Scripte entsprechend umbauen.
1. Materialart verwenden, die in SAP externe Nummernvergabe zulässt
2. Feld vorsehen in welches man die Nummer eingeben könnte
usw….
Hallo Herr Arnoldi,
vielen Dank für diesen Skript. Ich versuche das bei uns im Unternehmen einzusetzen und es klappt einigermaßen. Allerdings der Text von dem Feld
„Einkaufstext“ wird nicht übernommen. Ich habe alles angepasst wie z.B. das Attribut „name“ und die Reihenfolge der Bildschirme, aber klappt leider nicht. Wenn ich den Skript im „Debug“ Modus ausführe sehe ich, dass er die Schritte durchgeht und keine Fehlermeldungen registriert, allerdings legt er den Text nicht an. Haben Sie eine Idee woran es liegen könnte ?
Vielen Dank im Voraus! 🙂
Hallo Frau Angeliev
Es kann sein, dass es mit der Synchronisation vom Lnagtext ein Problem gibt.
Da wäre eine Möglichkeit folgendes zu machen:
Screen SAPLMGMM.4040 // Einkaufstext
CopyText fromText=“MM01_ETEXT“ toScreen=“X[LONGTEXT_BESTELL]“
Enter „?“
Screen SAPLMGMM.4040
Enter „=SP24“
Durch das eingefügte Enter „?“ geht die Synchronisation des Langtextes immer.
Eine andere Möglichkeit wäre die Native Schnittstelle zu verwenden um den Text zu übergeben.
Dies ginge dann mit folgendem Befehl:
CallVBAsync guinet.TextControl.SetText textname:=“MM01_ETEXT“
MFG Gérald Koehn
Koehn Consulting