<?xml version="1.0" encoding="ISO-8859-1" ?>
  <rss version="2.0"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
  		<title>Andreas Unkelbach - Blog</title> 
  		<link>http://www.andreas-unkelbach.de/blog</link> 
  		<description>Andreas Unkelbach - Blog</description> 
  		<dc:language>de</dc:language> 
  		<copyright>Copyright 2004, Andreas Unkelbach</copyright> 
  		<webMaster>blog@andreas-unkelbach.de</webMaster>
		<image>
  			<url>http://www.andreas-unkelbach.de/blog/button1.gif</url> 
  			<title>Andreas Unkelbach - Blog</title> 
  			<link>http://www.andreas-unkelbach.de/blog/?go=impressum</link> 
  		</image>
		<pubDate>Thu, 17 May 2012 07:44:05 +0200</pubDate>
            <item>
<title>Cashback Quipu</title>
<content:encoded><![CDATA[Mittlerweile gibt es ja einige Cashback-Systeme, eine meiner Meinung nach sinnvolles Angebot stellt dabei <a href="https://www.qipu.de/invite/q7NgEyv3r5/" target="_blank" title="Parnetlink zum Anbieter">Qipu.de</a> welches neben Fressnapf, O2, Alternate und diverse andere Anbieter einige Partnerseiten anbietet und hier, sofern man über die Qipu Seite dann zu diesen Onlineshop wechselt Prozente oder Rabatte anbietet.<br />
Insgesamt gibt es hier über 1600 Partnershops, welche nach Kategorien aufgeteilt aber auch durchsuchbar sind.<br />
<br />
Die einzelnen qipu Partnershop haben verschiedene Cashback Raten und Gutscheine. Die aktuellen Raten und Gutscheine befinden sich auf der jeweiligen Händlerseite auf qipu. <br />
<br />
Zu beachten ist jedoch, dass während der Nutzung kein Werbeblocker aktiv sein sollte. Die Provisionen werden gesammelt und können direkt auf ein Konto (kostenfrei) ausgezahlt werden.<br /><br />Tags: <a href="index.php?go=tags&amp;tag="></a> <a href="index.php?go=tags&amp;tag="></a> ]]></content:encoded>
<dc:creator>Andreas Unkelbach</dc:creator><dc:date>2012-05-17T07:26:00+02:00</dc:date>
<link>http://www.andreas-unkelbach.de/blog/?go=show&amp;id=349</link>
<category>Internet</category><comments>http://www.andreas-unkelbach.de/blog/comment.php?id=349</comments></item>

<item>
<title>Formeln in Excel werden nicht berechnet</title>
<content:encoded><![CDATA[<b>Ausgangslage:</b><br />
In einer Excelmappe sind verschiedene Zellen mit der Formel VERKETTEN verbunden worden und per "Automatisch ausfüllen" auf die Folgezeilen übertragen worden. Hierbei sind zwar die Formeln auch entsprechend angepasst bspw. VERKETTEN(a2;c2;d2) und in der Folgezeile VERKETTEN(a3;c3;d3) jedoch werden die Werte nicht aktualisiert bzw. erst nach Speichern erneuten Öffnen der Tabelle.<br />
<br />
<b>Lösung:</b><br />
Hier wurde in der Exceltabelle die automatische Arbeitsmappenberechnung auf Manuell gesetzt. <br />
<br />
Unter<br />
Datei->Optionen->Formeln<br />
bzw.<br />
Office Schaltfläche->Exceloptionen->Formeln<br />
<br />
kann die Arbeitsmappenberechnung wieder auf automatisch gesetzt werden. Diese Einstellung ist automatisch bei neuen Tabellen vorhanden, kann jedoch auf einzelne Exceltabellen abgestellt werden.<br /><br />Tags: <a href="index.php?go=tags&amp;tag=Excel">Excel</a> <a href="index.php?go=tags&amp;tag="></a> ]]></content:encoded>
<dc:creator>Andreas Unkelbach</dc:creator><dc:date>2012-05-16T10:00:00+02:00</dc:date>
<link>http://www.andreas-unkelbach.de/blog/?go=show&amp;id=348</link>
<category>Excel</category><comments>http://www.andreas-unkelbach.de/blog/comment.php?id=348</comments></item>

<item>
<title>Seitenupdate: Buchempfehlung</title>
<content:encoded><![CDATA[Nach einiger Zeit gibt es auch mal wieder ein Update der Seite rund ums Blog. Gerade bei der täglichen Arbeit gibt es immer mal wieder neben Softwareperlen auch Bücher die einen wesentlich weiter helfen. Daher möchte ich im Laufe der Zeit die ein oder anderen empfehlenswerte <a href="http://andreas-unkelbach.de/buch.php" target="_blank">Bücher</a> im Bereich SAP oder auch Hochschulcontrolling vorstellen.<br /><br />Tags: <a href="index.php?go=tags&amp;tag="></a> <a href="index.php?go=tags&amp;tag="></a> ]]></content:encoded>
<dc:creator>Andreas Unkelbach</dc:creator><dc:date>2012-05-06T13:40:00+02:00</dc:date>
<link>http://www.andreas-unkelbach.de/blog/?go=show&amp;id=346</link>
<category>Beruf</category><comments>http://www.andreas-unkelbach.de/blog/comment.php?id=346</comments></item>

<item>
<title>SAP Query: Einzelpostenliste KAMV für Umbuchung in Planversion</title>
<content:encoded><![CDATA[<b>Ausgangslage:</b><br />
<br />
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.<br />
<br />
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.<br />
<br />
<b>Zielvorgabe:</b><br />
Abhängig vom Wert soll bei positiven Werten die Objektnummer als Sender (Alt) und das Partnerobjekt als Empfänger (Neu) 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.<br />
<br />
<b>Lösungsansatz:</b><br />
Ein direktes Auswerten der Tabelle COEP ist relativ mühsam, da hier sowohl auf die Vorzeichen als auch die zu exportierenden Beträge geachtet werden müssen. Zumindest die Aufbereitung nach Sender und Empfänger ist hier im Rahmen einer Query etwas einfacher. Genauso wie bei der Auswertung nach COEP werden als Selektionskriterien das Geschäftsjahr, der Vorgang ("KAMV") als auch das B/Entl.Kennzeichen ("S") verwendet. Dieses hat den Hintergrund, dass jeder Beleg in der COEP sowohl mit Soll als auch mit Haben (also zwei Positionen je Beleg) hinterlegt sind, der Betrag aber nur einmal korrigiert werden soll. Die so gewonnenen Einzelposten können dann entsprechend zusammengefasst werden.<br />
<br />
Entsprechend kann die Tabelle COEP als Grundlage einer SAP Query verwendet werden. Als optionale Bereicherung um die Bezeichnung und die Kostenartentypen können hier auch die Tabellen CSKU und CSKB mit der Tabelle COEP betrachtet werden.<br />
<br />
<b><u>Infoset definieren</u></b><br />
Tabellen:<br />
COEP - CO-OBjekt: Einzelposten periodenbezogen<br />
CSKB - Kostenarten (Kostenrechnungskreisabhängige Daten)<br />
CSKU - Kostenartentexte<br />
<br />
<u>Verknüpfungen:</u><br />
Folgende Felder werden hierbei miteinander verknüpft.<br />
<br />
COEP-KSTAR <-> CSKB-KSTAR<br />
COEP-KSTAR <lo> CSKU-KSTAR<br />
Bei der Verknüpfung der Tabelle COEP und CSKU handelt es sich um einen "left outer join". Diese Verknüpfungsart kann durch die rechte Maustaste auf "left outer join" genutzt werden. Diese kann genutzt werden, um auch Belege anzugeben, wenn die Verknüpfung keine übereinstimmende Werte ergibt, bspw. weil keine Bezeichnung in der Kostenart ausgegeben werden.<br />
<br />
In der Feldgruppe können die Werte aus den einzelnen Tabellen übernommen werden. Für dieses Beispiel werden in der Feldgruppe  01 alle Felder der Tabelle COEP übernommen. Ergänzend dazu werden als Feldgruppe 2 die Bezeichnung aus der Tabelle CSKU (CSKU-KTEXT) und in der Feldgruppe 3 der Kostenartentyp (CSKB-KATYP) und Datum gültig bis (CSKB-DATBI) übernommen.<br />
<br />
Nun kann im weiteren die Query definiert werden.<br />
<br />
<br />
<b><u>1.) Query definieren</u></b><br />
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.<br />
<br />
Die Felder werden hier in der Reihenfolge angeben, wie diese danna uch in der Query ausgegeben werden sollen: <br />
<br />
<b>COEP - CO-OBjekt: Einzelposten periodenbezogen</b><br />
Kostenrechnungskreis (S) COEP-KOKRS<br />
Be-/Entlastungskennzeichen (L,S) COEP-BEKNZ<br />
Geschäftsjahr (L,S) COEP-GJAHR<br />
<br />
<b>CSKB - Kostenarten (Kostenrechnungskreisabhängige Daten)</b><br />
Kostenartentyp (L) CSKB-KATYP<br />
Datum gültig bis (S) CSKB-DATBI<br />
<i>Gültig bis wird genommen, sofern es Änderungen innerhalb der CSKB gab um zu vermeiden, dass hier zwei Werte ausgegeben werden</i><br />
<br />
<br />
<b>COEP - CO-OBjekt: Einzelposten periodenbezogen</b><br />
Vorgang CO (L,S) COEP-VRGNG<br />
Belegnummer (L) COEP-BELNR<br />
Objektnummer (L,S) COEP-OBJNR <br />
Kostenart (L,S) COEP-KSTAR <br />
<br />
<b>CSKU - Kostenartentexte</b><br />
Allgemeine Bezeichnung (L) CSKU-KTEXT<br />
<br />
<b>COEP - CO-OBjekt: Einzelposten periodenbezogen</b><br />
Wert gesamt in Transaktionswährung (L) COEP-WTGBTR <br />
Partnerobjekt (L,S) COEP-PAROB<br />
<br />
<br />
Soweit wäre diese Query beinahe identisch zur Auslesung der Tabelle COEP bspw. mit SE16.<br />
Um nun aber abhängig vom Wert die Daten aufzubereiten wird hier mit "lokalen Feldern" vergleichbar zur Erweiterung der <a title="Siehe Punkt a) Lokales Feld anlegen / Formel im Beitrag" href="http://www.andreas-unkelbach.de/blog/?go=show&id=339"> Query Stammdaten CO Kontrolle Verantwortliche</a> genommen.<br />
<br />
<b><u>2. Kundeneigene Felder in der Query anlegen</u></b><br />
Für die Anlage kundeneigener Felder muss als erstes ein Bezug zu den zu verwendenden Feldern innerhalb der Query gegeben sein.<br />
<br />
Hierzu gehen wir nicht in die Grundliste der Query (wo auch das Layoutdesign gepflegt wird) sondern wechseln innerhalb der Querypflege mit nächstes Bild (F6) auf die Feldauswahl der Query.<br />
<br />
Über<br />
BEARBEITEN->KURZBEZEICHNUNG<br />
kann für die einzelnen Felder eine Kurzbezeichnung eingestellt werden.<br />
Nun werden rechts neben den Datenfeldern Eingabefelder für die Kurzbezeichnung angegeben.<br />
Hier erhalten nun folgende Felder eine Kurzbezeichnung:<br />
<br />
Innerhalb CO-Objekt: Einzelposten periodenbezogen (Tabelle COEP)<br />
Wert gesamt in Transaktionswährung  ->  WERT<br />
Objektnummer -> OBJEKT<br />
Partnerobjekt -> PARTNER<br />
<br />
<br />
<br />
Diese Kurzbezeichnung sind notwendig, da wir auf diese dann Bezug nehmen, wenn wir ein eiegens Feld mit einer Formel anlegen.<br />
Dieses geht über<br />
BEARBEITEN->LOKALES FELD->ANLEGEN<br />
<br />
<i>Dieses Lokale Feld wird dann in der Feldgruppe angelegt, in der wir uns gerade befinden. Elegant wäre es natürlich, wenn wir im Infoset eine entsprechende leere Feldgruppe definiert hätten, es geht aber auch ohne.</i><br />
<br />
Insgesamt werden hier drei Felder angelegt Z_ALT für dem Semder (Soll) Z_NEU für den Empfänger (Haben) und Z_WERT für den eigentlichen Wert.<br />
<br />
Die lokalen Felder haben hierbei dann folgende Eigenschaften:<br />
<br />
<u>a) Feld Z_ALT</u><br />
Das lokale Feld hat folgende Eigenschaften:<br />
<br />
Kurzbezeichnung ALT<br />
Feldbezeichnung Z_ALT<br />
Überschrift Z_ALT<br />
<br />
<br />
Innerhalb der Sachgruppe kann un die Feldgruppe des Infoset gelegt werden. Dieses ist dann der Bereich, wo das lokale Feld angelegt worden ist.<br />
<br />
Als Feldeigenschaften könnten wir nun Textfelder, Rechnfelder etc. hinterlegen. Hier geben wir jedoch die gleichen Eigenschaften wie OBJEKT. Da es sich bei Objekt und PARTNER um die Objektnummer (KS* oder OR*) handelt, ist es eigentlich egal auf welches von beiden Bezug genommen wird. Auf diese Weise werden die Eigenschaften des Tabellenfeldes vererbt. Alternativ hätte man auch Textfeld mit 20 Zeichen nehmen können.<br />
Da nun der Sender / Empfänger abhängig vom Wert ermittelt werden soll  legen wir eine Berechnungsvorschrift an. Dazu klicken wir auf "KOMPLEXE BERECHNUNG". <br />
<br />
Nun können wir drei Bedingungen und eine sonstige Alternative angeben.<br />
<br />
Dieses nutzen wir wie folgt: <br />
Bedingung:<br />
WERT > 0<br />
Formel:<br />
PARTNER<br />
<br />
<i>Ist der Wert positiv wird das Partnerobjekt als Sender genommen.</i><br />
<br />
Bedingung:<br />
WERT < 0<br />
Formel:<br />
OBJEKT<br />
<br />
<i>Ist der Wert negativ wird die Objektnummer als Sender genommen.</i><br />
<br />
Sonst<br />
WERT<br />
<br />
<i>Somit wird bei einer 0 der Wert ausgegeben.</i><br />
<br />
<u>b) Feld Z_NEU</u><br />
Das lokale Feld hat folgende Eigenschaften:<br />
<br />
Kurzbezeichnung NEU<br />
Feldbezeichnung Z_NEU<br />
Überschrift Z_NEU<br />
<br />
Hier hat das Feld die gleichen Eigenschaften wie das Feld PARTNER.<br />
<br />
Als Formeln wird folgende komplexe Berechnung hinterlegt:<br />
<br />
Bedingung:<br />
WERT > 0<br />
Formel<br />
OBJEKT<br />
<br />
Bedingung<br />
WERT < 0<br />
PARTNER<br />
<br />
Sonst<br />
WERT<br />
<br />
<i>Im Grunde ist dieses die umgedrehte Bedingung zum Feld Z_NEU.</i><br />
Damit sind Z_ALT (S) und Z_NEU (H) definiert. Für die Buchungsliste benötigen wir jedoch noch den Wert mit positiven Vorzeichen (in Excel würde hier als Formel ABS(Wert) für den absoluten Wert genommen werden.<br />
<br />
<u>c) Feld Z_WERT</u><br />
Das lokale Feld hat folgende Eigenschaften:<br />
<br />
Kurzbezeichnung Z_WERT<br />
Feldbezeichnung Z_WERT<br />
Überschrift Z_WERT<br />
<br />
Hier hat das Feld die gleichen Eigenschaften wie das Feld WERT (entspricht CURR / Währung mit 15 Zeichen und 2 Dezimalstellen).<br />
<br />
Als Formeln wird folgende komplexe Berechnung hinterlegt:<br />
<br />
Bedingung<br />
WERT < 0<br />
Formel<br />
- 1 * WERT<br />
<br />
Bedingung<br />
WERT > 0<br />
Formel<br />
  1 * WERT<br />
<br />
Sonst<br />
WERT<br />
<br />
Die so festgelegten lokalen Felder werden nun ebenfalls in der Grundliste mit als Listenfelder übergeben.<br />
<br />
Nun kann diese Query als Grundlage für eine Umbuchung verwendet werden. Ähnlich wie bei der Tabellenauswertung wird hier<br />
der Vorgang KAMV das Belastungs/Entlastungskennzeichen S sowie das Kalenderjahr ausgewählt.<br />
<br />
<br />
Da jedoch eine Vielzahl von Buchungen vorhanden sind sollte diese Query noch bspw. in Access weiterverarbeitet werden.<br />
<br />
<br />
<br />
<b><u>3. Weiterverarbeitung der Query</u></b><br />
Besonders wichtig ist hierbei, dass Buchungen die identische Sender und Empfänger haben Gruppiert und Summiert werden. Andernfalls haben wir ggf. wesentlich mehr Buchungssätze, als eigentlich erforderlich wäre.<br />
<br />
Im Ergebnis haben wir nun folgende Query erhalten.<br />
<br />
Be-/Entlastungskennzeichen (COEP-BEKNZ)<br />
Geschäftsjahr (COEP-GJAHR)<br />
Kostenartentyp (CSKB-KATYP)<br />
Vorgang CO (COEP-VRGNG)<br />
Belegnummer (COEP-BELNR)<br />
Objektnummer (COEP-OBJNR)<br />
Kostenart (COEP-KSTAR)<br />
KOstenart Bezeichnung (CSKU-KTEXT)<br />
Wert/TWähr (COEP-WTGBTR)<br />
Partnerobjekt (COEP-PAROB)<br />
<br />
Sowie unsere kundeneigene Felder<br />
Z_ALT<br />
Z_NEU<br />
Z_WERT<br />
<br />
<br />
In einer Datenbankanwendung (im Beispiel ACCESS) sind nun folgende Abfragen erforderlich.<br />
<br />
<b>001 Kostenart Neu</b><br />
Aus der Grundliste der Query werden folgende Felder in die Abfrage übernommen:<br />
Z_ALT<br />
Kostenart<br />
Wert/TWähr<br />
Z_NEU<br />
<br />
Hier sollte für Kostenarten des Typs 42 entsprechende Kostenarten des Typs 41 genommen werden. <br />
Sofern es eine entsprechende Logik innerhalb der Kostenarten gibt (bspw. die Kostenarten Typ 42 beginnen mit 0815 und die korrespondierenden Kostenarten des Typs 41 beginnen mit 4711) kann hier eine passende Wenn Funktion genommen werden.<br />
<br />
Beispiel:<br />
Unter der Annahme, dass die Kostenarten achtstellig sind kann, sofern erforderlich die Kostenart wie folgt ermittelt werden.<br />
NeuKA-1: Wenn(Links([Kostenart];4)="0815";"4711" & Rechts([Kostenart];4);0)<br />
<br />
Gibt es daneben noch eine Kostenart die direkt ersetzt werden soll bspw. 55555590 durch 55555580 lautet die zweite Bedingen:<br />
NeuKA-2: Wenn([Kostenart]="55555590";55555580;0)<br />
<br />
Entsprechend können hier auch weitere "Austauschsfunktionen ermittelt werden.<br />
<br />
Als letzter Punkt sollte auf dieser Kostenarten Bezug genommen werden, oder die ursprüngliche Kostenart genommen werden:<br />
<br />
Z_Kostenart: Wenn([NeuKA-1]+[NeuKA-2]>0;[NeuKA-1]+[NeuKA-2];[Kostenart])<br />
<br />
<br />
<b>002 KoSt oder IA</b><br />
Sowohl in der Objektnummer als auch Partnerobjekt werden Kostenstellen als KS* und Innenaufträge als OR* ausgewiesen. Entsprechend ist das Feld Z_ALT sowie Z_NEU noch aufzuteilen ob es sich um eine Kostenstelle oder einen Innenauftrag handelt.<br />
<br />
Hierbei wird unter Bezugnahme auf die Abfrage "001 Kostenart Neu" dieses wie folgt ermittelt.<br />
<br />
Z_ALT  aus  001 Kostenart_neu<br />
<br />
ALT_Typ: Links([Z_ALT];2)<br />
Sofern es sich um einen Auftrag handelt sind die ersten zwei Zeichen OR bei einer Kostenstelle KS<br />
<br />
Unter der Annahme, dass sowohl Kostenstellen als auch Innenaufträge achtstellig sind (oder mit führender Null ausgewiesen werden, kann nun Z_ALT entsprechend auf die Felder Kost Alt (für sendende Kostenstelle) und Auftrag Alt (für sendenden Innenauftrag) ausgewertet werden-<br />
<br />
Kost Alt: Wenn([ALT_Typ]="KS";Rechts([Z_ALT];8);"")<br />
<br />
Aufrag Alt: Wenn([ALT_Typ]="OR";Rechts([Z_ALT];8);"")<br />
<br />
Z_Kostenart aus  001 Kostenart_neu<br />
<br />
Betrag: Wert/TWähr  aus  001 Kostenart_neu <br />
<br />
<br />
Genauso wie unter Z_ALT sowohl Kostenstellen als auch Innenaufträge ausgewiesen sein können, wird hier ebenfalls Z_NEU auf die Spalten Kost Neu und Auftrag Neu aufgeteilt.<br />
<br />
Z_NEU aus  001 Kostenart_neu<br />
<br />
NEU_Typ: Links([Z_NEU];2)<br />
<br />
Kost Neu: Wenn([NEU_Typ]="KS";Rechts([Z_NEU];8);"")<br />
<br />
Auftrag Neu: Wenn([NEU_Typ]="OR";Rechts([Z_NEU];8);"")<br />
<br />
Als weiteres Feld wird noch die Sender-Empfänger-Beziehung ermittelt:<br />
Beziehung: [ALT_Typ] & [NEU_Typ]<br />
Somit wäre Auftrag an Auftrag bspw. OROR oder Kostenstelle an Auftrag KSOR.<br />
<br />
<br />
<br />
<b>003 Betrag in Summe</b><br />
Für die Umbuchung sind nun alle Werte vorhanden, da aber Buchungen häufiger eine identische Sender-Empfänger Beziehung haben. Im Beispiel wird die Abteilung A wohl nicht nur eine Kopie im Jahr erhalten sondern häufiger Kopien nutzen ist es sinnvoll eine Gruppierung und Summe über die Werte zu erhalten.<br />
<br />
Hierzu wird in dieser Abfrage wie folgt die vorherige Abfrage aufbereitet:<br />
Die einzelnen Werte stammen aus der Abfrage "002 Kost oder IA"<br />
<br />
Beziehung (Funktion Gruppierung)<br />
Kost Alt (Funktion Gruppierung)<br />
Auftrag Alt (Funktion Gruppierung)<br />
Z_Kostenart (Funktion Gruppierung)<br />
Betrag (Funktion Summe)<br />
Kost Neu (Funktion Gruppierung)<br />
Auftrag Neu (Funktion Gruppierung)<br />
<br />
Somit sind dann alle Buchungen zusammengefasst.<br />
<br />
<br />
Sollen die Buchungen per <u title="Computer Aided Test Tool">CATT</u> eingespielt werden, kann es nützlich sein für die jeweilige Beziehung die Abfrrage 003 Betrag in Summe nochmals aufzuteilen.<br />
<br />
Hierbei wird ein Suchkriterium über das Feld Beziehung gelegt, so dass hier insgesamt vier Abfragen mit Bezug auf "003 Betrag in Summe" erstellt werden:<br />
<br />
<b>010 Auftrag an Auftrag</b><br />
Beziehung<br />
<i>Kriterien "OROR"</i><br />
Auftrag Alt<br />
Z_Kostenart<br />
SummevonBetrag<br />
Auftrag Neu<br />
<br />
<b>010 Auftrag an Kostenstelle</b><br />
Beziehung<br />
<i>Kriterien "ORKS"</i><br />
Auftrag Alt<br />
Z_Kostenart<br />
SummevonBetrag<br />
Kost Neu<br />
<br />
<b>010 Kostenstelle an Auftrag</b><br />
Beziehung<br />
<i>Kriterien "KSOR"</i><br />
Kost Alt<br />
Z_Kostenart<br />
SummevonBetrag<br />
Auftrag Neu<br />
<br />
<b>010 Kostenstelle an Kostenstelle</b><br />
Beziehung<br />
<i>Kriterien "KSKS"</i><br />
Kost Alt<br />
Z_Kostenart<br />
SummevonBetrag<br />
Kost Neu<br /><br />Tags: <a href="index.php?go=tags&amp;tag=Query">Query</a> <a href="index.php?go=tags&amp;tag=KAMV">KAMV</a> <a href="index.php?go=tags&amp;tag=CO">CO</a> <a href="index.php?go=tags&amp;tag=SQ01">SQ01</a> <a href="index.php?go=tags&amp;tag=Berichtswesen">Berichtswesen</a> <a href="index.php?go=tags&amp;tag=KLR">KLR</a> <a href="index.php?go=tags&amp;tag="></a> ]]></content:encoded>
<dc:creator>Andreas Unkelbach</dc:creator><dc:date>2012-04-05T19:53:00+02:00</dc:date>
<link>http://www.andreas-unkelbach.de/blog/?go=show&amp;id=345</link>
<category>SAP</category><comments>http://www.andreas-unkelbach.de/blog/comment.php?id=345</comments></item>

<item>
<title>Selektionsvariablen in Spalten/Zeile ausgegeben</title>
<content:encoded><![CDATA[<b>Ausgangslage:</b><br />
<br />
Innerhalb eines ReportWriter Berichtes werden über Variablen festgelegt bspw. "6-GJAH1" für Geschäftsjahr 1. Nun soll in der Bezeichnung dieser Spalte/Zeile der Variablenwer ausgegeben werden.<br />
<br />
<b>Lösung:</b><br />
<br />
Vorangestellt mit & können diese Variablenwerte direkt in der Bezeichnung ausgegeben werden. Dieses funktioniert dann bspw. durch die Bezeichnung "&6-GJAH1".<br />
<br /><br />Tags: <a href="index.php?go=tags&amp;tag=Reportwriter">Reportwriter</a> <a href="index.php?go=tags&amp;tag="></a> ]]></content:encoded>
<dc:creator>Andreas Unkelbach</dc:creator><dc:date>2012-04-02T09:09:00+02:00</dc:date>
<link>http://www.andreas-unkelbach.de/blog/?go=show&amp;id=343</link>
<category>SAP</category><comments>http://www.andreas-unkelbach.de/blog/comment.php?id=343</comments></item>

<item>
<title>SAP Query: Systemstatus CO Innenauftrag</title>
<content:encoded><![CDATA[<b>Ausgangslage:</b><br />
<br />
Über die Transaktion KOK5 (Stammdatenliste Innenaufträge) ist es möglich auch das Feld Status eines Innenauftrages auszuwerten und so eine Liste aller gesperrten Innenaufträge zu erhalten. Leider ist der Auftragsstatus "gesperrt" nicht als Selektionsparameter bei der KOK5 vorhanden, so dass hier alle Aufträge ausgwertet werden müssen und später selektiert werden muss. Dieses erhöht zum Einen die Dauer der Auswertung und zum anderen werden bei der KOK5 nur bis zu 10.000 Innenaufträge angezeigt.<br />
<br />
<b>Lösungsansatz:</b><br />
<br />
Auch hier hilft die Objektnummer des Innenauftrages weiter, da innerhalb der Tabelle JEST jeder Status eines SAP Objektes festgehalten wird. Somit kann hier eine Verknüpfung zu den Stammdaten der Innenaufträge erstellt werden.<br />
<br />
Der Nachteil ist, dass hier in mehreren Zeilen die einzelnen Stati eines Auftrages festgehalten werden. Daher ist es sinnvoll, sich hier ebenfalls einr SAP Query zu bedienen.<br />
<br />
<b><u>1. Infoset definieren</u></b><br />
Tabellen:<br />
AUFK - Auftragsstammdaten<br />
JEST - Einzelstatus pro Objekt<br />
TJ02 - Systemstatus<br />
<br />
<u>Verknüpfungen:</u><br />
<i title="Objektnummer Auftragsstammdaten">AUFK-OBJNR</i> <-> <i title="Objektnummer Einzelstatus pro Objekt">JEST-OBJNR</i><br />
Wie unter <a href="http://www.andreas-unkelbach.de/blog/?go=show&id=341" title="Query Abrechnungsvorschriften Innenauftrag">ABRV</a> beschrieben wird hier wiederum die Objektnummer verwendet um die Tabellen zu verknüpfen.<br />
<br />
In der Tabelle JEST ist nun der vorhandene Status als Nummernfeld für jedes Objekt hinterlegt.  In der Tabelle TJ02 erhalten wir allerdings auch die Bezeichnung dieses Status, so dass dieses Feld gerade bei der späteren Selektion sehr hilfreich ist.<br />
<br />
Entsprechend legen wir als weitere Verknüpfung folgende an:<br />
<i title="(Einzelstatus eines Objekts)">JEST-STAT</i>  <-> <i title="(Systemstatus)">TJ02-ISTAT</i><br />
<br />
Somit kann nachher in der Query auch über den Text bzw. die Beschreibung des Status verwendet werden.<br />
<br />
<br />
<b><u>2. Query definieren</u></b><br />
Auch hier weden die Felder wieder in der Ausgabereihenfolge angegeben mit der Kennzeichnung L als Listenfeld und S als Selektionsfeld.<br />
<br />
<b>Auftragsstammdaten AUFK</b><br />
Innenauftragsnummer AUFK-AUFNR (S,L) <br />
Kurztext AUFK-KTEXT (L)<br />
Name des letzten Änderers AUFK-AENAM (L)<br />
Änderungsdatum des Auftragsstamms AUFK-AEDAT (L)<br />
<br />
<b>Einzelstatus pro Objekt JEST</b><br />
Einzelstatus eines Objekts JEST-STAT (L) <br />
Kennzeichen: Status inaktiv JEST-INACT (S) <br />
<u><i>Dieses Feld Status inaktiv, ist als Selektion wichtig, da eine einmal zugewiesene Sperre auch wieder deaktiviert werden kann. Daher wird dieses als weiteres Selektionsfeld mit angegeben.</i></u><br />
<br />
<b>Systemstatus TJ02</b><br />
Systemstatus TJ02-ISTAT (S)<br />
Durch Verwendung des Systemstatus aus der Tabelle TJ02 wird in der F4 Auswahlhilfe der Query dann auch die Beschreibung ausgegeben.<br />
<br />
<b>Zusatzfeld bzw. Textfeld</b><br />
Zusatzfeld:<br />
"Text:Systemstatus" TEXT_TJ02_ISTAT  (L)<br />
<br />
<b><u>Handhabung der Query</u></b><br />
Zur Handhabung der Query können nun alle Innenaufräge ausgewertet werden. Das Feld "Kennzeichen Status inaktiv" sollte auf BLANK oder ungleich X gesetzt werden (durch die Selektionsoptionen). Ferner kann hier der Status: I0043 für gesperrt<br />
gewählt werden, so dass alle derzeit aktiv gesperrten Innenaufträge des Systems ausgewertet werden können.<br />
<br /><br />Tags: <a href="index.php?go=tags&amp;tag=Query">Query</a> <a href="index.php?go=tags&amp;tag=SQ01">SQ01</a> <a href="index.php?go=tags&amp;tag=CO">CO</a> <a href="index.php?go=tags&amp;tag=Innenauftrag">Innenauftrag</a> <a href="index.php?go=tags&amp;tag=Stammdaten">Stammdaten</a> <a href="index.php?go=tags&amp;tag="></a> ]]></content:encoded>
<dc:creator>Andreas Unkelbach</dc:creator><dc:date>2012-03-04T19:47:00+02:00</dc:date>
<link>http://www.andreas-unkelbach.de/blog/?go=show&amp;id=342</link>
<category>SAP</category><comments>http://www.andreas-unkelbach.de/blog/comment.php?id=342</comments></item>

<item>
<title>Query Abrechnungsvorschriften Innenauftrag</title>
<content:encoded><![CDATA[<b>Ausgangslage:</b><br />
Für die Auftragsabrechnung werden innerhalb der Innenauftragsstammdaten Abrechnungsvorschriften für einzelnen Innenaufträge gepflegt. Diese können über die Transaktion KOSRLIST_OR Abrechnungsvorschriften (Rechhnungswesen->Controlling->Innenaufräge->Infosystem->Berichte zu Innenaufträgen->Stammdatenverzeichnis) ausgwertet werden.<br />
<br />
Hier können für jeden Innenauftrag unter Position folgende Daten mit angeben werden:<br />
- Empfänger<br />
- Kurztext Empfänger<br />
- Prozent<br />
- Abrechnungsart<br />
- Abrechnungsvorgang<br />
- Version<br />
- Gültig bis Jahr<br />
<br />
Grundsätzlich ist diese Transaktion zur Kontrolle von gepflegten Abrechnungsvorschriften hilfreich. Der Nachteil ist hier in Form der Berichtsdarstellung.<br />
<br />
Innerhalb des Berichtes werden als Kopfzeile der Innenauftra und auf einzelnen Positionen die entsprechenden Abrechnungsregeln ausgegeben. Ein Export<br />
oder Vergleich gestaltet sich daher als recht schwierig.<br />
<br />
<b>Lösungsansatz:</b><br />
Auch die Abrechnungsvorschriften sind in einer enstprechenden Tabelle hinterlegt.<br />
Die Aufteilungsregeln der Abrechnungsvorschriften für die Auftragsabrechnung sind hierbei in der Tabelle COBRB gespeichert.<br />
<br />
Hier werden in einzelne Tabellenzeilen die entsprechenden Abrechnungsempfänger hinterlegt. DIese werden entweder als Objektnummer in den Felder REC_OBJNR1 bzw. REC_OBJNR2 gespeichert können aber auch in den Feldern KOSTL und AUFNR entnommen werden.<br />
<br />
Im vorliegenden Fall erfolgt eine Abrechnung je nach Ursprungszuordnung auf eine Kostenstelle oder Innenauftrag.<br />
<br />
<b>Lösung:</b><br />
Entsprechend bietet sich eine Query über die beiden Tabellen <br />
<br />
<u><b>1.) Infoset definieren</b></u> <br />
<br />
AUFK - Auftragsstammdaten<br />
COBRB - Aufteilungsregeln Abrechnungsvorschrift Auftragsabrechnung an.<br />
<br />
Hier sollte folgende Verknüpfung definiert werden.<br />
<br />
AUFK-OBJNR  <->  COBRB-OBJNR<br />
<br />
Das Feld OBJNR hat in Tabellen eine besondere Funktion, da hier unterschiedliche Kontierungsobjekte festgehalten werden können. So werden beispielsweise Innenaufträge als OR* gespeichert, so dass hier eine entsprechende Verknüpfung erfolgen kann.<br />
<br />
<b><u>2. Query definieren</u></b><br />
Auch hier weden die Felder wieder in der Ausgabereihenfolge angegeben mit der Kennzeichnung L als Listenfeld und S als Selektionsfeld. <br />
<br />
<b>Auftragsstammdaten AUFK</b><br />
Auftragsnummer (L,S) AUFK-AUFNR <br />
Kurztext (L) AUFK-KTEXT<br />
<br />
<b>Aufteilungsregeln Abrechnungsvorschrift Auftragsabrechnung COBRB</b><br />
Version (L,S) COBRB-VERSN<br />
Kontierungstyp (L) COBRB-KONTY<br />
Empfangende Kostenstelle (L) COBRB-KOSTL <br />
Auftragsnummer (L) COBRB-AUFNR <br />
Abrechnungsart (L) COBRB-PERBZ<br />
Ursprungszuordnung (L) COBRB-URZUO <br />
Gültig ab Periode (L) COBRB-GABPE<br />
Gültig ab Jahr (L) COBRB-GABJA <br />
Gültig bis Periode (L) COBRB-GBISP <br />
Gültig bis Jahr (L) COBRB-GBISJ <br />
<br />
<br />
<b><u>3.) Vergleich mit Innenauftragsstammdatenliste</u></b><br />
<br />
Diese Liste der Abrechnungsvorschriften kann dann entweder mit der Stammdatenverzeichnis Aufträge  (Transaktion KOK5) oder der Tabelle COAS oder einer Query (vergleichbar des <a href="http://www.andreas-unkelbach.de/blog/?go=show&id=339" target="_blank" title="Query Stammdaten CO Kontrolle Verantwortliche">vorherigen Infosets</a>) verglichen werden, so dass hier durch einen Vergleich der erstellten Query und der vorhandenen Innenaufträge noch zu pflegende Innenaufträge erkannt werden können.<br />
<br />
Für die Querylösung der Innenauftragsstammdaten bieten sich folgende Felder aus den Infoset über die Tabellen AUFK, CSKS, CSKT, CEPC und CEPCT an.<br />
<br />
Auch hier weden die Felder wieder in der Ausgabereihenfolge angegeben mit der Kennzeichnung L als Listenfeld und S als Selektionsfeld.<br />
<br />
<b>Auftragsstammdaten AUFK</b><br />
Auftragsnummer  (L,S) AUFK-AUFNR <br />
Kurztext (L) AUFK-KTEXT<br />
Verantwortliche Kostenstelle (L,S) AUFK-KOSTV <br />
<b>Kostenstellentexte CSKT</b><br />
Allgemeine Bezeichnung (L) CSKT-KTEXT<br />
<b>Auftragsstammdaten AUFK</b><br />
Profitcenter (L,S) AUFK-PRCTR<br />
<b>Profit-Cener-Stammdaten Texte</b><br />
Allgemeine Bezeichnung (L) CEPCT-KTEXT<br />
<b>Auftragsstammdaten AUFK</b><br />
Kalkulationsschema (L) AUFK-KALSM <br />
<br />
<b>ACHTUNG:</b><br />
Sofern es bei der Beschreibung der Kostenstellen oder Profit-Center Änderungen in der Bezeichnung gab, sind diese in den Tabellen CSKT und CEPCT mehrfach vorhanden. Hier werden dann auch die Auftragsstammdaten mehrfach mit angegeben. Entsprechend sollte ein Gültig Bis Feld als Selektionsfeld für die Bezeichnungen gewählt werden, oder alternativ die Bezeichnungen aus den Tabellen CPCT und CSKT weg gelassen werden.<br />
<br /><br />Tags: <a href="index.php?go=tags&amp;tag=Query">Query</a> <a href="index.php?go=tags&amp;tag=SQ01">SQ01</a> <a href="index.php?go=tags&amp;tag=CO">CO</a> <a href="index.php?go=tags&amp;tag=Innenauftrag">Innenauftrag</a> <a href="index.php?go=tags&amp;tag=Stammdaten">Stammdaten</a> <a href="index.php?go=tags&amp;tag="></a> ]]></content:encoded>
<dc:creator>Andreas Unkelbach</dc:creator><dc:date>2012-01-12T23:18:00+02:00</dc:date>
<link>http://www.andreas-unkelbach.de/blog/?go=show&amp;id=341</link>
<category>SAP</category><comments>http://www.andreas-unkelbach.de/blog/comment.php?id=341</comments></item>

<item>
<title>Query Stammdaten CO Kontrolle Verantwortliche</title>
<content:encoded><![CDATA[<b>Ausgangslage</b><br />
Im Rahmen der Stammdatenpflege beziehen sich die Innenaufträge über die verantwortliche Kostenstelle und das zugeordnete Profit-Center  im Bereich der Verantwortlichen aufeinander, so dass für die Kostenstelle/das Profit-Center die Verantwortung identisch zum Innenauftrag ist.<br />
<br />
<b>Lösungsansatz:</b><br />
Wie unter <a href="http://www.andreas-unkelbach.de/blog/?go=show&id=336" target="_blank">SAP Query Stammdaten PSM / CO Innenauftrag</a> beschrieben würde sich eine Auswertung innerhalb der CO Tabellen anbieten.<br />
<br />
Hierzu werden folgende Schritte erforderlich.<br />
<br />
<b><u>1.) Infoset definieren</u></b><br />
Innerhalb der Transaktion SQ02 wird folgendes Infoset definiert. Hierfür wird als Datenquelle ein Tabellen-Join über Tabelle AUFK angelgt.<br />
Es werden folgende Tabellen miteinander in Beziehung gesetzt:<br />
AUFK: Auftragsstammdaten<br />
CSKS: Kostenstellenstammsatz<br />
CSKT: Kostenstellenelemente (für die Texte)<br />
CEPC: Stammdatentabelle von Profit Centern<br />
CEPCT: Profit-Center-Stammdaten Texte<br />
<br />
<u>Verknüpfungsbedingungen:</u><br />
Die vorgeschlagenen Verknüpfungsbedingungen seitens SAP sollte hier wieder entfernt werden und folgende Verknüpfungsbedingungen definiert werden.<br />
<br />
Folgende Tabellenfelder werden hierbei miteinander verknüpft:<br />
<br />
<b>AUFK-KOSTV   <->  CSKS-KOSTL</b><br />
Hierdurch wird die Verantwortliche Kostenstelle des Innenauftrages mit den Stammdaten der Kostenstellen verknüpft.<br />
<br />
<b>CSKS-KOSTL   <->  CSKT-KOSTL</b><br />
Hierdurch werden die Stammdaten der Kostenstelle mit der Bezeichnung der Kostenstelle verknüpft.<br />
<br />
<b>AUFK-PRCTR   <->   CEPC-PRCTR</b><br />
Hierdurch wird das Profitcenter des Innenauftrages mit den Stammdaten der Profit-Center verknüpft.<br />
<br />
<b>CEPC-PRCTR   <->   CEPCT-PRCTR</b><br />
Hierdurch werden die Stammdaten der Profit-Center mit der Bezeichnung der Profit-Center verknüpft.<br />
<br />
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.<br />
<br />
<b><u>1.) Query definieren</u></b><br />
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.<br />
<br />
Die Felder werden hier in der Reihenfolge angeben, wie diese danna uch in der Query ausgegeben werden sollen:<br />
<br />
<br />
<b>Auftragsstammdaten AUFK</b><br />
Auftragsnummer (L,S) AUFK-AUFNR<br />
Kurztext (L) AUFK-KTEXT<br />
Verantwortliche Kostenstelle (S) AUFK-KOSTV<br />
Verantwortlicher (L) AUFK-USER2<br />
Profitcenter (S) AUFK-PRCTR)<br />
<br />
<br />
<b>Kostenstellenstammdaten CSKS</b><br />
Kostenstelle (L) CSKS-KOSTL<br />
<br />
<b>Kostenstellentexte CSKT</b><br />
Allgemeine Bezeichnung (L) CSKT-KTEXT<br />
Beschreibung (L) CSKT-KTEXT<br />
<br />
<b>Kostenstellenstammdaten CSKS</b><br />
Verantwortlicher (L) CSKS-VERAK<br />
<br />
<b>Stammdatentabelle von Proftitcenter CEPC</b><br />
Profitcenter (L) CEPC-PRCTR<br />
<br />
<b>Profit-Center-Stammdaten Texte (CEPCT)</b><br />
Allgemeine Bezeichnung (L) CEPCT-KTEXT<br />
Langtext (L) CEPCT-LTEXT<br />
<br />
<b>Stammdatentabelle von Proftitcenter CEPC</b><br />
Verantwortlicher des Profitcenter (L) CEPC-VERAK<br />
<br />
<br />
Damit sind die Grundfelder schon einmal definiert und die Query kann pronzipiel gestartet werden. <br />
<br />
<hr><br />
<b>Erweiterung der Query</b><br />
<br />
<br />
<b><u>a) Lokales Feld anlegen / Formel</u></b><br />
<br />
Ziel der Auswertung soll jedoch sein, dass hier auch eine Prüffunktion eingefügt wird, ob die Verantwortlichen identisch sind. Somit sollen also die Felder CEPC-VERAK, CSKS-VERAK und AUFK-USER2 miteinander verglichen werden. Ziel ist es hier entsprechende Symbole zu hinterlegen, wenn diese nicht übereinstimmen, über die dann in der Queryliste selektiert werden kann.<br />
<br />
<br />
Hierzu gehen wir nicht in die Grundliste der Query (wo auch das Layoutdesign gepflegt wird) sondern wechselkn innerhalb der Querypflege mit nächstes Bild (F6) auf die Feldauswahl der Query.<br />
<br />
Über <br />
BEARBEITEN->KURZBEZEICHNUNG <br />
kann für die einzelnen Felder eine Kurzbezeichnung eingestellt werden.<br />
Nun werden rechts neben den Datenfeldern Eingabefelder für die Kurzbezeichnung angegeben. <br />
Hier erhalten nun folgende Felder eine Kurzbezeichnung:<br />
<br />
Bei den Auftragsstammdaten:<br />
Verantwortlicher ->  V_IA<br />
Beim Kostenstellenstammsatz:<br />
Verantwortlicher ->  V_KS<br />
Beim Stammdatentabelle von Profit Centern:<br />
Verantwortlicher des Profit Centers -> V_PC<br />
<br />
Diese Kurzbezeichnung sind notwendig, da wir auf diese dann Bezug nehmen, wenn wir ein eiegens Feld mit einer Formel anlegen.<br />
Dieses geht über <br />
BEARBEITEN->LOKALES FELD->ANLEGEN<br />
<br />
<i>Dieses Lokale Feld wird dann in der Feldgruppe angelegt, in der wir uns gerade befinden. Elegant wäre es natürlich, wenn wir im Infoset eine entsprechende leere Feldgruppe definiert hätten, es geht aber auch ohne</i><br />
<br />
Das lokale Feld hat folgende Eigenschaften:<br />
<br />
Kurzbezeichnung CHECKVERANT<br />
Feldbezeichnung CheckVerant<br />
Überschrift Checkverant<br />
<br />
Da wir hier die Verantwortlichen kontrollieren wollen.<br />
<br />
Innerhalb der Sachgruppe kann un die Feldgruppe des Infoset gelegt werden. Dieses ist dann der Bereich, wo das lokale Feld angelegt worden ist.<br />
<br />
Als Feldeigenschaften könnten wir nun Textfelder, Rechnfelder etc. hinterlegen. In unseren Beispiel möchten wir als Eigenschaften allerdings IKONE hinterlegen. Über entsprechende Icons soll hier ein Unterschied ausgegeben werden. Hierzu legen wir eine Berechnungsvorschrift an. Dazu klicken wir auf "KOMPLEXE BERECHNUNG".<br />
<br />
Nun können wir drei Bedingungen und eine sonstige Alternative angeben.<br />
<br />
Dieses nutzen wir wie folgt:<br />
<br />
Bedingung:<br />
V_IA = V_KS AND V_IA = V_PC<br />
Formel:<br />
ICON_LED_GREEN<br />
<br />
<i>Wenn Verantwortliche des Innenauftrages mit Verantwortliche der Kostenstelle übereinstimmt UND Verantwortliche des Innenauftrages mit Verantwortliche des Profit-Center übereinstimmt ist alles in Ordnung und es soll eine grüne LED: so in Ordnung ausgegeben werden. Die Verfügbaren Ikons können über die untere Schaltfläche Ikonen ausgewählt werden.</i><br />
<br />
Bedingung:<br />
V_KS <> V_PC<br />
Formel:<br />
ICON_LED_YELLOW<br />
<br />
<i>Wenn die Verantwortliche der Kostenstelle mit der Verantwortlichen des ProfitCenter nicht übereinstimmt soll ein gelbes LED ausgegeben werden. Dieses wird als relativ unkritisch betrachtet</i>.<br />
<br />
Bedingung:<br />
V_KS <> V_IA<br />
Formel:<br />
ICON_LED_RED<br />
<br />
<i>Als besonders kritisch wird betrachtet, wenn Verantwortliche der Kostenstelle nicht mit Verantwortliche des Innenauftrages übereinstimmt</i><br />
<br />
Sonst:<br />
ICON_LED_RED<br />
<br />
<i>Tritt irgendein anderer Fall auf, soll ebenfalls eine rote LED ausgegeben werden.</i><br />
<br />
Sofern die Verantwortlichen in jeden Fall übereinstimmen sollen, kann natürlich auch die beiden mittleren Bedingungen weg gelassen werden. Als weitere Operatoren bieten sich neben AND auch OR an, sowie + - * und verschiedene andere Operatoren.<br />
<br />
<br />
<b><u>b) Berichtszuordnung</u></b><br />
<br />
Durch die Auswertung dieser Query erhalten wir nun eine Liste mit den Stammdaten Innenauftrag, Kostenstelle und ProfitCenter. Sollten nun die Verantwortlichen nicht übereinstimmen müssten wir nun einzeln die entsprechende Objekte bearbeiten. Hier ist es aber möglich aus der Query direkt in die Stammdatenpflegetransaktion zu wechseln, wenn wir auf das Feld Auftragsnummer, Kostenstelle oder Profit-Center doppelklicken. Hierzu muss in der Querypflege eine Berichtszuordnung gepflegt werden.<br />
<br />
Hierzu rufen wir wiederum über die SQ01 die Query für eine Änderung auf.<br />
Über SPRINGEN->BERICHTSZUORDNUNG können Empfängerberichte definiert werden.<br />
<br />
Über das „+“ (Zeile einfügen) können weitere Query eingefügt werden. Alternativ kann hier auch ein anderer Berichtstyp ausgewählt werden. Über "TR Transaktion" können hier auch die Stammdatenpflegetransaktionen hinterlegt werden.<br />
<br />
Hier hinterlegen wir folgende Transaktionen:<br />
<br />
KE52  Profit Center ändern<br />
KS02  Kostenstelle ändern<br />
KO02  Innenauftrag ändern<br />
<br />
<br />
Nun wird die Berichtszuordnung gespeichert und auch die Query kann gespeichert und genutzt werden.<br /><br />Tags: <a href="index.php?go=tags&amp;tag=SQ01">SQ01</a> <a href="index.php?go=tags&amp;tag=Query">Query</a> <a href="index.php?go=tags&amp;tag=BC">BC</a> <a href="index.php?go=tags&amp;tag=CO">CO</a> <a href="index.php?go=tags&amp;tag="></a> ]]></content:encoded>
<dc:creator>Andreas Unkelbach</dc:creator><dc:date>2011-12-14T08:33:00+02:00</dc:date>
<link>http://www.andreas-unkelbach.de/blog/?go=show&amp;id=339</link>
<category>SAP</category><comments>http://www.andreas-unkelbach.de/blog/comment.php?id=339</comments></item>

<item>
<title>Parametertransaktion für Reporwriter</title>
<content:encoded><![CDATA[Auch für einen Reportwriter Bericht kann eine kundeneigene Transaktion angelegt werden, so dass hier nicht mehr über die Berichtsbibliothek der eigentliche Bericht gestartet werden muss sondern direkt per Transaktion der eigentliche Bericht gestartet werden kann.<br />
<br />
Auch hier bietet sich der einfache Weg über die Parametertransaktion an. Diese kann über die Transaktion SE93 angelegt werden.Hierzu sind folgende Einstellungen erforderlich:<br />
<br />
<br />
Vorschlagswerte für Transaktion START_REPORT<br />
<br />
<b>D_SREPOVARI-REPORTTYPE</b><br />
RE<br />
<br />
<b>D_SREPOVARI-REPORT</b><br />
Berichtsgruppe<br />
<br />
Hier kann die entsprechende Berichtsgruppe hinterlegt werden. Entsprechend würden auch alle in dieser Berichtsgruppe vorhandenen Reports ausgeführt werden.<br />
<br />
<b>D_SREPOVARI-VARIANT</b><br />
Hier kann wiederum eine Selektionsvariante hinterlegt werden (bspw. Allgemein).<br />
<br />
<br />
<br /><br />Tags: <a href="index.php?go=tags&amp;tag=Parametertransaktion">Parametertransaktion</a> <a href="index.php?go=tags&amp;tag=Reportwriter">Reportwriter</a> <a href="index.php?go=tags&amp;tag=BC">BC</a> <a href="index.php?go=tags&amp;tag="></a> ]]></content:encoded>
<dc:creator>Andreas Unkelbach</dc:creator><dc:date>2011-12-09T12:28:00+02:00</dc:date>
<link>http://www.andreas-unkelbach.de/blog/?go=show&amp;id=338</link>
<category>SAP</category><comments>http://www.andreas-unkelbach.de/blog/comment.php?id=338</comments></item>

<item>
<title>Recherchebericht Budget + Ertrag ggü. Aufwand</title>
<content:encoded><![CDATA[<b>Ausgangslage</b><br />
Es sollen verschiedene Fonds innerhalb des Moduls PSM ausgwertet werden. Hierbei gibt es welche auf denen, innerhalb der klassischen Budgetierung, ein Gesamtbudget gebucht ist (wobei hier dieses teilweise auch als Jahresbudget umgebucht ist) und solche die lediglich durch Einnahmen sich "finanzieren". Innerhalb der Finanzpositionenhierarchie sind die einzelnen Buchungskonten aufwandsseitig der Finanzposition AUFWAND zugeordnet und ertragsseitig der Finanzposition ERTRAEGE.<br />
Weitere Unterteilungen sind bspw. AUFWAND.PERSONAL oder AUFWAND.SACHMITTEL.<br />
<br />
Nun sollen in einen Bericht die Budgetwerte den gegenlaufenden Aufwendungen gegenüber gestellt werden.<br />
<br />
<b>Ansatz</b><br />
Hierzu wird ein <i title="Berichtstool im Modul PSM">Recherchebericht</i> eingesetzt. Im Gegensatz zum ReportWriter arbeitet der Recherchebericht mit Bericht und Formular. Wobei innerhalb des Berichts die Selektions-Navigationsmerkmale gepflegt werden und innerhalb des Berichtes der eigentliche Aufbau des Berichtes.<br />
<br />
<b>Berichtsentwicklung</b><br />
Wie unter <a href="http://www.andreas-unkelbach.de/blog/?go=show&id=332" target="_blank">SAP PSM Recherchebericht</a> beschrieben legen wir über die Transaktion FMEK einen neuen Bericht an. Dieser ist im Bereich:<br />
Hierarchie der HHM Kontierungselemente angesiedelt.  Von hier wird ein entsprechendes Formular angelegt. Da wir den Bericht recht flexibel halten wollen weisen wir die Struktur an, nur eine Koordinate zu verwenden. Hierdurch können wir dann durch die einzelnen Merkmale im Bericht navigieren. Für eine Definition von Spalten und  Zeilen würde als Struktur die Matrix gewählt werden.<br />
Im Folgenden wird der Aufbau des Formulars und des Berichtes beschrieben.<br />
<br />
<hr /><br />
<b><u>1.) Formular</u></b><br />
Der Bericht soll folgende Spalten enthalten:<br />
1.) Gesamtbudget<br />
2.) Jahresbudget<br />
3.) Aufwand<br />
4.) Ertrag<br />
5.) Saldo<br />
6.) Verfügbar zu Gesamt<br />
7.) Verfügbar zu Jahr<br />
<br />
Hierzu werden folgende Merkmale getroffen.<br />
<br />
<b>Allgemeine Selektion</b><br />
<u>Finanzkreis (Variable):</u> FIKRS<br />
Hier ist es wichtig eine Variable für den Finanzkreis zu wählen, da andernfalls die Sets der Finanzpositionen, Finanzstellen oder Fonds in der Selektion des Berichtes nicht ausgewählt werden können. Ausserdem hat diese Definition den Vorteil, dass der Bericht relativ flexibel gestaltet werden kann und auch auf anderen System sinnvoll verwendbar ist.<br />
<br />
Nun werden die einzelnen Kennzahlen definiert. Diese Kennzahlen werden dann als entspredchende Spalten im Bericht dargestellt.<br />
<br />
<b>Gesamtbudget Aktuell</b><br />
<u>Kennzah:</u> Gesamtbudget (Aktuell)<br />
<i>Merkmale:</i><br />
<u>Budgetversion:</u> 0<br />
Je nach Verwendung der Budgetversionen können hier auch mehrere Budgetversionen eingegeben werden. Innerhalb der klassischen Budgetierung werden im Beispiel die Budgets jedoch nur in der Version 0 verbucht.<br />
<br />
<b>Jahresbudget</b><br />
<u>Kennzahl:</u> Jahresbudget (Verteilbar) hierarchisch<br />
<i>Merkmale:</i><br />
<u>Budgetversion:</u> 0<br />
<br />
<b>Aufwand</b><br />
<u>Kennzahl:</u> Obligo/Ist (Zahlungsbud.) hierarch. FkW.<br />
<i>Merkmale:</i><br />
<u>Budgetversion:</u> 0<br />
<u>Finanzposition (Hierarchieknoten)</u> AUFWAND<br />
Durch Markierung des Hierarchieknotens/Set kann hier direkt aus der Finanzpositionenhierarchie die Finazposition AUFWAND gewählt werden. Entsprechend wäre in dieser Spalte dann alle innerhalb der Hierarchie der Finanzposition AUFWAND untergeordneten Finanzpositionen zugeordnet. Somit also auch Personal- und Sachaufwand.<br />
<u>Werttyp:</u> 54,57,61,64,66,95<br />
Ohne einen Werttyp werden neben den getätigten Aufwendeungen auch die entsprechenden Obligos (bspw. Mittelbindungen oder Bestellungen ausgegeben. Im Beispiel ist der Aufwand auf folgende Werttypen beschränkt:<i><br />
54 Rechnungen<br />
57 Zahlungen<br />
61 Anzahlungen<br />
64 Mittelumbuchungen<br />
66 Erfolgsumbuchungen<br />
95 Ist-Buchungen im CO</i><br />
Alternativ wäre es auch möglich gewesen eine Extraspalte für die Obligos zu verwenden.<br />
Über die Textpflege kann diese Spalte dann auch in Aufwand umbenannt werden. Andernfalls wäre als Bezeichnung der Merkmalswert (<i>Obligo/Ist (Zahlungsbud.) hierarch. FkW.</i>) hinterlegt.<br />
<br />
<b>Ertrag</b><br />
<u>Kennzahl:</u> Obligo/Ist (Zahlungsbud.) hierarch. FkW.<br />
<i>Merkmale:</i><br />
<u>Budgetversion:</u> 0<br />
<u>Finanzposition (Hierarchieknoten)</u> ERTRAEGE<br />
Da keine Obligoertrag gebucht wird, kann hier auf die Angabe eines Werttyps verzichtet werden.<br />
<br />
<b>Saldo</b><br />
<u>Kennzahl:</u> Obligo/Ist (Zahlungsbud.) hierarch. FkW.<br />
<i>Merkmale:</i><br />
<u>Budgetversion:</u> 0<br />
<u>Werttyp:</u> 54,57,61,64,66,95<br />
Hier wird auf die besondere Angabe der Finanzpositionen verzichtet. Entsprechend werden in dieser Spalte dann alle Finanzpositionen ausgewählt. Hier ist dann zu beachten, dass beim Aufruf des Berichtes nicht relevante Finanzpositionen in der Selektion ausgeschlossen werden müssen (bspw. die der AFA, so die AfA nach PSM fortgeschrieben wird.<br />
<br />
<b>Verfügbar zu Gesamt</b><br />
Hier wird statt eines Merkmals eine Formel eingefügt. <br />
<u>Formel:</u> Gesamtbudget - Saldo<br />
<br />
<b>Verfügbar zu Jahr</b><br />
<u>Formel:</u> Jahresbudget - Saldo<br />
<br />
<br />
Damit wäre das Formular des Berichtes entsprechend fertig und es kann der eigentliche Bericht angelegt werden.<br />
<br />
<hr /><br />
<b><u>2.) Bericht</u></b><br />
Innerhalb des Berichts werden nun die Selektionsmerkmale und die für die Navigation vorgesehene Merkmale eingestellt. Eine Besonderheit der Rechercheberichte ist bspw. dass hier die Möglichkeit besteht das angezeigte Merkmal per Doppelklick zu tauschen (bspw. Darstellung von Finanzpositionen statt Fonds) oder auch als weitere Darstellungsebene (bspw. durch Doppelklick auf den Fond und die Darstellung des Geschäftsjahr, was wiederum über einen Doppelklick in die Selektion übernommen wird) zu nutzen. Dieses ist auch der Grund, warum in diesen Bericht das Merkmal Geschäftsjahr nicht fest hinterlegt ist, so dass hier "dynamisch" eine Darstellung nach Jahren für die einzelnen Fonds gewählt werden kann.<br />
<br />
Auch der Bericht ist nun mit Bezug auf das oben angelegte Formular in der <i>"Hierarchien der HHM-Kontierung"</i> angelegt.<br />
<br />
Nun müssen folgende Register gepflegt werden:<br />
<br />
<b>Merkmale</b><br />
Als ausgewählte Merkmale sind folgende gewählt:<br />
<br />
<u>Ausgewählte Merkmale:</u><br />
Fonds<br />
Finanzposition<br />
Fin.Zweck<br />
Geschäftsjahr<br />
Periode/Jahr<br />
Finanzstelle<br />
Periode<br />
Budgetart<br />
Werttyp<br />
<br />
Die Reihenfolge der Merkmale beeinflusst auch die Darstellung des Berichtes. Über die Schaltfläche "Freie Merkmalsortierung" kann die Reihenfolge beliebig verändert werden. Das Merkmal mit der Nummer 1 ist automatisch auch das Merkmal, das beim Aufruf des Berichtes dargestellt wird.<br />
<br />
<b>Variablen</b><br />
<br />
Über die Variablen können für die Variablen auch Vorschlagswerte für die Selektion hinterlegt werden. In diesen Bericht kann hier der Finanzkreis vorbelegt werden. <br />
<br />
Wir erinnern uns, dass beim Aufruf des Berichtes folgende Werte zur Selektion angegeben werden können.<br />
<br />
Fonds, Finanzstelle, Finanzpositionen.<br />
<br />
Um hier auch auf entsprechende Stammdatengruppen zugreifen zu können, hatten wir in der Allgemeinen Selektion des Formulars den Finanzkreis als Variable gewählt. Durch diese Variante muss der Finanzkreis dann nicht beim Aufruf des Berichtes direkt eingetragen werden sondern wird als Vorschlagswert eingetragen.<br />
<br />
<br />
<b>Ausgabeart:</b><br />
Hier kann die Ausgabe des Berichtes dargestellt werden. Sympathisch ist mir hier die Darstellung als<br />
<u>Klassische Recherche:</u><br />
<u>Grundliste: Aufriß</u><br />
<br />
Durch Markierung des Feldes Auf Selektionsbild auswählbar könnte diese von den Berichtsnutzenden auch umgestellt werden.<br />
<br />
<br />
<hr /><br />
<b>3.) Ausführen des Berichtes</b><br />
Der Bericht kann entweder über die Transaktion FMEQ direkt gestartet werden oder alternativ über eine <a href="http://www.andreas-unkelbach.de/blog/?go=show&id=335" target="_blank">Paramtertransaktion für Rechercheberichte</a> gestartet werden.<br />
<br />
Innerhalb des Berichtes kann nun direkt die Fonds (oder Fondsgruppen) bzw. entsprechende Finanzstellen angegeben werden. Desweiteren können hier Finanzpositionen slektiert oder auch von der Auswertung ausgeschlossen werden.<br />
<br />
<hr /><br />
<b>4.) Berechtigung für Rechercheberichte</b><br />
Die Rechercheberichte setzen auf die Datenbankstruktur  IFMEISA (Hierarchien der HHM-Kontierungselemente) auf. Von der Berechtigungsprüfung wird zum Start der Berichte das Berechtigungsobjekt K_KA_RPT geprüft.<br />
Dieses Berechtigungsobjekt muss dabei mit folgenden Werten gefüllt werden:<br />
<br />
<b>Berechtigungsobjekt:</b><br />
K_KA_RPT  - CO: Interaktive Recherche - Berichte<br />
<b>Aktivität:</b><br />
03 (Anzeigen)<br />
04 (Drucken, Nachrichten bearbeiten)<br />
16 (Ausführen)<br />
28 (Einzelposten anzeigen)<br />
61 (Exportieren)<br />
66 (Aktualisieren)<br />
L0 (Alle Funktionen)<br />
<b>Applikationsklasse für die Recherche:</b><br />
FM<br />
<b>Bericht:</b><br />
<i>Name des angelegten Berichtes</i><br />
<b>Tabellenname:</b><br />
IFMEISA<br /><br />Tags: <a href="index.php?go=tags&amp;tag=PSM">PSM</a> <a href="index.php?go=tags&amp;tag=Rechercheberichte">Rechercheberichte</a> <a href="index.php?go=tags&amp;tag="></a> ]]></content:encoded>
<dc:creator>Andreas Unkelbach</dc:creator><dc:date>2011-12-06T21:03:00+02:00</dc:date>
<link>http://www.andreas-unkelbach.de/blog/?go=show&amp;id=337</link>
<category>SAP</category><comments>http://www.andreas-unkelbach.de/blog/comment.php?id=337</comments></item>


	  </channel>
  </rss>
