Statistik-Aufbau

Dieser Menüpunkt dient zum Erzeugen von Einzelnachweisdaten, die die Grundlage für die Statistik bieten. Die Einzenachweisdaten enthalten alle Umsatzdaten in einzelnen Komplett-Datensätzen (wohingegen die Lieferschein-Daten in Kopf- und Positiondaten aufgesplittet sind) in einer gemeinsamen Tabelle für Lieferscheine und Gutschriften. Zur Auswertung der Einzelnachweise gibt es ein separates Produkt "CIB-Statistik", das auf Excel-basiert ist.

Ursprünglich gab es eine weitere Möglichkeit, um monatsweise verdichtete Umsatzdaten, die zur schnelleren statistischen Auswertung (als es bei direktem Zugriff auf Lieferscheindaten möglich wäre) zu erzeugen. Es ist derzeit jedoch keine Weiterverarbeitung dieser Statistikdaten vorgesehen. Daher ist diese Funktion momentan deaktiviert.

Die Abarbeitung erfolgt durch ein SQL-Skript. Das Skripte muss auf dem Beton.NET-Server in einem Unterverzeichnis "Skripte" bereitstehen. Der Dateiname des Skripts lautet "ENachweis.sql". Das Skript wurden zusammen mit der Beton.NET-Anwendung vom Entwickler bereitgestellt und wird möglicherweise gelegentlich an Neuerungen angepasst. Das Skript ist so gestaltet, dass es auch direkt (ohne Verwendung der Beton.NET-Anwendung) mit einem skriptverarbeitenden Tool ausgeführt werden kann. Es sind dazu jeweils minimale, im Skript kommentierte Anpassungen vorzunehmen, wie Datenbankname, Mandant, Auswertungs-Monat. Es gibt separate Skripte je Datenbanktyp: Microsoft-SQL-Datenbank, Oracle-Datenbank, My-SQL-Datenbank (Die letzteren sind noch nicht an die neuesten Programm- und Datenbankänderungen angepaßt). - Das Skript zur deaktivierten Statistikerzeugung ist noch vorhanden, wird aber nicht benutzt.

Eine Kopierfunktion in diesem Fenster dient dazu, um die Skripte bei Bedarf vom (lokalen) Client in das vorgesehene Verzeichnis auf dem Beton.NET-Server zu plazieren oder von dort zurückzuholen.

Das Programm verwendet das bereitstehende Skript indirekt, indem einige im Skript enthaltene Werte abhängig von der Benutzerauswahl angepasst werden. Die daraus entstehende SQL-Befehlsfolge wird als sogenannte "gespeicherte Prozedur" in der Datenbank abgelegt und dort ausgeführt. Bei monatsweisem Statistik-Aufbau/Einzelnachweis geschieht diese Aktion je Monat mehrfach nacheinander; dadurch ist eine Fortschrittsanzeige über die bearbeiteten Monate hinweg möglich. Beim Gesamtaufbau geschieht dies in einem Schritt, dann zwar ohne Fortschrittsanzeige, aber möglicherweise trotzdem schneller als einzeln über mehrere Monate.
Zu Kontrollzwecken können Sie die letztverwendete gespeicherte Prozedur in der Datenbank zum Beispiel mit dem Entrerprise-Manager in Augenschein nehmen und sogar unabhängig von Beton.NET variieren und mit einem EXECUTE-Befehl vom Quary-Analyzer aus erneut ausführen. Sie können auch die temporären Zwischentabellen mit den Namen "#temp1" bzw."#temp2" auf permanente Tabelen kopieren lassen und dann auswerten, wenn Sie sich mit der Funktion der Skripte vertraut machen. Das Skript "ENachweis" für die Microsoft-SQL-Datenbank wird zur Ausführung in drei Teilprozeduren zerlegt, da Prozeduren keinen GO-Befehl enthalten dürfen, die Ausführung in Teilschritten aber zwingend notwendig ist. Die beiden Unterprozeduren werden von der Hauptprozedur aus aufgerufen.

Die Skripte können durchaus verändert werden, wenn die darin speziell gekennzeichneten Stellen erhalten bleiben, die vom Programm für Anpassungen benötigt werden.

Anpassen der Feldfolge
Der Einzelnachweis enthält die Daten der Tabellen LSCHEIN und LSCHEIN2 für Lieferscheine sowie der gleichaufgebauten Tabellen GUTSCH und GUTSCH2 für Vergütungen. Das Skript erzeugt die Sätze in ENACHW zeiteffektiv und allgemeingültig durch Sql-Befehle der Form SELECT * INTO ... beziehungsweise INSERT INTO ... SELECT * ... , ohne die Felder einzeln vorzugeben. Diese Befehle erfordern eine gleiche Feldfolge in den Herkunfts- und in der Zieltabelle. Falls die Feldfolgen nicht zusammenpassen, funktioniert das Skript nicht. Das könnte zum Beispiel vorkommen, wenn durch eine Software-Weiterentwicklung Felder in den Lieferscheintabellen hinzugekommen sind. Daher prüft das Programm beim Öffnen des Fensters auf übereinstimmende Feldfolgen und bricht notwendigenfalls mit einer Warnung ab. Sie müssen dann entweder die Tabelle ENACHW löschen oder die Feldfolgen mit einem Sql-Werkzeug anpassen. Unterscheiden Sie hierbei folgende Fälle: 1. Der Aufbau der Tabellen LSCHEIN/LSCHEIN2 und GUTSCH/GUTSCH2 muss bezüglich der Reihenfolge der Felder und der Feldtypen paarweise exakt übereinstimmen. 2. Die Tabelle ENACHW muss die Felder der beiden Tabellen LSCHEIN und LSCHEIN2 aneinandergereiht in derselben Reihenfolge enthalten, wobei doppelte Felder (wie MANDANT, LNUMMER, DATUM, AENDERDAT und so weiter) jeweils beim zweitmaligen Auftreten (also aus LSCHEIN2) entfallen. Zusätzlich muss zwischen den Feldern aus LSCHEIN und aus LSCHEIN2 ein weiteres Feld (HERKUNFT) vorhanden sein, und nach den LSCHEIN2-Feldern folgen noch drei Felder für Zwischenberechnungen (PGRUPPE, PMENGKZ, STATISTIK), zwei Felder für die Datensatz-Zuordnung (LNUMMER2, DATUM2) und vier Ergebnisfelder (STMENGE, STPMENGE, STWERLOES, STFERLOES).

Hinweise zu einzelnen Datenfeldern
Zur Verwendung der erzeugen Daten in einer Excel-Auswertung muss man die Bedeutung der Felder kennen. Die Bedeutung vieler Felder lässt sich aus dem Feldnamen erschließen, insbesondere wenn man mit den Eingabefeldern des Fensters "Lieferscheine bearbeiten" vergleicht. Manche weitere Felder werden erst beim endgültigen Erstellen der Rechnungen belegt, zum Beispiel die Erlöse, Konten und Kostenstellen, Endrabatte, getrennt nach Warenanteil, Verpackungsanteil und Frachtanteil, z.B. WERLOES, VERLOES, FERLOES. Einige zusätzliche Felder werden erst durch dieses Skript belegt, z.B. diejenigen Mengen- und Erlösanteile, die statistisch relevant sind: STMENGE, STWERLOES UND STFERLOES, sowie die Herkunft des Datensatzes (aus Lieferschein/Vergütung).

Bei der Auswertung müssen Sie sich über die Bedeutung im Klaren sein. Sie Differenz von WERLOES - ENDRABATTW ergibt zum Beispiel den Verkaufs-Warenerlös; die Differenz von STWERLOES - ENDRABATTW ist in jedoch diesem Sinne unexakt, weil der Minuend bezüglich des Statistikeinflusses angepasst ist, der Subtrahend jedoch nicht.