SAP Jobsuche bei DV-Treff
Mahi11
  • Mahi11
  • SAP Forum - User Thema Starter
vor 2 Jahre
Guten Tag,

dies ist mein erster Thread hier und ich bitte etwas um Nachsicht 🙂 Ich habe kaum ABAP Erfahrung und brauche zu meinem Query etwas Hilfe.

Zum Thema:

Ich möchte in meinem Query die noch offenen Mengen zur Position im Auftrag anzeigen.

Die offene Menge (Feld OLFMNG) wird z.B. in der TA VL10A dynamisch berechnet. Das Feld kann ich leider nicht einfach über eine Tabelle auslesen.

Der Funktionsbaustein müsste lauten: RV_SCHEDULE_CHECK_DELIVERIES

Ich habe ein lokales Feld im Infoset angelegt, welches aber noch mit Coding versorgt werden müsste.

Durch Google konnte ich in Erfahrung bringen, dass der FuBa wie folgt aussieht.

(Es sollte nach Aufruf des FuBa in der Tabelle lt_vbep im Feld OLFMNG die offene Menge stehen)

  DATA: lv_vbeln TYPE vbak-vbeln,
        lv_vbelp TYPE vbap-posnr.
  DATA: lt_vbap TYPE TABLE OF vbapvb,
        lt_vbup TYPE TABLE OF vbupvb,
        lt_vbep TYPE TABLE OF vbepvb,
        lt_vbfa TYPE TABLE OF vbfavb.
  lv_vbeln = '0030000103'.
  lv_vbelp = '20'.
  SELECT * FROM vbap INTO TABLE lt_vbap WHERE vbeln = lv_vbeln
                                        AND   posnr = lv_vbelp.
  SELECT * FROM vbup INTO TABLE lt_vbup WHERE vbeln = lv_vbeln.
  SELECT * FROM vbfa INTO TABLE lt_vbfa WHERE vbelv = lv_vbeln
                                         ORDER BY PRIMARY KEY.
  SORT lt_vbfa BY mandt vbelv posnv vbeln posnn vbtyp_n.
  SELECT * FROM vbep INTO TABLE lt_vbep WHERE vbeln = lv_vbeln
                                        AND   posnr = lv_vbelp.
  CALL FUNCTION 'RV_SCHEDULE_CHECK_DELIVERIES'
       EXPORTING
            fbeleg = lv_vbeln
            fposnr = lv_vbelp
       TABLES
            fvbfa  = lt_vbfa
            fvbup  = lt_vbup
            fxvbep = lt_vbep
            fvbap  = lt_vbap
       EXCEPTIONS
            OTHERS = 3.

Das bringt mich aber nur bedingt weiter. Muss ich das Coding des FuBa unter "Codingabschnitt" -> End-of-Selection (vor Liste) einfügen?

Hat jemand damit Erfahrung und kann mir sagen, welches Coding mein lokales Feld braucht, um am Ende die offene Menge anzuzeigen?

Vielen Dank schonmal für eure Hilfe und ich wünsche schöne Festtage!

p.s. Ich finde das Forum echt super und konnte hier schon so Einiges lernen, danke dafür 🙂

Förderer

wreichelt
vor 2 Jahre
Hallo,

die Berechnung für das Feld muss der Tabelle VBAP zugeordnet werden.

Dann wird das für jede Auftragsposition berechnet.

Bei End-of-Selection wäre es ja nur die letzte Position.

Gruß Wolfgang

Mahi11
  • Mahi11
  • SAP Forum - User Thema Starter
vor 2 Jahre
Hallo Wolfgang,

meine Annahme war, dass ich den FuBa vor Listerstellung aufrufen muss und zusätzlich das Coding für mein Feld noch fehlt.

Oder ist der FuBa bereits der passende Code für mein lokales Feld?

So ganz habe ich es noch nicht verstanden. Ein lokales Feld im Infoset zur VBAP erstellen wäre kein Problem, aber welcher Code wo hin muss weiß ich leider noch nicht.

LG

Mahi

wreichelt
vor 2 Jahre
Hallo,

der Code passt schon und er muss dann zu dem Feld OLFMNG hinzugefügt werden.

Beispiele gibt es auch unter:

https://fico-forum.de/demo/query_lokales_feld.php 

Gruß Wolfgang

Mahi11
  • Mahi11
  • SAP Forum - User Thema Starter
vor 2 Jahre
Das passt leider noch nicht ganz.

Im Infoset das lokale Feld unter VBAP angelegt -> Coding zum Feld eingefügt.

Feld der Feldgruppe zugeordnet um im Query ausgewählt zur Listausgabe.

Feld zeigt den Wert 0 bei jeder Position.

Im Coding selber fehlt doch aber noch eine Ausgabe für das Feld OLFMNG oder nicht?

Ich möchte ja für jede Position der Aufträge im Zeitraum X die noch offene Menge daneben anzeigen (und deren Auftragswert berechnen, aber das kommt dann später).

Zudem müssten die zwei Zeilen:

lv_vbeln = '0030000103'.

lv_vbelp = '20'.

sich nicht speziell auf eine Position, sondern auf alle beziehen:

lv_vbeln = VBAP-VBELN.

lv_vbelp = VBAP-POSNR.

(vermutlich sowas in der Art).

wreichelt
vor 2 Jahre
Hallo,

ja das mit lv_vbeln = '003000...' ist ein Beispiel, richtig ist wie du vermutest lv_vblen = vbap-vbeln.

In der Query muss das Feld dann auch ausgegeben werden (wie andere Felder auch), im Infoset erfolgt die eigentliche Berechnung.

Viel Erfolg

Gruß Wolfgang