DATA: it_t685 TYPE STANDARD TABLE OF t685 WITH DEFAULT KEY. DATA: it_t682i TYPE STANDARD TABLE OF t682i WITH DEFAULT KEY. DATA: it_a004 TYPE STANDARD TABLE OF a004 WITH DEFAULT KEY. DATA: it_konp TYPE STANDARD TABLE OF konp WITH DEFAULT KEY. DATA: it_konh TYPE STANDARD TABLE OF konh WITH DEFAULT KEY. PARAMETERS: pkvewe TYPE t685-kvewe DEFAULT 'A'. PARAMETERS: pkappl TYPE t685-kappl DEFAULT 'V'. PARAMETERS: pkschl TYPE t685-kschl DEFAULT 'PR00'. PARAMETERS: pkolnr TYPE t682i-kolnr DEFAULT '40'. PARAMETERS: pvkorg TYPE a004-vkorg DEFAULT '0030'. PARAMETERS: pvtweg TYPE a004-vtweg DEFAULT '01'. PARAMETERS: pmatnr TYPE mara-matnr DEFAULT '000000001234567890'. PARAMETERS: pdatab TYPE a004-datab DEFAULT '20170101'. PARAMETERS: pdatbi TYPE a004-datbi DEFAULT '99991231'. START-OF-SELECTION. *T685 (Konditionen: Arten) *-> KVEWE A (Verwendung der Konditionstabelle -> Preisfindung) *-> KAPPL V (Applikation -> Vertrieb) *-> KSCHL PR00 (Konditionsart) * *<- KOZGF (Zugriffsfolge -> Preis) *<- VTEXT (Listenpreis) SELECT * FROM t685 INTO TABLE @it_t685 WHERE kvewe = @pkvewe AND kappl = @pkappl AND kschl = @pkschl. IF sy-subrc = 0. LOOP AT it_t685 ASSIGNING FIELD-SYMBOL(<a>). WRITE: / | KOZGF (Zugriffsfolge): { <a>-kozgf }|. ENDLOOP. *T682I (Konditionen: Zugriffsfolgen (generierte Form)) *-> KVEWE A (Verwendung der Konditionstabelle -> Preisfindung) *-> KAPPL V (Applikation -> Vertrieb) *-> KOZGF PR00 (Zugriffsfolge -> Preis) *-> KOLNR 40 (Zugriffsfolge -> Zugriff) * *<- KOTABNR 4 (Konditionstabelle -> Material (004)) DATA(lv_kozgf) = it_t685[ 1 ]-kozgf. SELECT * FROM t682i INTO TABLE @it_t682i WHERE kvewe = @pkvewe AND kappl = @pkappl AND kozgf = @lv_kozgf AND kolnr = @pkolnr. IF sy-subrc = 0. LOOP AT it_t682i ASSIGNING FIELD-SYMBOL(<z>). WRITE: / | KOTABNR (Konditionstabelle): { <z>-kotabnr } (A{ <z>-kotabnr })|. ENDLOOP. *A004 (Material) *-> KAPPL V (Applikation -> Vertrieb) *-> KSCHL PR00 (Konditionsart) *-> VKORG 0030 (Verkaufsorganisation) *-> VTWEG 01 (Vertriebsweg - Stammdaten) *-> MATNR 000000001234567890 (Materialnummer) *-> DATAB (Gültigkeitsbeginn des Konditionssatzes) *-> DATBI (Gültigkeitsende des Konditionssatzes) * *<- KNUMH (Nummer Konditionssatz) * Tabellenname zusammenbauen -> A004 (Material) DATA(lv_tabname) = |A{ it_t682i[ 1 ]-kotabnr }|. SELECT * FROM (lv_tabname) INTO TABLE @it_a004 WHERE kappl = @pkappl AND kschl = @pkschl AND vkorg = @pvkorg AND vtweg = @pvtweg AND matnr = @pmatnr AND datab <= @pdatab AND datbi >= @pdatbi. IF sy-subrc = 0. LOOP AT it_a004 ASSIGNING FIELD-SYMBOL(<m>). WRITE: / |KNUMH (Nummer Konditionssatz): { <m>-knumh } [von: { <m>-datab DATE = ENVIRONMENT } bis: { <m>-datbi DATE = ENVIRONMENT }]|. ENDLOOP. *KONP (Konditionen (Position)) *-> KNUMH (Nummer Konditionssatz) *-> LOEVM_KO space (Löschkennzeichen für die Konditionsposition) * *<- KBETR (Konditionsbetrag/-prozentsatz im Nicht-Staffelfall) *<- KPEIN (Konditions-Preiseinheit) *<- KONWA (Konditionseinheit (Währung oder Prozentsatz) *<- KMEIN (Konditionsmengeneinheit) DATA(lv_knumh) = it_a004[ 1 ]-knumh. SELECT * FROM konp INTO TABLE @it_konp WHERE knumh = @lv_knumh AND loevm_ko = @space. IF sy-subrc = 0. LOOP AT it_konp ASSIGNING FIELD-SYMBOL(<p>). WRITE: / | KONP: Preis: { <p>-kbetr } { <p>-konwa } pro { <p>-kpein } { <p>-kmein }|. ENDLOOP. * *KONH (Konditionen (Kopf)) *-> KNUMH (Nummer Konditionssatz) SELECT * FROM konh INTO TABLE @it_konh WHERE knumh = @lv_knumh. IF sy-subrc = 0. LOOP AT it_konh ASSIGNING FIELD-SYMBOL(<h>). WRITE: / | KONH: KVEWE: { <h>-kvewe } / KOTABNR: { <h>-kotabnr } / KAPPL: { <h>-kappl } / KSCHL: { <h>-kschl }|. ENDLOOP. ELSE. WRITE: / |Keine Konditionen (Kopf) in Tabelle KONH vorhanden.|. ENDIF. ELSE. WRITE: / |Keine Konditionen (Position) in Tabelle KONP vorhanden.|. ENDIF. ELSE. WRITE: / |Keine KNUMH (Nummer Konditionssatz) in Tabelle { lv_tabname } vorhanden.|. ENDIF. ELSE. WRITE: / |Keine KOTABNR (Konditionstabelle) für { lv_kozgf } vorhanden.|. ENDIF. ELSE. WRITE: / |Keine KOZGF (Zugriffsfolge) für { pkschl } vorhanden.|. ENDIF.
Weiterführende Infos: Link