4.7 KiB
ABAP Produktsparten-Mapping
Stand: 2026-05-28
Dateien
| Datei | Zweck |
|---|---|
ZCL_PRODSPARTE_PROVIDER.abap |
Wiederverwendbare Provider-Klasse fuer ALV und spaeter OData |
Z_PRODSPARTE_REPORT.abap |
Schlanker ALV-Testreport |
Z_PRODSPARTE_MAP_BUILD.abap |
Baut ZPRODSPARTE_MAP aus eindeutigen CO-PA-Kombinationen |
Benoetigte SAP-Objekte
- Transparente Tabelle
ZPRODSPARTE_MAPMANDTPAPH1WWPFAWWPSPCRDATECRUSER
- Klasse
ZCL_PRODSPARTE_PROVIDER - Report
Z_PRODSPARTE_REPORT - Report
Z_PRODSPARTE_MAP_BUILD
Anlage In SAP
ZCL_PRODSPARTE_PROVIDER.abapist eine globale Klasse bzw. ein Class Pool, kein ausfuehrbarer Report.- In SE24 als Klasse
ZCL_PRODSPARTE_PROVIDERanlegen und Definition/Implementation uebernehmen. - Alternativ in SE38/ADT als Programtyp
Class Poolanlegen; die Datei beginnt deshalb mitCLASS-POOL zcl_prodsparte_provider.
- In SE24 als Klasse
Z_PRODSPARTE_REPORT.abapundZ_PRODSPARTE_MAP_BUILD.abapsind normale ausfuehrbare Reports.
Optional fuer Gateway/DDIC:
- Struktur
ZSTR_PRODSPARTE_OUT - Tabellentyp
ZTT_PRODSPARTE_OUT
DDIC-Hinweis Zu ZSTR_PRODSPARTE_OUT
Wenn ZSTR_PRODSPARTE_OUT in SE11 angelegt wird, duerfen PAPH1,
WWPFA und WWPSP nicht blind als Komponententypen eingetragen werden.
In manchen SAP-Systemen sind das keine aktiven globalen Datenelemente,
sondern nur Feldnamen in der CO-PA-Tabelle CE11000. Dann kann die
Nametab der Struktur nicht generiert werden.
Empfohlene Anlage:
| Komponente | Komponententyp / Alternative |
|---|---|
MATNR |
MATNR |
MAKTX |
MAKTX |
PAPH1 |
eigenes Datenelement ZDE_PAPH1 mit Laenge wie CE11000-PAPH1; aktuell fachlich erwartet: CHAR 5 |
PAPH1_TEXT |
VTEXT oder eigenes Text-Datenelement |
WWPFA |
eigenes Datenelement ZDE_WWPFA mit exakt gleicher Laenge wie CE11000-WWPFA |
WWPFA_TEXT |
BEZEK oder eigenes Text-Datenelement |
WWPSP |
eigenes Datenelement ZDE_WWPSP mit exakt gleicher Laenge wie CE11000-WWPSP |
WWPSP_TEXT |
BEZEK oder eigenes Text-Datenelement |
IS_ASSIGNED |
BOOLE_D oder XFELD |
Alternativ kann die Struktur fuer den ersten ALV-Test entfallen, weil die
Provider-Klasse intern mit CE11000-PAPH1, CE11000-WWPFA und
CE11000-WWPSP typisiert. Fuer Gateway/OData ist eine globale Struktur
aber sinnvoll.
Gepruefte Anpassungen Gegenueber Erstentwurf
- Provider-Logik aus Report in globale Klasse ausgelagert.
MAKTalsLEFT OUTER JOIN, damit Materialien ohne Text nicht verloren gehen.VTWEGals optionaler Parameter.- Bei mehreren Vertriebswegen gewinnt bewusst der kleinste
VTWEG. - Fallback setzt technischen Code
UNASS, TextNicht zugeordnetundIS_ASSIGNED = abap_false. gt_ambigim Mapping-Build ist korrekt alsty_combotypisiert.p_erkrswurde entfernt, weil der Report fix ausCE11000liest.- Leerschreiben von
ZPRODSPARTE_MAPwird verhindert, wenn keine eindeutigen Saetze aufgebaut wurden.
Noch Fachlich/Technisch Zu Pruefen
- Ist
PAPH1 = MVKE-PRODH(5)im Trafag-System exakt korrekt? - Sind
T25A0fuer Produktfamilie undT25A1fuer Produktsparte die richtigen Texttabellen? - Ist
CE11000der richtige CO-PA-Einzelposten fuer den relevanten Ergebnisbereich? - Ist Fallback-Code
UNASSin FeldWWPSPlang genug/zulässig? - Soll
VTWEGzwingend selektiert werden statt "kleinster VTWEG gewinnt"?
Gateway-Stand 2026-05-29
Der bestehende Gateway-Service wurde erweitert, statt einen separaten Service zu verwenden:
- Service:
ZPOWERBI_EINKAUF_SRV - Service Root:
http://travt762.sap.trafag.com:8000/sap/opu/odata/sap/ZPOWERBI_EINKAUF_SRV/ - Entity Type:
ProductDivisionRef - Entity Set:
ProductDivisionRefSet - DDIC-Struktur fuer Entity Type:
ZSTR_PRODSPARTE_OUT
Wichtig:
FINANZDATASCHWEI_GET_ENTITYSETgehoert zum bestehenden Sales-EntitySet und muss den bisherigenSELECT * FROM zschweiz ...behalten.- Produktspartenlogik gehoert in die separat generierte/redefinierte Methode
PRODUCTDIVISIONR_GET_ENTITYSET. - Wenn
/IWFND/MED/170mit einem Servicenamen wieZPOWERBI_EINKAUF_SRVPRODUCTDIVISIONRSETerscheint, fehlt in der URL der Slash zwischen Service und EntitySet.
Korrekte Test-URL:
http://travt762.sap.trafag.com:8000/sap/opu/odata/sap/ZPOWERBI_EINKAUF_SRV/ProductDivisionRefSet
Gateway-Feldnamen, wie sie im Web-Mapping verwendet werden:
| Gateway-Feld | Web-Zielfeld |
|---|---|
Matnr |
Join gegen Z.Matnr |
Paph1 |
ProductHierarchyCode |
Paph1Text |
ProductHierarchyText |
Wwpfa |
ProductFamilyCode |
WwpfaText |
ProductFamilyText |
Wwpsp |
ProductDivisionCode |
WwpspText |
ProductDivisionText |
IsAssigned |
ProductMappingAssigned |