06:14 Uhr
Weiterentwicklung SAP Query Einzelpostenliste Vorgang KAMV (manuelle Verrechnung) und KZPI (Gemeinkostenzuschläge) für Nacherfassung in Planversion
Rückblick
Ausgangslage:
Bei der Kopie der Istdaten in eine Plankopie werden alle CO Belege mit Vorgang KAMV (Manuelle Kostenverrechnung) nicht mit in die Planversion kopiert. Diese manuellen Kostenverrechnungen (Transaktion KB15N zum Erfassen bzw. KB17N zur Stronierung) müssen entsprechend in der Planversion nacherfasst werden. Über die Transaktion KB16N können entsprechende Belege angezeigt werden. Typische Geschäftsvorfälle sind hier bspw. die interne Leistungsverrechnung wie Porto, Kopierkosten oder auch Servicestunden.
Ein vergleichbares Problem tritt bei der Gemeinkostenzuschlagsverrechnung (betriebswirtschaftlicher vorgang KZPI auf wo diese Buchungen ebenfalls nachgebucht werden müssen im Plan.
In der Tabelle COEP sind diese Buchungen über den Vorgang KAMV selektierbar, allerdings ist hierbei darauf zu achten, dass die Buchungen sowohl mit positiven als auch negativen Vorzeichen gespeichert sind. Je nachdem müssen die Sender und Empfänger entsprechend belastet bzw. entlastet werden.
Zielvorgabe:
Abhängig vom Wert soll bei positiven Werten (Aufwandsbuchung) die Objektnummer als Empfänger (NEU) und das Partnerobjekt als Sender (ALT) ausgegeben werden. Bei negativen Werten sollen Sender / Empfänger entsprechend vertauscht werden. Der Wert soll in jeden Fall mit positiven Kennzeichen ausgegeben werden. Ferner ist darauf zu achten, dass Kostenarten des Typs 42 (Umlage) durch solche des Typs 41 (Gemeinkostenzuschläge) ersetzt werden sollen. Entsprechend sollte auch die Kostenartenbezeichnung und der Kostenartentyp mit ausgegeben werden.
Anhand von kundeneigener lokaler Felder innerhalb der SAP Query (Transaktion SQ01) habe ich nun je nach Wert die Objektnummer (OBJEKT) oder das Partnerobjekt (PARTNER) zugewiesen.
Damit habe ich nun also die technischen Bezeichnungen innerhalb der Query umgesetzt.
Der Aufbau des Infoset und der Query ist in obigen Artikel beschrieben.
Nun soll jedoch die Weterverabrietung der Query über KAMV nicht in Access sondern direkt innerhalb der Query erfolgen.
Im Ergebnis soll eine Liste aus folgenden Feldern entstehen (als Sender und Empfängerbeziehungen aus den Objekten aus Z_ALT , Z_NEU und Z_WERT.
Zur Erinnerung Z_WERT, Z_ALT, Z_NEU
Lokales Feld Z_WERT
Der Wert bezieht sich auf das Feld "Wert gesamt in Kostenrechnungskreiswährung"( COEP-WKGBTR ) welches der Kurzbezeichnung WERTK zugeordnet worden ist.Hintergrund zu den einzelnen Währungsfeldern ist im Artikel "Query Einzelpostenliste Innenauftrag mit Ausweis Ertrag und Aufwand Zweiter Teil Query zur Datenaufbereitung"
festgehalten.
Exkurs: Unterschiedliche Währungen im Controlling
Alternativ hätte die Kurzbezeichnung WERT auch den Feldern "Wert gesamt in Objektwährung" oder "Wert gesamt in Kostenrechnungskreiswährung" zugeordnet werden können. Sofern alle Werte in Euro geführt werden dürfte dieses identisch sein.
Allerdings kann im Controlling, besonders bei internationalen Konzernen unterschiedliche Währungen geführt werden.
Beim Festlegen eines Kostenrechnungskreis wird im Customizing auch gleichzeitig eine Kostenrechnungskreiswährung festgelegt. Dem Kostenrechnungskreis können unterschiedliche Buchungskreise zugeordnet werden, die zwar eine eigene Buchungskreiswährung (bspw. US Doller USD oder Schweizer Franken SFR) haben aus denen aber die Kostenrechnung die gemeinsame Konzernwährung Euro ableitet, so dass innerhalb des Kostenrechnungskreis eine einheitliche Konzernwährung geführt wird.
Die Transaktionswährung weist dafür die Währung aus, in der die Belege im Controlling tatsächlich gebucht sind.
Daneben können zu einzelnen CO-Objekten, so auch Kostenstelle oder Innenauftrag ebenfalls eigene Währungen definiert werden (bspw. in der Kostenstelle im Feld Währung in der Registerkarte Grunddaten). In der Regel wird hier aber dem CO-Objekt die Währung als Vorschlagswert beim Anlagen vorgeschlagen und zugewiesen, die auch im Kostensrechnungskreis hinterlegt ist.Zusammenhang T-Währung (COEP-WTGBTR), O-Währung (COEP-WOGBTR), K-Währung (COEP-WKGBTR) und Währungsumstellung
Durch den Hinweis eines Kollegen bin ich darauf aufmerksam gemacht worden, dass bei einen Mehrmandantensystemen scheinbar nur das Feld "Wert gesamt in Kostenrechnungskreiswährung"( COEP-WKGBTR ) gefüllt ist und nicht die Felder Transaktionswährung ( COEP-WTGBTR) oder Objektwährung ( COEP-WOGBTR ). Entsprechend sinnvoll ist es daher tatsächlich die Kostenrechnungskreiswährung für diese Query zu verwenden. An welcher Stelle im Customizing dieses Verhalten ausgesteuert ist kann ich leider noch nicht sagen, aber die Artikel, welche die COEP im Rahmen einer Query auswerten, habe ich passend angepasst. Hintergrund ist hier vermutlich, dass einige Mandanten die Währungsumstellung von DM auf EUR mitgemacht haben und andere erst nach der Umstellung auf Euro angelegt worden sind. Dieses spricht dafür, dass die T-Währung und O-Währung nur dann gefüllt wird, wenn auch tatsächlich unterschiedliche Währungen im Systemn vorhanden waren und ansonsten wird nur das Feld "Wert gesamt in Kostenrechnungskreiswährung" gefüllt, wobei diesse Währung auch identisch zur Buchungskreiswährung ist.
Die Berechnungsvorschrift zum lokalen Feld lautet:
- Bedingung: WERTK < 0
Formel: -1 * WERTK - Bedingung: WERTK > 0
Formel: 1 * WERTK - Sonst
WERTK
Partner und Objekt als Grundlage Z_ALT und Z_NEU
Die folgenden Felder beziehen sich auf die Felder
Objektnummer COEP-OBJNR
Kurzbezeichnung: OBJEKT
Partnerobjekt COEP-PAROB
Kurzbezeichnung: PARTNER
Lokales Feld Z_ALT
Hier sind die Eigenschaften identisch zum OBJEKT und folgende komplexe Berechnung hinterlegt:- Bedingung: WERTK > 0
PARTNER - Bedingung: WERTK < 0
OBJEKT - Sonst
WERTK
Lokales Feld Z_NEU
Auch hier sind die gleichen Eigenschaften wie OBJEKT festgelegt, aber die komplexe Berechnung ist wie folgt definiert:- Bedingung: WERTK > 0
OBJEKT - Bedingung: WERTK < 0
PARTNER - Sonst
WERTK
festgelegt und den Buchwert immer positiv (und je nachdem ob der ursprüngliche Wert positiv oder negativ war WERTK < oder > 0 je Partner oder Objekt als Sender oder Empfänger definiert.
Ziel: Umbuchung Kostenstelle alt, Innenauftrag alt, Betrag, Kostenstelle Neu, Innenauftrag Neu
Allerdings mag ich in meiner Umbuchungsmaske nun folgende Felder füllen.Als Vorlage für eine Umbuchungsliste benötige ich nun aber folgende Angaben:
- Kostenstelle alt
- Auftrag alt
- KOSTENART
- Kostenstelle neu
- Auftrag neu
Die Objekte (Partner und Objekt) beginnen entweder mit K für Kostenstelle oder OR für Innenauftrag.
Entsprechend kann ich folgende Hilfsfelder anlegen in der Query:
Lokales Feld ZALT_ART
Textfeld (1 Zeichen)
Formel:
Z_ALT[1:1]
Damit wird das erste Zeichen des Feld Z_ALT also K oder O gespeichert.
Lokales Feld ZNEU_ART
Textfeld (1 Zeichen)
Formel:
Z_NEU[1:1]
Damit wird das erste Zeichen des Feld Z_NEU also K oder O gespeichert.
Nun lege ich vier weitere Felder an:
- Lokales Feld ZKSALT
Textfeld 10 Zeichen
Bedingung:
ZALT_ART = 'K'
Formel:
ZALT[7:16] * 1 - Lokales Feld ZIAALT
Textfeld 10 Zeichen
Bedingung:
ZALT_ART = 'O'
Formel:
ZALT[7:16] * 1 - Lokales Feld ZKSNEU
Textfeld 10 Zeichen
Bedingung:
ZNEU_ART = 'K'
Formel:
ZNEU[7:16] * 1 - Lokales Feld ZIANEU
Textfeld 10 Zeichen
Bedingung:
ZNEU_ART = 'O'
Formel:
ZNEU[7:16] * 1
Allerdings gibt es nun noch die Notwendigkeit, dass die Kostenart zur Umbuchung geändert werden muss.
Hintergrund ist, dass nicht alle Kostenarten für die kundeneigene Planwertumbcuhung verwendet werden können, daher müssen Kostenarten vom Typ 42 (Umlage) duch entsprechende geeignete Kostenarten bspw. 41 (Gemeinkostenzuschläge) ersetzt werden.
Dazu habe ich im Infoset ein Zusatzfeld angelegt.
Zusatzfeld ZCOKAMV
LIKE-Referenz COEP-KSTAR
Zu diesem Feld habe ich nun folgendes Coding für unsere achtstellige Kostenarten ergänzt:
Coding zu Zusatzfeld ZCOKAMV
CLEAR ZCOKOMV.
* Damit wird der Wert erst einmal auf leer gesetzt.
ZCOKAMV = COEP-KSTAR.
* Nun wird die ursprüngliche Kostenart zugewiesen.
IF COEP-KSTAR CO '1234567890'.
* Damit nur nummerische Kostenarten geprüft werden.
* Das Feld COEP-KSTAR hat insgesamt 10 Stellen
* allerdings sind unsere Kostenarten achtstellig
* entsprechend sind die 00 vorne weg zu ignorieren.
* Für die Kostenarten beginnend mit 9399 sollen korrespondierende 9398
* Kostenarten ausgewählt werden.
* 9399 (Kostenartentyp 42 Umlage)
* 9398 (Kostenartentyp 41 Gemeinkostenzuschläge)
IF COEP-KSTAR BETWEEN '0093899999' AND '0094000000'.
CONCATENATE '9398' COEP-KSTAR+6(4) INTO ZCOKAMV.
* Hier wird der String 9398 mit den letzten 4 Ziffern der Kostenat verknüpft.
* Dies bedeutet aus Kostenart 93991234 wird 93981234
* Dank der IF Anweisung wird dieses auch nur für das Intervall
* zwischen 0093899999 und 0094000000 ausgeführt
* Daneben können noch weitere Kostenarten ausgestauscht werden.
ELSEIF COEP-KSTAR = '0059999990'.
ZCOKAMV = 59999980.
ENDIF.
ENDIF.
Dieses Zusatzfeld bekommt in der Query dann die Bezeichnung ZZKAMV.
Ein lokales Zusatzfeld, dass ich vorher für mehrere Berechnungsschritte über lokale Felder nutzte bekommt folgende Eigenschaften:
Z_KSTAR
gleiche Eigenschaften wie Feld KSTAR (entspricht Kostenart COEP-KSTAR)
Formel:
ZZKAMV
Fazit
Die fertige Query umfasst für die Umbuchung dann folgende Felder:- ZKSALT
- ZIAALT
- Z_KSTAR
- Z_WERT
- ZKSNEU
- ZIANEU
Als Buchungstext für die Umbuchung verwenden wir den Kurztext der ursprünglcihen Kostenart (CSKU-KTEXT).
Im Buch »Berichtswesen im SAP®-Controlling« bin ich ausführlich auf dies Thema eingegangen.
(01. Juni 2017) Paperback ISBN: 9783960127406
Für 19,95 € direkt bestellen
Oder als SAP Bibliothek-Flatrate *
Oder bei Amazon *
Das Thema SAP Query ist immer wieder als Berichtstool ein klein wenig unterschätzt, daher habe ich auch ein eigenes Kapitel im Buch gewidmet. Daneben gibt es aber auch hier im Blog immer einmal wieder einen aktuellen Artikel. Ebenso versuche ich in meinen Vorträgen Begeisterung für das Berichtstool SAP Query zu wecken.
Hinweis:
Eine kurze Einführung in das Thema SAP Query habe ich im Artikel
"Grundlagen Kurzeinführung und Handbuch SAP Query" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.
ein Angebot von Espresso Tutorials
unkelbach.link/et.books/
unkelbach.link/et.reportpainter/
unkelbach.link/et.migrationscockpit/
Diesen Artikel zitieren:
Unkelbach, Andreas: »Weiterentwicklung SAP Query Einzelpostenliste Vorgang KAMV (manuelle Verrechnung) und KZPI (Gemeinkostenzuschläge) für Nacherfassung in Planversion« in Andreas Unkelbach Blog (ISSN: 2701-6242) vom 14.12.2020, Online-Publikation: https://www.andreas-unkelbach.de/blog/?go=show&id=1175 (Abgerufen am 5.12.2024)
Keine Kommentare - Permalink - SAP
Artikel datenschutzfreundlich teilen
🌎 Facebook 🌎 Twitter 🌎 LinkedIn