Andreas Unkelbach
Werbung


Mittwoch, 25. Mai 2016
20:15 Uhr

Barcode EAN bzw. GTIN Prüfziffer mit Excel berechnen, Code erstellen und per App einscannen

Ausgangslage:
Zur Digitalisierung von Belegen werden im Rechnungswesen die entsprechenden Buchhaltungsbelege mit einen Barcode versehen der über einen Scanner eingelesen wird, wodurch die im Barcode hinterlegte Nummer (vergleichbar eines EAN Code) in das Buchhaltungssystem übergeben und dadurch später der eingescannte Beleg zugeordnet werden kann. Hierzu wird der Code über eine Scanpistole eingelesen.

Siehe vergleichbares Produkt auf Amazon als Symbolbild sozusagen.
 
Symbolbild

Alternativ kann auch der Code händisch eingetragen werden. Allerdings ist unterhalb des Barcode nur die ID aber nicht die Prüfziffer eines zehnstelligen Codes eingegeben. Somit stellen sich hier zwei Fragen.
  1. Kann, zum Beispiel. für ein Testsystem ein gültiger Barcode errechnet werden?
  2. Wie kann der Code ohne Scannpistole am Rechner eingelesen werden?

Beide Fragen möchte ich in diesen Artikel erläutern. Danach möchte ich noch auf weitere Anwendungsgebiete von Barcodes bzw. QR Code eingehen.
 

Gütigen Barcode berechnen (Prüfziffer nach Modulo 10 Berechnung mit Gewichtung 3)


Der verwendete Barcode besteht aus einer, je nach Codeart unterschiedlichen Länge an Zeichen und endet mit einer Prüfziffer.

Zur Überprüfung der Prüfziffer werden die einzelnen Ziffern des hinter den Barcode befindlichen Zahlenwerte beginnend mit der vorletzten Zahl von rechts nach links abwechselnd mit 3 und 1 multipliziert und danach die einzelnen Produkte addiert werden. Die Prüfziffer berechnet sich dabei durch das sogenannte "Modulo 10 Berechnungsverfahren mit der Gewichtung 3". Hierzu wird die Differenz aus der ermittelten Produktsumme und den nächsten Vielfachen von 10.

Innerhalb Excel kann dieses über die REST Funktion ermittelt werden. Für eine zwölfstellige EAN ist dieses im Artikel "EAN-Prüfziffer berechnen" auf excelformeln.de beschrieben.
Hierbei wird über eine Matrixformel die Multiplikation mit 3 und 1 durch ein Array aus Zeilen  gelöst.

Hierbei werden sowohl für die einzelnen zu verwendeten Ziffern aus der vorgegebenen Zahl als auch für die Erhebung der Faktoren 3 und 1 eine entsprechende Matrix aus den einzelnen Zellen genommen.

Statt dessen kann in einer Formel natürlich auch direkt die Ziffern und die Faktoren 1 und 3 verwendet werden.

Nehmen wir an, dass der EAN Code aus 9 Ziffern besteht und die 10. Ziffer dann tatsächlich die Prüfziffer nach oberen Schema wäre.

Hier kann dann die Formel, ausgehend von einen neunziffrigen Wert in Zelle $A$1  wie folgt aufgebaut werden:

=REST(10-REST(SUMMENPRODUKT((TEIL($A$1;{1;2;3;4;5;6;7;8;9};1))*{3;1;3;1;3;1;3;1;3});10);10)

Durch diese Formel wird durch die Restwertberechnung zu 10 eine passende Prüfziffer aus einer vorgegebenen neunstelligen Zahl ermittelt.

Natürlich wäre es  wesentlich schöner, wenn die Länge der Ziffer dynamisch berechnet werden kann, aber dass gebe ich doch lieber als Artikelanregung an clevercalcul weiter ;-).

Um die einzelnen Rechenschritte nachvollziehen zu können, kann dieses anhand der fiktiven Codenummer 130719789 nachvollzogen werden
 

Position
 
1 2 3 4 5 6 7 8 9
Ziffer  1  3  0  7  1  9  7  8  9
Faktor 3 1 3 1 3 1  3  1  3
Produkt 3 3 0 7 3 9 21 8 27
1. Summenprodukt (A) 81
2. Nächstes Vielfache von 10 (B) 90
B - A 9
Gültiger Barcode nach Verfahren 1307197899

Somit kann ein entsprechend gültiger Barcode auch errechnet werden.
Technisch betrachtet handelt es sich hierbei um einen Barcode nach  "2/5 Interleaved" und ist in der Norm ISO/IEC 16390 spezifiziert. Oftmals findet man auch die Bezeichnung ITF für Interleaved 2 of 5 − Interleaved Two of Five (siehe Abschnitt in der Wikipedia). In unseren Fall hat der Code eine Gesamtlänge von 10 Zeichen, so dass dieser auch als ITF-10 bezeichnet werden kann. Dieser wird dann von einen Scanner erkannt und direkt ins Buchhaltungssystem als Eingabe übergeben.
 

Einlesen von Barcodes mit App statt Scanpistole


Zur Umsetzung kann jedoch auch eine App verwendet werden und der Code dann per Hand eingegeben werden. Hierzu kann ich die App Barcode Scanner empfehlen, welche ich im folgenden Abschnitt ausführlicher vorstellen möchte.

Barcode Scanner

App Barcode Scanner
Marketlink Kurzbeschreibung:
Der Barcode Scanner erkennt verschiedene Codes (u.a. EAN, ISBN oder auch QR Codes) und kann diese entsprechend umwandeln. Teilweise setzen auch andere Programme auf diese Funktion auf.

Dieses hat den Vorteil, dass so auch die im Artikel "Android App: Buchverwaltung MyBookDroid (Android App zum Bücherarchivieren mit ISBN Scanner)" vorgestellte App zur Verwaltung der heimischen Bibliothek sich der Möglichkeit des Scan von ISBN Codes bedienen kann.

Nachdem die App erfolgreich installiert und gestartet wurde kann anhand der Kamera der zu scannende Code gesucht werden.

Code zum Scannen suchen

Hierbei wird zur Unterstützung ein helles Rechteck angezeigt innerhalb dessen der Barcode positioniert werden soll.

Relativ schnell wird der entsprechende Barcode dann auch umgewandelt, wie am Beispiel der ISBN zu sehen ist.

ISBN Code eingescant

Da es sich beim Code um die 13-stellige EAN-13/GTIN-13 nach dem System GS1  (genauer ISBN oder ISSN) wird automatisch in der App diese mit Büchern verbunden, so dass gleich eine Buchsuche angeboten wird.

Entsprechend hilfreich kann dieses auch sein um den EAN Code von anderen Produkten (Lebensmittel, Elektronik, ..) zu lesen. Besonders hilfreich ist dieses natürlich auch, da hier diese Informationen dann auch geteilt beziehungsweise an eine andere App weiter gegeben werden kann.

QR Code und Anwendungsgebiete

Eine besondere Form der Barcode sind die sogenannten QR Code. Dieser wurde von der japanischen Firma Denso Wave entwickelt und war ursprünglich für die Logistik in der Automobilproduktion des Toyota-Konzern verwendet. Die Verwendung des QR-Codes ist lizenz- und kostenfrei und kann für verschiedene Anwendungsgebiete verwandt werden.


Verschiedene Anwendungsgebiete sind hier in Verbindung mit einem QR Code Generator möglich.

Auf der Seite goqr.me können  für eigene Anwendungszwecke entsprechende Codes generiert werden.

Dabei sind einige der Möglichkeiten:
  • URL - um eine Internetseite zu hinterlegen
  • TEXT - für eine einfache Textnachricht
  • VCARD - für eine Visitenkarte
  • SMS - als Vorlage für eine SMS
  • CALL - für einen Telefonanruf
  • GEOLOCATION - für einen Standort
  • EVENT - für einen Termin
  • EMAIL - für eine E-Mail
  • WIFI - für WLAN Zugangsdaten
Da goqr.me auch eine Schnittstelle zur Generierung von QR Codes anbietet kann dieses bspw. für ein Wiki genutzt werden um entsprechende Seiten mit einen Barcode zu versehen. Auch in Werbeanzeigen ist immer öfters ein Barcode zu finden der eventuelle Zusatzinformationen verbirgt. Grundsätzlich ermöglichen es solche Codes tatsächlich ein wenig die digitale und analoge Welt auch spielerisch miteinander verschmelzen zu lassen.

Gerade mit letzteren Punkt bieten solche QR Codes eine tolle Alternative zu NFC Tags an (siehe Artikel "NFC Tags zum Steuern von Smartphones unter Android nutzen").

In der c't 10/2016 ist im Artikel "WLAN-Butler Raspberry Pi als Gäste-WLAN-Automat" ein spannendes Projekt mit Verwendung eines generierten QR Code für WLAN vorgestellt.
 

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


Montag, 16. Mai 2016
15:50 Uhr

Darstellung einzelner Projektphasen von der Freigabe bis zum Abschluss eines Innenauftrags anhand einer Query mit Ausgabe GESPERRT aber auch Abschlussdatum

Grundsätzlich können alle Status eines CO Innenauftrag wie in den Artikeln "SAP Query: Systemstatus CO Innenauftrag","SAP Query ABAP Coding im Zusatzfeld für Verknüpfung Innenauftrag und Fond bzw. Finanzierungszweck oder auch Status GESPERRT bei Innenaufträgen" und "Änderungsbelege zu Systemstatus (JEST) bei Innenaufträgen per Query auswerten" anhand der Tabellen  "JEST - Einzelstatus pro Objekt", "TJ02 - Systemstatus" ausgewertet werden. Wenn es jedoch um die einzelnen Phasen eines Innenauftrages geht (und nicht um den Status GESPERRT ist auch die Stammdatentabelle AUFK hier hilfreich und kann direkt verwendet werden.

Gerade bei Projekten mit fester Laufzeit ist es wichtig, festzulegen, wie am Projektende mit Buchungen verfahren werden soll. Teilweise kann hier einfach ein Auftrag gesperrt werden (wodurch keine Buchung mehr möglich ist) allerdings kann es gerade im Rahmen einer Plankopie erforderlich sein etwaige Innenaufträge auch wieder zu entsperren, so dass eine Planabrechnung noch erfolgen kann. Eine bessere Idee ist es da die von SAP vorgesehenen Phasen eines Innenauftrag (Eröffnung, Freigabe, Technisch abgeschlossen,Abgeschlossen) zu verwenden. Somit ist auf einen Blick klar, dass hier tatsächlich das Projekt beendet (abgeschlossen) ist und nicht nur zeitweise (zum Beispiel da ein Sachverhalt geklärt werden muss bevor Buchungen erfolgen) gesperrt ist.

Hierzu ist es sinnvoll tatsächlich einen Arbeitsworkflow zu definieren (vergleichbar zum "Workflow Kostenstelle und Innenaufträge (Module CO, PSM)") oder auch die einzelne Arbeitsschritte und Vorgehensweise in einer "Ereignisgesteuerte Prozesskette in DIA darstellen (weitere Objekte einfügen)" darzustellen. Wobei hier das Projektende entsprechend zu ergänzen wäre. Hier ist allerdings, wie an vielen anderen Stellen des Berichtswesen, auch die entscheidende Frage, wie weit eine Dokumnentation gehen sollte.Insbesondere  sollte auch der Buchhaltung (sowohl in der Finanzbuchhaltung als auch im Controlling) klar sein, wo der Unterschied zwischen Status und Sperre bei Projekten gesetzt wurde und welche Idee hinter den einzelnen Status zu sehen ist.
 

Phasen eines Auftrag bzw. Status

Diese hat gleichzeitig auch den Vorteil, dass hier nur ein Status für die einzelnen Phasen inklusive Datum hinterlegt sind.

Die für die einzelnen Phasen eines Innenauftrages mittels X = JA markierten Felder sind:

  • AUFK-PHAS0 -  Phase 'Auftrag eröffnet'
  • AUFK-PHAS1 -  Phase 'Auftrag freigegeben'
  • AUFK-PHAS2 -  Phase 'Auftrag technisch abgeschlossen'
  • AUFK-PHAS3 -  Phase 'Auftrag abgeschlossen'
Entsprechend bauen auch diese Phasen aufeinander auf und lassen entsprechend immer weniger Vorgänge zu.

  Daneben sind die einzelnen Datumsfelder wie folgt in der Tabelle AUFK hinterlegt:
  • AUFK-IDAT1 - Freigabedatum
  • AUFK-IDAT2 - Technisches Abschlußdatum
  • AUFK-IDAT3 - Abschlußdatum
Bei den einzelnen Datumsfeldern ist es dann natürlich sinnvoll innerhalb der Grundliste bei den Feldeigenschaften (links Spalte, wenn es selektiert wurde oder in der Grundliste angeklickt) die Option "Feld nur ausgeben, wenn <> 0 " zu aktivieren. Andernfalls werden hier bei noch nicht abgeschlossenen Innenaufträgen (Feld AUFK-PHAS3 ist nicht mit X gefüllt) als datumswert 00.00.0000 ausgegeben. Schöner sieht hier natürlich ein leeres Feld aus, so dass ein Datum nur ausgegeben wird, wenn auch tatsächlich der Auftrag abgeschlossen ist.

Je nach gewählten Status sind einzelne betriebswirtschaftliche Vorgänge erlaubt beziehungsweise unterbunden. Eine ausführliche Beschreibung der einzelnen Status ist auch im Buch "Schnelleinstieg ins SAP Controlling" (ISBN: 9783960126874) erläutert. Innerhalb der Stammdaten eines Innenauftrages (z.B. über die Transaktion KO03 oder KO02) kann über die Registerkarte Steuerung im Standard das Feld Status eingesehen werden. Sofern Sie über SPRINGEN->STATUS gehen bekommen Sie zum aktuellen Status auch die jeweils erlaubten betriebswirtschaftlichen Vorgänge hinterlegt.

Exkurs: Customizing Statusverwaltung / Statusschemata und Anwenderstatus / Betriebswirtschaftliche Vorgänge

Neben den vom SAP System vorhandenen vorgegebenen Status inklusive der entsprechenden Zuordnungen können im Customizing aber auch eigene "Anwenderstatus" festgelegt werden, die über ein Statusschema auch eigene Anwenderstatus festlegen, die hier ebenfalls einzelne betriebswirtschaftlichen Vorgänge festlegen und eine Vorgangssteuern je Statusschema zuordnen.
Hierbei finden Sie die einzelnen Funktionen im Customizing (Transaktion SPRO) unter

  • Controlling
  • Innenaufträge
  • Auftragsstammdaten
  • Statusverwaltung
  • Statusschemata definieren (Transaktion OK02)

Hier sind die einzelnen Status in einer Reihenfolge festgelegt, so dass in der Stammdatenverwaltung hier auch zwischen den einzelnen Status hin und her geschaltet werden kann. Über SPRINGEN->VORGANGSSTEUERUNG können nun einzelne betriebswirtschaftlichen Vorgänge hinterlegt werden.
In der Definition der Auftragsart (Transaktion kot2_opa) kann nun das Statusschema hintelregt werden. Jeder dieser Statusschema ist dann entsprechenden Objekten so zum Beispiel "Innenauftrag" zugeordnet.

Selbst angelegte Anwenderstatus werden jedoch nicht wie im Artikel "" beschrieben in der Tabelle  JEST (siehe Artikel "Änderungsbelege zu Systemstatus (JEST) bei Innenaufträgen per Query auswerten" oder "SAP Query: Systemstatus CO Innenauftrag"sondern in der Tabelle TJ30 "Anwenderstatus" hinterlegt.

Sollten Sie eigene Anwenderstatus definieren wollen, kann es hilfreich sein sich vorab darüber klar zu werden, welche einzelne betriebswirtschaftlichen Vorgänge beim jeweiligen Status erlaubt bzw. unterbunden werden sollen. Ferner ist ein wesentlicher Punkt auch eine entsprechende Prozessdokumentation und vor allem auch Durchführung eines entsprechenden Ablaufsplan für die einzelnen Phasen eines Projektes welches als Innenauftrag abgebildet wird.

Auswertung Query über einzelne Phasen eines Projektes

Neben der bisherigen Auswertung von Auftragsstammdaten (siehe zum Beispiel der Artikel "Query über COEP, AUFK und FMFINCODE für Einzelposten Istkosten Innnenauftrag mit Stammdaten aus CO und PSM-FM sowie Spalten für Ertrag und Aufwand - Erster Teil Infoset als Datengrundlage" im Abschnitt "Zusatzfeld Gesperrt (Sperrkenzeichen auswerten)" ausführlicher geschildert) kann nun aber auch die einzelnen Phasen des Projektes abgebildet werden.

Zur Auswertung kann aus den schon in den bisherigen Stammdatenlisten verwendeten Infoset die eingangs erwähnten Felder AUFK-PHAS3 (Status abgeschlossen) und AUFK-IDAT3 (Abschlussdatum) mit in der Grundliste der Query aufgenommen werden.

Nun kann das Setzen des Sperrkennzeichen eines Innenauftrag für kurzfristige Buchungssperren gesetzt werden und für tatsächlich abgeschlossene Projekte auf den Status ABGS gewechselt werden, wodurch auch tatsächlich keine weiteren Buchungen mehr möglich sind. Das kurzfristieg Sperren ist dadurch weiterhin über BEARBEITEN->SEPRRE->SETZEN möglich, wohingehend der Status Abschluss im Reiter Steuerung bzw. im Abschnitt Status durch Wechsel des jeweiligen Status gewählt werden kann. Daneben kann durch die Felder Antragsdatum, Arbeitsbeginn und Arbeitsende relativ genau die Laufzeit eines Projektes ausgegeben werden.

Eine stark vereinfachte Stammdatenliste für Innenaufträge (lediglich basierend auf der Tabelle AUFK) könnte dabei wie folgt aufgebaut sein:

Innerhalb der Query werden nun auf folgende Felder der einzelnen Tabellen (bzw. Zusatzfelder) des Infosets Zugriff genommen beziehungsweise in der Grundliste zugewiesen. Hierbei ist L als Listenfeld und S als Selektionsfeld zu verstehen.

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

 

Auftragsstammdaten AUFK
Auftragsart (S) AUFK-AUART
Auftragsnummer (L,S) AUFK-AUFNR
Kurztext (L) AUFK-KTEXT
Verantwortliche Kostenstelle (L,S) AUFK-KOSTV
Profitcenter (L,S)
AUFK-PRCTR
Antragsdatum (L) AUFK-USER5
Arbeitsbeginn (L,S) AUFK-USER7
Arbeitsende (L) AUFK-USER8
Antragssteller (L) AUFK-USER0
Verantwortlicher (L) AUFK-USER2
Abteilung (L) AUFK-USER6
Externe Auftragsnummer (L) AUFK-AUFEX
Auftrag abgeschlossen (L, S)
AUFK-PHAS3
Abschlussdatum (L) AUFK-IDAT3

Wie eingangs erwähnt sollte bei diesen Feld die Option "Feld nur ausgeben, wenn <> 0 " aktiviert sein.

Zusatzfelder (die im Infoset angelegt wurden)
Virtuelle Lehreinheit (L) VLE
Gesperrt (L)  GESPERRT
Finanzierungszweck (L,S) FINUSE

Die drei Zusatzfelder sind in den folgenden Abschnitten

der Artikel "Query über COEP, AUFK und FMFINCODE für Einzelposten Istkosten Innnenauftrag mit Stammdaten aus CO und PSM-FM sowie Spalten für Ertrag und Aufwand - Erster Teil Infoset als Datengrundlage" und  "SAP Query innerhalb des SAP Moduls PSM FM beziehungsweise Haushaltsmanagement" beschrieben.

Reihenfolge Selektionsfelder festlegen

Ebenfalls interessant, gerade bei vielen Selektionsfeldern, kann es sein, dass der Aufbau des Selektionsbild auch durch die Reihenfolge Selektionsfelder bei Query ändern beeinflusst werden kann. Dieses ist über SPRINGEN->FELDAUSWAHL->SELEKTIONEN über die Spalte NR. möglich. Hier kann ich nur die Empfehlung aus meiner Studiumszeit weiter geben bei Sortierfeldern Abstände immer in 5er Schritten anzugeben (Erstes Feld bekommt Nummer 5, Zweites Feld Nummer 10, ...). Dieses hat den enormen Vorteil, dass später auch Felder verschoben werden können (zum Beispiel auf Numemr 7) ohne dass hier auch alle anderen Felder geändert werden müssen.

Konzeption Prozesse und notwendige Stammdatenfelder

In der Praxis kann es tatsächlich immer einmal wieder vorkommen, dass weitere Felder in der Selektionsliste aufgenommen werden sollen, oder alternativ manche wegen der einfacheren Handhabbarkeit an einer anderen Stelle verschoben werden sollten. Sollten Sie sich neben den einzelnen Projektphasen auch noch weitere Gedanken um die Stammdaten oder Informationen zu einen Innenauftrag machen, kann auch der Artikel "Stammdatenerweiterung von CO-Objekten am Beispiel ergänzende Kostenstelle beim Innenauftrag". Sollten Sie sich gemeinsam Überlegungen über aufzunehmende Felder beziehungsweise neben der Prozessdokumentation auch ein Brainstorming über vorhandene Daten durchführen wollen kann ich auch zum Ordnen der eigenen Gedanke eine Mindmap wie im Artikel "Mindmapping und Sketchnotes im Beruf nutzen für Brainstorming oder Mind Mapping mit XMIND" empfehlen, allerdings müssen sich darauf auch alle Beteiligten einlassen, was bei solchen Methoden nicht immer der Fall ist.

 

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.




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


Freitag, 6. Mai 2016
21:03 Uhr

Internet und Werbung - meine Gedanken zu Flattr Plus

Eigentlich ist Monetarisierung von Internetseiten, Werbung oder das Netz an sich kein Thema hier im Blog. Ich schreibe wesentlich lieber über entwickelte Berichte, entdeckte Tools oder auch den ein oder anderen Kniff der mir an der Arbeit oder im Privaten das Leben erleichtert. Nicht ohne Grund schreibe ich daher regelmäßig Artikel über (Hochschul-) Controlling, SAP (CO,PSM,FI oder auch BC) aber auch zu anderen oft it-nahen Themen. Etwas mehr dazu ist auch auf der Seite "Über mich" zu finden.

Nun hatte ich aber vor einiger Zeit einen Artikel bzw. Video zu einer Kooperation von Adblock Plus und Flattr gesehen, was mich dann doch die letzten Tage etwas beschäftigte, so dass ich schon auf Facebook einen entsprechenden Beitrag geschrieben habe

Mein Beitrag auf Facebook

Im Artikel ist auch die entsprechende Veranstaltung "I'm better than ads – helping journalists make money online"bzw. das Video auf Youtube verlinkt.

Bevor ich das Thema, was mich hier tatsächlich beschäftigt aufgreife möchte ich aber zu meiner Seite selbst den ein oder anderen Puntk erwähnen, auch um hier nicht gleichzeitig auch das Thema "getroffene Hunde bellen" aktiv zu haben. Außerdem war es mir wichtig nicht nur auf Basis von Artikeln im Feedreader sondern auch (zumindest versuchsweise) mir eine eigene Sicht der Dinge zu machen... inwieweit dieses gelungen ist, kann ich leider nicht direkt beurteilen, hoffe aber, dass ich es weitesgehend hinbekommen habe (oder wenigstens auf "lesbare" im Sinne von sachlich geschilderten Quellen verweise.

Eigenes Interesse an Werbung und Werbung auf meiner Seite

Meine Seite ist, wie ich auch schon unter "Danke & Transparenz" beschrieben habe, in der Hauptsache für mich als digitaler Wissenspool und für die eigene Webputation sowohl im Netz als auch im beruflichen Umfeld sehr nützlich. Daneben blende ich aber auch bewusst Werbung auf dieser Seite ein und nutze unter anderen auch VG Wort Zählpixel durch die an Autoren für "Texte im Internet" vereinfacht gesagt aus den Kopiergeräteabgaben ab einer bestimmten Besucherzahl auf Artikeln eine Vergütung je Artikel gezahlt wird.
Daneben ist mit der "Buchveröffentlichung Schnelleinstieg ins SAP Controlling (CO)" oder auch der "Partnerschaft mit Espresso Tutorials - SAP Fachbücher" auch ein wirtschaftliches Interesse auf dieser Seite neben der Freude am Bloggen und den eigenen digitalen Wissenspool durch einige Artikel hier eingezogen.

Werbeblocker

Werbeblocker stehe ich grundsätzlich zwiegespalten gegenüber. So sehe ich zum Beispiel die Whitelist von Adblock Plus problematisch, insbesondere was die acceptable adds (Whitelist "Akzeptable Werbung zulassen") und die entsprechenden Geschäftsmodelle dahinter anbelangt. Hier wird durch den Filter für bestimmte Seiten dann tatsächlich Werbung zugelassen die akzeptabel ist. Dabei werden bestimmte Kriterien gestellt die ebenfalls vergleichbar zu den Google Adsense Kriterien sind. Das Freischalten ist "nur" mit einen Vertrag mit der Firma Eyeo verbunden und ab einer bestimmten Besucherzahl soll der Werbeblocker an den Einnahmen der Seitenbetreiber durch die nun freigeschaltete Werbung beteiligt werden. Dabei sind kleine Blogs ausgenommen, da diese nicht in eine entsprechende Kategorie fallen. Allerdings werden hier auch keine Grenzen offen kommuniziert. In gewisser Weise sollen hier größere Contentanbieter für die Moderationsdienste einer Liste die Firma hinter diesen Produkt bezahlen. Allerdings kann diese Zulassung von akzeptabler Werbung auch wieder deaktiviert werden. Grundsätzlich empfinde ich die Idee dahinter gar nicht so verkehrt, allerdings sind hier auch kritische Stimmen in Richtung "Gatekeeper" nachvollziehbar. In den Vereinbarungen zur Nutzung von ABP als Seitenbetreiber ist der Prozess wie folgt beschrieben: "Die Freischaltung ist für kleinere und mittlere Webseiten und Blogs kostenlos.....Ein Mitarbeiter von Eyeo, der Firma hinter Adblock Plus, wird sich .. (mit den Seitenbetreiber) in Verbindung setzen, um die freizuschaltende Werbung genau zu bestimmen und auf die Einhaltung der Kriterien zu überprüfen.Der Vorschlag zur Freischaltung wird ... ins Forum eingestellt und die Werbeanzeige zeitgleich freigeschaltet"

Aus Anwendersicht eines solchen Addon sehe ich das durchaus als eine positive Idee, da ich so zumindest einen Teil von Werbung durchlasse ohne hier durch umfangreiche Werbung eine unlesbare Seite zu erhalten.... (bei Seiten die ich regelmäßig besuche ist dann ohnehin der Blocker oftmals deaktiviert).Problematisch ist die ganze Geschichte allerdings wenn ich selbst eine Seite betreibe und in irgendeiner Weise hier Werbung einbinden möchte und dabei schon um Besuchende nciht zu vertreiben diese dezent halte. Hier entscheidet dann aber jemand anders, ob die Werbung auf meiner Seite okay ist und möchte für diesen Vorgang auch gerne einen Vertrag mit den Contentproduzenten abschliessen.

Wenn ich nun für meine eigene Seite zum Beispiel Buchvorstellungen betrachte filtert ABP zum Beispiel Coverbilder da ich hierzu die Einbindung von Amazon Produktvorstellungen im Rahmen das Amazon Partnerprogramm (ergo Werbung) nutze. Ohne Anmeldung des Seitenbetreiber bei ABP wird auch unaufdringliche Werbung herausgefiltert. Dieses dürfte auch mit ein Grund, für die obere Bezeichnung sein. Ein weiterer Kritikpunkt ist, dass (mittlerweile optional) auch Hinweise von Seiten, die ABP Nutzer darauf hinweisen, dass es nett wäre die Werbung zuzulassen... Solche kosmetischen Filter gibt es aber auch auf anderen Seiten.

Ein anderer Werbeblocker, uBlock Origin, fällt bei mir dadurch negativ auf, dass nach der Installation automatisch auch die Blockierliste "EasyPrivacy+EasyList" aktiviert ist, wodurch datenschutzkonforme Dienste wie Google Analytics (mit anonymizeIP) oder auch VG Wort Zählpixel automatisch deaktiviert werden.

Wo ist der Schaden?

Bei einer Seite wie mein Blog fallen in der Hauptsache Webhostingkosten an, die relativ günstig sind, wenn man diese mit anderen Freizeitaktivitäten vergleichen möchte. Da ich meine Seite als Hobby mit Artikel versorge und dieses auch in meiner Freizeit passiert, habe ich hier glücklicherweise den Luxus zu sagen, dass mir die Seite wichtig genug ist und ich nicht auf etwaige Einnahmen angewiesen bin.

Auf der anderen Seite erlebe ich gerade, wie ein Forum aus vergangenen Internettagen wieder zum Leben erweckt wird und die neuen Betreiber der Seite eine Finanzierung des Servers aber auch der Adminkosten durch Werbung versuchen. Hier ist es sehr schwierig die Wünsche der Community und ein ausgewogenes Maß an Werbung und Usability zu wahren.Insgesamt gelingt dieses den Betreiber recht gut, auch wenn ich hier aus Usersicht die Werbeschaltung als  InText-Werbung eher kritisch betrachte ist sie als solche doch erkennbar und in einen erträglichen Maß geschaltet. Hier hat mich übrigens die Entscheidung von jurawelt.de (siehe Forumsbeitrag "Test mit In-Text-Werbung") sehr beeindruckt und auch in meiner subjektiven Sicht zum Jurawelt-Team bestätigt :-)

Welche Idee verfolgt Flattr?

Flattr ist ein Social-Payment-Service der in der Form arbeitet, dass man ein Guthaben auflädt und durch einen bewusten Klick auf einen Flattr-Button eine besuchte Internetseite unterstützen konnte.  Am Monatsende wird ein festgelegter Betrag durch die Anzahl der Klicks geteilt und danach auf die Internetseiten verteilt. Dabei nahm Flattr für diesen Service einen gewissen Anteil an Provision. Ein ähnlicher, wenn auch direkter Dienst ist hier bspw. paypal.me wodurch ebenfalls Seitenbetreiber direkt unterstützt werden können.

Was ist nun Flattr Plus?

Das auf der re:publica TEN vorgestellte Flattr Plus ist eine Kooperation von Adblock Plus und Flattr. Hierbei soll durch ein Browserplugin die Verweildauer auf einzelne Internetseiten gemessen werden und am Ende des Monats eine Ausschüttung an die Seiteninhaber gezahlt werden, die FlattrPlus auf ihre Seite eingebunden haben. Hierdurch soll sich Qualität wieder rechnen. Inwieweit nun eine solche komprimierte Datensammlung tatsächlich datenschutzkonformer sein mag, erschliesst sich mir nicht direkt. Große Plattformen wie Google oder Facebook sollen dabei außen vor gelassen werden, aber selbstverständlich sollen Youtuber gerne an diesen Modell teilnehmen können....

Eigentlich geht hier Adblock Plus den nächsten logischen Schritt in Richtung eines geschlossenen Marktes den ich für mich persönlich schon bei Google Currents und Facebook Instant Article als "Google Currents (Google Kiosk) oder die Assimilation ins google Kollektiv (Update: Facebook Instant Articles)" kritisch betrachtete (allerdings nur aus meiner eigenen Position heraus für andere Seiten mag dieses durchaus interessant sein.

Darüberhinaus kann ich mir nicht vorstellen, dass Qualität durch Verweildauer messbar ist. An meinen eigenen Verhalten landet durchaus ein verlinkter Artikel per "in neuen Tab öffnen" erst einmal in die Lesewarteschlange im neuen Tab und wird dort später gelesen (angeblich ist dann aber meine Verweildauer auf diese Seite enorm, selbst wenn ich wenige Sekunden nachdem ich dann doch auf den Tab blickte die Seite wieder schliesse). Wobei hier das Plugin auch messen soll, dass ein Artikel "aktiv" gelesen wird womit eine geladene aber nicht betrachtete Seite für die Zählung nicht berücksichtigt werden soll.

Ein wenig amüsiert oder erschreckt mich dabei allerdings, dass hier ABP und Flattr tatsächlich eine vergleichbare Vergütungsregel aufbauen, wie zumindest Werbeblocker optional durch Listen unterbrinden (Stichwort VG Wort Zählpixel).

Kritik an Flattr Plus

Zur Zeit nahm ich in meiner digitalen Filterblase die Kritik an diesen Konzept relativ gering war. Ein klein wenig erinnerte mich dieses Konzept an den Spruch  "come to the dark side we have cookies"  wodurch endlich wieder Content entlohnt wird (nachdem vorher durch Werbeblocker dieses verhindert wurde).

Zu den Hintergründen der Kritik habe ich beispielhaft drei Artikel gefunden, die einige von mir ebenfalls so wahrgenommene Punkte erwähnen und die ich sehr gerne verlinken möchte auch um hier den ein oder anderen zum Nachdenken zu bringen. Daneben möchte ich aber auch andere Quellen (jedoch aus meiner eigenen Filterblase) verlinken, die ebenfalls das Konzept kurz vorstellen, was derzeit ja noch in einer Betaphase ist. Von daher ganz altmodisch Links zur Information auf anderen Seiten.
In meiner eigenen Internetnutzung merke ich immer mehr, dass ich bei häufig besuchten Seiten Werbeblocker deaktiviere und hin und wieder auch vollkommen ohne surfe. Leider ist es oft auch so, dass ich bei Recherchen wiederum auf Seiten lande die mich daran erinnern, warum es Werbeblocker gibt. Es ist sicherlich nicht einfach, aber definitiv auch ein Thema bei den es keine einfache Lösung oder ein einfaches Produkt als Antwort auf alles geben sollte.Trotzdem ist dies eine Seite im Netz, die man nicht unbedingt als reiner Seitenbesucher wahrnimmt...

Kritik an Werbeblocker-Kritik

Was ich übrigens noch schlimmer als die oben beschriebenen Tools rund um Werbeblocker oder nun Flattr Plus empfinde ist die Diskussionskultur von Adblockern die den Einsatz von Werbeblockern moralisch begründen.
  1. Sie haben ja schon ihren Internetanschluss bezahlt, warum sollten Sie dann nochmals über Werbung Geld an Internetseiten zahlen,
  2. Werbeblocker werden nur genutzt, da ja ausschliesslich Datenschutz hier wichtig ist und man nicht über alle Seiten getrackt werden möchte und bitte anonym bleiben möchte.
  3. Die Seitenbetreiber sind selbst schuld und sollen sich eben eine alternative Finanzierung suchen und bspw. richtig arbeiten gehen und nicht durch ihr Hobby auch noch Geld verdienen wollen.
Sachargumente werden da selten ausgetauscht und oftmals stehen sich da wirklich zwei Lager gegenüber aber eine wirkliche Diskussion ist hier eher selten am Platz. Ich versuche es dennoch einmal in aller Kürze:
  1. Warum sollten Seitenbetreiber ihre Zeit investieren um die Besucher zu unterhalten? Altruismus ist eine schöne Sache (und sicher auch verbreitet) aber völlig selbstlos eine Seite zu betreiben ist vermutlich die Ausnahme oder aber mit entsprechenden Persönlichkeiten mit Sendungsbewustsein verbunden.
  2. Anonymität im Netz kann nicht nur durch Werbetracker oder Analysedienste aufgehoben werden (gerade am Smartphone gibt es da noch andere Analysefunktionen und auf Providerseite ebenso). Dennoch möchte ich bei ernsthaften Datenschutzbedenken gerne einmal auf die entsprechenden Abschnitte in der Datenschutzerklärung auf dieser und anderer Seite verweisen, die ein Tracking auch sowohl für Google Analytics als auch für Google Adsense aber auch andere Werbenetzwerke deaktivieren. Hier trägt auch die EU Cookie Richtlinie ihren Teil dazu bei.
  3. Ich würde es sehr schade finden, wenn viele Seiten hinter einer Paywall verschwinden und bin selbst immer betrübt, wenn sich ein Blog dazu entscheidet nicht mehr einen Fulltext-RSS-Feed zur Verfügung zu stellen. Allerdings würde ich auf solche Argumente gerne mit den schon beinahe alten Spruch "mit anderen Leuten Geld lässt sich gut rechnen" antworten. Gründe für die Teilnahme am Netz durch eine Internetseite gibt es viele und für Urheberinnnen und Urheber ist es eine private Entscheidung in welcher Form sie Content zur Verfügung stellen wollen. In der gleichen Richtung argumentieren übrigens auch Leute, die sich beschweren, wenn man eine Anleitung nicht unter eine Creative Commons Lizens stellt, so dass diese Anleitung einfach kopiert und für eigene Projekte verwendet werden kann.... Dies ist übrigens auch ein Grund, warum ich im RSS Feed nun Werbung in eigener Sache mache, da mein RSS Feed neben Feedreadern (bspw. Feedly siehe Artikel "Infotainment oder Nachrichtenapps für Android" auch auf andere Seiten offen abrufbar ist ohne klar den Ursprung zu markieren.
Wie eingangs beschrieben ist das Thema Internetwerbung eigentlich kein Thema auf dieser Internetseite aber mich hat das Thema die letzten Tage tatsächlich beschäftigt und hin und wieder kann man ja auch einmal den ein oder anderen privaten Gedanken neben nützlichen Artikeln auf seiner Internetseite veröffentlichen.

Schadsoftware durch Internetwerbung

Das Argument Schadsoftware über Werbenetzwerke ist wiederum ein anderes Thema, dass die andere Seite von Werbung darstellt "Ad-Wars – Ausflug in die Realität der Online-Werbung", wobei auf der anderen Seite Schadsoftware auch über Sicherheitslücken beim CMS eingebunden werden können oder auch auf andere Wege eingebunden werden können. Hier seien als Beispiel einmal Addons erwähnt. Damit ist auch hier eine der wesentlichen Fragen, wie weit vertraue ich einer Seite die ich besuche und welchen Preis zahle ich für meine eigene Sicherheit bzw. lase ich andere Zahlen. Immerhin stellt dieser Beitrag auch die Mechanismen von Werbung dar inklusive Risiken und Nebenwirkungen.... aber wie schon eingangs gesagt... "einfache Antworten fallen schwer". Nebenbei ist dieses auch ein Grund, warum ich regelmäßig prüfe welche Art von Werbung hier eingeblendet wird und bestimmte Werbung auch direkt unterbinde.... (aus Gründen wurden hier schon besonders sensible Kategorien blockiert nachdem ich mitbekommen habe, welche Art von Werbung hier geschaltet worden war :-().

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


Sonntag, 1. Mai 2016
11:22 Uhr

Abrechnungsvorschriften von Innenaufträgen auf identische verantwortliche Kostenstelle und empfangende Kostenstelle per Query mit Ampelfunktion prüfen

Ich hatte vor einiger Zeit schon einmal eine Query beschrieben die relativ komfortabel eine Alternative zur Transaktion KOSRLIST_OR Abrechnungsvorschriften  darstellt, allerdings sind im Laufe der Zeit noch weitere Aspekte beziehungsweise Anforderungen in Richtung einer automatischen Kontrolle dieser Abrechnungsvorschrift hinzugekommen. Auf diese Anforderungen und die Systematik der Auftragsabrechnung möchte ich im folgenden Artikel ausführlicher eingehen.
 

Abrechnungsvorschrift Auswertung über KOSRLIST_OR

Die normale Auswertung der Abrechnungsvorschriften ist im SAP Menü unter
  • Rechhnungswesen->
  • Controlling->
  • Innenaufräge->
  • Infosystem->
  • Berichte zu Innenaufträgen->
  • Stammdatenverzeichnis->
  • Abrechnungsvorschriften (Transaktion KOSRLIST_OR )
zu finden.

Allerdings hat diese Auswertung den Nachteil, dass hier keine ALV (sprich Liste) erstellt wird sondern in einer Überschriftzeile der Innenauftrag als Kopfzeile dargestellt wird und unten drunter die Abrechnungsvorschriften als einzelne Positionen dargestellt werden.

Sollte, aus Gründen, nun ein Vergleich oder gar Export der Abrechnungsvorschriften erfolgen ist dieses etwas problematisch.

Von einigen Kolleginnen und Kollegen wurde ich angesprochen, ob nicht eine Kontrolle der Abrechnungsvorschriften nicht auch über eine Query möglich ist. Bisher wurde dieses relativ aufwändig in Excel erledigt.

Besonders bei der Abrechnung von Kosten auf Kostenstellen soll hier überprüft werden, ob die empfangende Kostenstelle identisch zur verantwortlichen Kostenstelle des Innenauftrages ist.

Hintergrund: Abrechnung von Landesmittelprojekten

In der Regel hängen die einzelne Projekte an einer Kostenstelle einer Professur / eines Institut oder einer Einrichtung und sollen im Rahmen der Auftragsabrechnung für eine Plankostenumlage auf die jeweiligen Kostenstellen umgelegt werden. Auf die unterschiedlichen Möglichkeiten der Auftragsabrechnung gehe ich etwas später in diesen Artikel ein.

Nun möchte ich kurz die Möglichkeit einer Query zur Auswertung der Abrechnungsvorschriften vorstellen und diese um eine Prüffunktion erweitern.
 

Infoset zur Auswertung Auftragsabrechnung

Technisch betrachtet beruht das Infoset aus den beiden Tabellen AUFK für die Stammdaten der Innenaufträge und COBRB für die Aufteilungsregeln Abrechnungsvorschrift Auftragsabrechnung.

Die beiden Tabellen sind über das Tabellenfeld OBJEKTNUMMER der beiden Tabellen aufgebaut. Hier werden also die beiden Felder AUFK-OBJNR und COBRB-OBJNR miteinander verknüpft und alle Tabellenfelder in das Infoset übernommen.

Query zur Darstellung Abrechnungsvorschrift

Die Query ist dabei wie im Artikel "Query Abrechnungsvorschriften Innenauftrag" umfassender beschrieben wie folgt aufgebaut:

Auftragsstammdaten AUFK
Auftragsnummer (L,S) AUFK-AUFNR
Kurztext (L) AUFK-KTEXT

Aufteilungsregeln Abrechnungsvorschrift Auftragsabrechnung COBRB
Version (L,S) COBRB-VERSN
Kontierungstyp (L) COBRB-KONTY
Empfangende Kostenstelle (L) COBRB-KOSTL
Auftragsnummer (L) COBRB-AUFNR
Abrechnungsart (L) COBRB-PERBZ
Ursprungszuordnung (L) COBRB-URZUO
Gültig ab Periode (L) COBRB-GABPE
Gültig ab Jahr (L) COBRB-GABJA
Gültig bis Periode (L) COBRB-GBISP
Gültig bis Jahr (L) COBRB-GBISJ

Die im ursprünglichen Artikel beschrieben weiteren Felder zu den Stammdaten Kostenstelle etc. habe ich nun einmal außen vor gelassen.

Soweit ist diese Query auch schon bekannt. Nun gab es allerdings eine Anfrage, dass die Aufteilungsregel der Innenaufträge automatisch überprüft werden sollten.

Ausgangslage unterschiedliche Abrechnungsvorschriften

Hintergrund ist, dass in der Abrechnungsvorschrift drei Einträge vorhanden sind.
  • Abrechnung der Kosten auf eine Kostenstelle
    In der Abrechnungsvorschrift wird als Typ KST (Kostenstelle) und als Abrechnungsempfänger  eine Kostenstelle zugeordnet. Die Verteilung der einzelnen Kostenarten erfolgt über die Ursprungszuordnung ZUK werden die einzelnen Kostenarten entsprechenden Abrechnungskostenarten zugeordnet.
  • Abrechnung Erlöse auf Erlösauftrag
    Hier ist die Abrechnungsvorschrift so gepflegt, dass als Typ AUF (Auftrag) und ein entsprechender Innenauftrag als Abrechnungsempfänger hinterlegt. Als Ursprungszuordnung wird hier ZUE hinterlegt.
  • Abrechnung neutrales Ergebnis
    Neutrale Kosten-/Erlösarten werden ebenfalls per Typ AUF (Auftrag) auf einen Innenauftrag zum neutralen Innenauftrag gelegt werden. Hier wird als Ursprungszuordnung ZUN festgelegt.

Hintergrund: Customizing Abrechnungsvorschrift

Das Customizing der Arbrechnungsvorschriften ist in der Transaktion SPRO unterhalb

  • Controlling->
  • Innenaufträge->
  • Planung->
  • Abrechnung pflegen

aufrufbar. Hier können zum einen die einzelnen Abrechnungsschema gepflegt werden aber auch das Ursprungsschema gepflegt werden. Dieses soll aber nicht Thema des Artikels sein.

Sofern Kosten auf eine Kostenstelle abgerechnet werden soll, sollte diese Kostenstelle der verantwortlichen Kostenstelle des Innenauftrages entsprechend. Gerade wenn hier in der Abrechnungsvorschrift eine Abweichung vorhanden ist, kann dieses eine sehr ausführliche Fehlersuche nach sich ziehen.

Lokales Feld mit Ikone LED anlegen

Hierzu arbeiten wir in der Query wieder einmal mit lokalen Feldern.

Um lokale Felder zu definieren wird nicht direkt die Grundliste der Query bearbeitet (wo auch das Layoutdesign gepflegt wird) sondern innerhalb der Querypflege (Transaktion SQ01) mit "nächstes Bild (F6)" auf die Feldauswahl der Query gewechselt. Alternativ ist es auch möglich dies über das Menü SPRINGEN->FELDAUSWAHL->FELDAUSWAHL zu erreichen.

Ü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 (in der Beschreibung ist die Bezeichnung, gefolgt von der angelegten Kurzbezeichnung (fett hervorgehoben) und des dahinter technisch liegenden Tabellenfeldes angegeben):

Auftragsstammdaten
Verantwortliche Kostenstelle VKOST  (AUFK-KOSTV)
Aufteilungsregeln Abrechnungsvorschrift Auftragsabrechnung
Ursprungszuordnung URZUO (COBRB-URZUO)
Kontierungstyp KONTY (COBRB-KONTY)
Empfangende Kostenstelle EKOST (COBRB-KOSTL)

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

Dieses geht über

BEARBEITEN->LOKALES FELD->ANLEGEN

Dieses Lokale Feld wird dann in der Feldgruppe angelegt, in der wir uns gerade befinden. Von daher ist es ganz praktisch, dass wir uns in den Abrechnungsvorschriften befinden.

Hierzu legen wir ein Feld mit folgenden Eigenschaften an:

lokales Feld (CHKABRV)
Kurzbezeichnung:  CHKABRV
Feldbezeichnung: CHKABRV
Überschrift: CHKABRV
Eigenschaften:
Ikone
Berechnungsvorschrift:
Hier wird eine komplexe Berechnung mit folgenden Bedingungen hinterlegt:

Bedingung: VKOST = EKOST AND URZUO = 'ZUK' AND KONTY = 'KS'
Formel: ICON_LED_GREEN

Bedingung: VKOST <> EKOST AND URZUO ='ZUK' AND KONTY = 'KS'
Formel ICON_LED_RED

Sonst lassen wir leer.

Die Bedingung ist ein klein wenig tricky.

Als erstes wird geprüft ob die Verantwortliche Kostenstelle des Innenauftrags und das Feld empfangende Kostenstelle (COBRB-KOSTL) identisch sind oder ob es hier Abweichung gibt

In der ersten Bedingung sollten die übereinstimmen (dank = ) und in der zweiten gibt es eine Abweichung ( <>  bedeutet ungleich).

Daneben werden aber auch folgende Fragestellungen berücksichtigt

Werden tatsächlich Kosten verteilt und nicht etwa Erlöse?
Wie erwähnt gibt es allerdings neben ZUK für die Verteilung der Kosten noch eine Verteilung von Erlöse auf entsprechende Erlösaufträge über die Ursprungszuordnung ZUE. Hier kann die Kostenstelle nicht übereinstimmen, da die Erlöse der Innnenaufträge auf entsprechende andere Innenaufträge (zum Beispiel Erlösaufträge der einzelnen Lehreinheiten) verteilt werden. Daher soll eine Kontrolle nur erfolgen, wenn es sich bei der Ursprungszuordnung um ZUK für die Kostenabrechnung handelt.

Ist der Abrechnungsempfänger vom Typ her eine Kostenstelle?
Problematisch sind nun Innenaufträge deren Kosten nicht auf Kostenstelle sondern auf einzelne Produkte (Drittmittel, Weiterbildung vergleichbares) abgrechnet werden. Hier ist der Abrechnungsempfänger dann keine Kostenstelle sondern ein Innenauftrag. Deswegen gibt es als dritte Bedingung die Kontrolle handelt es sich beim Typ um eine Kostenstelle "KS". Dieses wirkt nun iritierend, da wir bei der Pflege von Abrechnungsvorschriften im Innenauftrag ja immer eine KST angeben, wie auch in unseren Buch "Schnelleinstieg ins SAP Controlling (CO)" ausführlich erläutert wurde (siehe Buchempfehlung).
Dieses liegt daran, dass in der Abrechnungsvorschrift der Wert zwar als KST zugewiesen wird, in der Datenbank das Feld allerdings unkonventiert als KS gespeichert ist. Besonders ansprechend ist das in der Transaktion SE16H zu betrachten. Ferner umfasst das Feld KONTY der Tabelle COBRB auch nur zwei Zeichen.
Dieses ist auch der Grund, warum ich gerne Tabellendefinitionen (SE12) oder Tabellenanzeige (SE16H) für die Administration von Query nutze ansosnten wundert man sich, warum eine Auswertung nicht funktioniert.


Was für eine Ikone soll als Symbol ausgegeben werden (Formel)?
Als Formel wird nun der Wert der IKONE angegeben.

Hier nutze ich sehr gerne LED Icons die je nach Zustand (Ergebnis) RED = Fehler, YELLOW = Kontrolle erfoderlich oder GREEN = Alles okay ein Ergebnis liefern.

Gemäß SAP Design Guide (siehe https://experience.sap.com/files/guidelines/icons_sap/index.htm ) hätte ich hier wohl ebenfalls besser ICON_CHECKED (grüner Haken) , ICON_INCOMPLETE (rotes Kreuz) oder ICON_FAILURE (Warnhinweis) verwenden können.

Die LED Icons  ICON_LED_GREEN (Green LED; go; correct), ICON_LED_RED (Red LED; stop; incorrect) erscheinen mir hier allerdings tatsächlich als wesentlich sinnvoller.

Wenn ich nun dieses Feld ebenfalls in meine Grundliste übernehme erhalte ich bei gepflegten Abrechnungsvorschriften direkt eine LED wenn es eine entsprechende Abweichung gibt und kann sogar nach Fehlern filtern.

Handhabung der Query

Nachdem die Query angelegt ist lohnt es sich abzurechende Projekte vorab per Query auszuwerten und in der Anzeige beziehungsweise einer Layoutvariante nach roten LEDs zu filtern. Auf diese Weise ist es möglich schon vor der Abrechnung etwaige Abweichungen zu identifizieren und zu verhindern. Ferner kann dieses auch hilfreich sein, entsprechende Abweichungen bei Kostenumlage (zum Beispiel durch die Plankostenumlage) zu korrigieren. Mit ein wenig Glück muss man dann nicht alle Zyklen stornieren (oder eine erneute Plankopie anfertigen) sondern kann dann in Höhe der Abweichung eine Plankorrektur vornehmen. Sofern eine Umlage im Ist erfolgt, kann hier auch das Thema "Segmentkorrektur in SAP" interessant sein.

Nebenbei beim Thema Umlagezyklen oder generell der kennzahlenbasierten Verrechnung sind auch die Artikel "Innenaufträge als Empfänger von Umlagezyklen (KSUB)" oder die Analyse von Kostenumlagen wie im Artikel "ReportWriter: Ergebnisse Planumlage (KSUB) je Partnerobjekt"  oder "Auswertung Statistische Kennzahlen auf Innenaufträge für Lehrimport und Lehrexport auf Ebene Studiengänge". Gerade im Controlling bietet sich hier aber neben der Query auch Report Writer beziehungsweise Report Painter als Analysewerkzeug an. Nach Möglichkeiten sollten aber Auswertungen, wie die hier beschriebene Überprüfung der Abrechnungsvorschrift genutzt werden um die doch sehr umfangreiche Suche nach Abrechnungsfehlern zu vermeiden.

Gerade bei einer Analyse von Einzelbelegen im Plan, wie im Artikel "CO Planeinzelposten Objekt und Partnerobjekt auswerten / Mehrere Felder summieren" beschrieben ist enorm aufwändig.

 

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. Wie erwähnt kann im Controlling auch das Thema "Grundlagen Kurzeinführung und Handbuch Report Painter Report Writer" sehr nützlich sein.




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


Samstag, 23. April 2016
22:04 Uhr

Teilen in SAP Query mit den Funktionen MOD und DIV zur Darstellung von Absolutwerten oder auch Restwert bei Divisionen

Nach den letzten Artikeln die mehr im Bereich Office (insbesondere Excel) angesiedelt waren und der für mich besonders erfreulichen Nachricht auf Facebook zum Tag des Buches (siehe folgenden Tweet von mir) mag ich im folgenden Artikel wieder einmal eine Fragestellung aus SAP Query aufgreifen.

Vorab eine kurze Twittermeldung zum Welttag des Buches in eigener Sache
Danach möchte ich auf das Thema "Regalflächen mit Verpackungseinheit bestücken und Dispositionsplanung durch Abrunden von Kapazität / Verpackungseinheit"

Mein Tweet zum Wochenende passend zum Weltbuchtag
Mittlerweile bietet Amazon auch eine Buchvorschau (Blick ins Buch), so dass sich neben der Buchvorstellung auf meiner Seite ein guter Einblick ins Buch möglich ist.

Nun aber zur eigentlichen Frage rund um eine Query aus den Bereich der Materialdisposition.

Ausgangslage

In einer Auswertung mit SAP Query sollen zwei Werte miteinander dividiert werden und das Ergebnis immer abgerundet werden. Da zwar Query erstellt werden dürfen, aber keine Berechtigung für Coding bei Zusatzfeldern gestattet ist, soll dieses in der Erstellung der Query geschehen. Im Ergebnis soll zum Beispiel 24 / 10 nicht 2,4 sondern 2,0 ergeben.

Als zusätzliche Hürde sollen alle Werte größer 1 müssen immer abgerundet werden, Werte die kleiner 0,9 sind müssen allerdings aufgerundet werden.

Betriebswirtschaftlicher Hintergrund Erstdisposition im Markt über Regalmenge und Verpackungseinheiten:

Im konkreten Beispiel geht es um die Simulation einer Erstdispotliste eines Marktes zu bis diese über ein Programm umgesetzt wird. Die Kapazität ( ist die maximale Regalmenge eines Artikels in Stück im Markt und die Verpackungseinheit (VE) entspricht den Standardgebinde der Ware. Das Ergebnis aus Kapazität / VE muss abgerundet werden, da keine halben Kollis geliefert bzw. ins Regal gesetzt werden und aufrunden nicht ginge, da ansonsten die maximale Regalmenge überschritten würde.

Alle Werte größer 1 müssen immer abgerundet werden, Werte die kleiner 0,9 sind müssen aufgerundet werden. Dieses ist inhaltlich auch verständlich, da ja mindestens eine Einheit bestückt beziehungsweise disponiert werden soll.

Technischer Aufbau der Query zur Dispositionsplanung:

Die Information zur maximalen Regalmenge wurde aus der Tabelle "MALG - Zuordnung von Layoutbausteinen zu Materialien" entnommen (Feld MALG-SHQNM "maximale Regalmenge) und die Verpackungseinheit aus der Tabelle "MARM - Mengeneinheiten zum Material" (Feld MARM-UMREZ "Zähler für die Umrechnung in Basismengeneinheiten") gegenübergestellt.

Die Query selbst wurde dabei technisch wie folgt aufgebaut:
Die Tabelle MARM wurde im Infoset mit der Tabelle "MAW1 - Materialstamm: Vorschlagsfelder und spezielle WWS-Felder" und einen Join der Felder MAW1-WAUSM ("Ausgabemengeneinheit") und MARM-MEINH ("Alternativmengeneinheit zur Lagermengeneinheit") miteinander verbunden.

Bedingt durch die Historie haben wird hier die Mengeneinheiten etwas kompliziert dargestellt und muss daher immer über die MARM ausgelesen werden um die tatsächliche Menge hinter der Basis/Kolli etc zu erhalten. Kurzer Hinweis: Die Query stammt nicht von mir aber ich fand diese zum Verständnis des technischen Hintergrund der Anforderung sehr praktisch und freue mich hier erstmals ein Beispiel aus den SAP Modul MM (Materialwirtschaft) beziehungsweise der Logitik schildern zu können. :-) Schon daher mag ich den fachlichen Austausch auch über das eigene Modul hinaus und freue mich, dass es verschiedene Plattformen gibt in der sich SAP Anwendende miteiander austauschen können.
 

Rundunsgfunktionen in Query

Nun stellt sich jedoch die Frage, wie in einer Quer gerundet werden kann. Während Report Writer  / Report Painter wie im Artikel "Reportwriter Funktionsformeln" beschrieben die beiden Formeln ROUND für normales Runden und TRUNC für den Ausweis einer ganzen Zahl anbietet, ist dieses leider bei lokalen Feldern nicht möglich. Allerdings gibt es hier zwei andere Funktionen beziehungsweise Formelbestandteile die zum gewünschten Ergebnis führen.
  •  DIV (ganzzahlige Division, d.h. das Ergebnis ist ganzzahlig)
  •  MOD (Restwert bei einer Division)
Hier liegt auch schon der Lösungsansatz.

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. Sofern wir uns noch in der Layoutpflege befinden kann über Zurück dorthin gewechselt werden.

Ü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:

MALG-SHQNM  -> KAP
MARM-UMREZ  -> VE

Diese Kurzbezeichnung sind notwendig, da wir auf diese dann Bezug nehmen, wenn wir ein eiegens Feld mit einer Formel anlegen.
Dieses geht über
BEARBEITEN->LOKALES FELD->ANLEGEN

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

Dabei kann dieses Feld die gleichen Eigenschaften wie VE oder KAP erhalten.

Für unser Beispiel legen wir insgesamt drei Felder an.
Der Einfachheit halber habe ich hier nur die Formel zum jeweiligen Feld mit angegeben, denke aber, dass das Prinzip insgesamt klar sein dürfte.

FELD1
Formel
KAP div  VE

FELD2
Formel
KAP mod VE

FELD3
Hier wird nun mit einer Bedingung gearbeitet.

Bedingung: FELD1 < 0.9
Formel: FELD1 +
Alternativ könnte man auch schreiben FELD_1 + 1
Sonst: FELD1

In der Grundliste wird tatsächlich nur das FELD3 ausgewiesen, so dass entweder das abgerundete FELD1 ausgibt, sofern die Division größere Werte als 1 hat oder alternativ die Menge 1 berechnet, wenn die Division kleiner als 1 wäre.

Zur Verdeutlichung bietet folgende Tabelle anhand einiger weniger Beispiele einen Überblick über die Rechenweise:
 
KAP VE FELD1
Formel DIV
 
FELD2
Formel MOD
 
FELD3
Bedingung
 
Excel/Mathe
Beispiel zur Verwendung von MOD und DIV in Query
 
15 6 2 3 2 2,5
8 4 2 0 2 2
4 5 0 4 oder 0? 1 0,8

Manchmal bietet auch die Query selbst Möglichkeiten ohne Programmierung etwas umfangreichere Formeln berechnen lassen. Wobei eine Weiterverarbeitung in Excel natürlich auch stets eine Möglichkeit ist ;-).
 

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. Sollten Sie sich für das Thema Report Writer / Report Painter näher interessieren, so ist dieses im Artikel "Grundlagen Kurzeinführung und Handbuch Report Painter Report Writer" ebenfalls beschrieben.




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


<< Frühere Einträge
Hinauf




Werbung


© 2004 - 2016 Andreas Unkelbach
Andreas Unkelbach

Stichwortverzeichnis
(Tagcloud)


Aktuelle Infos (Abo)

Facebook Twitter Google+

Schnelleinstieg ins SAP Controlling (CO) von Martin Munzel & Andreas Unkelbach
Privates

Kaffeekasse 📖 Wunschliste