Files
Ai/TrafagSalesExporter/docs/abap/README_PRODSPARTE.md
T

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_MAP
    • MANDT
    • PAPH1
    • WWPFA
    • WWPSP
    • CRDATE
    • CRUSER
  • Klasse ZCL_PRODSPARTE_PROVIDER
  • Report Z_PRODSPARTE_REPORT
  • Report Z_PRODSPARTE_MAP_BUILD

Anlage In SAP

  • ZCL_PRODSPARTE_PROVIDER.abap ist eine globale Klasse bzw. ein Class Pool, kein ausfuehrbarer Report.
    • In SE24 als Klasse ZCL_PRODSPARTE_PROVIDER anlegen und Definition/Implementation uebernehmen.
    • Alternativ in SE38/ADT als Programtyp Class Pool anlegen; die Datei beginnt deshalb mit CLASS-POOL zcl_prodsparte_provider.
  • Z_PRODSPARTE_REPORT.abap und Z_PRODSPARTE_MAP_BUILD.abap sind 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.
  • MAKT als LEFT OUTER JOIN, damit Materialien ohne Text nicht verloren gehen.
  • VTWEG als optionaler Parameter.
  • Bei mehreren Vertriebswegen gewinnt bewusst der kleinste VTWEG.
  • Fallback setzt technischen Code UNASS, Text Nicht zugeordnet und IS_ASSIGNED = abap_false.
  • gt_ambig im Mapping-Build ist korrekt als ty_combo typisiert.
  • p_erkrs wurde entfernt, weil der Report fix aus CE11000 liest.
  • Leerschreiben von ZPRODSPARTE_MAP wird verhindert, wenn keine eindeutigen Saetze aufgebaut wurden.

Noch Fachlich/Technisch Zu Pruefen

  • Ist PAPH1 = MVKE-PRODH(5) im Trafag-System exakt korrekt?
  • Sind T25A0 fuer Produktfamilie und T25A1 fuer Produktsparte die richtigen Texttabellen?
  • Ist CE11000 der richtige CO-PA-Einzelposten fuer den relevanten Ergebnisbereich?
  • Ist Fallback-Code UNASS in Feld WWPSP lang genug/zulässig?
  • Soll VTWEG zwingend 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_ENTITYSET gehoert zum bestehenden Sales-EntitySet und muss den bisherigen SELECT * FROM zschweiz ... behalten.
  • Produktspartenlogik gehoert in die separat generierte/redefinierte Methode PRODUCTDIVISIONR_GET_ENTITYSET.
  • Wenn /IWFND/MED/170 mit einem Servicenamen wie ZPOWERBI_EINKAUF_SRVPRODUCTDIVISIONRSET erscheint, 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