convert()
Die Systemfunktion 'sysLib.convert()' konvertiert Daten aus dem Format EBCDIC (Host) in das Format ASCII (Workstation) und umgekehrt oder führt Codepage-Konvertierungen innerhalb eines einzelnen Formats durch.
Syntax
sysLib.convert(
Ziel ANY inOut,
[Richtung ConvertDirection in,
Konvertierungstabelle STRING in] )
- Ziel
- Der Name der Variablen mit den zu konvertierenden Daten. Die Daten werden an Ort und Stelle auf der Basis der Felddefinition der Felder auf der untersten
Ebene (Felder ohne Unterstruktur) im Zielobjekt konvertiert.
Datensätze variabler Länge werden nur für die Länge des aktuellen Datensatzes konvertiert. Die Länge des aktuellen Datensatzes wird mithilfe von 'numElementsItem' im Datensatz berechnet oder anhand von 'lengthItem' im Datensatz gesetzt. Wenn der Datensatz variabler Länge inmitten eines numerischen Felds oder eines DBCS-Zeichens endet, tritt ein Konvertierungsfehler auf, und das Programm wird beendet.
- Richtung
- Die Richtung der Konvertierung. Bei Angabe von Konvertierungstabelle ist die Richtung erforderlich. Ansonsten ist die Richtung
optional. Dieser Parameter verwendet Werte aus der Auflistung 'ConvertDirection':
- remote
- Dies ist der Standardwert. Es wird davon ausgegangen, dass die Daten ein fernes Format (Remote) haben und in ein lokales Format (Local) konvertiert werden sollen.
- local
- Es wird davon ausgegangen, dass die Daten ein lokales Format (Local) haben und in ein fernes Format (das in der Konvertierungstabelle definiert ist) konvertiert werden sollen.
- Konvertierungstabelle
- Eine Variable oder ein Literal, die/das den Namen der Konvertierungstabelle für die Datenkonvertierung angibt. Als Standardwert wird die Konvertierungstabelle verwendet, die beim Generieren des Programms dem Landessprachencode in der Builddeskriptoroption 'targetNLS' zugeordnet wird.
Hinweise zur Definition
Sie können den Verbindungsoptionsabschnitt verwenden, um folgende Aktionen auszuführen:
- Anfordern, dass für Fernaufrufe eine automatische Datenkonvertierung generiert werden soll.
- Starten ferner asynchroner Transaktionen.
- Zugreifen auf ferne Dateien.
Beispiel
Record OrderRec
10 record_type char(3);
10 productName char(20);
end
Record NewOrderRec
10 record_type char(3);
10 productNumber bigint;
10 unitCost decimal(7);
10 skuNum char(8);
end
Program ProgramX type basicProgram
myOrderRec OrderRec;
myNewOrderRec NewOrderRec {redefines = "myOrderRec"};
myConvTable char(8);
function main();
myConvTable = "CSOX850"; // Konvertierungstabelle für EBCDIC (amerikanisches Englisch)
if (myOrderRec.record_type == "00A")
sysLib.convert(myOrderRec, ConvertDirection.local, myConvTable);
else
sysLib.convert(myNewOrderRec, ConvertDirection.local, myConvTable);
end
call ProgramY myOrderRec;
end
end