Das FLUC-Unterprogramm nutzt die Elementschnittstelle für Originaldaten, um zwischen ihren verschiedenen Darstellungsformen auf den unterschiedlichen Plattformen sowie in den unterschiedlichen Ländern hin und her konvertieren zu können. Hierfür können die Originaldateien nach verschiedenen Verfahren eingelesen, entsprechend konvertiert und wieder weggeschrieben werden, so dass die Daten über verschiedene Plattformen (Records vs. Delimiter) und regionale Unterschiede (Zeichensätze) hinweg verstanden werden. Das FLUC-UP ist ein plattformneutrales Lademodul, welches in Anwendungen, wie zum Beispiel dem FLUC-Utility (FLCL CONV), eingebunden wird. Es ist somit ein Unterprogramm, welches die gesamte Funktionalität der Datenverwaltung des FLUC in einer Funktion zur Verfügung stellt.
Der Nutzen
Unterstützt alle Funktionen und Schnittstellen des FLUC-Utilitys zur Verarbeitung von Dateien, Datenströmen und anderen Quellen
Führt alle Schreib- und Lesezugriffe auf Originaldateien unter eigener Kontrolle aus
Generiert auf Wunsch ein ausführliches Verarbeitungs- und Fehlerprotokoll
Kann in Anwendungen in beliebigen Programmiersprachen einschließlich JAVA eingebunden werden
Ist sowohl als statisch zu bindender Objektcode als auch in Form einer dynamischen Bibliothek oder als autarkes Lademodul verfügbar
Das Produkt
Komponentenarchitektur, mit der sowohl für das Lesen als auch für das Schreiben jeweils ein I/O-Verfahren, beliebig viele Konvertierungsverfahren und ein Formatierungsverfahren ausgewählt und mit spezifischen Parametern versehen werden können.
Es muss einfach der entsprechende String, welcher auch auf der Kommadozeile genutzt wird, als Parameter übergeben werden.
Es werden ausführliche Statistikwerte, ein Error Trace und verschiedene Logs (z.B bei der Zeichenkonvertierung) erzeugt.
Es ist somit die Rückmeldung des Verarbeitungserfolgs neben Return Codes auch in Form eines Protokolls möglich.
Es ist sowohl als 31/32-Bit-Version wie auch als 64-Bit-Version erhältlich.
Da der gesamte FLUC in nur einer Funktion mit 3 Parameterstrings (Kommadozeile, Dateiname für den Output (optional), Dateiname für das Trace (optional)) abgebildet ist, ist die Integration in eine Anwendung denkbar einfach.
Beispiel
Das folgende Beispiel in COBOL liest eine Datei (DD:INPUT) auf der Host satzweise und gibt diese in CP1252 mit 0x0D0A als Delimiter in Form einer GZIP-Datei für Windows aus. Das Beispielprogram verwendet hierbei zwei DD Namen (INPUT & OUTPUT) und legt die entsprechenden Konvertierungsparameter fest. Hierdurch entsteht ein Batch-Utility mit dem man jede Textdatei (FB/VB/VSAM) auf der Host in eine GZIP-Datei für Windows umwandeln kann (Padding-Zeichen von FB-Dateien werden hierbei unterdrückt (SUPPAD)).
Das folgende COBOL Beispiel liest dank automatischer Formaterkennung normale record-orientierte Dateien (PS(FB/VB), PDS/E(FB/VB), VSAM, ...), binäre Dateien, record- oder text orientierte USS Dateien, binär transferierte Text- und XML-Dateien von anderen Plattformen, binär übertragene GZIP-, BZIP2- oder XZ-Dateien (welche wiederum binäre, Text- oder XML-Daten enthalten können), FLAMFILEs (undefined, stream oder record-Orientiert), und weitere Formate unabhängig vom Zeichensatz und schreibt die ermittelten Sätze in einem Output-Dataset in IBM1141 (sofern die Daten nicht binär sind).
Als letztes noch der dazugehörige Sample-Job zum Starten des Beispielprograms, welches Teil unseres Softwarepaketes für die Host ist. Hier wird einfach der INPUT mit DISP=SHR gelesen und der OUTPUT nach SYSOUT=* gestellt, damit man sich den Inhalt der Datei im Job-Log anschauen kann.
Dieses Beispielprogramm arbeitet wie unsere CLIST "FLVIEW", welche als Line-Command für ISPF verfügbar ist, um sich den logischen Inhalt eines jeden Dataset im ISPF 3.4 über den Browser anschauen zu können.