eBusiness-Praxis für den Mittelstand.

3 Implementierung BMEcat Umfang BMEcat, Erzeugen von Katalogen, Katalog-Import, Print-Kataloge

Durchführung geplant für November 2006
Start 31.10.2006
Ende 30.04.2007

Stand: 30.04.2007
abgeschlossen abgeschlossen
erfolgreicher Verlauf erfolgreicher Verlauf
Zeitverz?ung Zeitverzögerung

BMEcat_T_NEW_CATALOG implementiert

eCl@ss wurde im Bereich PRODUCT_FEATURES berücksichtigt.


Folgende Berichte aus dem Projektverlauf liegen vor:
31.12.2006: Festlegung des verwendeten Umfangs von BMEcat

Systec realisiert im Rahmen dieses Projektes nur den vollständigen Katalog T_NEW_CATALOG. Der Katalog dient auch der Kommunikation mit den tschechischen Fertigern. Diese benötigen unter anderem Informationen über Hersteller und Lieferanten der verwendeten Bauteile. Das Unternehmen wird daher grundsätzlich Systec als Herausgeber benennen um
weitere Lieferanten angeben zu können. Bei Eigenfertigungsteilen ist natürlich Systec auch Lieferant.

Unter FORMULA wird eine Formel für Staffelpreise definiert. Hier können bis zu 6 mengenabhängige Preise und/oder Rabattsätze angegeben werden. Dies entspricht den bisherigen Möglichkeiten im PPS.

Unter AREA wird EU definiert.

In BMEcat lassen sich Produkt und Lieferant nicht trennen. Daher muss für jeden Lieferanten jeweils der Bereich Produkt übertragen werden. Systec definiert hier, dass zu jedem Produkt ein Satz mit dem Lieferanten „Systec“ übertragen wird. In diesem Satz stehen alle allgemeinen Angaben zu dem Produkt. Gibt es weitere Lieferanten, werden die in einem weiteren PRODUCT-Bereich übertragen. Dabei entfallen aber alle
nicht-MUSS-Elemente allgemeiner Art, es werden nur die lieferantenspezifischen Werte angegeben. Bei den einzelnen Produkten finden sich jeweils Abschnitte zu User-spezifische Erweiterungen.

Obwohl man auch im Standard-BMEcat Stücklisten abbilden kann, hat Systec sich dafür entschieden, dies innerhalb einer eigenen Erweiterung zu tun. Das resultiert insbesondere daraus, dass man sonst
nur die eigentliche Relation zwischen den Teilen, lediglich mit Menge und Anmerkung angeben kann. Eine Stücklisten-Position könnte daher nur innerhalb der BMEcat-Anmerkung zusammen mit der Stücklistenanmerkung übertragen werden und ist dabei nicht einfach separierbar.

Auch sollte die Möglichkeit der Übertragung von Fertigungsaufträgen möglich sein. Dies sind eigentlich auch nur Stücklisten, haben aber noch mehr einzelne Elemente, z.B. die bereits entnommene Menge.

In dieser User-spezifischen Erweiterung können eine beliebige Anzahl Stücklisten und / oder ein Fertigungsauftrag verwendet werden. Diese Erweiterung ist im HEADER angesiedelt. Dies betrifft aber nur die
Zusammenarbeit mit unseren Fertigern, mit denen diese Erweiterung abgesprochen werden kann. Normale Kataloge enthalten keine userspezifischen Erweiterungen.

Entsprechend dem BMEcat-Schema wird Systec (Kann-)Elemente bei leeren Werten nicht ausgeben, da hier meist ein Wertebereich von minimal 1 Zeichen vorgegeben ist, sie also nicht leer sein können. Muss-
Elemente können natürlich nicht entfallen, aber auch hier kommt es vor, dass aus dem PPS kein Wert zur Verfügung steht. In diesem Fall wird als Wert "[unknown]" eingesetzt.


Das Element LANGUAGE aus BMEcat fordert die Sprachangabe nach ISO 639-2 als 3-stelligen Code, also ‚deu' für deutsch. Der Sytstec Firmen Standard ist hier der 2-stellige Code ‚de' nach ISO 639-1. Das erfordert eine zusätzliche Transformation.

Zuordnungsprobleme: Im Anwendungsfall hat Systec keine einfache Beziehung zwischen Lieferant und Einkäufer, vielmehr wechseln diese Rollen und es sind weitere Lieferanten beteiligt. Es muss daher klar definiert werden, auf wen sich die einzelnen Elemente beziehen. Hier geht es insbesondere um die zum Teil mehrfach vorkommenden Elemente
SUPPLIER_IDREF und BUYER_IDREF. Systec definiert im HEADER SUPPLIER_IDREF generell als Systec und BUYER_IDREF als den Geschäftspartner von Systec. Eigentlich ist in der Anwendung der Partner der Lieferant und Systec der Einkäufer, aber dies entspricht der üblichen Verwendung in einem BMEcat Katalog und ist im Gesamtzusammenhang logischer.

Beim Element PARTY_ROLE definiert Systec hingegen
type="buyer" wie oben als den Geschäftspartner von Systec
type="document_creator" als Herausgeber Systec. Hingegen benutzt Systec
type="supplier" nur für weitere Lieferanten beteiligter Produkte.
type="manufacturer" kennzeichnet den Hersteller.

Ausgehend von der üblichen Situation bei den Teilen bedeutet Hersteller nicht automatisch auch Lieferant. Herstellerangaben helfen vielmehr zur eindeutigen Beschreibung eines Produktes - beschaffbar sind Produkte jedoch nur bei Lieferanten. Falls ein direkter Einkauf beim Hersteller möglich ist, muss dieser zusätzlich auch als Lieferant gekennzeichnet sein. Dies gilt z.B. für alle Teile, die nach Konstruktion gefertigt werden.

Im Produktbereich gibt es auch eine kleine Umdefinition des Element Inhalts von SUPPLIER_PID und BUYER_PID. Systec benutzt diese Element anders, SUPPLIER_PID beinhaltet grundsätzlich die Systec Teile-Nr. Die Artikel-Nr. des Lieferanten aus SUPPLIER_IDREF wird hingegen unter BUYER_PID angegeben. Damit ist es einfacher, zu einem bestimmten Teil alle Lieferanten zu selektieren.

Außerdem behebt es das Problem, dass eine Artikel-Nr. des Lieferanten nicht immer vorliegt, dies aber ein Muss-Feld von BMEcat ist, dessen Wert auch nicht leer sein darf.

Es gibt 2 Elemente für die Einheit eines Produktes: ORDER_UNIT und
CONTENT_UNIT. Systec benutzt diese in der Form, dass in
CONTENT_UNIT immer die Einheit steht, die Systec verwendet. In
ORDER_UNIT dagegen steht die Einheit, die der jeweilige Lieferant für diesen Artikel verwendet. Falls diese Einheiten unterschiedlich sind, muss im Feld NO_CU_PER_OU ein Umrechnungsfaktor angegeben
werden.

31.12.2006: Erzeugen von Katalogen aus einer Teilmenge PPS-Teile

Es wurde eine neue Eingabe-Maske in Form eines Wizards innerhalb des PPS erstellt, über die im ersten Schritt eine Teilmenge von PPS-Teilen ausgewählt werden kann. Die Auswahl kann erfolgen als Eingabe eines einzelnen Teils, Auswahl einer Stückliste, Auswahl eines Fertigungsauftrages, Auswahl einer Einkaufs-Bestellung oder Wahl einer frei erstellten Liste. Diese Liste enthält nur eine beliebige Anzahl von Teile-Nummern. Sie kann im Format VisualFoxPro z.B. als Ergebnis einer beliebig komplexen SQL-Abfrage oder als einfache Textdatei vorliegen. Im letzteren Fall erfolgt jeder Eintag in einer neuen Zeile, die Teile-Nr. kann dabei numerisch oder als Text mit den Dilimitern einfaches oder doppeltes Anführungszeichen vorliegen. Solche Dateien lassen sich z.B. auch sehr einfach mit EXCEL, aber auch mit jedem anderen Textprogramm erzeugen.

Außer bei der Einzelauswahl werden zunächst alle zugehörigen Teile gewählt, bei Stücklisten oder Fertigungsaufträgen neben den Positionsteilen also auch das übergeordnete Teil. Im folgenden Schritt können dann einzelne Teile dieser Auswahl wieder deaktiviert werden. Im nächsten Schritt werden alle an diesen Teilen beteiligte Lieferanten und Hersteller aufgeführt, die hier generell deaktiviert werden können.

Im folgenden Schritt können Lieferanten selektiv nur in der Zuordnung zu einzelnen Teilen deaktiviert werden.
Im nächsten Schritt kann bestimmt werden welche der den Teilen zugeordneten Dokumente ausgegeben oder deaktiviert werden sollen. Im letzten Schritt erfolgt die eigentliche Ausgabe der XML-Daten. Hier können noch globale Dokumente wie Bestellung und Fertigungsauftrag hinzugefügt werden.

Die Programmierung und auch der Test waren erheblich komplexer als zunächst geplant. Die Planwerte wurden deutlich überschritten.

30.04.2007: Import aus fremden BMEcat-Katalogen

Dezember 2006
Arbeitspaket begonnen, Großteil der Basisarbeiten abgeschlossen.

Es gibt noch keine lauffähige Gesamtapplikation. Es wurden die Zuordnungen zwischen BMEcat-Quelle und Ziel (PPS.Datei.Feld, bzw. IS.~) definiert, die leider nicht immer 1:1 einfach erfolgen können. Anschließend wurde begonnen, jeweils Teilbereiche zu implementieren wie Artikel-Stammdaten, Artikel-Lieferantendaten, Klassifizierung und Merkmale, zugeordnete Dokumente.


Es gelang bisher nur von einem Lieferanten, einen Katalog seiner Lieferteile zu erhalten. Allerdings war dieser Katalog schwerfällig zu handhaben aufgrund seines Umfangs von 175 MB und einigen 1000 Artikeln. Auch war der Katalog noch im BMEcat Format 1.2, die eCl@ss-Daten in der Version 5.1. Es muss erst noch eine Möglichkeit geschaffen werden, bestimmte Artikel aus einem Katalog zur Übernahme auszuwählen.

Der Arbeitsaufwand für die Implentation des Imports fremder Kataloge wurde offensichtlich drastisch unterschätzt. Der Katalog ist sehr komplex, der Import ist deutlich schwieriger als der Export eigener Daten.

April 2007
Ursprüngliches Ziel war es, den vollen Umfang eines BMEcat-Kataloges importieren zu können. Dieses Ziel musste zurückgenommen werden und Systec hat hier bestimmte optionale Elemente von BMEcat nicht berücksichtigt. Implementiert wurde nur der Teil BMEcat_T_NEW_CATALOG, weggelassen wurden z.B. der Bereich FORMULA und VARIANT, im Bereich PRODUCT_FEATURES wurde nur eCl@ss berücksichtigt.

Der Katalog ist sehr komplex, der Import ist deutlich schwieriger als der Export eigener Daten. Für den Import werden die BMEcat-Daten in Teilbereiche zerlegt: Artikel-Stammdaten, Artikel-Lieferantendaten, Klassifizierung und Merkmale, zugeordnete Dokumente. Auf den Import der Adressdaten wurde hier zunächst verzichtet, da die Lieferantenadressen in der Regel bekannt sind. Außerdem werden alle Adressen in dem CRM-System VEMAS verwaltet, ein automatischer Import wäre hier für Systec nur mit hohem Aufwand möglich.

Wie schon beim openTRANS-Import hat Systec sich für die Methode entschieden, in einem ersten Schritt jeweils mit Hilfe einer XSL-Tansformation die Elemente der einzelnen Bereiche in eine 1-stufige XML-Struktur zu transformieren. Diese XML-Datei kann dann sehr einfach mit Funktionen wie XMLTOCURSOR in das Dateiformat der Applikation (hier Visual FoxPro bzw. MS-SQL) gewandelt und somit importiert werden.

Es besteht noch das Problem, dass üblicherweise aus einer großen Anzahl von Artikeln in einem Katalog nur weinige importiert werden sollen. Deshalb kann man im Aufruf der XSL-Transformation einen Parameter mit der ID des gewünschten Teils übergeben, dann werden nur die entsprechenden Informationen zu diesem Teil extrahiert. Für den Fall, dass mehrere Teile importiert werden sollen, wird diese Methode zu aufwändig in der Implementation. Man muss dann entweder den Vorgang mehrfach durchführen oder einfach für alle Teile, und dann anschließend in der Output-XML-Datei die nicht gewünschten löschen.

Dieses Arbeitspaket wurde bereits im Dezember begonnen. Schon damals wurde festgestellt, dass der Arbeitsaufwand für die Implementation des Imports fremder Kataloge offensichtlich drastisch unterschätzt wurde.

30.04.2007: Stylesheets zur formatierten Anzeige von BMEcat-Katalogen

Dezember 2006
Arbeitspaket begonnen, 1. Prototyp erstellt

Es wurden bisher nur allgemeine Basisarbeiten zur Stylesheeterstellung für BMEcat-Daten gemacht und ein erster Prototyp erstellt.

Die Verzögerungen sind nicht durch den Dienstleister begründet, vielmehr fehlen Vorgaben und Freigaben durch Systec.
Schon die Beauftragung erfolgte verspätet, auch wurden die Vorgaben bisher unvollständig und verzögert übermittelt. Auch der Prototyp wurde bisher nicht abschließend begutachtet und freigegeben.
Gründe hierfür lagen und liegen in mangelnden Kapazitäten der beteiligten Systec-Mitarbeiter.

April 2007
Es gibt Stylesheets zur Darstellung von BMEcat-Katalogen im Browser. Dabei kann durch Parameterübergabe auch nur ein bestimmtes Teil aus einem Katalog dargestellt werden. Es werden nicht alle optionalen Teile von BMEcat unterstützt, z.B. keine Preisformeln. Bei der Klassifizierung wird nur eCl@ss unterstützt.

Systec hat in diesem Zusammenhang selbst einiges über XML und XSL gelernt und sind nun durchaus in der Lage, die Skripte zu ändern und weiter zu entwickeln. So konnte der Import aus BMEcat auf diesen Ergebnissen aufbauen.

30.04.2007: Print-Katalog und Website auf Basis von BMEcat-Katalogen

Dezember 2006
Es wurden bisher nur allgemeine Basisarbeiten gemacht.

Ausgehend von dem bisherigen Datenblatt wurde das grundlegende Konzept zur zukünftigen Erzeugung aus Basis der BMEcat-Daten gemacht. Es wurde ein Layoutraster definiert. Entsprechend diesem Raster wurde eine XML-Struktur defininiert. Es wurde eine weitere XMLStruktur für die statischen Elemente der Datenblätter definiert (allgemeine Texte, Logo u.ä.), alle Elemente lassen beliebige Sprachen zu.

Die inhaltlichen Daten werden aus einem BMEcat-Katalog (und damit aus dem PPS) kommen. Mit einer XSLT-Transformation werden diese Daten gemischt mit den statischen Daten und als Zwischendatei XML-Daten in der Datenblattstruktur erzeugt. Aus dieser Struktur werden dann mit einer weiteren XSLT-Transformation XSL-FO-Daten erzeugt, die wiederum endgültig als PDF-Daten ausgegeben werden.

März 2007
Das Layoutraster ist fertig definiert. Die XML-Strukturen sind definiert. Zunächst war geplant, direkt aus den BMEcat-Daten mit einem einzigen Stylesheet die weitere XML-Struktur für die statischen Elemente der Datenblätter einzubinden und die Ausgaben zu erstellen. Dieser gesamte Prozess erwies sich als komplexer im Detail als zunächst gedacht. Aus diesem Grund wurde ein Zwischenschritt eingeführt, der das ganze Verfahren übersichtlicher und damit leichter wart- und erweiterbar macht. Hintergrund war vor allem, dass nicht alle hier benötigten Teile-Informationen in BMEcat vorhanden sind. So wird jetzt in einem ersten Schritt aus den BMEcat-Daten und weiteren Daten eine XML-Datei mit allen notwendigen Artikeldaten erzeugt. Erst in einem zweiten Schritt werden diese Daten mit einer XSLT-Transformation gemischt mit den statischen Daten und daraus dann die Ergebnisdaten erzeugt. Nach außen hin tritt dies aber nicht so in Erscheinung, da der ganze Vorgang in einem Batch-Prozess abläuft.

Probleme gab es mit der Transparenz von Grafiken. Diese wird offensichtlich bei png-Bildern zurzeit nicht unterstützt, nach Konvertierung in das gif-Format wurde auch Transparenz richtig dargestellt. Dies muss noch weiter abgeklärt werden, da der Farbraum von gif-Bildern stark eingeschränkt ist und Systec eigentlich den größeren Farbraum der png-Bilder benötigt.

Die Kommunikation Systec - Dienstleister erfolgt im Wesentlichen per eMail. Die Antwortzeiten des Dienstleisters sind nicht zu beanstanden. Auf Systec-Wunsch wurde eine Modularisierung durchgeführt zwecks besserer Wartbarkeit in der Zukunft. Die Arbeiten in diesem Bereich wurden nach Vorarbeiten im letzten Jahr erst im März wieder aufgenommen, diese Verzögerung wurde ausschließlich durch Systec verursacht (fehlende Vorgaben).

April 2007
Das Layoutraster ist fertig definiert. Die XML-Strukturen sind definiert. Die XML-Struktur für die statischen Elemente der Datenblätter ist erstellt, die Inhalte definiert. Das Progranmm zur Erzeugung der XML-Daten aus den BMEcat-Daten und weiteren Quellen ist fertig. Das XSLT-Skript zur Mischung dieser Daten mit den statischen Daten und der Transformation in die Ergebnisdaten (PDF) ist fertig.

In den Abschlussarbeiten traten keine wirklichen Probleme mehr auf. Im Moment können nur deutschsprachige Datenblätter erzeugt werden, die Erzeugung fremdsprachlicher Datenblätter bleibt eine Aufgabe außerhalb dieses Projektes. Der eigentliche Ablauf ändert sich dabei nur unwesentlich, als Voraussetzung müssen aber erst einmal alle Informationen in den gewünschten Sprachen vorliegen.

30.04.2007: BMEcat-Katalog als Datenbasis für Zulieferer

Dezember 2006
Dieses Arbeitspaket ist nicht einfach zu trennen von den Paketen "Erzeugung von Katalogen aus einer definierbaren Teilmenge des PPS" und "Erzeugung von openTRANS-Dokumenten". Beide sind Voraussetzung und beide sind noch nicht abgeschlossen.

Das Konzept für Organisation zwischen Systec und den hauptsächlich tschechischen Zulieferern wurde weiter detailliert und die Dokumente bezüglich ihres Inhalts konkretisiert. Bei der Erzeugung von Katalogen wurden die speziellen Anforderungen bereits berücksichtigt (Fertigungsauftrag, Lieferanten, Dokumente).

April 2007
Dieses Arbeitspaket ist nicht zu trennen von den Paketen "Erzeugung von Katalogen aus einer definierbaren Teilmenge des PPS" und "Erzeugung von openTRANS-Dokumenten". Nachdem diese nun abgeschlossen sind, konnte auch dieses Arbeitspaket selbst abgeschlossen werden. Systec hat damit einen Status erreicht, mit dem sie in die praktische Erprobung gehen können. Alles Weitere wird davon abhängen, wie sich hier die Zusammenarbeit mit den Zulieferern entwickeln wird. Dieses Arbeitspaket ist PROZEUS betreffend abgeschlossen.