Ansicht
Dokumentation

COPA0001 - Erweiterung der Ableitung in der Ergebnisrechnung (CO-PA)

COPA0001 - Erweiterung der Ableitung in der Ergebnisrechnung (CO-PA)

RFUMSV00 - Advance Return for Tax on Sales/Purchases   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Erweiterung der Merkmalsableitung

Im Rahmen der Merkmalsableitung in der Ergebnisrechnung ist es möglich, mit Hilfe der Erweiterung COPA0001 die Standardableitung durch individuelle, selbstprogrammierte Ableitungsschritte zu erweitern.

Die Erweiterungen können an beliebigen Stellen, so häufig wie benötigt, in der Ableitungsstrategie eingefügt werden.

Bitte prüfen Sie vor dem Einsatz dieser Erweiterung genau, ob sich der gewünschte Schritt durch geschickte Schrittfolge unter Ausnutzung von Schritt- und Feldeigenschaften sowie der temporären Zwischenfelder erreichen läßt.

Wie bei den anderen Schrittarten auch, geben Sie die Quellfelder und die Zielfelder an, mit denen Sie innerhalb der Erweiterung arbeiten wollen.

Innerhalb des Bausteins EXIT_SAPLKEDRCOPA_001 können Sie dann im Include ZXKKEU011 eigenes Coding hinterlegen. Dort stehen Ihnen die im Ableitungsschritt angegebenen Felder in den Parametern I_COPA_ITEM und I_GLOBAL, der Ergebnisbereichsname in I_OPERATING_CONCERN , das Ableitungsdatum in I_DERIVATION_DATE und ein eventuell selbstvergebener Schrittidentifizierer in I_STEP_ID zur Verfügung, mit dem Sie Ihre Erweiterungsschritte unterscheiden können, falls Sie mehrere in einer Strategie verwenden.

Die CO-PA-Merkmalswerte für die im Ableitungsschritt angegebenen Quellfelder werden in I_COPA_ITEM in der Form der CE0xxxx-Struktur übergeben, wobei xxxx dem Namen des Ergebnisbereichs entspricht. Für den Zugriff auf die einzelnen Felder sollte dieser Parameter wie im unten angegeben Beispiel beschrieben zunächst einer Variablen mit der passenden Struktur zugewiesen werden.

In der Struktur I_GLOBAL können neben den temporären Arbeitsfeldern USERTEMP1 bis USERTEMP8 auch einige globale Informationen übergeben werden. Beispielsweise kann man damit das Coding abhängig davon steuern, ob die Ableitung in der Planung oder im Ist aufgerufen wird (Feld PLIKZ) oder sie innerhalb der Zuordnungsänderungen aufgerufen wird (Feld REALIGNMENT_MODE).

Hinweis

Das kundenspezifische Coding wird in Include-Dateien hinterlegt. Für den Funktionsbaustein ist folgendes Include vorgesehen:
EXIT_SAPLKEDRCOPA_001: Include ZXKKEU011

Die Komponenten 001 und 002 der Kundenerweiterung für die Merkmalsableitung COPA0001 werden in Release 4.0 nicht mehr angeboten. Wenn Sie ein Upgrade aus einem früheren Release vornehmen, werden diese jedoch weiterhin angesprungen und sind damit prinzipiell weiterhin funktionsfähig. Das System stellt dazu nach einem Upgrade automatisch fest, ob diese Kundenerweiterung aktiv war. Ist dies der Fall, werden automatisch Ableitungsschritte am Anfang und am Ende der Ableitungsstrategie erzeugt, mit denen diese Erweiterungen angesprungen werden.

Bitte prüfen Sie, ob die in der Erweiterung programmierte Logik auch im neuen Release funktionsfähig ist.

Sehen Sie dazu auch die Dokumentation zur Ableitung im CO-PA Online-Handbuch.

Empfehlungen

  1. Benutzen Sie Erweiterungsschritte nur, wenn unbedingt notwendig. Sie vermeiden nach Releasewechseln eventuell notwendige Nacharbeiten zur Sicherstellung der Kompatibilität.
  2. Definieren Sie zu dem Erweiterungsschritt nur die in der Erweiterung tatsächlich definierten Quell- und Zielfelder. Sollen mehrere logisch unabhängige Ableitungen per Erweiterung durchgeführt werden, dann zerlegen Sie diese in getrennte Erweiterungsschritte, die Sie mit Schrittidentifizierern auseinanderhalten können. Dadurch kann das System automatisch auch die in der Erweiterung abgebildeten logischen Abhängigkeiten erkennen und für Optimierungszwecke benutzen.

Wichtige Hinweise

Die Merkmalsableitung wird von mehreren Stellen im System aufgerufen, sowohl im Dialog als auch in der Hintergrundverarbeitung. Dabei handelt es sich zum Teil um kritische Programme, z.B. die integrierte Datenfortschreibung im Rechnungswesen. Dadurch entstehen einige zusätzliche Anforderungen bzw. Restriktionen bei der Gestaltung des Codings in der Erweiterung.

  • Keine Commits
Im Coding dürfen grundsätzlich keine Datenbank-Commits ausgelöst werden, da die Konsistenz der Datenfortschreibung zwischen den verschiedenen Modulen des Rechnungswesens gefährdet werden kann. Dies bedeutet insbesondere, daß Sie keine Fehlermeldungen ausgeben dürfen, da dabei implizit Commits abgesetzt werden.
  • Keine 'harten' Fehlermeldungen
Wenn Sie in der Erweiterung Fehlersituationen erkennen, dann geben Sie diese entweder über ein MESSAGE ... RAISING DERIVATION_FAILED zurück, oder setzen einfach den Rückgabeparameter E_FAILED auf 'X'. In beiden Fällen sorgt der aufrufende Ableitungsprozessor für eine ordentliche Weiterverarbeitung des Fehlerfalls. MESSAGE E-Anweisungen ohne RAISING müssen aufgrund der Commit-Problematik vermieden werden.

  • Keine Interaktion
Benutzer-Interaktionen wie z.B. der Aufruf eines Dialogfensters sind nicht erlaubt.

Besonderheiten bei Quell- und Zielfeldern

  • Nur angegebene Quellwerte in I_COPA_ITEM und I_GLOBAL verfügbar
Die Quell- und Zielfelder der Erweiterung werden im Customizing eingestellt. Es werden ausschließlich die Werte der dort hinterlegte Quell- und Zielfelder in den Übergabestrukturen I_COPA_ITEM und I_GLOBAL übergeben. Alle anderen Werte sind leer bzw. undefiniert.

  • Erweiterung wird nicht immer angesprungen
Bei der Angabe der Quell- und Zielfelder für den Erweiterungsschritt im Customizing wird als Feldeigenschaften für die Quellfelder 'kein Initialwert erlaubt' und für die Zielfelder 'nicht überschreiben' voreingestellt. D.h., daß die Erweiterung nur dann angesprungen wird, wenn alle angegebenen Quellfelder ungleich dem Initialwert und wenigstens eines der Zielfelder leer ist. Von den in die Rückgabestruktur E_COPA_ITEM gestellten Werte werden nur diejenigen übernommen, die nicht bereits vorher gefüllt waren. Wenn Sie dieses Verhalten ändern wollen, dann ändern Sie die Eigenschaften der Quell- und Zielfelder, d.h. initiale Quellwerte erlauben bzw. 'Zielwert überschreiben' einstellen.

Beispiel

Ableitung der SOP-Produktgruppe in einem Erweiterungsschritt

Der Ergebnisbereich Z001 enthält ein selbst definiertes Merkmal WWSOP (SOP-Produktgruppe). Sie möchten die SOP-Produktgruppe in ein selbst definiertes Merkmal übernehmen.

,,tables: pgmi.
,,data: ce0_z001 like ce0z001.
,,data: begin of sop_work_area,
,, prgrp like pgmi-prgrp,
,, date like pgmi-datum,
,, end of sop_work_area.

Beachten Sie, daß eine einmal angelegte und aktivierte Erweiterung sofort in allen Ergebnisbereichen wirkt. Sie wird aus allen Ergebnisbereichen angesprungen. Daher müssen Sie in Ihrem Coding unbedingt den Ergebnisbereichsnamen abfragen.

,,case i_operating_concern.
,, when 'Z001'.

Geben Sie dem aufrufenden Programm die Information zurück, daß Sie für diesen Ergebnisbereich User-Exit-Coding hinterlegt haben. Dies ist wichtig, da der Ableitungsprozessor den User-Exit sonst in der Folge nicht mehr aufruft (innerhalb der gleichen Transaktion/Report)

,,e_exit_is_active = 'X'.

Zuweisung des unstrukturierten Datenfeldes an eines der Struktur CE0xxxx. Dann können die Felder des Ergebnisbereiches einzeln angesprochen werden.

,,ce0_z001 = i_copa_item.

Benutzereigenes Coding: Übernahme der SOP-Produktgruppe in das selbstdefinierte Merkmal WWSOP.

,,case i_step_id.
,, when 'SOP'.

Die Step-ID ist 'SOP'. In diesem Fall soll die SOP-Gruppe gelesen werden.

,, select prgrp min( datum ) up to 1 rows
,, into sop_work_area
,, from pgmi
,, where nrmit = ce0_z001-artnr
,, and wemit = ce0_z001-werks
,, and datum >= i_derivation_date
,, group by prgrp.
,, ce0_z001 = sop_work_area-prgrp.
,, endselect.

Falls in der Tabelle PGMI kein Wert gefunden wird, ist die Ableitung gescheitert. Dies wird durch die Besetzung von e_failed mit 'X' an das aufrufende Programm kommuniziert.

,, if sy-subrc <> 0.
,, e_failed = 'X'.
*,, Fehlermeldung ausgeben:
*,, 'Für & im Werk & keine SOP-Gruppe gefunden'
,, message s900(zz) with ce0_z001-artnr ce0_z001-werks
,, endif.
,, endcase.

Vergessen Sie nicht, das Ergebnis des Ableitungsschrittes an das aufrufende Programm zurückzugeben.

,, e_copa_item = ce0_z001.
,,endcase.

Zugelassene Quellfelder

  • Alle selbstdefinierten Merkmale
  • Alle aus Vorlagetabellen übernommenen Merkmale
  • Kundennummer (KNDNR)
  • Artikelnummer (ARTNR)
  • Fakturaart (FKART)
  • Kundenauftragsnummer (KAUFN)
  • Positionsnummer Kundenauftrag (KDPOS)
  • Buchungskreis (BUKRS)
  • Kostenrechnungskreis (KOKRS)
  • Geschäftsbereich (GSBER)
  • Profit Center (PRCTR)
  • Verkaufsorganisation (VKORG)
  • Vertriebsweg (VTWEG)
  • Sparte (SPART)
  • Kostenträger (KSTRG)
  • Projektstrukturplanelement (PSPNR)
  • Werk (WERKS)
  • Alle Mengeneinheitsfelder
  • Alle Felder von GLOBAL

Zugelassene Zielfelder

  • Alle selbstdefinierten Merkmale
  • Alle aus Vorlagetabellen übernommene Merkmale
  • Kundennummer (KNDNR)
  • Artikelnummer (ARTNR)
  • Geschäftsbereich (GSBER)
  • Profit Center (PRCTR)
  • Verkaufsorganisation (VKORG)
  • Vertriebsweg (VTWEG)
  • Sparte (SPART)
  • Werk (WERKS)
  • Alle Mengeneinheitsfelder
  • Temporäre Hilfsfelder

Hinweis

Technische Felder sowie alle oben nicht aufgeführten festen Felder des Ergebnisbereichs werden NICHT als Zielfelder akzeptiert. Beispiele hierfür sind der Buchungskreis oder der Kostenrechnungskreis, die als zentrale Organisationsstrukturen des FI/CO nicht manipuliert werden dürfen.






General Material Data   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 12527 Date: 20240419 Time: 231102     sap01-206 ( 172 ms )