docs/ps-bericht-maka

view Montis.tex @ 0:f3982c724ecf

initial commit
author markus schnalke <meillo@marmaro.de>
date Sun, 15 Apr 2007 02:44:56 +0200
parents
children
line source
1 \section{Das Montageinformationssystem}
4 Das Programm ist nach Konzept deutlich umfangreicher, es wurde allerdings beschlossen, dass zum jetzigen Zeitpunkt nur ein Teil dessen umgesetzt werden sollte. Dies sind die beiden Reiter:
5 \begin{itemize}
6 \item Fehlteilmanagement
7 \item Liefertreue
8 \end{itemize}
10 Der Aufwand dafür wurde dadurch verringert, dass beide Programmteile auch schon im Einkaufsinformationssystem implementiert waren. Die Liefertreueanalyse von meinem Vorgänger das Fehlteilmanagement von mir. Somit war das reine Programmieren der Reports nicht das große Problem --- sie mussten zum großen Teil nur angepasst und mit anderen Daten versorgt werden.
12 \begin{figure}[hbt]
13 \centering
14 \includegraphics[width=10cm]{Pics/montis-liefertreue-maske.png}
15 \caption{Maske der Liefertreueanalyse im MontIS}\label{Fig:montis-liefertreue-maske}
16 \end{figure}
18 Inzwischen kannte ich mich schon ganz gut mit der Datenbank des ERP-Systems und dem DBSRV-Framework aus und so war es gut, dass ich nun mit einem neuen Programm auch selbst neue Strukturen aufbauen konnte. Inzwischen hatte ich die Probleme und Umständlichkeiten des Einkaufsinformationssystems kennengelernt und wollte an diesen Stellen das MontIS besser machen.
20 Ich nahm mir also Zeit um mir ein Grundgerüst zu bauen, das allgemein und skalierbar genug war um die einzelnen Reports dann ohne viel Anpassung der Programmbasis einbauen zu können. Auch habe ich zu diesem Zeitpunkt angefangen mir Klassen für wiederkehrende Anforderungen zu schreiben. Eine Datenbankklasse und eine zur Handhabung und Ausgabe von Ergebnistabellen seien hier erwähnt.
22 An denen Punkten meiner neuen Struktur, an denen ich keine überzeugende Lösung finden konnte, habe ich auf die alten Strukturen aus dem EIS zurückgegriffen. So konnte ich kreativ neue Ansätze einarbeiten, hatte jedoch jederzeit auch eine funktionierende (wenn auch nicht immer gute) Implementierung als Fallback zur Verfügung. Mein Montageinformationssystem wurde dann zu eben jener Mischung aus Neuem und Altem und entspricht der Entwicklung meiner Fähigkeiten.
24 Auch bot das MontIS eine bessere Übersicht und Handhabbarkeit die das, meiner Meinung nach, etwas überladene Einkaufsinformationssystem missen ließ.
27 Das Fehlteilmanagement entspricht dabei in den meisten Punkten dem des EIS. Die Liefertreueanalyse dagegen möchte ich näher vorstellen.
32 \subsection{Liefertreueanalyse}
34 Die Optik und Struktur des Reports wurden sein Gegenstück aus dem Einkaufsinformationssystem angelehnt. Die Anpassungen waren eher Restrukturierungen des Source-Codes, und die andere Datenbasis natürlich.
36 Hier hatte ich nun auch Gelegenheit mich mit den Diagrammklassen des \textit{jpgraph}-Pakets zu beschäftigen. Zwei damit erstellt Diagramme stellen auf der ersten Seite des Reports die grundsätzlichen Verteilungen auf einfach erfassbare Weise dar.
38 \begin{figure}[hbt]
39 \centering
40 \includegraphics[width=14cm]{Pics/montis-liefertreue-analyse.png}
41 \caption{Liefertreueanalyse der Montage}\label{Fig:montis-liefertreue-analyse}
42 \end{figure}
44 Im linken oberen Bereich zeigt ein Balkendiagramm die Lieferdatumsabweichungen der Fertigung über die letzten 13 Monate an. Um eventuell Beeinflussungen durch die Auftragsmenge erkennen zu können wurde die Anzahl der Aufträge und deren Umsatz als Linien im Hintergrund ebenfalls dargestellt. Die flache rote Linie zeigt dabei die Anzahl der kurzfristig angelegten Aufträge die somit kaum geplant werden können.
46 Darunter befinden sich zwei Kuchendiagramme die Gesamtverteilungen für das laufende und vorherige Jahr anzeigen.
48 Auf der rechten Seite sind diese Werte noch einmal als Absolut- und Prozentzahlen verfügbar.
51 Die Zeiträume in denen Lieferungen als ``zu früh'', ``pünktlich'', ``zu spät'' und ``viel zu spät'' gewertet werden, sind in einer Includedatei global für das ganze Programm festgelegt und werden in den Reports dann dynamisch von dort bezogen. Ich habe stets darauf geachtet \textit{Magic Numbers}\footnote{\textit{Magic Numbers} sind hier feste Zahlen im Code die nicht 0 oder 1 sind} zu vermeiden und solche Werte immer dynamisch und zentral zu beziehen.
54 Für das laufende und vorige Jahr ist je ein Drilldown verfügbar der zu einer Monatssummenübersicht führt. In dieser lassen sind nun ganz konkret alle einzelnen Lieferpünktlichkeiten und Monate aufschlüsseln - jede Kombination und die jeweiligen Summen.
56 \begin{figure}[hbt]
57 \centering
58 \includegraphics[width=10cm]{Pics/montis-liefertreue-msummen.png}
59 \caption{Monatssummendrilldown der Liefertreueanalyse}\label{Fig:montis-liefertreue-msummen}
60 \end{figure}
62 Jede unterstrichene Zahl führt weiter auf einen Drilldown mit genau diesen Aufträgen.
64 Man sieht die Vorlaufzeit\footnote{Hier die Zeit zwischen Anlagedatum und geplantem Lieferdatum. Normalerweise würde man aber nur die Zeit von Anlage bis zum geplanten Montagebeginn als Vorlaufzeit bezeichnen} welche rot hinterlegt ist, falls sie kürzer als sieben Tage ist. In diesem Fall würde man sie als ``Schnellschüsse'' bezeichnen. Diese Schnellschüsse entsprechen der, im Balkendiagramm auf der ersten Reportseite enthaltenen, roten Linie.
66 Der zweite entscheidende Wert ist die Abweichung zwischen geplantem und tatsächlichem Lieferdatum, die mit den bekannten Farben in die vier Zeiträume aufgeteilt ist.
68 \begin{figure}[hbt]
69 \centering
70 \includegraphics[width=10cm]{Pics/montis-liefertreue-drilldown.png}
71 \caption{Detaillierter Drilldown auf einzelne Aufträge}\label{Fig:montis-liefertreue-drilldown}
72 \end{figure}
74 Wie alle größeren Tabellen in meinen Programmen wurde diese mithilfe meiner selbst geschriebenen \texttt{Ergebnisklasse.class.php} gefüllt, sortiert und ausgegeben. Wie man an den Pfeilen in der zweiten Titelzeile sieht, kann diese Tabelle nach jeder beliebigen Spalte sortiert werden. Diese Funktionalität war dank der Klasse mit minimalem Mehraufwand möglich und wurde deshalb auch konsequent verwendet.
79 \subsection{Suchprofile}
81 Wie bereits in einem anderen Programm auf dem DBSRV implementiert, sollte auch das Montageinformationssystem \textit{Suchprofile} zur Verfügung stellen. Dabei handelt es sich um die Möglichkeit eine ausgefüllte Maske abzuspeichern und jederzeit wieder aufzurufen. So können bestimmte Reports ohne erneutes Ausfüllen der Maske nochmal aufgerufen werden. Ein Beispiel dafür wäre eine Abfrage die sich nur auf eine bestimmte Untermenge von Produktionsaufträgen und Artikelnummern bezieht.
83 Als der Wunsch aufkam dieses Feature ins MontIS einzubauen, war es für mich ein tolles Gefühl festzustellen, dass sich meine Grundstruktur nun auszahlte. In ein paar Stunden war es mir möglich die Funktionalität komplett einzubauen ohne größere Änderungen am Programm vornehmen zu müssen. Gleichzeitig konnte ich die Realisierung flexibel und skalierbar halten. So ist es nun möglich beliebig neue Enschränkungsfelder zur Maske hinzuzufügen oder wegzunehmen --- an den Suchprofilen muss dazu nichts verändert werden. Ebenso funktionieren auch alte gespeicherte Profile mit neuen Masken.
85 Würde man die gleiche Funktionalität im Einkaufsinformationssystem einbauen möchten, so würde es wohl mehrere Tage in Anspruch nehmen und wäre doch deutlich statischer.
87 \begin{figure}[hbt]
88 \centering
89 \includegraphics[width=4cm]{Pics/montis-suchprofile.png}
90 \caption{Menü für Suchprofile}\label{Fig:montis-suchprofile}
91 \end{figure}
96 Nach Abschluss des Einkaufs- und des Montageinformationssystems folgte ein komplett anderes Projekt: Die Reimplementierung der Translator-Datenbank in PHP und MySQL.