Andreas Unkelbach
Logo Andreas Unkelbach Blog

Andreas Unkelbach Blog

ISSN 2701-6242

Artikel über Controlling und Berichtswesen mit SAP, insbesondere im Bereich des Hochschulcontrolling, aber auch zu anderen oft it-nahen Themen.


Werbung
Schnelleinstieg ins SAP®-Controlling (CO) – 2., erweiterte Auflage (📖)

Für 29,95 € direkt bestellen

Oder bei Amazon ** Oder bei Autorenwelt



Montag, 19. November 2012
17:13 Uhr

Query Stammdatenvergleich Profit-Center und Auslesen von Textbestandteilen (Teilstring aus Variable)

Ausgangslage
Innerhalb der Profit-Center-Rechnung sind drei Arten von Profit-Center hinterlegt. Diese sind angelehnt an Kostenstellen geführt mit einen Buchstaben je Bereich.

Beispiel:
Kostenstelle 12345678
Profitcenter Bereich D: D12345678
Profitcenter Bereich L: L12345678
Profitcenter Bereich S: S12345678

Ziel ist es, dass das Feld Verantwortlicher innerhalb dieser drei Profit-Center identisch gepflegt ist.

Problem:
Angedacht ist eine Liste aller Profitcenter sortiert nach einer Kostenstelle. Problematisch ist dabei, dass den Profit-Center L* zwar eine Kostenstelle zugeordnet ist, den Bereichen D* und S* jedoch jeweils nur Innenaufträge zugewiesen sind. Entsprechend ist eine Auswertung anhand von Kostenstellen nicht möglich.

Lösung:
Da die Namenslogik vorgegeben ist (Bereich+Kostenstelle) kann jedoch mit Hilfe eines kundeneigenen Feldes innerhalb einer Query wie folgt vorgegangen werden.

Innerhalb der kundeneigener Felder in SAP Query ist es aber möglich auch mit Textfeldern Teile auszulesen. Hierbei können bei Textfeldern einzelne Bestandteile (Zeichenketten) ausgelesen werden. Bei bekannter Zeichenlänge kann hier der Textstring entsprechend ausgelesen werden. Im Beispiel könnte also die Kostenstelle ausgelesen werden, indem aus der Profit-Centernummer ab den 2. Zeichen alle Zeichen ausgelesen werden. Somit würde sowohl aus L12345678 als auch aus D12345678 die Kostenstelle 12345678 dargestellt werden.


Grundlage für die Auswertung von Profit-Center-Stammdaten sind die Tabellen CEPC und CEPCT.

Infoset definieren
Innerhalb der Transaktion SQ02 wird folgendes Infoset definiert. Hierfür wird als Datenquelle ein Tabellen-Join über Tabelle CEPC angelgt.

Es werden folgende Tabellen miteinander in Beziehung gesetzt:
Tabellen:
CEPC: Stammdatentabelle von Profit Centern
CEPCT: Profit-Center-Stammdaten Texte

Verknüpfungsbedingungen:
Die vorgeschlagenen Verknüpfungsbedingungen seitens SAP können direkt übernommen werden.

Damit sind alle Verknüpfungen der Tabellen erfolgt. Der Einfachheit halber können nun alle Feldgruppen/Datenfelder übernommen werden. Dieses hat den Vorteil, dass dieses Infoset auch für weitere Queries zur Verfügung steht. Alternativ könnte man auch nur die notwendigen Felder übernehmen. Innerhalb der Query können dann die Felder auch wieder eingeschränkt werden.

2.) Query definieren
Innerhalb der Query über das Infoset wird nun mit lokalen Feldern gearbeitet.

Hierzu gehen wir nicht in die Grundliste der Query (wo auch das Layoutdesign gepflegt wird) sondern innerhalb der Querypflege mit nächstes Bild (F6) auf die Feldauswahl der Query gewechselt.

Über
BEARBEITEN->KURZBEZEICHNUNG
kann für die einzelnen Felder eine Kurzbezeichnung eingestellt werden. Nun werden rechts neben den Datenfeldern Eingabefelder für die Kurzbezeichnung angegeben. Hier erhalten nun folgende Felder eine Kurzbezeichnung:

Stammdatentabelle von Profit Centern
Profitcenter-> PCTR

Diese Kurzbezeichnung ist notwendig, da wir auf diese dann Bezug nehmen, wenn wir ein eigens Feld mit einer Formel anlegen.

Teilstring aus einen Textstring innerhalb einer Query auslesen

Dieses geht über

BEARBEITEN->LOKALES FELD->ANLEGEN

Dieses Lokale Feld wird dann in der Feldgruppe angelegt, in der wir uns gerade befinden.

Das lokale Feld hat folgende Eigenschaften:
Kurzbezeichnung KST
Feldbezeichnung Kostenstelle
Überschrift Kostenstelle


Unter Eigenschaften wird hier die gleiche Eigenschaften wie Feld PCTR
hinterlegt.

Unter Berechnungsvorschrift kommt nun folgende Formel:

PCTR[2:10]

Hierbei werden aus den Textfeld PCTR die Zeichen mit der Position 2 bis Position 10 (entspricht der maximalen Zeichenlänge des Feldes) ausgegeben.
Das erste Zeichen eines Textfeldes hat die Position 1, was in unseren Beispiel dann D,L oder S wäre.

In der Query kann nun dieses Feld verwendet werden um eine Sortierung der Stammdaten über die Kostenstelle zu erreichen.

Aufbau der Query
Innerhalb der Query werden nun auf folgende Felder der einzelnen Tabellen Zugriff genommen bzw. in der Grundliste zugewiesen. Hierbei ist L als Listenfeld und S als Selektionsfeld zu verstehen.

Die Felder werden hier in der Reihenfolge angeben, wie diese dann auch in der Query ausgegeben werden sollen:

lokale Zusatzfelder
Kostenstelle (L) (kundeneigenes Feld)

Stammdatentabelle von Proftitcenter CEPC
PrCtr (L) CEPC-PRCTR

Profit-Center-Stammdaten Texte (CEPCT)
Kurztext (L) CEPCT-KTEXT
Langtext (L) CEPCT-LTEXT

Stammdatentabelle von Proftitcenter CEPC
Verantwortliche (L) CEPC-VERAK


Da alle Stammdaten kontrolliert werden sollen ist kein Selektionsfeld definiert.

Allerdings bietet sich an, über die Sortierfelder (durch Markieren der Sortierfeldbox und Ziehen des Feldes Kostenstelle (mit den Beispielwert) auf den entsprechenden Kasten) das Feld Kostenstelle direkt als Summierungsfeld zu verwenden. Hierdurch erscheinen die Profitcenter D12345678, L12345678 und S12345678 direkt unterinander.

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.




Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
SAP Weiterbildung
ein Angebot von Espresso Tutorials
SAP Weiterbildung - so wirksam wie eine gute Tasse Espresso

unkelbach.link/et.books/

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/



Tags: Query CO

3 Kommentare - - SAP

Artikel datenschutzfreundlich teilen

🌎 Facebook 🌎 Twitter 🌎 LinkedIn


Diesen Artikel zitieren:
Unkelbach, Andreas: »Query Stammdatenvergleich Profit-Center und Auslesen von Textbestandteilen (Teilstring aus Variable)« in Andreas Unkelbach Blog (ISSN: 2701-6242) vom 19.11.2012, Online-Publikation: https://www.andreas-unkelbach.de/blog/?go=show&id=366 (Abgerufen am 23.11.2024)

Diesen und weitere Texte von finden Sie auf http://www.andreas-unkelbach.de


Kommentare

xdyrnrbhbcr am 12.10.2014 um 08:07 Uhr
Meine Rettung!


S. am 5.10.2018 um 11:33 Uhr
Hallo Andreas,

wie kann ich innerhalb der Query mit einem lokalen Feld aus einem Datumsfeld "01.01.2018" ein Periode/Jahr-Feld "01.2018" machen? Habe zunächst versucht, aus einem Monats- und einem Jahresfeld eine Verknüpfung zum machen, aber egal, wie ich den Punkt in der Mitte darstelle, z.B. . zwischen den Feldern, SAP akzeptiert es nicht. Dann habe ich aus dem Datumsfeld ein Textfeld gemacht, um anschließend mit [n1:n10] zu experimentieren, geht aber auch nicht, es kommt nie 01.2018 dabei heraus. Wäre toll, wenn Du einen Tipp hättest, wie 1. so ein Perioden/Jahr-Feld erstellt werden kann und 2. wie zwei Felder verknüpft werden können mittel lokalem Feld. Vielen Dank im Voraus.
Viele Grüße
S.


Andreas Unkelbach Homepage am 5.10.2018 um 11:42 Uhr
Hallo S.,

hier sollte per Zusatzfeldcoding und über den Funktionsbaustein DATE_TO_PERIOD_CONVERT das gewünschte Ergebnis erzielt werden können.

Ein Zusatzfeldcoding ist im Infoset zu ergänzen. Einige Beispiele dazu habe ich in der Anleitung zur Erstellung mit Query (siehe Ende des Artikels erläutert).

Bisher habe ich eher im Artikel "Umgang mit lokalen Datumsfeldern in Queries" auf https://www.andreas-unkelbach.de/blog/?go=show&id=353 mich mit Datumsfeldern bemüht.


Sofern nur mit der Grundliste (Query) und nicht per Coding im Infoset gearbeitet werden soll würde ich nach einer Verknüpfung von Textfeldern schauen. Statt der ABAP Anweisung CONCENTATE die Elemente MONAT "." und JAHR als einen zusammengefügten Text erstellen. Sollten hier auch andere Möglichkeiten des Verknüpfen von Strings gegeben sein.

Auf die Schnelle ist dieses nur ein kurzer Lösungsansatz, aber ggf. hilft dieses schon weiter.

Viele Grüße
Andreas Unkelbach


Kommentare und Anmerkungen

Für diesen Beitrag ist die Kommentarfunktion gesperrt. Sollten Sie eine Anmerkung oder Frage zu diesen Artikel haben freue ich mich über eine Rückmeldung per Mail. Meine Kontaktdaten finden Sie unter Kontakt aber auch am Ende dieser Seite. Neben Mail stehen hier auch verschiedene "soziale Netzwerke" zur Verfügung.



* Amazon Partnerlink/Affiliatelinks/Werbelinks
Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
Hinauf






Logo Andreas-Unkelbach.de
Andreas Unkelbach Blog
ISSN 2701-6242

© 2004 - 2024 Andreas Unkelbach
Gießener Straße 75,35396 Gießen,Germany
andreas.unkelbach@posteo.de

UStID-Nr: DE348450326 - Kleinunternehmer im Sinne von § 19 Abs. 1 UStG

Andreas Unkelbach

Stichwortverzeichnis
(Tagcloud)


Aktuelle Infos (Abo)

Facebook Twitter XING

Linkedin Mastodon Bluesky

Amazon Autorenwelt Librarything

Buchempfehlung
Berichtswesen im SAP®-Controlling

19,95 € Amazon* Autorenwelt

Espresso Tutorials

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/

Privates

Kaffeekasse 📖 Wunschliste