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.
sysLib.convert(
Ziel ANY inOut,
[Richtung ConvertDirection in,
Konvertierungstabelle STRING in] )
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.
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