# Sunday, November 04, 2007

Ich finde es ist wichtig, für jede Aufgabe das geeignete Tool einzusetzen. In der Technischen Dokumentation arbeitet der Redakteur häufig in MS Word oder in Adobe FrameMaker. Beide ermöglichen das Erstellen der entsprechenden Inhalte. Ohne weitere Unterstützung liegen diese Inhalte dann als Dokumente in Verzeichnissen des Dateisystems. Die Verzeichnisstruktur wird typischerweise die Projekte, Sprachen und Versionen wiederspiegeln. Die Dokumente selbst stellen meist große Informationseinheiten dar: Kapitel oder vielleicht sogar die komplette Dokumentation.

Ein kleines Team, gut organisierter Redakteure, kann bei dieser Vorgehensweise effizient arbeiten. Es gibt kaum Verwaltungsaufwand. In vielen Fällen müssen die Informationseinheiten aber besser verwaltet werden. Größere Teams, viele Übersetzungen, viele Varianten und unterschiedliche Ausgabeformate sind Gründe für eine umfassendere Lösung.

Man braucht also ein Inhaltsverwaltungssystem oder Englisch Content-Management-System (CMS). Offensichtlich denken bei dem Begriff CMS inzwischen zu viele an die weborientierte WCMS Variante. Für Systeme die nicht nur Webseiten, sondern auch Druck und andere Ausgabeformate unterstützen verwendet man deshalb auch den Begriff Redaktionssystem.

Wir haben uns näher mit SCHEMA ST4 befasst, einem sehr mächtigen Vertreter unter den Redaktionssystemen. Dabei haben wir uns soweit eingearbeitet, dass wir SCHEMA Certified Partner wurden. Wir betreiben eine Testinstallation und eine Kollege und ich waren bei SCHEMA zu einer mehrtägigen Konfigurationsschulung.

SCHEMA Certified Partner 

Eine SCHEMA Konfiguration hat sehr viel mit XML/XSL Programmierung zu tun. Das System ist sehr offen und modifizierbar. Es ist wirklich sehr viel möglich, man darf aber keine Angst vor spitzen Klammern haben.

Ansonsten gefällt mir als .NET Entwickler natürlich der Technologie-Stack: Als Datenbank kommt standardmäßig ein SQL Server 2005 zum Einsatz, darüber kommt ein .NET basierter Applikationsserver auf den wiederum .NET Clients zugreifen. Alle Daten treten als XML in Erscheinung und werden über XSL formatiert. Selbst die in der Benutzeroberfläche dargestellten Elemente werden über XPath gesteuert.

TD | Tools
Sunday, November 04, 2007 8:18:26 PM (W. Europe Standard Time, UTC+01:00)  #
  Disclaimer  |  Comments [0]  | 
# Monday, October 29, 2007

Nach einer kleinen Einleitung, möchte ich nun einen Überblick geben, wie unsere 3D Ersatzteilkatalog-Lösung interaktive PDFs mit 3D Objekten erzeugt. SPCat3D selbst besteht aus mehreren Komponenten, die wiederum mit externen Programmen zusammenarbeiten:

SPCat3D - Ablauf

Auf der linken, oberen Seite sehen wir unsere klassische Katalog-Software SPCat. Dieser Ersatzteilkatalog bietet uns sehr viele Möglichkeiten hierarchische Teilelisten zu importieren und zu bearbeiten. Wir verwenden diese erprobte Technologie als Stücklisten-Datenbasis weiter.

SPCat3D PDF Creator greift bei der PDF Produktion auf die SPCat Datenbank zu. Die Schnittstelle ist aber so ausgelegt, dass auch andere Datenquellen möglich sind. Unser eigener SPCat ist nur die nächstliegende und einfachste Anbindung. Andere Katalog-Systeme oder direkter Zugriff auf ERP Daten (SAP) sind auch denkbar.

Parallel müssen die 3D-CAD Daten aufbereitet werden. Wir verwenden dazu von Right Hemisphere die Deep Exploration CAD Edition. Mit diesem Tool können wir alle relevanten CAD Formate öffnen und bearbeiten. Unter anderem können wir damit die CAD Daten reduzieren und mit einer animierten Explosionsdarstellung versehen.

Der nächste Schritt ist die Zuordnung der Stückliste zu den CAD Grafiken und den einzelnen Objekten innerhalb einer Grafik. Dabei hilft es, dass Deep Exploration die Metadaten aus den meisten CAD Formaten übernehmen kann. Die genaue Vorgehensweise in dieser Stelle hängt sehr stark von den Ausgangsdaten ab.

Deep Exploration enthält ein PDF Publishing Module das es ermöglicht 3D Illustrationen in eine PDF Vorlage (Template) einzufügen. Von Right Hemisphere gibt es bereits einige fertige Templates die interaktive PDFs ermöglichen. Wir benötigen aber eine sehr viel weitergehende Funktionalität. Deswegen arbeiten wir mit unseren eigenen SPCat Templates.

Die Ausgabe des PDF Publishing Modules sind PDF Dateien mit eingebetteten 3D Objekten in unserem Template. Aber noch ohne die Möglichkeit zur Interaktion, denn dafür wir benötigen wir die Informationen aus der Stückliste.

Das ist dann die eigentlich Aufgabe unseres SPCat3D PDF Creators. Dieses Tool führt alle Informationen und Dateien zusammen. In die vorher erzeugten, statischen PDF Dateien wird die Stücklisten Information eingebettet. Es werden zusätzliche PDF Dateien erzeugt, die den Zusammenhang der einzelnen Baugruppen darstellen und die entsprechenden PDF Dateien miteinander verknüpfen.

Im Ergebnis erhält man ein Verzeichnis mit PDF Dateien, die die komplette Stückliste wiedergeben und die einzelnen 3D Illustrationen hierarchisch korrekt miteinander verbinden. Zusätzlich gibt es einen PDF Datei die einem Bestellformular entspricht und wie ein Warenkorb interaktiv aus den anderen PDF Dateien heraus gefüllt werden kann.

PDF | SPCat | TD
Monday, October 29, 2007 11:59:07 AM (W. Europe Standard Time, UTC+01:00)  #
  Disclaimer  |  Comments [0]  | 
# Thursday, October 25, 2007

Wir bieten seit langem einen elektronischen Ersatzteilkatalog an, unseren Spare Part Catalog SPCat. Diese Software kommt sehr gut mit Stücklisten und 2D Zeichnungen klar. Bei 3D CAD Daten hatten wir bisher keine Lösung. Genau diese Funktionalität wird aber immer häufiger nachgefragt.

Die Visualisierung dreidimensionaler CAD Objekte ist aber ein Problem, das eine kleine Entwicklergruppe nicht mal eben lösen kann. Man muss zum einen die Dateien aus verschiedensten CAD Programmen verarbeiten können. Zum anderen braucht es einen Viewer, der die erstellten 3D Illustrationen darstellen kann sich gut in die restliche Ersatzteilkatalog-Software integrieren lässt.

Alle mir bekannten Anbieter von elektronischen Ersatzteilkatalogen haben sich entschlossen, dieses Know-How einzukaufen. Die meisten verwenden die Produkte von Lattice3D und binden deren freien XVL Player in Ihre Kataloge ein.

Es gibt auch eine interne SPCat Demo Version mit XVL Player die ganz gut funktioniert. Aber irgendwie fand ich es langweilig, wenn am Ende alle Kataloge den gleichen 3D Viewer verwenden und habe weiter gesucht. Dabei bin ich auf die Firma Right Hemisphere gestoßen. Auch von diesem Anbieter gibt es einen Betrachter (Deep View) der sich in eigene Anwendungen einbinden lässt. Deren Produkte können über 80 CAD Formate importieren und alle von uns getesteten Dateien wurden problemlos eingelesen.

Besonders spannend wurde es aber, als ich die Zusammenarbeit von Adobe und Right Hemisphere verstanden hatte: Right Hemisphere ist der Anbieter, der die Ausschreibung von Adobe gewonnen hatte, das PDF Format um einen 3D Viewer zu erweitern. Entsprechend gut ist in deren Produkten die Erzeugung von PDF Dateien mit eingebetteten 3D Objekten realisiert.

Bisher hatten wir in Richtung einer Software mit integrierten Viewer gedacht, jetzt gibt es eine weitere Möglichkeit: Die 3D Illustrationen werden in PDF Dateien eingebetteten und die Verknüpfung zur Stückliste und die Interaktion mit dem Anwender erfolgt komplett innerhalb das Acrobat Readers. Das bedeutet die Auslieferung des fertigen Katalogs vereinfacht sich enorm. Man muss lediglich einige PDF Dateien verteilen. Der Endanwender benötigt lediglich einen installierten Acrobat Reader 8.1. Die weite Verbreitung des Readers führt dazu, dass in aller Regel gar keine Vorbereitungen oder Installationen beim Endanwender nötig sind. Er öffnet nur eine PDF Datei.

Aktuell gibt es den Acrobat Reader in der Version 8.1 für folgende Betriebssysteme: Windows, Mac, Linux und Solaris. Das heißt ein SPCat 3D PDF-Ersatzteilkatalog funktioniert plattformübergreifend.

Zum Beispiel ein Pumpstand, dargestellt mit Linux Ubuntu 6.1 und dem Acrobat Reader 8.1.1 für Linux:

SPCat3D Ubuntu 6.1 Adobe Reader 8.1.1

Der Testrechner ist nach heutigen Maßstäben wirklich langsam mit seinem Athlon 900. Ich habe eine nackte Ubuntu Installation verwendet, lediglich den Acrobat Reader 8.1.1 habe ich installiert. Es war von Seiten der Grafikkarte keinerlei 3D Unterstützung vorhanden. Trotzdem wurde das PDF mit dem 3D Objekt problemlos dargestellt und alle Interaktionen haben funktioniert. Lediglich bei Veränderung der 3D Ansicht kam das System ins Stocken und fiel auf eine Drahtgitter-Darstellung zurück.

Bei der eigentlichen Darstellung von 3D Illustrationen hat uns Adobe eine Menge Arbeit abgenommen. Wir können uns also ganz auf die Interaktivität und die Integration mit den Stücklisten und Ersatzteilinformationen konzentrieren.

Weiter geht es mit einem kleinen Überblick.

PDF | SPCat | TD
Thursday, October 25, 2007 3:34:21 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Monday, October 22, 2007

Bisher hatten wir einen FTP Server um größere Datenmengen mit unseren Kunden und Übersetzern auszutauschen. Aber FTP ist nicht mehr zeitgemäß: FTP muss sterben. Deswegen betreiben wir jetzt einen WebDAV Server der nur über eine sichere https-Verbindung zu erreichen ist.

Zu einem neuen Protokoll braucht es auch einen neuen Client um darauf zuzugreifen. Ich habe einige ausprobiert und am Ende sind zwei sinnvolle Möglichkeiten übrig geblieben:

Internet Explorer

Der Internet Explorer hat den Vorteil, dass er bereits installiert ist und der Zugriff sehr einfach zu konfigurieren ist. Man muss lediglich darauf achten, dass man die Adresse nicht direkt in Adresszeile tippt, sondern einen Web Folder öffnet.

Dazu wählt man Datei - Öffnen... (File - Open...) im Menü aus. Tippt dort die Adresse ein und setzt das passend Häkchen:

Open File Dialog Internet Explorer

Danach kann man per Copy & Paste Dateien und Verzeichnisse übertragen. Über die rechte Maustaste erhält man ein Kontext-Menü für weitere Aktionen.

Ein Nachteil vom Internet Explorer als WebDAV Client ist, dass er keinen sinnvollen Übertragungsstatus anzeigt und sich während der Übertragung tot stellt. Man hat das Gefühl, IE oder die Verbindung "klemmt". Wir hatten schon den Fall, dass dabei dann per Task Manager iexplorer.exe und damit die Übertragung beendet wurde.

Außerdem kann man im IE über das Ziel hinaus navigieren. Wir haben für jeden Kunden einen eigenen Unterordner angelegt. Nur CPTec Mitarbeiter dürfen auf den ganzen Server zugreifen. Jeder Kunde hat nur Zugriff auf seinen Ordner. Dennoch erlaubt es der Internet Explorer eine Ebene nach oben zu navigieren. Dort gilt das Kunden Passwort natürlich nicht mehr, also frägt der Internet Explorer nach einem Passwort. Der Kunde gibt natürlich wieder sein Passwort ein. Das gilt für diese Ebene aber trotzdem nicht.

Das führt leider sehr schnell zu einer Support-Anfrage. Deswegen empfehle ich den Total Commander. Der erkennt, mit welcher URL die Verbindung gestartet wurde.

Total Commander + WebDAV Plug-in

Der beliebt Dateimanager Total Commander hat bereits einen sehr guten, integrierten FTP Client. Für den WebDAV Zugriff ist ein kostenloses WebDAV Plug-in nötig.

Die heruntergeladene Zip-Datei mit dem Plug-in einfach in Total Commander öffnen. Das Programm erkennt das Plug-in und bietet die Installation an:

WebDAV_TotalCommander

Weniger intuitiv ist dann die Aktivierung des Plug-ins. Man muss über die Laufwerksauswahl die Netzwerkumgebung (Network Neighborhood) auswählen:

Total Commander - Network Neighborhood

Bei den Netzwerklaufwerken taucht der zusätzliche Eintrag WebDAV auf. Den wählt man aus und gelangt zu den WebDAV Verbindungen:

Total Commander - WebDAV Selection

Über F7 kann eine neue Verbindung angelegt werden. Obwohl der dabei auftauchende Dialog von einen neuen Verzeichnis spricht, wird trotzdem eine WebDAV Verbindung angelegt!

Total Commander - New Connection

Wenn man einen Namen für die Verbindung vergeben hat, erscheint der Optionen Dialog:

Total Commander - WebDAV Config

Praktischerweise steht unser Server-Typ als Standardeinstellung zur Verfügung: Microsoft IIS (Secure). Damit werden die unteren Parameter automatisch richtig konfiguriert. Es muss hier nur noch die URL zum Server, der Benutzername und das Passwort konfiguriert werden. Die Proxy Einstellung vom Internet Explorer (im Dialog unten) sollte in den allermeisten Fällen stimmen.

Danach kann die neue Verbindung ausgewählt werden. Mit den üblichen Befehlen von Total Commander können Dateien in beide Richtungen übertragen und gelöscht werden.

Die Eigenschaften einer bestehenden Verbindung stehen über das Kontext-Menü oder Alt+Enter zur Verfügung.

Falls man die Verbindung häufiger benutzt, kann man diese wie ein normales Verzeichnis zur Directory Hotlist hinzufügen (CTRL+D). Der Verbindungsaufbau ist dann nur eine Frage von ganz wenigen Tasten.

Update:

Unser erster Kunde hat tatsächlich versucht, nach dieser Anleitung den Total Commander zu konfigurieren. Dabei sind zwei Dinge aufgefallen:

  1. Die Auswahl-Liste mit den Server Einstellungen setzt bei einer Auswahl nur die Checkboxen weiter unten. Die Einstellung der Liste selbst wird nicht gespeichert. Das heißt beim nächsten Aufruf der Optionen steht dort wieder: <Choose new server type from list>. Das verwirrt, aber die Einstellung unten sollten trotzdem stimmen.
  2. Das Plug-in kommt mit bestimmten Sonderzeichen als Passwort nicht zurecht. In unserem Fall hatten wir das Zeichen § im Passwort. Das führte dazu, dass das Passwort nicht gespeichert wurde. Nachdem wir ein anderes Zeichen verwendet haben, funktioniert auch das.
Monday, October 22, 2007 12:29:45 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Friday, October 19, 2007

tekom Jahrestagung 2007Im Rahmen der tekom-Jahrestagung 2007 vom 07. bis 09. November findet eine Messe mit Ausstellern aus dem Bereich der Technischen Dokumentation statt. Da darf die CPTec GmbH natürlich nicht fehlen. Dr. Kurt Schopper und ich werden den Stand bewachen und versuchen jeden Besucher für unsere Konzepte zu interessieren.

Ich denke wir werden unsere Kompetenz in der Technischen Dokumentation und bei elektronischen Ersatzteilkatalogen überzeugend darstellen können. Ein paar Informationen gibt es bereits auf unserer Webseite. Weitere Details, insbesondere zu unseren 3D Ambitionen, folgen hier in Kürze.

Blah | SPCat | TD
Friday, October 19, 2007 1:44:12 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Wednesday, October 17, 2007

Von maps.live.com ist die Version 2 fertig: Live Search Maps v2 is out! Gemini Launches.

Die Liste der Verbesserungen und Neuerungen ist lang. Mich hat beim ersten Test sofort die Bird's Eye View begeistert. Fast schon erschreckend, wie gut die Aufnahmen sind.

Bin ich im Büro?

live_search_maps_cptec

Zum Selberdrehen: CPTec GmbH, Brienner Str. 54 am Stiglmaierplatz

Stiglmaierplatz

Wenn man von dem Standpunkt aus ein bisschen nach Nordwest geht, sieht man das ehemalige Löwenbräu Areal. Da ist inzwischen eine riesige Baugrube. Nur der Löwenbräu Keller steht da noch.

Wednesday, October 17, 2007 12:49:15 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Tuesday, October 16, 2007

(Deutsche Version)

In my article Acrobat PDF Form Felder auf Ebenen I have explained the problem in detail: I want to create layers in a PDF file and put Form Fields or Annotations into these layers or Optional Content Groups (OCG).

Back then, I solved the problem by means of Acrobat SDK Snippet Runner. An architecture that enables you to run individual Snippets as a plug-in in Acrobat. Quite nice for a first try, but in the end not a solution that should be distributed. Developery only.

For this reason, I took a closer look at the SDK and built a proper plug-in:

Acrobat CPTec Layer Plugin Menu

The plug-in links into the Advanced menu of Acrobat and is only active when a document is loaded. When called, it asks for a text file. This file determines which annotations are put into which layers. Layers that are not present will be created.

The structure of the text file is very simple. Each line contains the name of an annotation, the | character, and then the name of the related layer:

TestAnnotation1|TestLayer1
TestAnnotation2|TestLayer2

When editing in Acrobat, it is possible that the layer information for the Annotations gets lost. In this case, simply run the same text file again. Assigning fields that are already present does not have any negative effect.

Disclaimer:

  • I am not much of a C++ programmer.
  • This is my first Adobe Acrobat plug-in.
  • The plug-in has only been tested with Acrobat 8.1 Professional.
  • I do not assume responsibility for anything: If Acrobat crashes or all PDF files are destroyed, it is not my fault.
  • Use at your own risk.
  • Please pay attention to the MIT/X11 License in the Zip file.

Have fun with the plug-in, and maybe you want to send me a feedback:

CPTecLayerPlugin.zip (180 KB)

Tuesday, October 16, 2007 5:25:09 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [1]  | 

(English version)

In meinem Beitrag Acrobat PDF Form Felder auf Ebenen habe ich das Problem ausführlich erklärt: Ich möchte in einem PDF Ebenen erzeugen und Form Fields bzw. Annotations auf diese Ebenen oder Optional Content Groups (OCG) legen.

Damals kam ich zu einer Lösung über den Acrobat SDK Snippet Runner. Einer Architektur, die es ermöglicht einzelne Snippets als Plug-in im Acrobat laufen zu lassen. Für erste Schritte ist das ganz nett, aber man hat am Ende leider keine verteilbare Lösung. Ein Entwickler Tool eben.

Also habe ich mich noch weiter in die SDK gestürzt und ein richtiges Plug-in gebastelt:

Acrobat CPTec Layer Plugin Menu 

Das Plug-in bindet sich in das Advanced Menü von Acrobat ein und ist nur aktiv, wenn ein Dokument geladen ist. Beim Aufruf verlangt es nach einer Textdatei. Diese Datei steuert, welche Annotations auf welche Ebene gelegt werden sollen. Nicht vorhandene Ebenen werden erzeugt.

Die Struktur der Datei ist sehr einfach. Pro Zeile wird der Name einer Annotation und durch ein | getrennt der Name der zugehörigen Ebene angegeben:

TestAnnotation1|TestLayer1
TestAnnotation2|TestLayer2

Beim Editieren in Acrobat kann eventuell die Ebenen-Information der Annotations verloren gehen. Dann hilft einfach ein erneuter Lauf mit der gleichen Textdatei. Eine erneute Zuordnung vorhandener Felder hat keine nachteiligen Effekte.

Disclaimer / Haftungsausschluss:

  • Ich kann eigentlich nicht in C++ programmieren.
  • Das ist mein erstes Adobe Acrobat Plug-in.
  • Das Plug-in wurde nur mit Acrobat 8.1 Professional getestet.
  • Ich übernehme keine Verantwortung für Irgendwas: Ob Acrobat abstürzt oder alle PDFs zerstört werden ist nicht meine Schuld.
  • Benutzung auf eigene Gefahr.
  • Bitte die MIT/X11 Lizenz in der Zip-Datei beachten.

Dann viel Spaß damit und vielleicht gibt es ja Rückmeldungen:

CPTecLayerPlugin.zip (180 KB)

Tuesday, October 16, 2007 4:23:01 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Monday, October 15, 2007

Der Acrobat Reader kann PDF Dateien nicht nur als normale Applikation darstellen, er bindet sich auch als Plug-In in den Webbrowser ein. Gerade dieser Integration in den Browser und damit in das Internet hat viel zur Beliebtheit von PDF beigetragen.

Aus der Sicht von JavaScript verhält sich aber Acrobat eingebettet im Browser ein bisschen anders, als im eigenständigen Modus. Um auf diese Unterschiede reagieren zu können, gibt es am Doc Objekt, das einem PDF Dokument entspricht, die Eigenschaft external. Im Kontext eines Dokuments kann dieser Zustand einfach mit this.external abgefragt werden. Aus der JavaScript Referenz:

Specifies whether the current document is being viewed in the Acrobat application or in an external window (such as a web browser).

Ich möchte diesen Wert beim Laden des Dokuments abfragen. Da ich aber zur Erzeugung der PDF Dateien Acrobat automatisiere, werden in diesem Prozess auch die Dokumente einmal geladen. Ein automatisierter Acrobat mag aber offensichtlich diesen Wert nicht verraten und hängt sich auf.

Alternative frage ich jetzt einfach die path Eigenschaft ab. Damit erhält man den Pfad zum PDF Dokument. Fängt der mit http an, dann kam die Datei vom Webserver und man ist damit im Webbrowser:

// Mag Acrobat nicht immer
var external1 = this.external;
// Workaround
var external2 = (this.path.substr(0, 4) == "http");
Monday, October 15, 2007 6:20:57 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Friday, October 12, 2007

Software Entwicklung ist ein sehr kreativer Prozess. Nur wenn der Strom weg ist, bleibt selten etwas Sichtbares zurück. Papier ist immer noch gefragt um Daten für Anwender zu zugänglich zu machen.

Der Weg von einer Datenbank zu einem Produkt Katalog wird gerne Database Publishing genannt. Vor ca. 9 Jahren haben wir begonnen für den Automobilzulieferer FTE einen Aftermarket Produkt Katalog in Papierform zu erstellen. Dieser Katalog wird seitdem alle 2 Jahre neu aufgelegt.

Der Prozess sollte vollständig automatisiert sein und die Daten mussten stark verdichtet werden. Die Verdichtung der Datenfülle war notwendig, da für jeden PKW Typ alle verfügbaren FTE Produkte ausgegeben werden sollten. Die Ausgabe redundanter Information musste vermieden werden.

Dennoch sind wir inzwischen an die Grenzen der Buchbinderei gestoßen:

fte_katalog

Ein Telefonbuch wirkt wie ein Flyer daneben. Der FTE Ersatzteil-Katalog ist 5,5 cm dick und der letzte PKW Typ, der WARTBURG 353 Tourist (10.1967-05.1991) ist auf Seite 1824 zu finden. Nur mit Spezial-Papier und einem fähigen Buchbinder konnte das Werk überhaupt noch produziert werden.

FTE PKW PDF

Die ausgelieferte PDF Datei wirkt mit 145 MB Dateigröße noch gar nicht so mächtig. Stecken doch so viele kleine Icons und Detailinformationen in Ihr:

FTE Katalog - offen

Ich freue mich jedes Mal auf den fertigen Katalog in Papierform. Da hat man wirklich etwas in der Hand. Inzwischen ist der Ablauf eingespielt und auch die Rechner sind so leistungsfähig, dass die Abwicklung nicht mehr klemmt. Aber vor 8 Jahren, war der Weg schon spürbar steinig. Auch die Wahl der Tools ist historisch begründet.

Ausgangspunkt sind die TecDoc Stammdaten zusammen mit den FTE Einspeiser Daten. Das sind standardisierte Textdateien die wir über ein Visual FoxPro Import Tool in den MS SQL Server 7 eingelesen haben. Inzwischen verwenden wir natürlich den MS SQL Server 2005 :)

Auf diese Datenbank greift ein weiteres FoxPro Programm zu. In diesem Katalog Programm werden alle Verdichtungen der Daten durchgeführt und schließlich über OLE Automatisierung in Word Dokumente ausgegeben. Richtig gelesen: Wir waren kühn genug, mit Word 97 automatisiert 1500 Seiten Dokumente zu erzeugen! Damals waren es nur 1500 Seiten.

Heute kann man darüber nur schmunzeln. Damals habe ich geschwitzt. Es hat einiger Workarounds und Tricks bedurft, um diese Dokumente zu erstellen. Die Rechenzeiten waren enorm, jeder Fehlversuch hat viel Zeit gekostet. Es liefen diverse Rechner parallel um den Vorgang zu beschleunigen. War endlich das Word Dokument erstellt, musste noch ein PDF über den Acrobat Distiller Druckertreiber erstellt werden. Das dauert noch mal und auch dabei konnte Word abstürzen.

* Word starten und die Vorlage laden
oWord=CreateObject("Word.Application")
oWord.Options.CheckSpellingAsYouType=.F.
oWord.Options.CheckGrammarAsYouType=.F.
oWord.Documents.Add(out_name,.F.)
oDoc=oWord.ActiveDocument
oDoc.Windows(1).View.ShowFieldCodes=.F.
oDoc.SaveAs(out_name)
oWord.ActiveWindow.View.Type = 1

* dann ganz viele Elemente hinzufügen
oDoc.Tables.Add()
oDoc.Paragraphs.Add()

* Fertig
oDoc.Save()
oWord.Quit(0)

So lässt sich der FoxPro Code zusammenfassen :)

Wer übrigens FTE Ersatzteile ohne diesen Katalog finden möchte, für den haben wir auch einen kleinen Web-Katalog gebastelt: FTE Katalog. Da schwitzt nur die PHP Engine und nicht der Buchbinder.

Friday, October 12, 2007 4:06:47 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  |