(LKW)Bedarfsvorschau je Debitor

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge Seite 1 von 1
6 Beiträge Seite 1 von 1

(LKW)Bedarfsvorschau je Debitor

Beitrag von owny (ForumUser / 3 / 0 / 0 ) » 21. Mär 2019 10:41

Hallo zusammen,

ich stehe bei einer Query-Erstellung etwas auf dem Schlauch.
Ich befülle eine eigene Datenstruktur mittels Datenleseprogramm wie folgt (siehe Quellcode unten):
Sachnummer Debitor Bedarf heute Bedarf heute+1
4711 0815
4712 0815
4713 0815
[...]

Die Bedarfe fülle ich in der Satzverarbeitung mittels Fuba MD_STOCK_REQUIREMENTS_LIST_API und der Table gt_mdezx (siehe Quellcode unten).
In der Satzverarbeitung ergänze ich daraufhin noch eine Zusatzvariable LKW_Vol je Tag (Errechnet durch Bedarf / Packstückinhalt * Packstückvolumen).

Mein Problem:
Ich möchte nicht für jede Sachnummer & Kunde im Endergebnis eine Zeile ausgegeben haben, sondern eine Gesamtsumme der Bedarfe und LKW Volumen je Kunde.
Die Sachnummer ist aufgrund der Berechnung des LKW Volumens und der Bedarfe aber unverzichtbar.

Ich glaube, dass ich in der Logik einen kompletten Denkfehler habe...

Mein gewünschtes Ergebnis:
Debitor Bedarf heute Bedarf heute +1 LKW_Vol heute LKW_Vol heute+1
0815 1000 St. 2000 St. 1,2 2,4

Mein Datenleseprogramm:

Code: Alles auswählen.

data:
  /DCA/P000_E1256_ALV_OUTPUT     type /DCA/P000_E1256_ALV_OUTPUT    ,
  it_data type standard table of /DCA/P000_E1256_ALV_OUTPUT    ,
  mapl type mapl,
  vbap type vbap,
  vbpa type vbpa.

select mapl~matnr VBPA~KUNNR as KUNNR
      from ( MAPL
             inner join VBAP
             on  VBAP~MATNR = MAPL~MATNR
             and VBAP~WERKS = MAPL~WERKS
             inner join VBPA
             on  VBPA~VBELN = VBAP~VBELN )
      into corresponding fields of table it_data
           where
    MAPL~MATNR in pa_matnr
             and MAPL~WERKS in pa_werk
             and MAPL~PLNTY = 'N'
             and MAPL~LOEKZ = ''
             and VBAP~ABGRU = ''
             and VBAP~PSTYV in pa_PSTYV
             and VBPA~PARVW = 'WE'
             and VBPA~KUNNR in pa_WE
             and VBPA~POSNR = ' '
    group by mapl~matnr kunnr.

loop at it_data assigning <struc>.
  move-corresponding <struc> to /DCA/P000_E1256_ALV_OUTPUT.
endloop.
Meine Satzverarbeitung:

Code: Alles auswählen.

CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'
  EXPORTING
    MATNR                          = /DCA/P000_E1256_ALV_OUTPUT-matnr
    WERKS                          = pa_werk-low
*    ERGBZ                          = 'SAP00002'
 IMPORTING
   E_MT61D                        = STR_MT61D
   E_MDKP                         = STR_MDKP
 TABLES
      MDEZX                      = gt_mdezx
*"      MDSUX STRUCTURE  MDSU OPTIONAL
 EXCEPTIONS
   MATERIAL_PLANT_NOT_FOUND       = 1
   PLANT_NOT_FOUND                = 2
   OTHERS                         = 3
          .
IF SY-SUBRC = 0.
*Bezeichnung
  /DCA/P000_E1256_ALV_OUTPUT-MAKTX = STR_MT61D-MAKTX.
*Disponent
  /DCA/P000_E1256_ALV_OUTPUT-DISPO = str_mdkp-DISPO.
*MD04 Datensätze lesen
  loop at gt_mdezx.
*Kundenbedarfe und Auslieferung
    If gt_mdezx-Delkz = 'VE' or gt_mdezx-Delkz = 'VC'
       or gt_mdezx-Delkz = 'VJ' or gt_mdezx-Delkz = 'SB'
       or gt_mdezx-Delkz = 'AR' or gt_mdezx-Delkz = 'BB'.
      lc_va_aktdatumplusx = sy-datum.
      if gt_mdezx-PLAAB = '02'.
*Bedarfe pro Tag zuweisen für die nächsten x Tage
* Rückstand und heute
         if gt_mdezx-DAT00 <= lc_va_aktdatumplusx.
            if gt_mdezx-Kunnr = /DCA/P000_E1256_ALV_OUTPUT-Kunnr or gt_mdezx-Delkz = 'SB'.
               /DCA/P000_E1256_ALV_OUTPUT-BEDD0 = /DCA/P000_E1256_ALV_OUTPUT-BEDD0 + gt_mdezx-MNG01.
            endif.
        endif.
[...]
  endloop.
  endif.
if /DCA/P000_E1256_ALV_OUTPUT-BEDD1 <> 0.
LKW_VOL1 = /DCA/P000_E1256_ALV_OUTPUT-BEDD0 / LTFM * LTVOL / 85.
Ich hoffe, Ihr könnt mein Problem nachvollziehen und mir Tipps geben, wie ich meine gewünschte Datenstruktur erreiche.
Vermutlich denke ich einfach viel zu kompliziert.

Danke und Grüße,
owny


Re: (LKW)Bedarfsvorschau je Debitor

Beitrag von wreichelt (Expert / 709 / 16 / 123 ) » 21. Mär 2019 12:32

Hallo,

ich möchte zum ersten Teil 'select mapl~matnr VBPA~KUNNR as KUNNR' eine Anmerkung machen.
Evtl. ist es einfacher die Tabelle VAPMA zu lesen, dort sollten die notwendigen Informationen enthalten sein.

In der Ergebnis Tabelle '/DCA/P000_E1256_ALV_OUTPUT' könntest du nach Abschluss der Selektion
einen 'Delete Adjacent Duplicates' machen , damit sollte je Sachnummer und Kundennummer nur ein Eintrag vorhanden sein.

Gruß Wolfgang

Re: (LKW)Bedarfsvorschau je Debitor

Beitrag von owny (ForumUser / 3 / 0 / 0 ) » 21. Mär 2019 12:44

Hallo Wolfgang,

danke für deine schnelle Antwort.
Ich bin bereits so weit, dass ich je Sachnummer & Debitor nur noch einen Ausgabewert erhalte.

Mein Problem ist jedoch, dass ich im Output nur einen Eintrag je Debitor erhalten möchte.
Ich müsste quasi eine erste Tabelle mit Sachnummer, Debitor, Mengen und LKW Volumen generieren und eine zweite Tabelle als Ergebnis ausgeben, in der ich die Bedarfe und LKW Volumen auf den Debitor alleine aus Tabelle 1 aufsummiere.

Re: (LKW)Bedarfsvorschau je Debitor

Beitrag von wreichelt (Expert / 709 / 16 / 123 ) » 21. Mär 2019 12:54

Hallo,

im ALV kann ich ja die Summe je Debitor bilden und nur diese dann Anzeigen.

So bleiben die anderen Daten vorhanden und könnten untersucht werden wenn dies mal notwendig wäre.

Gruß Wolfgang

Re: (LKW)Bedarfsvorschau je Debitor

Beitrag von owny (ForumUser / 3 / 0 / 0 ) » 21. Mär 2019 13:31

Hallo Wolfang,

wie funktioniert das? Steh gerade bisschen auf dem Schlauch.

Re: (LKW)Bedarfsvorschau je Debitor

Beitrag von wreichelt (Expert / 709 / 16 / 123 ) » 21. Mär 2019 14:54

Hallo,

das wird im layout vom ALV dann eingestellt.

Gruß Wolfgang

Seite 1 von 1

Aktuelle Forenbeiträge

Konstruktoren-Probleme.... gelöst
vor 21 Stunden von AdrianSchm 8 / 325
Workflow über Report starten
vor 22 Stunden von LostDarkness 2 / 73
Liste Angebote/ Aufträge nach ERNAM = sy-uname
Gestern von wreichelt 4 / 122
DOCVARIABLE in Worddokument setzen (OLE?)
Gestern von msfox 2 / 113
BAPI_PO_CREATE1 und Einkaufsinfosatz
Gestern von whaslbeck 2 / 155

Unbeantwortete Forenbeiträge

WCOCO: Gruppe für Betragsfelder 0S01
vor einer Woche von SAP_ENTWICKLER 1 / 95
CAS-Nr.: Chemical Abstracs Service
vor 3 Wochen von SAP_ENTWICKLER 1 / 124
Interaktives Skript, Rolle IC-Manager
vor 4 Wochen von erubadhron86 1 / 170
Wie findet man das Rahmenprogramm eines Infosets?
vor 4 Wochen von DeathAndPain 1 / 171