FLUC-Utility
Das FLUC-Utility als Batchprogramm ermöglicht es, die Fähigkeiten des FLUC-Unterprogramms über eine einfach zu bedienende Kommandozeile in den jeweiligen Scriptsprachen/Shells (BAT, BASH, PERL, JCL, …) der verschiedenen Plattformen einbinden zu können. Es stellt somit die jeweilige plattformabhängige Ausprägung des FLUC für die Behandlung von ganzen Dateien, Streams , Tabellen oder anderen Datenquellen in Form eines Kommandozeilenprogramms für die Automatisierung von Prozessen dar. Es ist das Tool, welches primär für die Konvertierung von Datenbeständen genutzt wird, ohne dass man hierfür über eine temporäre FLAMFILE gehen muss. Der FLUC wird hierbei ab der Version 5 über die Kommandos CONV, XCNV, DIFF und INFO der Frankenstein-Limes-Command-Line (FLCL) angeboten.
Das Produkt
- Einfach zu bedienende und hoch intelligente Kommandozeile mit interaktiver Hilfe, Konfigurations- und Property-Verwaltung inklusive Multi-Mandaten-Fähigkeit
- Byte-, block-, satz- und textorientierter IO
- Liest und schreibt FLAM4-Files und ZIP/Zip64-Archive sowie TAR-Balls
- Unterstützt
- Mehrfaches Schreiben
- Remote-Zugriff per SSH
- HEX (BASE16), BASE32/64 und andere Codierungen
- OpenPGP, z/OS-EF und andere Verschlüsselungen
- GZIP, LZMA, BZIP2, LZIP, XZ und andere Komprimierungen
- ZIP, TAR, FLAM4 und andere Archivformate
- Zeichensatzkonvertierung zw. ASCII, EBCDIC und UNICODE inkl. Casemapping, Substitution, Transliteration, mit professionellen Reporting sowie User Defined Subsets (String.Latin), NFD/NFC Normalisierung, Eingebehilfe von Codepoints in singel-byte Zeichensatzen (UNICODE support für 3270 Anwendungen) uvm.
- Generierung und Verifizierung von Checksummen (MD5/SHA1/SHA256/SHA512)
- Generierung und Verifzierung von Signaturen (OpenPGP detached signatures)
- Binäre, Text, Table, XML und weitere Formatierungen
- auf jeder Plattform deren jeweilige Dateiorganisationen und Satzformate
- Verfügbar auf einer großer Bandbreite von Plattformen: AIX, HP-UX, Oracle Solaris, Linux, z/OS, Windows, z/OS, VSE, BS2000, ….
Wenn man FLVIEW zum Beispiel im ISPF 3.4 auf eine Datei verwendet, wird der klare Inhalt der Datei im Browser angezeigt. Dies gilt für normale record-orientierte Datasets, VSAM-Files oder Dateien im USS (File Manager). Neben regulären Dateien, werden auch alle Arten von binär auf die Host übertragenen Dateien von Windows/Linux/... korrekt gelesen und in Records gewandelt. Hierzu gehören Text- und XML-Dateien (pretty printed) als auch GZIP-, BZIP2- und XZ-Dateien. Des Weiteren werden FLAMFILES (undefined, stream, text or record) richtig angezeigt. Selbst wenn das FLAM-Member eine GZIP-Datei ist, wird der Inhalt (XML, Text, Binary) der GZIP-Datei richtig dargestellt. Auf UNIX- und WINDOWS-Systemen werden die Daten nicht in Records, sondern in Text oder einen binären Dump gewandelt. Auf der Host steht diese Funktionalität als FLTEXT zur Verfügung. Es arbeitet wie FLVIEW nur das binäre Inhalte wie unter Windows und UNIX als HEX Dump ausgegeben werden.
Mit der Version 5.1.5 von FLAM haben wir FLVEDIT als Line-Command ergänzt. Mit diesem Kommando ist es zum Beispiel möglich ein GZIP-File mit XML-Daten in UTF-8 mit dem ISPF-Editor unter ISPF als EBCDIC-Records zu editieren und die geänderte Datei wieder als GZIP-File in UTF-8 mit Textdelimittern auf der Host wegzuschreiben. Hierfür haben wir das CONV Kommando der FLCL um einen sogenannten INVERSE Parameter ergänzt, welcher beim Lesen mit dem CONV das korrespondierende XCNV Kommando für das Schreiben aufbaut.
#
INVERSE COMMAND FILE FOR:
CONV.READ.AUTO(
CONV.READ.AUTO.FILE=d'FALK.TEST.XSMU8GZW
CONV.READ.AUTO)
CONV.WRITE.RECORD(
CONV.WRITE.RECORD.FILE=d'FALK.FLOUT1.TMP0353
CONV.WRITE.RECORD.FALLOC(
CONV.WRITE.RECORD.FALLOC.ORGANIZATION=SEQ
CONV.WRITE.RECORD.FALLOC.RECFORMAT=VB
CONV.WRITE.RECORD.FALLOC.RECLENGTH=d 32756
CONV.WRITE.RECORD.FALLOC)
CONV.WRITE.RECORD.RECMODE=CUT
CONV.WRITE.RECORD.CHRMODE=SUBSTITUTE
CONV.WRITE.RECORD.SYSTABLE=ICONV
CONV.WRITE.RECORD.SUPPADDING=ON
CONV.WRITE.RECORD.INDSIZ=d-1
CONV.WRITE.RECORD)
CONV.MESSAGE(
CONV.MESSAGE.ERROR=ON
CONV.MESSAGE.ERRTRACE=ON
CONV.MESSAGE.WARNING=ON
CONV.MESSAGE.INFO=ON
CONV.MESSAGE.STATISTIC=ON
CONV.MESSAGE)
CONV.LOGGING.FILE(
CONV.LOGGING.FILE.NAME=d'FALK.FLOUT2.TMP0353
CONV.LOGGING.FILE.FORMAT=DIALOG
CONV.LOGGING.FILE.IDENT=d'FLVEDIT
CONV.LOGGING.FILE)
CONV.INVERSE=d'FALK.FLIVR.TMP0353
PLEASE USE 'FLCL XCNV=THISFILE'
#
INP(SAV.FIL(
FIO.REC(NAME='FALK.FLOUT1.TMP0353' RECFMT=VB RECLEN=32751)
CNV.CHR(FROM='IBM-1141')
CNV.BLK()
FMT.XML()
))
OUT(SAV.FIL(
FMT.XML()
CNV.CHR(TO='UTF-8')
CNV.GZP(CMPLEV=AUTO MBRNAM='FALK.XMIT.PDS(XMLSOAPM).xml' COMENT='created with FLUCv5.0.33.6889 (www.flam.de)')
CNV.BAS(METHOD=BASE64)
FIO.BLK(NAME='FALK.TEST.XSMU8GZW')
))
LOG(
DEST.FILE(IDENT='FLVEDIT' FORMAT=DIALOG NAME='FALK.FLOUT2.TMP0353')
MESSAGE( ERROR ERRTRACE WARNING STATISTIC INFO )
)
Beim Speichern der geänderten Datei kann man dieses INVERSE-Kommando im ISPF-Editor noch anpassen. So kann man zum Beispiel den Zeichensatz, die Delimitter, Kommentare oder das Encoding noch vor dem Wegschreiben ändern.