Erweiterung der MB25 - Reservierungsliste

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Erweiterung der MB25 - Reservierungsliste

Beitrag von Arminson (ForumUser / 4 / 0 / 0 ) »
Hallo zusammen,

ich bin noch blutiger Anfänger in ABAP und hoffe ihr könnt mir helfen. Ich habe die Aufgabe bekommen die Transaktion MB25 um eine Spalte zu erweitern.

Und zwar soll hier die Bedarfsmenge (RESB-BDMNG) mit dem gleitenden Durchschnittspreis (MBEW-VERPR) multipliziert werden und in der neuen Spalte "Wert der offnenen Reservierung" ausgegeben werden.

Ich habe mir den bestehenden Report RM07RESL nach ZRM07RESL kopiert, um ihn zu modifizieren. Die Spalte im Report wird mir bereits angezeigt, allerdings erhalte ich keine Werte. Der SQL-Befehl scheint noch nicht richtig zu sein.

Hier meine Syntax:
SELECT SUM( mbew~verpr * resb~bdmng ) AS WertRes
FROM mbew INNER JOIN resb ON mbew~matnr = resb~matnr
INTO CORRESPONDING FIELDS OF TABLE @lt_wertres
WHERE mbew~matnr = resb~matnr.

Ich freue mich auf eure Vorschläge und bedanke mich schonmal für die Hilfe.
Arminson

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Erweiterung der MB25 - Reservierungsliste

Beitrag von jocoder (Specialist / 343 / 3 / 102 ) »
WHERE-Bedingung
Die WHERE-Bedingung und die JOIN-Bedingung sind identisch. Das SELECT-Statement

Code: Alles auswählen.

SELECT SUM( mbew~verpr * resb~bdmng ) AS WertRes
  FROM mbew INNER JOIN resb ON mbew~matnr = resb~matnr
  INTO CORRESPONDING FIELDS OF TABLE @lt_wertres
  WHERE resb~matnr = @resb-matnr.
liest den Wert für eine Materialnummer aus dem Tabellenarbeitsbereich resb.
Z. B. der Tabellenarbeitsbereich resb enthält die Materialnummer '000000001220004000'. Das SELECT-Statement wird wie folgt an die Datenbank gesendet:

Code: Alles auswählen.

SELECT SUM( mbew~verpr * resb~bdmng ) AS WertRes
  FROM mbew INNER JOIN resb ON mbew~matnr = resb~matnr
  INTO CORRESPONDING FIELDS OF TABLE @lt_wertres
  WHERE resb~matnr = '000000001220004000'.
Das @-Symbol kennzeichnet im strikten Modus eine Hostvariable, die durch einen Wert ersetzt wird. Die Transaktion ST05 macht den Ersatz der Hostvariablen sichtbar.

Das SELECT-Statement

Code: Alles auswählen.

SELECT SUM( mbew~verpr * resb~bdmng ) AS WertRes
FROM mbew INNER JOIN resb ON mbew~matnr = resb~matnr
INTO CORRESPONDING FIELDS OF TABLE @lt_wertres
WHERE mbew~matnr = resb~matnr.
ist identisch zu

Code: Alles auswählen.

SELECT SUM( mbew~verpr * resb~bdmng ) AS WertRes
FROM mbew INNER JOIN resb ON mbew~matnr = resb~matnr
INTO CORRESPONDING FIELDS OF TABLE @lt_wertres.
resb~matnr ist keine Hostvariable und wird unverändert übernommen.

Ergebnismenge
Die Ergebnismenge enthält nur eine Zeile. Es braucht dazu eigentlich keine interne Tabelle. Als Ergebnismenge kann hier eine Struktur angegeben werden.

Code: Alles auswählen.

SELECT SUM( mbew~verpr * resb~bdmng ) AS WertRes
  FROM mbew INNER JOIN resb ON mbew~matnr = resb~matnr
  INTO CORRESPONDING FIELDS OF @ls_wertres
  WHERE resb~matnr = @resb-matnr.
Soll die Ergebnismenge mehrere Zeilen enthalten, ist eine GROUP-BY-Klausel notwendig.

Auf die Materialbewertung bezogene Probleme
  • Wenn die getrennte Bewertung für Materialnummern aktiviert ist (z.B. Bewertungsebene liegt auf Chargenebene), kann der Wert zu groß werden. Die Tabelle MBEW enthält in diesem Fall mehrere Einträge für eine Materialnummer und diese werden alle im JOIN berücksichtigt.
  • Die Formel mbew~verpr * resb~bdmng liefert zudem nur ein richtiges Resultat, wenn der GLD-Preis aktiviert ist. Für Materialnummern mit Standardpreisen muss die Spalte MBEW-STPRS herangezogen werden. Die Unterscheidung ist anhand des Preissteuerungsfeldes möglich (MBEW-VPRSV)
  • Bewertungskreise: Die Materialbewertung ist auf Materialnummerebene und Bewertungskreisebene organisiert. Der Bewertungskreis sollte in den JOIN mit aufgenommen werden. Reservierungen liegen auf Werksebene. Werke sind in der Tabelle T001W Bewertungenkreisen zugeordnet.
Eine JOIN, der die Bewertungskreisebene mit berücksichtigt:

Code: Alles auswählen.

SELECT SUM( mbew~verpr * resb~bdmng ) AS WertRes
  FROM resb INNER JOIN t001w ON t001w~werks = resb~werks
  INNER JOIN mbew ON mbew~matnr = resb~matnr AND mbew~bwkey = t001w~bwkey
  INTO CORRESPONDING FIELDS OF @ls_wertres
  WHERE resb~matnr = @resb-matnr.

Re: Erweiterung der MB25 - Reservierungsliste

Beitrag von Arminson (ForumUser / 4 / 0 / 0 ) »
Das hat mir schon weiter geholfen, vielen Dank.
Allerdings wird mir als Ergebnis immer 0 ausgegeben.

Der gleitende Durchschnittspreis ist aktiviert und beträgt beim Testfall 60. Bedarfsmenge ist 2. Also sollte hier 120 ausgegeben werden.

Oder habe ich in der Ausgabe etwas falsch?
Diese erfolgt über den Include RM07RESL_FIELDCAT:

Code: Alles auswählen.

  def_add 'wertres' 'wertres' 'gs_wertres' 'X' space.

Re: Erweiterung der MB25 - Reservierungsliste

Beitrag von jocoder (Specialist / 343 / 3 / 102 ) »
Wird der Wert aus der Struktur gs_wertres in die Tabelle t_list übertragen? Diese Tabelle wird im ALV angezeigt.

Re: Erweiterung der MB25 - Reservierungsliste

Beitrag von Arminson (ForumUser / 4 / 0 / 0 ) »
Der Wert sollte eigentlich in die Tabelle t_list übertragen werden.
Ich habe folgenden Code dafür:

Code: Alles auswählen.

<t_list>-wertres = gs_wertres-wertres.

Seite 1 von 1

Vergleichbare Themen

3
Antw.
755
Views
Erweiterung
von BecomingAnAbapGuru » 10.02.2022 19:43 • Verfasst in ABAP® für Anfänger
6
Antw.
1399
Views
Erweiterung im Standardprogramm
von BecomingAnAbapGuru » 25.02.2022 14:05 • Verfasst in ABAP® für Anfänger
9
Antw.
3875
Views
Erweiterung des Datenfelds
von LeonBarthez » 23.01.2008 17:11 • Verfasst in Human Resources
1
Antw.
1644
Views
IS-U: IQ03 Erweiterung
von ABAP_User » 21.02.2012 16:24 • Verfasst in Sonstige Module
11
Antw.
6590
Views
Erweiterung Stücklistenbrowser
von Somani » 08.10.2013 14:14 • Verfasst in ABAP® Core

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8543
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2445
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3734

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8543
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2445
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3734

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor einer Woche von Manfred K. 1 / 2856
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Wochen von snooga87 1 / 4665