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 / 338 / 3 / 101 ) »
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 / 338 / 3 / 101 ) »
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.
304
Views
Erweiterung
von BecomingAnAbapGuru » 10.02.2022 19:43 • Verfasst in ABAP® für Anfänger
1
Antw.
1466
Views
IS-U: IQ03 Erweiterung
von ABAP_User » 21.02.2012 16:24 • Verfasst in Sonstige Module
4
Antw.
5633
Views
Erweiterung IDOC_OUTBOUND_DELVRY
von bapimueller » 28.08.2018 16:18 • Verfasst in Sales and Distribution
0
Antw.
1477
Views
BSP erweiterung löschen
von SaskuAc » 24.07.2018 09:35 • Verfasst in Web-Dynpro, BSP + BHTML
12
Antw.
4435
Views
Erweiterung PBAS0001
von Kelly » 06.09.2007 16:52 • Verfasst in Human Resources

Über diesen Beitrag



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

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140