Viele Unternehmen setzen heute auf die Verwendung von Standardsoftware, meist um Kosten zu sparen oder für den einfacheren firmenübergreifenden Datentransfer. Dennoch bewähren sich im Alltag weiterhin auch individuelle Software-Lösungen mit spezifischer, betrieblich notwendiger Funktionalität, welche oft nicht durch Standardsoftware abgedeckt werden kann. Auch solchen Lösungen muss aufgrund des technischen Fortschritts aber von Zeit zu Zeit ein neuer Anstrich verpasst werden.
Die Firma Asetronics AG stellt u.a. elektronische Baugruppen für Kunden her. Diese liefern der Asetronics Stücklisten mit Mengenangaben in unterschiedlichen Formaten an. Die sich auf den Stücklisten befindlichen Komponenten (z.B. Widerstände) werden mittels einer bestehenden Lösung mit Komponenten aus der internen Datenbank verglichen. Dabei werden u.a. Merkmale wie Widerstandswerte und Kondensatorkapazitäten berücksichtigt. Daraus ergibt sich eine neue Stückliste mit Preisen. Diese Liste kann anschliessend für die Erstellung einer Offerte verwendet und an den Kunden als solche zurückgesendet werden. Aufgrund verschiedener Probleme (u.a. mangelnde Benutzerfreundlichkeit, veraltete Technologie, Intransparenz) wurde für diesen Stücklistenumsetzungsprozess eine komplett neue Individuallösung erarbeitet. Als Technologien wurden .NET/C# (Desktop-Client) und MySQL (Datenbank) eingesetzt.
Die neue Anwendung ermöglicht das Einlesen von Stücklisten unterschiedlicher Formate (Excel, CSV, Text) und visualisiert diese in Tabellenform.
Es können drei Stammdatenbereiche verwaltet werden, welche für die Einschränkung und Umsetzung der Stücklisten benötigt werden. Nummernzuweisungen bilden die Beziehung zwischen Artikelnummer in der Komponenten-Datenbank (DB) und Kundenmaterialnummer ab, Kundendefinitionen dienen der Positionierung für die Kundenmaterialnummer und Textersetzungen spezifizieren einen zu suchenden Text mit dazugehöriger Ersetzung.
Zur Einschränkung der Tabelle können Zeilen und Spalten ein-/ausgeschlossen werden. Das bedeutet, dass diese bei der Umsetzung berücksichtigt/ignoriert werden. Eine Spalte kann zudem als Nummernspalte für die Komponentennummer des Herstellers bzw. des Kunden markiert werden. Zusätzlich können Textersetzungen auf eine Selektion von Spalten angewendet werden.
Für das Generieren der Offerte aus zu Zeilen der Stückliste passenden DB-Komponenten besitzt die Anwendung einen Suchalgorithmus mit drei Schritten. Im ersten Schritt wird geprüft, ob eine Kundenmaterialnummer-Spalte markiert wurde. In diesem Falle wird der Zellwert der Spalte direkt in den Nummernzuweisungen gesucht. Das Umsetzungsergebnis pro Zeile ist bei einem Treffer 100% und die Artikelnummer der DB-Komponente wird eingetragen, wodurch die Zeile in weiteren Schritten nicht behandelt werden muss. Der zweite Schritt stellt sinngemäss eine Wiederholung des ersten Schritts dar, nur wird jetzt die DB nach Herstellernummer durchsucht. Für einen Treffer muss der Zellwert zu 75% übereinstimmen (Anfang der Herstellernummer). In einem dritten Schritt wird in der DB nach Merkmalen (z.B. Ohm-Wert) gesucht. Dazu wird der Text in allen eingeschlossenen Zellen berücksichtigt. Aufgrund der Vielfalt an möglichen Schreibweisen in Stücklisten beschränken sich die Suchmuster auf Merkmale von Widerständen und Kondensatoren. Für diesen Schritt gibt es bis zu fünf Ergebnisse mit einem Prozentwert abhängig von den getroffenen Merkmalen, wovon einer der Vorschläge ausgewählt werden kann. Ausserdem können zu einer Zeile Artikel gesucht und manuell zugewiesen werden.