Home > Bez kategorii > IBM iSeries-Dienstprogramme für den Datenaustausch

IBM iSeries-Dienstprogramme für den Datenaustausch

1. EinführungDie IBM iSeries-Computer, die nach wie vor als AS / 400-Systeme bekannt sind, verwenden die erfolgreiche IBM DB2-Datenbank zum Speichern und Zugreifen auf Daten, die in Dateien mit den folgenden Merkmalen organisiert sind:
Sie sind normalerweise in Datenfeldern strukturiert haben eine feste Länge und einen Typ

Sie haben externe Datendefinitionen, die von Anwendungsprogrammen verwendet werden können

Numerische Daten können im gepackten Format gespeichert werden, wobei jede Ziffer in einem Semibyte gespeichert wird.

Daten sind in EBCDIC codiert

Andere Systeme wie Linux / Unix und Windows verwenden Dateien, die nur eine Folge von Bytes sind (normalerweise in ASCII codiert) und daher als Stream bezeichnet werden Dateien. Oft haben ihre Felder keine feste Länge und sind durch ein spezielles Feldbegrenzungszeichen wie ein Semikolon, einen Doppelpunkt oder eine Pipe begrenzt. Feldgetrennte Dateien werden oft durch den Export von Daten erzeugt, die ursprünglich in Tabellenkalkulationen wie Microsoft Excel oder Datenbanken wie Microsoft gespeichert waren Access). Es ist oft notwendig oder nützlich, Dateien zwischen IBM iSeries (AS / 400) und PCs und Linux / Unix-Systemen zu übertragen, aber die oben beschriebenen unterschiedlichen Dateiorganisationen machen solche Übertragungen oft kompliziert und schmerzhaft. Dieser Artikel beschreibt einige Ansätze die Arbeit vereinfachen. IBM nützliche Befehle Der IBM AS / 400 verwendet ein integriertes Dateisystem (IFS), das es ermöglicht, auf dem gleichen Server verschiedene Dateiorganisationen zu verwenden, wie sie von Linux / Unix oder Windows und den nativen AS / 400-Systemen verwendet werden. Die nativen AS / 400-Dateien werden in Bibliotheken oder DB2-Sammlungen innerhalb der QSYS.LIB gespeichert. Andere Dateisysteme existieren in den Umgebungen QOpenSys (ähnlich Unix) oder QDLS (zum Speichern von Dokumenten und Dateien in PC-Formaten). Das IFS erlaubt es, auf demselben Server Linux / Unix-basierte Anwendungen zusammen mit den nativen AS / 400-Anwendungen zu verwenden Das AS / 400-Betriebssystem bietet einige nützliche Befehle, um den Datenaustausch zwischen verschiedenen Dateisystemen zu vereinfachen, wie nachfolgend beschrieben:
CPYFRMIMPF zum Kopieren von Daten von IFS in das AS / 400-Datenbanksystem

CPYTOIMPF zum Kopieren von Daten vom AS / 400-Datenbanksystem zum IFS

CPYFRMSTMF zum Kopieren von Stream-Dateien in AS / 400-Datenbankdateien

CPYTPSTMF zum Kopieren von AS / 400-Datenbankdateien zum Streamen von Dateien

CPYTOPCD Kopieren von AS / 400-Datenbankdateien in PC-Dokumente, gespeichert in den QDLS-Ordnern

CPYFRMPCD zum Kopieren von PC-Dokumenten in den QDLS-Ordnern in AS / 400-Datenbankdateien

Die Befehle CPYTOPCD und CPYFRMPCD sind spezifisch für das QDLS-System und haben nicht viele Optionen, während die anderen erlauben, viele opt zu verwenden Ionen und sind flexibler. Sie sehen ähnlich aus, aber es gibt folgende wichtige Unterschiede: CPYFRMSTMF konvertiert Textdateien (Stream-Dateien im Textformat) in physische Dateien. Es hat kein Konzept von Feldern, so kann es nur Sätze schreiben, um die beschriebenen Dateien zu programmieren (dh Dateien, die keine Felder definiert haben) oder Quelle pfs.CPYFRMIMPF konvertiert Textdateien, aber es versucht Felder in der Eingabedatei zu interpretieren und sie zu kopieren zu den entsprechenden Feldern in der Ausgabedatei. Sie können entweder Felder mit Trennzeichen (z. B. CSV-Dateien mit Trennzeichen), mit Tabulatoren getrennte Dateien, mit Trennzeichen versehene Dateien usw. importieren oder Eingaben aus Feldern mit fester Position lesen (Sie müssen das Layout des Datensatzes in einem ” Felddefinitionsdatei “) Ein Beispiel für den zweiten Befehl ist das folgende: CPYFRMIMPF FROMSTMF (‘/ Fldr1 / File1.CSV’) TOFILE (Lib1 / FILE3) MBROPT (* ERSETZEN) RCDDLM (* CRLF) DTAFMT (* FIXED) FLDDFNFILE ( Lib1 / FILE4) Das obige Beispiel verwendet ein festes Datenformat (dh nicht abgegrenzt) und verwendet eine Felddefinitionsdatei (FILE4), um die Textdateifelder wie folgt zu beschreiben: – Dies ist ein Kommentar
– DBFeldname startpos endpos nullIndpos
field1 1 12 13
field2 14 24 0 field3 25 55 56 field4 78 89 90 field5 100 109 0 field6 110 119 120 field7 121 221 0
* ENDDas obige wird benötigt, um die Textdateidaten in eine DB-Datei mit den Feldnamen FIELD1, FIELD2, FIELD3, … und FIELD7 zu importieren. Das * END ist erforderlich. Ich denke, dass Sie die dritte Spalte verlassen können, wenn keine Felder null sind. Einige BenutzerprogrammeDie obigen Befehle sind nützlich und normalerweise vollkommen ausreichend, aber sie können komplex sein, besonders wenn die Datenfelder, die kopiert werden sollen, nicht in der gleichen Reihenfolge sind oder wenn nur einige Daten aus der Textdatei extrahiert werden sollen einige Systemmigration-Übungen, wo solche Kopien zwischen Unix, PCs und AS / 400-Systemen häufig gemacht werden mussten und ich daher einige Dienstprogramme entwickelte, um diese Aktivitäten zu vereinfachen. Die Dienstprogramme haben das Ziel, folgende Anforderungen zu erfüllen:

Support von jedes Trennzeichen, das zum Trennen der Felder verwendet wird

Möglichkeit, gültige Daten in Felder zu kopieren, die als alphanumerisch, numerisch oder numerisch definiert sind

Möglichkeit zum Kopieren von Daten, die in verschiedenen Sequenzen in den beiden Dateien gespeichert sind. Zum Beispiel sollte es möglich sein, die Felder 1, 3,4 und 6 der Textdatei in die Felder 5, 2, 1 und 4 der Zieldatenbankdatei zu kopieren.

Das Dienstprogramm sollte in der Lage sein, die Dateifeldzuordnungen (wie die oben beschriebenen) zu speichern, damit der Benutzer einfach die zuvor eingegebene Zuordnung verwenden kann.

Ich habe die Dienstprogramme in einigen Befehlen und Programmen wie folgt organisiert: a) Command UCPYFTP, um die Kopie zwischen zwei Dateien zu steuern. Für den Befehl müssen folgende Parameter eingegeben werden: AS400 DB File. . . . . . . . . TOFILE ……. AS400 Bibliothek. . . . . . . . . TOLIB * LIBLAS400 Mitglied. . . . . . . . . . TOMBR * FIRSTFTP-Datei. . . . . . . . . . . . FROMFILE ……. FTP-Bibliothek. . . . . . . . . . FROMLIB ……. Feldtrennzeichen # T = TAB]. . . . SEPARATOR ‘|’ Dezimalpunkt. . . . . . . . . DECPOINT ‘.’ Anzeigen von Feldzuordnungen (J / N). . . VIEWMAP ‘N’Up to Record No. . . . . . . . UPTOREC 0b) Programm UFMA01L zum Anzeigen und Pflegen vorhandener Dateizuordnungen. Das Display sieht wie folgt aus: UFMAP30 MAPPING DATEIWARTUNG 20/02/09 10: 03: 38AS400 Datenbankdatei: WERCSWKF FTP Datei: WERCSSeq AS400 Feld Beschreibung Typ Len D FromNr. Name FldN1 WK0003 WK_CLIENTE A 9 32 WK0004 WK_CLI_SAP A 10 43 WK0005 WK_RAGSOC A 40 54 WK0006 WK_ZIP A5 95 WK0016 WK_ADDRESS1 A 100 176 WK0017 WK_ADDRESS2 A 100 197 WK0101 WK_INDI A 30 08 WK0102 WK_CAP A5 09 WK0103 WK_LOC A 25 010 WK0104 WK_PROV A 2 0FineF3 = Beenden F6 = Aktualisieren von Zuordnungen F9 = Verwenden Sie sequenzielles Mapping F11 = ProzessDer Bildschirm zeigt, dass Feld Nummer 3 der FTP-Datei in das erste Feld der Datenbankdatei WK0003 kopiert wird, Feld 4 wird nach WK0004 kopiert usw. Die Felder, für die die Zahl Null ist, werden nicht kopiert, sondern in der Zieldatei (Nullen oder Leerzeichen) korrekt initialisiert. Beachten Sie folgende Punkte:

Die zu kopierende Datei heißt FTP-Datei, da sie normalerweise gesendet wird an die AS / 400 mit einer FTP-Übertragung.

Der Benutzer muss den Namen und die Bibliothek der FTP-Datei und der Ziel-AS / 400-Datenbankdatei angeben.

Die Befehle verwenden einige Standardwerte für das Feldtrennzeichen und den Dezimalpunkt, diese können jedoch vom Benutzer geändert werden.

Wenn der Parameter View Field Mappings auf ‘Y’ gesetzt ist, sieht der Benutzer zuvor definierte Feldzuordnungen oder gibt neue Zuordnungen ein.

Wenn der Benutzer den Befehl zum ersten Mal für ein paar FTP- und Zieldateien aufruft, extrahiert das Programm die Felddefinitionen der Datenbankdatei und zeigt das Mapping-Fenster an, damit der Benutzer die Feldzuordnungen eingeben kann welche dann gespeichert werden, um eine zukünftige Wiederverwendung zu ermöglichen. Ein ähnliches Dienstprogramm namens UCPYTOFTP ermöglicht das Kopieren der Daten von einer AS / 400-Datenbankdatei in eine Textdatei, die auf eine Linux / Unix- oder Windows-Maschine heruntergeladen werden kann. Die Dienstprogramme und ihre Dokumentation können kostenlos heruntergeladen werden meine Webseite. Bei den Programmen handelt es sich um freie Software, die unter den Bedingungen der GNU General Public License, wie sie von der Free Software Foundation veröffentlicht wird, weiterverbreitet und / oder modifiziert werden kann.

Mario Pesce – Computerberater http://www.datamission.co.uk email: mario@datamission.co.uk blog: http://mariopesceuk.blogspot.com


You may also like...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.