annotate Eis.tex @ 2:c3c273cd81af default tip

added output file
author markus schnalke <meillo@marmaro.de>
date Sun, 15 Apr 2007 02:46:48 +0200
parents f3982c724ecf
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
1 \section{Das Einkaufsinformationssystem}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
2
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
3
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
4 Dieses Programm umfasst Reports aus den Bereichen
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
5 \begin{itemize}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
6 \item Lieferantenanalysen
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
7 \item Artikelanalysen
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
8 \item Tagesgeschäft
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
9 \item Fehlteilmanagement
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
10 \end{itemize}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
11 Die ersten zwei Bereiche wurden von meinem Vorgänger schon fertig gestellt. Das Tagesgeschäft war meine erste Aufgabe.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
12 Es war gut an einem bereits begonnen Programm weiterzumachen, da das im Normalfall einfach als selbst von Grund auf Entwerfen ist. Gerade wenn man sich mit dem System noch nicht besonders gut auskennt.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
13
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
14
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
15
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
16
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
17
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
18
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
19 \subsection{Tagesgeschäft}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
20
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
21 \begin{figure}[hbt]
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
22 \centering
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
23 \includegraphics[width=10cm]{Pics/eis-tagesgeschaeft.png}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
24 \caption{Die Eingabemaske des Tagesgeschäft-Programmteils}\label{Fig:eis-tagesgeschaeft}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
25 \end{figure}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
26
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
27 Der Reiter \textit{Tagesgeschäft} enthält im oberen Bereich Formularfelder mit denen die Daten eingeschränkt werden können. Auf diese Weise kann zum Beispiel nur ein bestimmter Lieferant, oder nur eine Gruppe von Artikeln betrachtet werden. Einzelne Einschränkungsfelder sind je nach gewähltem Report eventuell auch deaktiviert. So macht zum Beispiel beim \textit{Herstellkosten-Check}\footnote{Eine Auflistung von Artikeln deren Soll-Herstellkosten oder letzter Einkaufspreis mehr als 5\% von den Standard-Herstellkosten abweichen} eine Einschränkung nach Lieferant oder Einkäufer keinen Sinn, da hier die Artikel ohne sonstigen Zusammenhang betrachtet werden.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
28
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
29 Bei den Bestellnummernkreisen können beliebig weitere hinzugefügt werden. Bei Lieferant und Einkäufer kann über eine Suchfunktion die Lieferanten-/Einkäufer-Nummer anhand des Namens ermittelt werden. Und bei manchen Reports können die Datensätze zeitlich begrenzt werden.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
30
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
31 Ich möchte nun zwei Reports näher vorstellen.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
32
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
33
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
34
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
35 \subsubsection{Bestellobligoanalyse}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
36
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
37 Dieser Report stellt eine übersichtliche Darstellung der auf das Unternehmen zukommenden Kosten im Bereich Einkauf bereit.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
38 Die Analyse bezieht sich erst einmal auf Kalenderwochen, aber Monatssummen sind vorhanden. Zudem sind für alle Zeiträume Drilldowns auf die konkreten Bestellungen vorhanden. Es wird also eine Bestellobligoübersicht für alle Detailstufen angeboten.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
39
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
40 \begin{figure}[hbt]
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
41 \centering
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
42 \includegraphics[width=10cm]{Pics/eis-bestellobligo.png}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
43 \caption{Die Bestellobligoanalyse}\label{Fig:eis-bestellobligo}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
44 \end{figure}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
45
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
46 %\begin{figure}[hbt]
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
47 % \centering
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
48 % \includegraphics[width=14cm]{Pics/eis-bestellobligo-drilldown.png}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
49 % \caption{Drilldown bei der Bestellobligoanalyse}\label{Fig:eis-bestellobligo-drilldown}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
50 %\end{figure}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
51
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
52 Im Drilldown zeigt ein Klick auf einen Lieferantennamen seine Kontaktdaten an.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
53
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
54
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
55
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
56 \subsubsection{Reale Wiederbeschaffungszeit}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
57
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
58 In diesem Report kann die tatsächliche (reale) Wiederbeschaffungszeit mit der, im Artikelstamm abgelegten, geplanten Wiederbeschaffungszeit verglichen werden. Bei größeren Abweichungen, die farblich hervorgehoben sind, können dann die Artikelstammdaten korrigiert werden. Falls dies nicht gemacht würde, würde es im, vom ERP-System generierten, Produktionsplan zu Wartezeiten und Verschiebungen kommen. Um die Zeitplanung im Produktionsplan möglichst optimal zu halten (Stichwort ``Just-in-time'') müssen die benötigten Daten natürlich auch möglichst exakt sein.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
59
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
60 Aber auch in der Beziehung zum Lieferant sind die reale Wiederbeschaffungszeit und ihre Abweichung zur Geplanten wichtige Daten. Mit einer anschaulichen Übersicht kann hier beim Lieferant ein gewisser Druck ausgeübt werden, falls er seine `versprochenen' Lieferzeiten nicht einhält. Oft ist bei Gesprächen mit dem Lieferant die reine Präsenz dieser Daten und ihre sofortige und detaillierte Abrufbarkeit, der entscheidende `Trumpf'.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
61
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
62 Wenn Artikel von verschiedenen Lieferanten bezogen werden, dann lassen sich diese sehr schön gegenüberstellen. Und gegen die Fakten aus Abbildung \ref{Fig:eis-realewbz-drilldown} muss der untere Lieferant erst einmal etwas sagen.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
63
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
64 \begin{figure}[hbt]
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
65 \centering
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
66 \includegraphics[width=10cm]{Pics/eis-realewbz-drilldown.png}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
67 \caption{Wiederbeschaffungszeiten eines Artikels von zwei Lieferanten}\label{Fig:eis-realewbz-drilldown}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
68 \end{figure}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
69
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
70
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
71
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
72
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
73
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
74
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
75
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
76
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
77
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
78 \subsection{Fehlteilmanagement}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
79
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
80 \begin{figure}[hbt]
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
81 \centering
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
82 \includegraphics[width=10cm]{Pics/eis-fehlteilmanagement.png}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
83 \caption{Startmaske des Fehlteilmanagements}\label{Fig:eis-fehlteilmanagement}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
84 \end{figure}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
85
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
86 Dieser Programmteil zeigt die momentanen Fehlteile und alle dafür laufenden Bestellungen auf.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
87
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
88 Als erstes wir eine Liste mit allen Projekten in denen noch Teile fehlen generiert. Von dieser kann je ein Drilldown mit einer Gruppierung nach Lieferanten oder nach Baugruppen aufgerufen werden. Die beiden Drilldowns bieten dabei leicht unterschiedliche Funktionen.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
89
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
90 Da das Fehlteilmanagement mich recht lange beschäftigt hat und auch im Montageinformationssystem integriert ist, möchte ich hier etwas genauer darauf eingehen.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
91
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
92 Anzumerken wäre hier vielleicht noch, dass das Fehlteilmanagement auch die komplizierteste Datenbeschaffung hatte --- Joins über zwölf Tabellen, ebensoviele Where-Bedingungen und eine getrennte Behandlung von kundenspezifischen und Standardartikeln. Hier hatte ich dann auch Performanceprobleme die nun zwar nicht ganz verschwunden, aber inzwischen in einem erträglichen Rahmen sind. Im Nachhinein gesehen, wäre es vielleicht besser gewesen, einfacheres SQL und dafür komplexeres PHP zu verwenden. Inwiefern die Geschwindigkeit dabei gestiegen (und die Lesbarkeit des Codes eventuell gesunken) wäre, darüber kann ich nur spekulieren.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
93
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
94
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
95 \subsubsection{Drilldown nach Lieferanten}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
96
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
97 Die Tabelle ist logisch dreigeteilt:
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
98 \begin{itemize}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
99 \item Die linken acht Spalten (bis zur senkrechten schwarzen Linie) enthalten Daten zum Artikel selbst.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
100 \item Die nächsten vier Spalten stellen die Bestellung dar. Laufen mehrere Bestellungen die auf diesen Artikel passen, so werden sie allen angezeigt. Das Lieferdatum ist rötlich hinterlegt, falls die Bestellung erst nach dem benötigten Datum eintreffen würde.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
101 \item Die letzten Spalten ermöglichen es den Einkäufern zusätzliche Informationen zu den Bestellungen einzutragen und sich selbst an Bestellungen erinnern zu lassen.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
102 \end{itemize}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
103
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
104 \begin{figure}[hbt]
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
105 \centering
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
106 \includegraphics[width=14cm]{Pics/eis-ftm-drilldown-lieferanten.png}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
107 \caption{Drilldown nach Lieferanten im Fehlteilmanagement}\label{eis-ftm-drilldown-lieferanten}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
108 \end{figure}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
109
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
110 Dieser dritte Tabellenteil verbindet dann auch das Einkaufs- mit dem Montageinformationsystem. Denn die eingetragenen Notizen können über das Montageinformationssystem abgerufen werden. Eingetragene verschobene Liefertermine oder bereits vollzogenen Mahnungen ersparen so manchen Anruf.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
111
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
112 Mit der \textit{Erinnerung in X Tagen} kann man sich in einer selbst gewählten Anzahl von Tagen eine Erinnerung zukommen lassen. Diese wird von einem Job automatisch per Email verschickt.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
113 Die Email-Adressen wurden dabei über eine Abfrage des LDAP-Verzeichnises gewonnen.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
114
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
115 Am Anfang der Seite und über jeder Baugruppe befindet sich ein Link mit dem ein PDF-Dokument der ganzen Seite oder nur der einzelnen Baugruppe erzeugt werden kann. Dieses ist besser zum Ausdrucken geeignet und kann problemlos per Email verschickt werden.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
116 PDFs habe ich mit der FPDF-Bibliothek\footnote{\textit{FPDF} ist Freeware und auf http://fpdf.org zu finden.} erstellt. Die einzige Schwierigkeit dabei war das Überführen eines (eher) fließenden Layouts in HTML in ein Layout mit absoluten Maßen im PDF. Größere Probleme gab es dabei allerdings nicht.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
117
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
118
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
119
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
120 \subsubsection{Drilldown nach Baugruppen}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
121
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
122 \begin{figure}[hbt]
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
123 \centering
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
124 \includegraphics[width=14cm]{Pics/eis-ftm-drilldown-baugruppen.png}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
125 \caption{Drilldown nach Baugruppen im Fehlteilmanagement}\label{eis-ftm-drilldown-baugruppen}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
126 \end{figure}
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
127
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
128 Die Aufteilung der Tabelle entspricht der im Lieferantendrilldown.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
129
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
130 Anders sind hingegen die letzten Spalten. Der Drilldown nach Baugruppen stellt hier so etwas wie das Gegenstück zum Drilldown nach Lieferanten dar. Die Bemerkungen können hier nur gelesen werden, dafür können Aufforderungen zurück an die Einkäufer geschickt werden, dass sie ihre Bestellungen überprüfen sollten.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
131
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
132 Funktionen wie diese gehen über das ursprüngliche Programmkonzept hinaus. Sie sind erst im Laufe der Programmentwicklung aufgekommen und herangereift. Es war häufig so, dass das Programm erst mit dem Programmieren gewachsen ist und seine endgültige Gestalt bekommen hat. Dies war vor allem durch den engen Kontakt mit den Anwendern möglich. Sie haben jede Programmversion direkt getestet und mir Verbesserungen, Anregungen und Wünsche mitgeteilt. Mir hat es gut gefallen, auf diese Weise Programme zu ``erarbeiten''.
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
133
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
134
f3982c724ecf initial commit
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
135 An dieser Stelle möchte ich nun zum Montageinformationssystem (kurz \textit{MontIS}) überleiten.