Einfaches Ändern eines Materialstammes in SAP R/3

Das Beispiel basiert auf einem IDES SAP R/3 Release Enterprise.

Gibt es gewisse Felder eines Materialstammes, die Sie regelmässig anpassen müssen? Dann wäre es doch wünschenswert, diese alle auf einem Bildschirm zu haben.

Ich stelle Ihnen hier ein Beispiel zur Verfügung.

Gibt man eine Materialnummer ein und drückt ENTER, so werden die Felder gelesen und deren Inhalte angezeigt. Jetzt können Sie Ihre Felder entsprechend ändern. Wenn Sie die Änderungen verbuchen wollen, dann drücken Sie die Taste Material Aendern Easy.

Falls Sie Fehleingaben machen, so werden die entsprechenden Fehlermeldungen angezeigt.

Wenn Sie in die SAP Standard Transaktion MM02 einsteigen wollen, so drücken Sie die Taste Material Ändern Standard.

Wenn Sie sich den ganzen Prozess anschauen möchten, dann sehen Sie sich untenstehendes Video an:

Download: mm02_easy_video.zip
(1 avi-Datei, zip-komprimiert, 403.48 KB)

Für den ganzen Prozess sind die drei untenstehenden Scripts notwendig:

saplmgmm.d0060.txt

// MM02 Material ändern
//  Demo Beispiel für IDES SAP R/3 Enterprise
// 12.05.2003 / Gérald Koehn / Koehn Consulting / www.guixt.ch

default [Material] "&[MM02_Material]"
        del [Änderungsnummer]
        del [Sichtenauswahl]
        del [OrgEbenen]

// Bild Material anzeigen
image (10,6) (20,30) "img&[Material].jpg" "-nostretch"  "-nobuffer"

// Organisationsdaten
        box (0,39) (3,85) "Organisationsdaten"
        inputfield (2,40) "Vertriebsweg" (2,58) "name=XVertriebsweg" "size=2" "default=10" TechName="MVKE-VTWEG"
//        inputfield (2,64) "Lagerort" (2,74) "name=XLagerort" "size=4" "default=0001"
        inputfield (1,64) "Werk" (1,74) "name=XWerk" "size=4" "default=1200" TechName="MARC-WERKS"
        inputfield (1,40) "Verkaufsorganisation" (1,58) "name=XVerkaufsorganisation" "size=4" "default=1000" Techname="MVKE-VKORG"
// Daten des Materialstammes
        box (4,39) (38,140) "Materialstamm"
        box (5,40) (9,138) "Materialkurzbezeichnungen"
        inputfield (6,42) "&V[MM02_Material]" (6,55) "name=MM02_Sprache_1" "size=2" TechName="KNA1-SPRAS"
        inputfield (6,59) "name=MM02_Materialtext_1" "size=60" "-nolabel"
        inputfield (7,55) "name=MM02_Sprache_2" "size=2" "-nolabel" TechName="KNA1-SPRAS"
        inputfield (7,59) "name=MM02_Materialtext_2" "size=60" "-nolabel"
        inputfield (8,55) "name=MM02_Sprache_3" "size=2" "-nolabel" TechName="KNA1-SPRAS"
        inputfield (8,59) "name=MM02_Materialtext_3" "size=60" "-nolabel"

// Grunddaten Material
        box (10,40) (13,138) "Grunddaten"
        inputfield (11,41) "Basismengeneinheit" (11,60) "name=MM02_BME" "size=3" TechName="MARA-MEINS"
        comment (11,64) "&[MM02_BME_Text]"
        inputfield (11,72) "Warengruppe" (11,85) "name=MM02_Warengruppe" "size=6" SearchHelp="H_T023"
        comment (11,93) "&[MM02_Warengruppe_Text]"
        inputfield (11,115) "Sparte" (11,123) "name=MM02_Sparte" "size=2" TechNAme="MARA-SPART"
        comment (11,127) "&[MM02_Sparte_Text]"
        inputfield (12,41) "Bruttogewicht" (12,56) "name=MM02_Bruttogewicht" "size=7" "-Numerical"
        inputfield (12,65) "Nettogewicht" (12,80) "name=MM02_Nettogewicht" "size=7" "-Numerical"
        inputfield (12,90) "Gewichtseinheit" (12,108) "name=MM02_Gewichtseinheit" "size=3" TechName="MARA-MEINS"
// Daten von Vertrieb
        box (14,40) (19,138) "Vertrieb"
        inputfield (15,41) "Vertriebsstatus übergreifend" (15,70) "name=MM02_VStatusU" "size=2" TechName="MARA-MSTAV"
        inputfield (15,75) "gültig ab" (15,85) "name=MM02_GültigU" "size=10" SearchHelp="GuiXT.Date"
        inputfield (15,98) "Auslieferungswerk" (15,117) "name=MM02_Auslieferwerk" "size=4" TechName="MARC-WERKS"
        comment (15,123) "&[MM02_Auslieferwerk_Text]"
        inputfield (16,41) "Vertriebsstatus Spezial" (16,70) "name=MM02_VStatusS" "size=2" TechName="MVKE-VMSTA"
        inputfield (16,75) "gültig ab" (16,85) "name=MM02_GültigS" "size=10" SearchHelp="GuiXT.Date"
        inputfield (17,41) "Mindestauftr.Mge" (17,59) "name=MM02_MindAM" "size=13" TechName="MVKE-AUMNG" "-Numerical"
        inputfield (17,75) "Mindestliefermenge" (17,96) "name=MM02_MindLF" "size=13" TechName="MVKE-LFMNG" "-Numerical"
        comment (17,110) "&[MM02_BME_Text]"
        inputfield (18,41) "Mat.gruppe" (18,51) "name=MM02_Materialgruppe" "size=2" TechName="MVKE-KONDM"
        comment (18,54) "&[MM02_Materialgruppe_Text]" "size=69"
        inputfield (18,70) "Kont.gruppe" (18,82) "name=MM02_Kontierungsgruppe" "size=2" TechNAme="MVKE-KTGRM"
        comment (18,85) "&[MM02_Kontierungsgruppe_Text]"
        inputfield (18,102) "Pos.Typ.Grp" (18,117) "name=MM02_Pos.Typ.Grp" "size=4" TechName="MVKE-MTPOS"
        comment (18,123) "&[MM02_Pos.Typ.Grp_Text]"
        comment (20.5,40) "Vertriebstext"
        textbox (20.5,39.5) (28.5,137) "Name=MM02_Vertriebstext"
// Daten von Disposition
        box (30,40) (34,138) "Disposition"
        inputfield (31,41) "Verfügbarkeitsprüfung" (31,63) "name=MM02_Verfp" "size=2" TechName="MARC-MTVFP"
        comment (31,67) "&[MM02_VPF_Text]"
        inputfield (32,41) "Dispomerkmal" (32,63) "name=MM02_Dispomerkmal" "size=2" TechName="MARC-DISMM"
        comment (32,67) "&[MM02_Dispomerkmal_Text]"
        inputfield (33,80) "Dispolosgröße" (33,95) "name=MM02_Dispolosgrösse" "size=2" TechName="MARC-DISLS" "-Numerical"
        comment (33,100) "&[MM02_Dispolosgrösse_Text]"
        inputfield (33,41) "Sicherheitsbestand" (33,63) "name=MM02_Sicherheitsbestand" "size=15" TechName="MARC-EISBE" "-Numerical"

// Daten von Preisfindung
        box (35,40) (37,138) "Preis"
        inputfield (36,41) "PR00" (36,48) "name=MM02_Betrag" "size=17" "-Numerical"
        comment (36,70) "&[MM02_Einh.]"
        text (36,75) "pro"
        text (36,80) "&[MM02_pro]" "-border" "-Numerical"
        comment (36,90) "&[MM02_ME]"
        text (36,100) "Löschkennzeichen = "
        comment (36,120) "&[MM02_Lösch]"

// Bei jedem ENTER kein direkter Aufruf der Aenderungstransaktion,
// sondern Aufruf des Prozesses Materiallesen.txt

on "Enter" "process=Materiallesen.txt"

        using XMaterial = [Material]

// Mit dieser Drucktaste wird der Prozess Materialändern.txt aufgerufen,
// welcher die geänderten Felder mittels Inputscript auf der Datenbank verbucht

        pushbutton (1,90) "@0Z@Material Ändern Easy " "process=Materialändern.txt" "size=3"

// Mit dieser Drucktaste wird die normale Transaktion MM02 aufgerufen

        pushbutton (21,5) "@0Z@Material Ändern Standard " "/00" "size=3"

Download: mm01_easy.zip
(2 txt-Dateien, zip-komprimiert, 4.59 KB)

materiallesen.txt

// InputScript zum Lesen des Materialstammes, so dass die Felder in der MM02
// entsprechend angezeigt werden können

// 12.05.2003 / Gérald Koehn / Koehn Consulting / www.guixt.ch



Enter "/7"      // Aufruf der Sichten


Screen SAPLMGMM.0070

// Überprüfung der Organisationsdaten

if not ( V[XVertriebsweg] and V[XVerkaufsorganisation] )
   Return "Bitte pflegen Sie die Vertriebsorganisationsdaten !!!"
endif

// Setzen aller Sichten

Enter "/20"      // Alle Sichten markieren

Screen SAPLMGMM.0070

Enter "/6"       // Aufruf der Organsationsdaten

Screen SAPLMGMM.0080            // Organisationsdaten setzen

set F[Verkaufsorg.]         "&V[XVerkaufsorganisation]"
set F[Vertriebsweg]         "&V[XVertriebsweg]"
set F[Werk]                 "&V[XWerk]"
// set F[Lagerort]            "&V[XLagerort]"

Enter

Screen SAPLMGMM.4004

  Enter "/30"

Screen SAPLMGMM.4300

// Zurücksetzen der allgemeinen Variablen, bevor Sie wieder gesetzt werden

set V[MM02_*] " "

// Setzen der Variablen mit den ermittelten Werten
Set V[XMaterial] "&F[Material]"     // zwischenspeichern der Materialnummer für Übergabe an V-44 Transaktion
Set V[MM02_Sprache_1] "&cell[Table,Sprache,1]"
Set V[MM02_Materialtext_1] "&cell[Table,Materialkurztext,1]"
Set V[MM02_Sprache_2] "&cell[Table,Sprache,2]"
Set V[MM02_Materialtext_2] "&cell[Table,Materialkurztext,2]"
Set V[MM02_Sprache_3] "&cell[Table,Sprache,3]"
Set V[MM02_Materialtext_3] "&cell[Table,Materialkurztext,3]"


  Enter "/3"

Screen SAPLMGMM.4004               // Grunddaten 1

set V[MM02_BME] "&[Basismengeneinheit]"
set V[MM02_BME_Text] "&#[6,30]"
set V[MM02_Material] "&F[Material]"
set V[MM02_Materialtext] "&#[2,33]"
set V[MM02_Warengruppe] "&[Warengruppe]"
set V[MM02_Sparte] "&[Sparte]"
set V[MM02_Bruttogewicht] "&[Bruttogewicht]"
set V[MM02_Nettogewicht] "&[Nettogewicht]"
set V[MM02_Gewichtseinheit] "&[Gewichtseinheit]"


Enter "SP04"        // Aufruf von Registerkarte Vertrieb: VerkOrg 1

Screen SAPLMGMM.4000             // Vertrieb: VerkOrg 1


set V[MM02_VStatusU] "&[VTL-überg.Status]"
set V[MM02_VStatusS] "&[VTL-spez.Status]"
set V[MM02_GültigU] "&[gültig ab]"
set V[MM02_GültigS] "&[gültig ab.2]"
set V[MM02_MindAM] "&[MindAuftrMenge]"
set V[MM02_MindLF] "&[Min.liefermenge]"
set V[MM02_Auslieferwerk] "&[Auslieferungswerk]"
set V[MM02_Auslieferwerk_Text] "&#[12,37]"
set V[MM02_Sparte_Text] "&#[7,73]"
set V[MM02_Warengruppe_Text] "&#[13,37]"

Enter "SP05" // Aufruf von Registerkarte Vertrieb: VerkOrg 2


Screen SAPLMGMM.4000            // Vertrieb: VerkOrg 2

set V[MM02_Kontierungsgruppe] "&[Kontierungsgr.Mat.]"
set V[MM02_Kontierungsgruppe_Text] "&#[8,71]"
set V[MM02_Materialgruppe] "&[Materialgruppe]"
set V[MM02_Materialgruppe_Text] "&#[7,71]"
set V[MM02_Pos.Typ.Grp] "&[Positionstypengruppe]"
set V[MM02_Pos.Typ.Grp_Text] "&#[9,71]"

Enter "=SP08"  // Aufruf Vertriebstext

Screen SAPLMGMM.4040 // Vertriebstext

CopyText fromScreen="X[LONGTEXT_VERTRIEBS]" toText="MM02_Vertriebstext"

Enter "SP06"      // Aufruf von Registerkarte Vertrieb: allg./Werk


Screen SAPLMGMM.4000            // Vertrieb: allg./Werk

set V[MM02_Verfp] "&[Verfügbarkeitsprüf.]"
set V[MM02_VPF_Text] "&#[10,32]"
Enter "SP12"   // Aufruf Registerkarte Dispo1


Screen SAPLMGMM.4000           // Disposition 1

set V[MM02_Dispomerkmal] "&[Dispomerkmal]"
set V[MM02_Dispomerkmal_Text] "&#[12,30]"
set V[MM02_Dispolosgrösse] "&[Dispolosgröße]"
set V[MM02_Dispolosgrösse_Text] "&#[17,30]"
Enter "SP13"  // Aufruf von Registerkarte Dispo 2


Screen SAPLMGMM.4000           // Disposition 2

set V[MM02_Sicherheitsbestand] "&[Sicherheitsbestand]"

Enter "/NV-44"                 // Aufruf Anzeige von PR00

Screen RV13A304.1000

set [Verkaufsorganisation] "&V[XVerkaufsorganisation]"
set [Vertriebsweg] "&V[XVertriebsweg]"
set [Material] "&V[XMaterial]"

Enter "/8"

Screen SAPMV13A.1304

set V[MM02_Betrag]    "&cell[Material mit Freigabestatus,Betrag,1]"
set V[MM02_Einh.]     "&cell[Material mit Freigabestatus,Einh.,1]"
set V[MM02_pro]       "&cell[Material mit Freigabestatus,pro,1]"
set V[MM02_ME]        "&cell[Material mit Freigabestatus,ME,1]"
set V[MM02_Lösch]     "&cell[Material mit Freigabestatus,Löschk.,1]"

Enter "/NMM02"

materialändern.txt

// Inputscript zum verbuchen der Aenderungen, welche auf der Transaktion MM02 vorgenommen
// wurden. Am Schluss des Scriptes wird ebenfalls der Preis (PR00) mutiert.
// Autor : G.Koehn / Koehn Consulting / www.guixt.ch
// 12.05.2003

Enter "/7"          // Aufruf der Sichten

Screen SAPLMGMM.0070

// Überprüfung der Organisationsdaten
if not ( V[XVerkaufsorganisation] and V[XVertriebsweg] )
  return "Bitte pflegen Sie die Organisationsdaten für den Vertrieb"
endif
// Setzen der richtigen Sichten

Enter "/20"          // Alle Sichten markieren

Screen SAPLMGMM.0070

Enter "/6"

Screen SAPLMGMM.0080

set F[Verkaufsorg.]     "&V[XVerkaufsorganisation]"
set F[Vertriebsweg]         "&V[XVertriebsweg]"
set F[Werk]                 "&V[XWerk]"
// set F[Lagerort]            "&V[XLagerort]"

Enter
Screen SAPLMGMM.4004

Enter "/30"

Screen SAPLMGMM.4300

Set cell[Table,Sprache,1]                   "&[MM02_Sprache_1]"
Set cell[Table,Materialkurztext,1]            "&[MM02_Materialtext_1]"
Set cell[Table,Sprache,2]                    "&[MM02_Sprache_2]"
Set cell[Table,Materialkurztext,2]            "&[MM02_Materialtext_2]"
Set cell[Table,Sprache,3]                    "&[MM02_Sprache_3]"
Set cell[Table,Materialkurztext,3]            "&[MM02_Materialtext_3]"

Enter "/3"

Screen SAPLMGMM.4004            // Grunddaten 1

set [Basismengeneinheit]         "&V[MM02_BME]"
set [Warengruppe]                 "&V[MM02_Warengruppe]"
set [Sparte]                         "&V[MM02_Sparte]"
set [Bruttogewicht]                 "&V[MM02_Bruttogewicht]"
set [Nettogewicht]                 "&V[MM02_Nettogewicht]"
set [Gewichtseinheit]                 "&V[MM02_Gewichtseinheit]"

Enter "SP04"

Screen SAPLMGMM.4000             // Vertrieb: VerkOrg 1

set [VTL-überg. Status]         "&V[MM02_VStatusU]"
set [gültig ab]                 "&V[MM02_GültigU]"
set [Auslieferungswerk]         "&V[MM02_Auslieferwerk]"
set [VTL-spez. Status]                 "&V[MM02_VStatusS]"
set [gültig ab.2]                 "&V[MM02_GültigS]"
set [MindAuftrMenge]                 "&V[MM02_MindAM]"
set [Min.liefermenge]                 "&V[MM02_MindLF]"

Enter "SP05"

Screen SAPLMGMM.4000               // Vertrieb: VerkOrg 2

set [Materialgruppe]                 "&V[MM02_Kontierungsgruppe]"
set [Positionstypengruppe]         "&V[MM02_Pos.Typ.Grp]"

Enter "=SP08"                 // Aufrufen Vertriebstext

Screen SAPLMGMM.4040 // Vertriebstext

CopyText  fromText="MM02_Vertriebstext" toScreen="X[LONGTEXT_VERTRIEBS]"

Enter

Screen SAPLMGMM.4040 // Vertriebstext    // Screen zwei mal aufrufen, da er sonst den leeren Text nicht abfüllt

CopyText  fromText="MM02_Vertriebstext" toScreen="X[LONGTEXT_VERTRIEBS]"

Enter "SP06"

// Nachvollgender Screen kommt nur, wenn ein leerer Text abgefüllt wird
// Leere Texte vorhanden
Screen SAPLMG19.0120

Enter

Screen SAPLMGMM.4000               // Vertrieb: allg./Werk

set [Verfügbarkeitsprüf.]         "&V[MM02_Verfp]"

Enter "SP12"

Screen SAPLMGMM.4000               // Disposition 1

set [Dispomerkmal]                 "&V[MM02_Dispomerkmal]"
set [Dispolosgröße]                 "&V[MM02_Dispolosgrösse]"

Enter "SP13"

Screen SAPLMGMM.4000              // Disposition 2

set [Sicherheitsbestand]         "&V[MM02_Sicherheitsbestand]"

Enter "/11"


// Falls ein Fehler, so kommt nochmals Screen, z.B. wenn man BasisMengeneinheit wechseln will

Screen SAPLMGMM.4000

Return "&[_message]"



Screen SAPLMGMM.4004

Return "&[_message]"

// Pflege des Konditionssatzes PR00

Screen SAPLMGMM.0060

Enter "/NV-43"

Screen RV13A304.1000

set [Verkaufsorganisation]         "&V[XVerkaufsorganisation]"
set [Vertriebsweg]                 "&V[XVertriebsweg]"
set [Material]                         "&V[XMaterial]"

Enter "/8"

Screen SAPMV13A.1304

set cell[Material mit Freigabestatus,Betrag,1] "&V[MM02_Betrag]"

Enter "/11"

Screen SAPMV13A.1304   // Falls kein Preis geändert wird, so kommt dieser Screen nochmals

Enter "/NMM02"

Screen RV13A304.1000

Enter "/NMM02"

Download: mm02_easy.zip
(3 txt-Dateien, zip-komprimiert, 4.73 KB)

Empfehlen