PERCON berücksichtigt bei der Verarbeitung das Anweisungs-, das Eingabe- und das Ausgabe-CCS. Haben alle CCS den gleichen Namen, so sind keine besonderen Regeln zu beachten. Werden unterschiedliche Namen vergeben, gelten folgende Regeln:
Eingabe-CCS ungleich Ausgabe-CCS
Ist das Eingabe-CCS ungleich dem Ausgabe-CCS, so muss Folgendes beachtet werden:
Voraussetzung für eine Konvertierung ist, dass Eingabe-CCS und Ausgabe-CCS kompatible CCS sind.
Wird keine SET-RECORD-MAPPING-Anweisung angegeben, so werden die Zeichen des Eingabesatzes bei der Übertragung in den Ausgabebereich vom Eingabe-CCS in Zeichen des Ausgabe-CCS umgewandelt, sofern die Eingabedatei ein CCS ungleich EDF03IRV besitzt.
Bei Angabe von FILLER=*INPUT in der SET-RECORD-MAPPING-Anweisung wird der Ausgabe-Satz mit dem Eingabe-Satz, unabhängig von deren CCS, vorbelegt.
Die Übertragung von Feldern des Eingabe-Satzes mit INPUT-FORMAT=*CHARACTER ist vom OUTPUT-FORMAT abhängig:
OUTPUT-FORMAT=*CHARACTER / *HEXADECIMAL / *BINARY
Das Eingabefeld wird in das Ausgabe-CCS umgesetzt und ggf. aufbereitet.OUTPUT-FORMAT=*TRANSLATION
Die Bytes des Eingabe-Feldes werden nach einer Umsetztabelle umcodiert und in das Ausgabe-Feld übertragen. Eingabe- und Ausgabe-CCSN werden nicht berücksichtigt. Die Tabelle kann als Datei oder in Form von Wertepaaren vorliegen. Werden die Bytes als c-strings über INPUT-CHARACTER / OUTPUT-CHARACTER angegeben, so werden sie als Zeichen des Anweisungs-CCS interpretiert und dementsprechend in die Umsetztabelle eingetragen.OUTPUT-FORMAT=*NO-TRANSLATION
Dieses Format wird verwendet, wenn das Eingabefeld nicht in das Ausgabe-CCS umgesetzt werden soll (z.B. bei gepackten Zahlen).OUTPUT-FORMAT=*UNICODE-TRANSLATION
Die Bytes des Eingabe-Feldes werden entweder von einem Nicht-Unicode-Format in ein Unicode-Format oder von einem Unicode-Format in ein Nicht-Unicode-Format umgesetzt und in das Ausgabe-Feld übertragen. Bei Verwendung der Unicode-Variante UTF-16 kann zusätzlich zur Konvertierung noch normalisiert werden.
Anweisungs-CCS ungleich Eingabe-CCS
Ist das Anweisungs-CCS ungleich dem Eingabe-CCS, so muss Folgendes beachtet werden:
Werden in der SELECT-INPUT-RECORDS-Anweisung c-strings verwendet, so müssen Anweisungs-CCS und Eingabe-CCS derselben Code-Familie angehören und alle Zeichen der c-strings im Eingabe-CCS vorhanden sein.
Anweisungs-CCS ungleich Ausgabe-CCS
Ist das Anweisungs-CCS ungleich dem Ausgabe-CCS, so muss Folgendes beachtet werden:
Werden in den Anweisungen SET-GROUP-ATTRIBUTES, SET-RECORD-MAPPING oder SET-PAGE-LAYOUT c-strings verwendet, so müssen Anweisungs-CCS und Ausgabe-CCS derselben Code-Familie angehören und alle Zeichen der c-strings im Ausgabe-CCS vorhanden sein.
Eingabe-CCS(n) ungleich Eingabe-CCS(n+1)
Ist das CCS der aktuellen Eingabedatei ungleich dem CCS der vorherigen Eingabedatei des Konvertierungsschrittes, so muss Folgendes beachtet werden:
Der Gruppenwechsel wird durch Vergleich von Feldern aufeinander folgender Eingabesätze, unabhängig vom CCS, festgestellt.
Bei Vergleich auf ASCENDING oder DESCENDING mit der SELECT-INPUT-RECORDS-Anweisung wird das Eingabe-CCS nicht beachtet.