Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How to parse Amadeus AIR ticket reservation file
Message
De
23/08/2013 06:04:07
 
 
À
23/08/2013 05:14:41
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01581031
Message ID:
01581104
Vues:
86
Sounds like they are using the IATA Edifact standard.
You can *buy* the documentation here : http://www.iata.org/publications/Pages/padis.aspx
This is based on the IATA standards with additions: http://www.cbp.gov/linkhandler/cgov/travel/inspections_carriers_facilities/apis/un_edifact_guide.ctt/un_edifact_guide.pdf

Haven't waded thru it so I don't know if it only documents the extensions or the full standard.
IAC, unless you're familiar with the general structure, EDIFACT is a pig to work with :-{


>I found code below in Cobol. Comments are in german which I dont understand.
>Can this used to parse this file and if yes, how to convert in to VFP ?
>
>
>       IDENTIFICATION DIVISION.
>       PROGRAM-ID. AIRCHE.
>      *************
>      * LIEST DATEI MIT 7A-AIR-DATENSATZ
>      ********
>      * 14.07.03 CHB "M-"-ELEM. REIN FAREBAS
>      * 08.07.03 CHB CLASS OF SERVICE <--> CL OF BOOKING
>      *              BIS HEUTE IMMER 1. WERT GENOMMEN!
>      * 08.07.03 CHB NEUES DIR: FLAG-LAUF = 3  + TMG: bsp-tmg
>      *              FLAG-LAUF = 3 FÜR LETZTEN LAUF (ALSO 1,2,2,..,2,3)
>      * 07.07.03 CHB WG. TMG: BEKOMMEN NICHT NUR 7A-AIR BEIM TICKETDRUCK
>      *              SONDERN ALLE (?) PNR-AENDERUNGEN, D.H. PROGRAMM
>      *              SORTIERT NACH AIROPT IN BLK-HEADER SEGMENT AUS,
>      *              WAS 7A-AIR RECORDS SIND UND WAS NICHT --> bsp-not7a.
>      * 18.06.03 CHB TAGE-VERSCHIEBUNG '*' UND '+' VERTAUSCHT
>      * 28.05.03 CHB NEUE 7A AIR-FELDER: AMD-OFFICEID UND AMD-IATANR
>      *              BEI TMG-IATANR (23226000) KEIN 'PERFORM TOUR'
>      * 24.04.03 CHB FUER AGB/ZWS/QDU/QKL SRM UMSETZUNG AUS FLDAT
>      *              AIRINPUT --> X(9990)
>      * 23.04.03 CHB BEI FF-FEHLER UND FLAG-LAUF = 2 --> BSP-CHECK
>      *              DELIMITER FUER FARECALC:
>      *              'IT END' DURCH 'END   ' ERSETZT
>      * 22.04.03 CHB D-MWSTKZ MIT "D" VORBELEGEN!
>      * 20.03.03 CHB WENN 'DATEI FEHLER'-ENDE AUCH MOVE NACH BSP-NOTOK
>      *              FFF VERSCHOBEN UND FFF-D GELOESCHT
>      * 12.03.03 CHB NEU: FH HAND TICKET NUMBER
>      * 08.03.03 chb FALSCHES END-IF BEI "FM"
>      * 07.03.03 CHB NEU: FQV FREQUENT FLYER
>      * 04.03.03 CHB W-CDX --> HT-RECHDATNEUX! X(6) --> X(3)
>      *              D-PROZ FUELLEN UND D-PROV AUSRECHNEN!
>      *              D-FARE1/D-FARE2 NICHT EINDEUTIG
>      * 03.03.03 CHB CPY FUER CRSACCESS
>      * 01.03.03 CHB FLAG-LAUF = 1 / 2
>      * 27.02.03 CHB T-HILF UND T-HILF-2
>      * 26.02.03 CHB D-TIDAT IST MASSGEBEND FÜR L-JJ/WO
>      * 18.02.03 CHB FARE/TAX FELDER
>      * 13.01.03 CHB ANFANG
>      ********
>       AUTHOR.   STUDIOSUS CHB.
>      *
>       ENVIRONMENT DIVISION.
>       CONFIGURATION SECTION.
>       SOURCE-COMPUTER. LEVEL-6.
>       OBJECT-COMPUTER. LEVEL-6.
>       SPECIAL-NAMES.
>           SWITCH-3   IS SW3
>           ON STATUS  IS SW3-ON
>           OFF STATUS IS SW3-OFF
>           SWITCH-5   IS SW5
>           ON STATUS  IS SW5-ON
>           OFF STATUS IS SW5-OFF.
>       INPUT-OUTPUT SECTION.
>       FILE-CONTROL.
>      *
>       copy "s-airli.cpy".
>       copy "s-fltid.cpy".
>       copy "s-fldat.cpy".
>       copy "s-sttou.cpy".
>       copy "s-steet.cpy".
>      *
>           SELECT DIRLIST ASSIGN TO FILENAME LOCK MANUAL
>           ORGANIZATION IS LINE SEQUENTIAL
>           FILE STATUS  IS FI-STAT.
>      *
>           SELECT AIRINPUT ASSIGN TO FILENAME LOCK MANUAL
>           ORGANIZATION IS LINE SEQUENTIAL
>           FILE STATUS  IS FI-STAT.
>      *
>           SELECT PCS-PROTDATEI ASSIGN TO "pcs-protdatei" LOCK MANUAL
>           ORGANIZATION IS LINE SEQUENTIAL
>           ACCESS MODE  IS SEQUENTIAL
>           FILE STATUS  IS FI-STAT.
>      *
>      *
>      *
>      *
>       DATA DIVISION.
>       FILE SECTION.
>      *
>      * 17.11.99 CHB L-JJWOX.
>      * 17.03.97   L-ANZAHL* RAUS, L-REISEDAT REIN.
>      *
>       FD  DIRLIST RECORD VARYING 1 TO 500 CHARACTERS
>           DEPENDING ON T2 LABEL RECORD IS OMITTED.
>       01  HE-DIRLIST.
>         02  DL-ZEILE              PIC X(500).
>      *
>       FD  AIRINPUT EXTERNAL RECORD VARYING 1 TO 9900 CHARACTERS
>           DEPENDING ON T1 LABEL RECORD IS OMITTED.
>      *
>       01  HE-AIRINPUT.
>         02  AIR-BUFF              PIC X(9900).
>      *
>       FD  PCS-PROTDATEI LABEL RECORD IS OMITTED.
>       01  PCS-SATZ.
>         02  PCS-CDATE             PIC 9(06).
>         02  PCS-FILEKEY           PIC X(06).
>         02  PCS-RECH              PIC 9(06).
>         02  PCS-TEXT              PIC X(50).
>      *
>       WORKING-STORAGE SECTION.
>      * data structures for SQL-Bridge >>>
>           COPY "sqlbridge.cpy".
>      * AIRLIST
>       01 AIRLIST-SATZ.
>         02 AIRLIST-STRUCTURE.
>           05 FILLER PIC X(32767).
>           copy "airche--he-airlist--str" replacing ==:REDEF:==
>                                          by ==AIRLIST-STRUCTURE==.
>      *
>      * FLDAT
>       01 FLDAT-SATZ.
>         02 FLDAT-STRUCTURE.
>           05 FILLER PIC X(32767).
>      ******
>      * 19.11.03 CHB HE-NAECHSTTICK ALS LETZTE REDEFINITION
>      ******
>           copy "airche--he-aircode--str" replacing ==:REDEF:==
>                                          by ==FLDAT-STRUCTURE==.
>           copy "airche--he-l3code--str" replacing ==:REDEF:==
>                                         by ==FLDAT-STRUCTURE==.
>      ******
>      * 12.03.96 CHB TIX-STOCK-ENDE: TICKNR-ENDE
>      ******
>      *  DIE TICKETNUMMERN STEHEN UNTER ""256 256 256"" FUER BSP,
>      *  BZW. DER AIRLINNR IN TICKCODE UND ""256"" IN TICKCODEX.
>      *  DADURCH WERDEN IATA-CODES UND 3L-CODES NICHT BERUEHRT.
>      *
>           copy "airche--he-naechsttick--str" replacing ==:REDEF:==
>                                              by ==FLDAT-STRUCTURE==.
>      *
>      ********
>      * 19.08.11 CHB D-NA-RECLOC
>      * 08.04.09 CHB D-AILRF-NR2
>      * 10.10.08 CHB D-AILRF-NR
>      * 21.02.03 CHB NEUE GRUPPENBEZ. D-FLUGDATENOCC
>      * 20.02.03 CHB NEUE GRUPPENBEZ. D-CALCOCC
>      * 26.10.00 CHB D-USER-STOP: SATZSCHUTZ FUER FLUG4 UND FLTICK!
>      * 04.05.99 CHB NEU: D-USERID
>      * 20.01.98 FA  NEU: D-PROV
>      * 01.07.92 CHB NEU: D-PLATZ
>      * 23.12.92 CHB NEU: D-BEM-2
>      * 22.07.93 RWB NEU: D-WV(=WIEDERVORLAGE) ZUR]CKSCHREIBEN WG.
>      *                   TRANSFER
>      * 11.02.94 CHB NEU: D-TEILN-NR
>      * 02.05.94 FA  NEU: D-FPAC-COUPON.
>      * 18.03.97 FA  D-BUERO, D-TYP.
>      ********
>      * FLTIDRU
>       01 FLTIDRU-SATZ.
>         02 FLTIDRU-STRUCTURE.
>           05 FILLER PIC X(32767).
>           copy "airche--he-fltidru--str" replacing ==:REDEF:==
>                                          by ==FLTIDRU-STRUCTURE==.
>      *
>      * 28.08.90   T-KENZ IN T-VISAKENZ GEAENDERT.
>      *
>      * TEILNEHMER
>       01 TEILNEHMER-SATZ.
>         02 TEILNEHMER-STRUCTURE.
>           05 FILLER PIC X(32767).
>           copy "airche--he-teilnehmer--str" replacing ==:REDEF:==
>                                             by ==TEILNEHMER-STRUCTURE==
>             .
>      ****
>      **** REDEFINITION FUER EXPEDIENT U. SB-AENDERUNGEN
>      ****
>           copy "airche--he-expedient--str" replacing ==:REDEF:==
>                                            by ==TEILNEHMER-STRUCTURE==.
>      *
>      * Žnderungen bitte auch in F-TOURW.IN.C vornehmen!
>      *    13.12.01   CHB WVL-KEY
>      *    15.11.95                HE-ANZAHLUNG
>      *    14.08.95                HE-KUNDNR.
>      *
>      * TOURKUN
>       01 TOURKUN-SATZ.
>         02 TOURKUN-STRUCTURE.
>           05 FILLER PIC X(32767).
>           copy "airche--he-tourkun--str" replacing ==:REDEF:==
>                                          by ==TOURKUN-STRUCTURE==.
>      *
>      * 08.12.01 CHB  ETL-DEMEUR
>      * 08.03.90   FA ETL-GUTSCHRIFT NUR FUER "T", SONST ETL-MELD.
>      * EETOURKUN
>       01 EETOURKUN-SATZ.
>         02 EETOURKUN-STRUCTURE.
>           05 FILLER PIC X(32767).
>           copy "airche--ee-tourkun--str" replacing ==:REDEF:==
>                                          by ==EETOURKUN-STRUCTURE==.
>      *
>           copy "airche--etl-bseite--str" replacing ==:REDEF:==
>                                          by ==EETOURKUN-STRUCTURE==.
>      *
>      *******
>      * 03.03.03 CHB CA-FILLER
>      * 03.03.03 CHB AUS FLCRS2
>      *******
>      * CRSACCESS
>       01 CRSACCESS-SATZ.
>         02 CRSACCESS-STRUCTURE.
>           05 FILLER PIC X(32767).
>           copy "airche--he-crsaccess--str" replacing ==:REDEF:==
>                                            by ==CRSACCESS-STRUCTURE==.
>      *
>      * PARAMETER
>       01 PARAMETER-SATZ.
>         02 PARAMETER-STRUCTURE.
>           05 FILLER PIC X(32767).
>           copy "airche--he-parameter--str" replacing ==:REDEF:==
>                                            by ==PARAMETER-STRUCTURE==.
>      *
>           copy "airche--he-par-saison--str" replacing ==:REDEF:==
>                                             by ==PARAMETER-STRUCTURE==.
>      *
>      * <<< data structures for SQL-Bridge
>       77  SYSTEM-STATUS PIC S999 COMP-4 VALUE ZERO.
>       COPY "w-parueb.cpy".
>       77  FI-STAT                 PIC X(02) VALUE SPACES.
>       77  FI-ENDE                 PIC 9(01) VALUE ZEROES.
>       77  SWNO5                   PIC X(01) VALUE "5".
>       77  SWNO3                   PIC X(01) VALUE "3".
>       77  T1                      PIC S9(4) COMP-4    VALUE ZEROES.
>       77  T2                      PIC S9(4) COMP-4    VALUE ZEROES.
>       77  IN-CHAR                 PIC X(01) VALUE SPACE.
>       77  POINT1                  PIC S9(4) COMP-4 VALUE ZERO.
>       77  POINT1-2                PIC S9(4) COMP-4 VALUE ZERO.
>       77  POINT1-XT               PIC S9(4) COMP-4 VALUE ZERO.
>       77  XT-FARECALC             PIC X(240) VALUE SPACES.
>       77  POINT1-RR               PIC S9(4) COMP-4 VALUE ZERO.
>       77  TEXT-RR                 PIC X(240) VALUE SPACES.
>       77  D1                      PIC S9(4) COMP-4 VALUE ZERO.
>       77  RES-LFD                 PIC S9(4) COMP-4 VALUE ZERO.
>       77  W-INTEGER               PIC 9(04) VALUE ZEROES.
>       77  W-SEQ                   PIC X(01) VALUE SPACES.
>       77  W-ANZ                   PIC 9(06) VALUE ZEROES.
>       77  W-ARR                   PIC X(03) VALUE SPACES.
>       77  VGL-PERS                PIC 9(02) VALUE ZEROES.
>       77  DUP-RECH                PIC 9(06) COMP-6 VALUE ZEROES.
>       77  EG-DATN                 PIC 9(06) VALUE ZEROES.
>       77  DUP-DFKEY                PIC X(11) VALUE SPACES.
>       77  W-TVL-PAX               PIC 9(02) VALUE ZEROES.
>       77  BEFEHL                  PIC X(80) VALUE SPACES.
>       77  PFAD                    PIC X(80) VALUE SPACES.
>       77  FFTEXT                  PIC X(45) VALUE SPACES.
>       77  FFTEXT2                 PIC X(40) VALUE SPACES.
>       77  FILENAME                PIC X(80) VALUE SPACES.
>       77  MWST                    PIC 99V99 COMP-6 VALUE 16.
>       77  DAT-STAT                PIC S9(4) COMP-4    VALUE ZEROES.
>       77  DAT-STAT2               PIC S9(8) COMP-4    VALUE ZEROES.
>       77  TAGE                    PIC S9(4) COMP-4    VALUE ZEROES.
>       77  W-WOCHE                 pic 9(2)            VALUE ZEROES.
>       77  MAX-CONNR               PIC S9(4) COMP-4    VALUE ZEROES.
>       77  PNT1                    PIC S9(4) COMP-4 VALUE ZEROES.
>       77  PNT2                    PIC S9(4) COMP-4 VALUE ZEROES.
>       77  PNT3                    PIC S9(4) COMP-4 VALUE ZEROES.
>       77  MAX-MSG                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  MAX-SEG                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  MAX-COM                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  MAX-ELE                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  S-CNT                   PIC S9(4) COMP-4 VALUE ZEROES.
>       77  C-CNT                   PIC S9(4) COMP-4 VALUE ZEROES.
>       77  T-CNT                   PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-H-CNT                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-I-CNT                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-T-CNT                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-A-CNT                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-D-CNT                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-G-CNT                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-K-CNT                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-KN-CNT                PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-KS-CNT                PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-KFT-CNT               PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-KNT-CNT               PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-KST-CNT               PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-Q-CNT                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-M-CNT                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-O-CNT                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-FE-CNT                PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-FM-CNT                PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-FO-CNT                PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-FP-CNT                PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-FV-CNT                PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-FS-CNT                PIC S9(4) COMP-4 VALUE ZEROES.
>       77  R-FT-CNT                PIC S9(4) COMP-4 VALUE ZEROES.
>       77  AMD-CNT                 PIC S9(4) COMP-4 VALUE ZEROES.
>       77  OVFL-CNT                PIC S9(4) COMP-4 VALUE ZEROES.
>       77  DIS-PNT1                PIC +(04)9.
>       77  DIS-PNT2                PIC +(04)9.
>       77  DIS-PNT3                PIC +(04)9.
>       77  DIS-PNTM                PIC +(04)9.
>       77  DIS-PNTS                PIC +(04)9.
>       77  DIS-OVFL                PIC +(04)9.
>       01  W-CHAR6.
>         02  W-NUM6                PIC 9(06) VALUE ZEROES.
>       01  PNT-FELDER.
>         02  PNT-EIN               PIC S9(4) COMP-4 VALUE ZEROES.
>         02  PNT-AUS               PIC S9(4) COMP-4 VALUE ZEROES.
>         02  PNT-MSG               PIC S9(4) COMP-4 VALUE ZEROES.
>         02  PNT-SEG               PIC S9(4) COMP-4 VALUE ZEROES.
>         02  PNT-COM               PIC S9(4) COMP-4 VALUE ZEROES.
>         02  PNT-ELE               PIC S9(4) COMP-4 VALUE ZEROES.
>       01  W-PRUEF.
>         02  W-PR-STX              PIC X(01).
>         02  W-PR-MUCGSX.
>           03  W-PR-MUCGS          PIC X(05).
>           03  W-PR-VORG.
>             04  W-PR-RECHNRX.
>               05  W-PR-RECHNR     PIC 9(06).
>             04  W-PR-STR          PIC X(01).
>             04  W-PR-REISE        PIC X(10).
>       01  ACCLAE-FELDER.
>         02  ACC-MAX               PIC S9(4) COMP-4 VALUE ZEROES.
>         02  ACC-1                 PIC S9(4) COMP-4 VALUE ZEROES.
>         02  ACC-2                 PIC S9(4) COMP-4 VALUE ZEROES.
>         02  ACC-F3                PIC 9 COMP VALUE ZEROES.
>         02  ACC-PROZ              PIC X(01) VALUE SPACES.
>         02  ACC-MWST              PIC 9(01) VALUE ZEROES.
>         02  ACC-MINUS             PIC S9 VALUE 1.
>         02  ACC-ZEICHEN           PIC X(01).
>         02  ACC-BRUTTO            PIC S9(10)V9(06) COMP-3 VALUE ZEROES.
>         02  F5-PIZR               PIC S9(10)V9(06) COMP-3 VALUE ZEROES.
>         02  F5-FELD               PIC X(40) VALUE SPACES.
>         02  ACC-ZAHL              PIC S9(10)V9(06) COMP-3 VALUE ZEROES.
>         02  ACC-TAGE              PIC S9(4) COMP-4 VALUE ZEROES.
>         02  ACC-DATN              PIC 9(06) COMP-6 VALUE ZEROES.
>         02  FILLER REDEFINES ACC-DATN.
>           03  ACC-DATJ            PIC 9(02) COMP-6.
>           03  ACC-DATM            PIC 9(02) COMP-6.
>           03  ACC-DATT            PIC 9(02) COMP-6.
>         02  ACC-SAISON            PIC X(02) VALUE SPACES.
>         02  ZAHL-CHAR             PIC X(20).
>         02  ZAHL-CH REDEFINES ZAHL-CHAR       PIC X(01) OCCURS 20.
>         02  ZAHL-FILLER.
>           03  VORKOMMAX           PIC X(10) JUST.
>           03  VORKOMMAN REDEFINES VORKOMMAX   PIC 9(10).
>           03  NACHKOMMAX          PIC X(06).
>           03  NACHKOMMAN REDEFINES NACHKOMMAX PIC 9(06).
>         02  ZAHL-X-OCC REDEFINES ZAHL-FILLER.
>           03  ZAHL-X              PIC X(01) OCCURS 16.
>         02  ACC-BI-6.
>           04  ACC-BI-T            PIC 9(02).
>           04  ACC-BI-M            PIC 9(02).
>           04  ACC-BI-J            PIC 9(02).
>           04  ACC-BI-JX REDEFINES ACC-BI-J PIC X(02).
>         02  FILLER REDEFINES ACC-BI-6.
>           03  ACC-BI-X            PIC X(01) OCCURS 6.
>       01  PERSID                  PIC X(12).
>       01  SAISON                  PIC X(02).
>       01  N-SAISON REDEFINES SAISON PIC 9(02).
>       01  FILLER1.
>         02  FILLER                PIC X.
>         02  DISY                  PIC X.
>       01  DIS-UC1 REDEFINES FILLER1  PIC S9(4) COMP-4.
>       01  FLAG-VARS.
>         02  FLAG-SUPER            PIC 9(01) VALUE ZEROES.
>         02  FLAG-LAUFX.
>           03  FLAG-LAUF           PIC 9(01) VALUE ZEROES.
>         02  FLAG-UPROG            PIC 9(01) VALUE ZEROES.
>       01  HILFSFELD.
>         02  CLS                   PIC X(04)  VALUE X"1B481B4A".
>         02  X1                    PIC S9(4) COMP-4 VALUE ZEROES.
>         02  X2                    PIC S9(4) COMP-4 VALUE ZEROES.
>         02  X3                    PIC S9(4) COMP-4 VALUE ZEROES.
>         02  X4                    PIC S9(4) COMP-4 VALUE ZEROES.
>         02  X5                    PIC S9(4) COMP-4 VALUE ZEROES.
>         02  A1                    PIC S9(4) COMP-4 VALUE ZEROES.
>         02  XD                    PIC S9(4) COMP-4 VALUE ZEROES.
>         02  L                     PIC S9(4) COMP-4 VALUE ZEROES.
>         02  Z                     PIC S9(4) COMP-4 VALUE ZERO.
>         02  ZZ                    PIC S9(4) COMP-4 VALUE ZERO.
>         02  DUP-Z                 PIC 9(02) COMP-6 VALUE ZEROES.
>         02  MAX-Z                 PIC S9(4) COMP-4 VALUE ZERO.
>         02  F1                    PIC X(02)  VALUE X"1B30".
>         02  F2                    PIC X(02)  VALUE X"1B32".
>         02  F3                    PIC X(02)  VALUE X"1B36".
>         02  F4                    PIC X(02)  VALUE X"1B38".
>         02  F5                    PIC X(02)  VALUE X"1B3A".
>         02  F6                    PIC X(02)  VALUE X"1B3C".
>         02  FTASTE                PIC 9(02)  COMP-6 VALUE 0.
>         02  ESC-ESC               PIC X(02) VALUE X"1B1B".
>         02  DISZ2                 PIC Z(02).
>         02  DISZ4                 PIC Z(03)9.
>         02  FILLER REDEFINES DISZ4.
>           03  DIS-FLNR            PIC Z9(03).
>         02  DISZ6                 PIC Z(05)9.
>         02  DISM6                 PIC -(05)9.
>         02  DISX1.
>           03  DIS91               PIC 9.
>       01  DATUM-VARIABLEN.
>         02  TAGESDATUM            PIC 9(06)    COMP-6.
>         02  HILF-DATUM            PIC 9(06)    COMP-6.
>         02  W-CD                  PIC 9(06).
>         02  W-CDX REDEFINES W-CD.
>           03 W-CDJ                PIC 9(02).
>           03 W-CDM                PIC 9(02).
>           03 W-CDT                PIC 9(02).
>         02  DAT.
>           03  DATN                PIC 9(06) COMP-6 VALUE 0.
>           03  DATX REDEFINES DATN.
>             04  DATJ              PIC 9(02) COMP-6.
>             04  DAT4.
>               05  DATM            PIC 9(02) COMP-6.
>               05  DATT            PIC 9(02) COMP-6.
>             04  FILLER REDEFINES DAT4.
>               05  DAT4N           PIC 9(04) COMP-6.
>           03  B-DATN              PIC 9(06) COMP-6 VALUE 0.
>         02  G-DAT.
>           03  G-DATN              PIC 9(06) VALUE ZEROES.
>           03  G-DATX REDEFINES G-DATN.
>             04  G-DATT            PIC 9(02).
>             04  G-DATM            PIC 9(02).
>             04  G-DATJ            PIC 9(02).
>         02  W-TIME                PIC 9(08) VALUE ZEROES.
>         02  FILLER REDEFINES W-TIME.
>           03  W-TI-HHMM           PIC 9(04).
>           03  FILLER              PIC X(04).
>         02  FILLER REDEFINES W-TIME.
>           03  W-TI-HH             PIC 9(02).
>           03  W-TI-MM             PIC 9(02).
>           03  W-TI-SS             PIC 9(02).
>           03  FILLER              PIC 9(02).
>         02  W-TD-HHMM             PIC 9(04) VALUE ZEROES.
>         02  FILLER REDEFINES W-TD-HHMM.
>           03  W-TD-HH             PIC 9(02).
>           03  W-TD-MM             PIC 9(02).
>         02  BIDAT.
>           03  BIDAT4.
>             04  BIDATT            PIC 9(02).
>             04  BIDAT1            PIC X(01).
>             04  BIDATM            PIC 9(02).
>           03  BIDAT2              PIC X(01).
>           03  BIDATJ              PIC 9(02).
>         02  W-FL-TTMMM.
>           03  W-FL-TAG            PIC X(02).
>           03  W-FL-MON            PIC X(03).
>         02  W-FL-DATN             PIC 9(06).
>         02  FILLER REDEFINES W-FL-DATN.
>           03  W-FL-DATJ           PIC 9(02).
>           03  W-FL-DATM           PIC 9(02).
>           03  W-FL-DATT           PIC 9(02).
>       01  MON-FILLER.
>         02  M-FILLER.
>           03  FILLER              PIC X(12) VALUE "312831303130".
>           03  FILLER              PIC X(12) VALUE "313130313031".
>         02  MONAT  REDEFINES M-FILLER PIC 9(02) OCCURS 12.
>         02  MO-TEXT-FILLER.
>           03  FILLER              PIC X(12) VALUE "JANFEBMARAPR".
>           03  FILLER              PIC X(12) VALUE "MAYJUNJULAUG".
>           03  FILLER              PIC X(12) VALUE "SEPOCTNOVDEC".
>         02  MO-TEXT REDEFINES MO-TEXT-FILLER PIC X(03) OCCURS 12.
>       01  WOCHENTAGE.
>         02  WOTAG                 PIC X(2) OCCURS 7.
>       01  DATUM.
>         02  DATUM-19              PIC X(02) VALUE "19".
>         02  DATUM-J               PIC 9(02).
>         02  DATUM-STR1            PIC X(01) VALUE "/".
>         02  DATUM-M               PIC 9(02).
>         02  DATUM-STR2            PIC X(01) VALUE "/".
>         02  DATUM-T               PIC 9(02).
>       01  DATUMB.
>         02  DATUMB-19             PIC X(02) VALUE "19".
>         02  DATUMB-J              PIC 9(02).
>         02  DATUMB-STR1           PIC X(01) VALUE "/".
>         02  DATUMB-M              PIC 9(02).
>         02  DATUMB-STR2           PIC X(01) VALUE "/".
>         02  DATUMB-T              PIC 9(02).
>       01  U-2000.
>         02  DISDAT6               PIC 9(06) VALUE ZEROES.
>         02  DISDAT8               PIC 9(08) VALUE ZEROES.
>         02  U-DAT8N               PIC 9(08) COMP-6 VALUE ZEROES.
>         02  FILLER REDEFINES   U-DAT8N.
>           03  U-DATJ4             PIC 9(04) COMP-6.
>           03  FILLER              PIC X(02).
>         02  FILLER REDEFINES   U-DAT8N.
>           03  U-DATJH             PIC 9(02) COMP-6.
>           03  U-DAT6N             PIC 9(06) COMP-6.
>           03  FILLER REDEFINES U-DAT6N.
>             04  U-DATJ            PIC 9(02) COMP-6.
>             04  U-DATM            PIC 9(02) COMP-6.
>             04  U-DATT            PIC 9(02) COMP-6.
>         02  UW-CD                 PIC 9(08) COMP-6 VALUE ZEROES.
>         02  UX                    PIC S9(4) COMP-4 VALUE ZEROES.
>         02  UW-HT-REISEDAT        PIC 9(08) COMP-6 VALUE ZEROES.
>         02  UW-HT-BISDAT          PIC 9(08) COMP-6 VALUE ZEROES.
>         02  UW-HILFDAT            PIC 9(08) COMP-6 VALUE ZEROES.
>       01  DIR-ZEILE.
>         02  DIR-PRUEF             PIC X(01).
>         02  FILLER                PIC X(15).
>         02  DIR-OWNER             PIC X(08).
>         02  FILLER                PIC X(01).
>         02  DIR-GROUP             PIC X(08).
>         02  FILLER                PIC X(22).
>         02  DIR-FILE              PIC X(20).
>       01  H-FLUGDATENX.
>         02  H-FLUGDATEN           OCCURS 20.
>           03  H-X                 PIC X.
>           03  H-FROM-3L           PIC X(3).
>           03  H-FROM              PIC X(17).
>           03  H-CIA               PIC X(03).
>           03  H-FLY               PIC X(04).
>           03  H-CL                PIC X(01).
>           03  H-DATE              PIC X(05).
>           03  H-TIME              PIC X(04).
>           03  H-ST                PIC X(02).
>           03  H-FAREBAS           PIC X(14).
>           03  H-BEFORE            PIC X(05).
>           03  H-AFTER             PIC X(05).
>           03  H-FREE              PIC X(03).
>           03  H-TIME2.
>             04  FILLER            PIC X(04).
>             04  H-TIME2-X         PIC X(01).
>           03  H-PLATZ             PIC X(03).
>           03  FILLER              PIC X(02).
>           03  H-ARR-3L            PIC X(03).
>           03  H-ARR               PIC X(17).
>           03  H-ARR-DATE          pic X(03).
>      *
>       01  DUP-EETOURKUN.
>           02 DUP-ET-KEYX          PIC X(4).
>           02 DUP-ET-REST          PIC X(103).
>      *
>       01  ZWI-EETOURKUN.
>           02 ZWI-ET-KEYX          PIC X(4).
>           02 ZWI-ET-REST          PIC X(103).
>      *
>       01  DUP-FLTIDRU.
>         02  DUP-KEY.
>           03  DUP-RECHX           PIC X(3).
>           03  DUP-NR              PIC 9(04)  COMP-6.
>           03  DUP-CONNR           PIC 9(02)  COMP-6.
>         02  DUP-DRUCK-KEY.
>           03  DUP-DRUCK           PIC X(01).
>           03  DUP-AIRL            PIC 9(03).
>         02  DUP-REST.
>           03  DUP-TINR.
>             04  DUP-CODE          PIC 9(04)  COMP-6.
>             04  DUP-CODEX         PIC X(01).
>             04  DUP-TICK          PIC 9(10)  COMP-6.
>           03  DUP-TIDAT           PIC 9(06)  COMP-6.
>           03  DUP-FARE1X          PIC X(03).
>0406       03  DUP-FARE1N          PIC 9(8)V99  COMP-6.
>           03  DUP-FARE2X          PIC X(03).
>           03  DUP-FARE2N          PIC S9(5)V99  COMP-3.
>           03  DUP-TAX1X           PIC X(03).
>           03  DUP-TAX1N           PIC S9(3)V99  COMP-3.
>           03  DUP-TAX1LAND        PIC X(02).
>           03  DUP-TAX2X           PIC X(03).
>           03  DUP-TAX2N           PIC S9(3)V99  COMP-3.
>           03  DUP-TAX2LAND        PIC X(02).
>           03  DUP-TOTX            PIC X(03).
>           03  DUP-TOTN            PIC S9(5)V99  COMP-3.
>           03  DUP-MWSTKZ          PIC X(01).
>           03  DUP-PROZ            PIC 99V99  COMP-6.
>           03  DUP-AGNR            PIC 9(06)  COMP-6.
>           03  DUP-BEARB           PIC X(04).
>           03  DUP-FACTOR          PIC X(01).
>           03  DUP-ORIG-3L         PIC X(03).
>           03  DUP-ORIG            PIC X(17).
>           03  DUP-DEST-3L         PIC X(03).
>           03  DUP-DEST            PIC X(17).
>           03  DUP-TOURCODE        PIC X(14).
>           03  DUP-NAM             PIC X(26).
>           03  DUP-EXCHANGE.
>             04  DUP-EXCODE        PIC 9(3).
>             04  DUP-EXTICK        PIC 9(10).
>           03  DUP-ISSUE.
>             04  DUP-ISSUECODE     PIC 9(3).
>             04  DUP-ISSUETICK     PIC 9(10).
>             04  FILLER            PIC X(19).
>           03  DUP-FLUGDATEN                     OCCURS 4.
>             04  DUP-X             PIC X.
>             04  DUP-FROM-3L       PIC X(03).
>             04  DUP-FROM          PIC X(17).
>             04  DUP-CIA           PIC X(03).
>             04  DUP-FLY           PIC X(04).
>             04  DUP-CL            PIC X(01).
>             04  DUP-DATE          PIC X(05).
>             04  DUP-TIME          PIC X(04).
>             04  DUP-ST            PIC X(02).
>             04  DUP-FAREBAS       PIC X(14).
>             04  DUP-BEFORE        PIC X(05).
>             04  DUP-AFTER         PIC X(05).
>             04  DUP-FREE          PIC X(03).
>             04  DUP-TIME2         PIC X(05).
>             04  DUP-PLATZ         PIC X(03).
>             04  FILLER            PIC X(02).
>           03  DUP-TOX             PIC X.
>           03  DUP-TO-3L           PIC X(3).
>           03  DUP-TO              PIC X(17).
>           03  DUP-CALCOCC.
>             04  DUP-CALC          PIC X(60)   OCCURS 4.
>           03  DUP-PAYM            PIC X(30).
>           03  DUP-BEM             PIC X(28).
>           03  DUP-TAX3.
>             04  DUP-TAX3X         PIC X(03).
>             04  DUP-TAX3N         PIC S9(3)V99  COMP-3.
>             04  DUP-TAX3LAND      PIC X(02).
>           03  DUP-FILEKEY         PIC X(20).
>           03  DUP-ISI             PIC X(04).
>           03  DUP-DRU             PIC X.
>           03  DUP-PREIS           PIC S9(7)V99  COMP-3.
>           03  DUP-BEM-2           PIC X(28).
>           03  DUP-WV              PIC X(02).
>           03  DUP-TEILN-NRX.
>             04  DUP-TEILN-NR      PIC 9(02).
>           03  DUP-FPAC-COUPON     PIC X(04).
>180397     03  DUP-BUERO           PIC X(04).
>180397     03  DUP-TYP             PIC X.
>           03  DUP-PROVX.
>             04  DUP-PROV          PIC S9(7)V99  COMP-3.
>           03  DUP-USER-ID         PIC X(08).
>           03  DUP-USER-STOP       PIC X(08).
>           03  FILLER              PIC X(58).
>     *
>       01  VGL-D-KEY.
>         02  VGL-D-RECHX           PIC X(3).
>         02  VGL-D-NR              PIC 9(04)  COMP-6.
>         02  VGL-D-CONNR           PIC 9(02)  COMP-6.
>       01  VGL-DD-KEY.
>         02  VGL-DD-RECHX          PIC X(3).
>         02  VGL-DD-NR             PIC 9(04)  COMP-6.
>         02  VGL-DD-CONNR          PIC 9(02)  COMP-6.
>      *
>       01  ALLG-ELEMENTE.
>         02  W-SEGTERM             PIC X(01) VALUE X"1C".
>         02  W-COMTERM             PIC X(01) VALUE X"1D".
>         02  W-CRLF.
>           03  W-CR                PIC X(01) VALUE X"0D".
>           03  W-LF                PIC X(01) VALUE X"0A".
>         02  H-SEGTERM             PIC X(01) VALUE "m".
>         02  H-COMTERM             PIC X(01) VALUE ";".
>         02  H-CRLF.
>           03  H-CR                PIC X(01) VALUE "m".
>           03  H-LF                PIC X(01) VALUE "a".
>      *
>       01  UNST-FILLER.
>         02  U-DELIM               PIC X(05).
>         02  UNST-T1               PIC X(500).
>         02  FILLER REDEFINES UNST-T1.
>           03  UNST-T1-70          PIC X(70).
>           03  FILLER              PIC X(0430).
>         02  UNST-T2               PIC X(100).
>         02  FILLER REDEFINES UNST-T2.
>           03  UNST-T2-70          PIC X(070).
>           03  FILLER              PIC X(030).
>         02  UNST-T3               PIC X(100).
>      *
>       01  STRING-FILLER.
>         02  STRING-TEXT           PIC X(90).
>         02  FILLER REDEFINES STRING-TEXT.
>           03  STRING-T1           PIC X(33).
>           03  STRING-T2           PIC X(33).
>           03  FILLER REDEFINES STRING-T2.
>             04  STRING-T2-1       PIC X(01).
>             04  FILLER            PIC X(32).
>           03  STRING-TITEL        PIC X(20).
>           03  STRING-VON          PIC X(04).
>       01  T-HILF-FILLER.
>         02  T-HILF                 PIC X(26).
>         02  FILLER REDEFINES T-HILF.
>           03  T-4                  PIC X(04).
>           03  FILLER               PIC X(22).
>         02  T-HILF-2               PIC X(26).
>      *
>      ********
>      * EDIFACT-VARIABLE/IATAHH-UEBERGABEBEREICHE
>      ********
>       01  ED-EINGANG.
>         02  ED-EIN-3840           PIC X(9990).
>         02  FILLER REDEFINES ED-EIN-3840.
>           03  ED-EIN-70.
>             04  ED-EIN-10         PIC X(10).
>             04  FILLER            PIC X(60).
>           03  FILLER              PIC X(9920).
>       01  ED-SEGMENT.
>         02  SEG-DATA              PIC X(401) VALUE SPACES.
>         02  FILLER REDEFINES SEG-DATA.
>           03  SEG-ZEILE.
>             04  SEG-TAG4.
>               05  SEG-TAG3.
>                 06  SEG-TAG       PIC X(02).
>                 06  FILLER        PIC X(01).
>               05  FILLER          PIC X(01).
>             04  FILLER            PIC X(76).
>           03  FILLER              PIC X(320).
>           03  SEG-DATA-DELIM      PIC X(01).
>       01  RESPONSE-ELEMENTE.
>         02  R-ELEMENTE.
>           03  AMD-ELEMENTE.
>             04  AMD-RECLOC.
>               05  AMD-PRUEF       PIC X(06).
>               05  AMD-FILEKEY     PIC X(06).
>             04  AMD-PERS.
>               05  AMD-PNRPERN     PIC 9(02).
>               05  AMD-AIRPERN     PIC 9(02).
>             04  AMD-OFFICEID      PIC X(09).
>             04  AMD-IATANR        PIC X(08).
>           03  R-A-ELEMENTE.
>             04  R-A-AIRLINE.
>               05  R-A-AIRL        PIC X(03).
>               05  R-A-CODE.
>                 06  R-A-CODEN     PIC 9(03).
>               05  R-A-CHECK       PIC X(01).
>           03  R-D-ELEMENTE.
>             04  R-D-TIDAT.
>               05  R-D-TIDATN      PIC 9(06).
>           03  R-G-ELEMENTE.
>             04  R-G-ISI           PIC X(04).
>             04  R-G-ORIGDEST.
>               05  R-G-ORIG        PIC X(03).
>               05  R-G-DEST        PIC X(03).
>           03  R-H-ELEMENTE.
>             04  R-H-ORIGX.
>               05  FILLER          PIC X(03).
>               05  R-H-X           PIC X(01).
>               05  R-H-FROM-3L     PIC X(03).
>             04  R-H-FROM          PIC X(17).
>             04  R-H-ARR-3L        PIC X(03).
>             04  R-H-ARR           PIC X(17).
>             04  R-H-FLUG.
>               05  R-H-CIA         PIC X(06).
>               05  R-H-FLY         PIC X(05).
>               05  R-H-CL-SER      PIC X(02).
>               05  R-H-CL          PIC X(02).
>               05  R-H-DATE.
>                 06  R-H-TT        PIC 9(02).
>                 06  R-H-MMM       PIC X(03).
>               05  R-H-TIME.
>                 06  R-H-HH        PIC 9(02).
>                 06  R-H-MM        PIC 9(02).
>                 06  R-H-AP        PIC X(01).
>               05  R-H-ARR-TIME.
>                 06  R-H-A-HH      PIC 9(02).
>                 06  R-H-A-MM      PIC 9(02).
>                 06  R-H-A-AP      PIC X(01).
>               05  R-H-ARR-DATE.
>                 06  R-H-A-TT      PIC 9(02).
>                 06  R-H-A-MMM     PIC X(03).
>             04  R-H-STATUS.
>               05  R-H-ST          PIC X(02).
>             04  R-H-PNRSTATUS.
>               05  R-H-PNRST       PIC X(02).
>             04  R-H-FREE          PIC X(03).
>           03  R-M-ELEMENTE.
>             04  R-M-DATAX         OCCURS 28.
>               05  R-M-PCODE       PIC X(03).
>               05  R-M-FAREBAS     PIC X(06).
>               05  R-M-DESIGNATOR  PIC X(06).
>           03  R-O-ELEMENTE.
>             04  R-O-VALIDITY      OCCURS 28.
>               05  R-O-BEFORE      PIC X(05).
>               05  R-O-AFTER       PIC X(05).
>           03  R-K-ELEMENTE.
>             04  R-K-FARE1X.
>               05  FILLER          PIC X(01).
>               05  R-K-FARE1-WS    PIC X(03).
>               05  R-K-FARE1       PIC X(11).
>             04  R-K-FARE2X.
>               05  R-K-FARE2-WS    PIC X(03).
>               05  R-K-FARE2       PIC X(11).
>             04  R-K-TOTAL.
>               05  R-K-TTL-WS      PIC X(03).
>               05  R-K-TTL         PIC X(11).
>           03  R-KFT-ELEMENTE.
>             04  R-KFT-TAXX        OCCURS 31.
>               05  FILLER          PIC X(01).
>               05  R-KFT-WS        PIC X(03).
>               05  R-KFT-TAX       PIC X(09).
>               05  R-KFT-TAXLAND   PIC X(03).
>           03  R-Q-ELEMENTE.
>             04  R-Q-CALC          PIC X(430).
>           03  R-I-ELEMENTE.
>             04  R-I-NAMEX.
>               05  R-I-LFD.
>                 06  R-I-LFDN      PIC 9(02).
>               05  R-I-NAME        PIC X(64).
>           03  R-T-ELEMENTE.
>             04  R-T-TICKETNR.
>               05  R-TIX-TYP       PIC X(01).
>               05  R-T-CODEX.
>                 06  R-T-CODEN     PIC 9(03).
>               05  FILLER          PIC X(01).
>               05  R-T-TIXX.
>                 06  R-T-TIXN      PIC 9(10).
>               05  FILLER REDEFINES R-T-TIXX.
>                 06  FILLER        PIC X(08).
>                 06  R-T-TIX-RN    PIC 9(02).
>               05  R-T-STRICH      PIC X(01).
>               05  R-T-CONJX.
>                 06  R-T-CONJN     PIC 9(02).
>           03  R-FF-ELEMENTE.
>             04  R-FF-TEXT         PIC X(248).
>      *****
>      * COPY MEMBER
>      *****
>         COPY "f-whe.cpy".
>         COPY "w-zahl.cpy".
>         COPY "bizeil.cpy".
>         02  FILLER  REDEFINES BIZEIL.
>           03  SHIFT-ITEM.
>             04  SHIFT-01-BYTE     PIC X(01).
>             04  SHIFT-REST        PIC X(284).
>       PROCEDURE DIVISION.
>      *
>       DECLARATIVES.
>       DCL SECTION.
>           USE AFTER ERROR PROCEDURE
>                           DIRLIST
>                           AIRINPUT.
>       DCL-EX.  EXIT.
>       END DECLARATIVES.
>      *
>       ANFANG SECTION.
>       P00.
>      ********
>      *
>           ACCEPT FLAG-LAUFX FROM COMMAND-LINE.
>           IF FLAG-LAUFX = "2" OR "3" NEXT SENTENCE
>           ELSE
>             MOVE 1 TO FLAG-LAUF.
>           IF FLAG-LAUF = 1
>             MOVE "/transx1/bsp-ok/"                TO PFAD
>             MOVE "/transx1/bsp-ok/ls.airche"       TO FILENAME
>           ELSE
>             MOVE "/transx1/bsp-notok/"          TO PFAD
>             MOVE "/transx1/bsp-notok/ls.airche" TO FILENAME.
>      ******
>      * WENN AIRIMP ALS HINTERGRUNDPROGRAMM LAEUFT: FLAG-UPROG = 1
>      ******
>           MOVE 1        TO FLAG-UPROG.
>           ACCEPT W-CD FROM DATE.                                       *HELP*
>           MOVE W-CD     TO DATN.
>           COMPUTE W-WOCHE = (DATM - 1) * 4 + 1.
>           IF DATT > 7  ADD 1 TO W-WOCHE.
>           IF DATT > 15 ADD 1 TO W-WOCHE.
>           IF DATT > 23 ADD 1 TO W-WOCHE.
> ee-  *    OPEN INPUT CRSACCESS, TEILNEHMER.
> ee+       MOVE "crsacces" TO VIEW--PATH
> ee+       MOVE "OPN" TO VIEW--FUNC
> ee+       MOVE "I" TO VIEW--OPNMOD
> ee+       MOVE "CRSACCES1" TO VIEW--IONAME
> ee+       CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH
>             VIEW--KEY-EQUAL-FIX VIEW--PARAM
> ee+       MOVE VIEW--STATUS TO FI-STAT
> ee+       MOVE "teilnehm" TO VIEW--PATH
> ee+       MOVE "OPN" TO VIEW--FUNC
> ee+       MOVE "I" TO VIEW--OPNMOD
> ee+       MOVE "TEILNEHM1" TO VIEW--IONAME
> ee+       CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH
>             VIEW--KEY-EQUAL-FIX VIEW--PARAM.
>           OPEN EXTEND PCS-PROTDATEI.
> ee-  *    OPEN I-O AIRLIST, FLTIDRU, FLDAT.
> ee+       MOVE "airlist" TO VIEW--PATH
> ee+       MOVE "OPN" TO VIEW--FUNC
> ee+       MOVE "U" TO VIEW--OPNMOD
> ee+       MOVE "AIRLIST1" TO VIEW--IONAME
> ee+       CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH
>             VIEW--KEY-EQUAL-FIX VIEW--PARAM
> ee+       MOVE VIEW--STATUS TO FI-STAT
> ee+       MOVE "fltidru" TO VIEW--PATH
> ee+       MOVE "OPN" TO VIEW--FUNC
> ee+       MOVE "U" TO VIEW--OPNMOD
> ee+       MOVE "FLTIDRU1" TO VIEW--IONAME
> ee+       CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH
>             VIEW--KEY-EQUAL-FIX VIEW--PARAM
> ee+       MOVE VIEW--STATUS TO FI-STAT
> ee+       MOVE "fldat" TO VIEW--PATH
> ee+       MOVE "OPN" TO VIEW--FUNC
> ee+       MOVE "U" TO VIEW--OPNMOD
> ee+       MOVE "FLDAT1" TO VIEW--IONAME
> ee+       CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH
>             VIEW--KEY-EQUAL-FIX VIEW--PARAM
> ee+       MOVE VIEW--STATUS TO FI-STAT.
> ee-  *    OPEN I-O TOURKUN, EETOURKUN.
> ee+       MOVE "fltourku" TO VIEW--PATH
> ee+       MOVE "OPN" TO VIEW--FUNC
> ee+       MOVE "U" TO VIEW--OPNMOD
> ee+       MOVE "FLTOURKU1" TO VIEW--IONAME
> ee+       CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH
>             VIEW--KEY-EQUAL-FIX VIEW--PARAM
> ee+       MOVE VIEW--STATUS TO FI-STAT
> ee+       MOVE "fleetour" TO VIEW--PATH
> ee+       MOVE "OPN" TO VIEW--FUNC
> ee+       MOVE "U" TO VIEW--OPNMOD
> ee+       MOVE "FLEETOUR1" TO VIEW--IONAME
> ee+       CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH
>             VIEW--KEY-EQUAL-FIX VIEW--PARAM
> ee+       MOVE VIEW--STATUS TO FI-STAT.
> ee-  *    OPEN I-O PARAMETER.
> ee+       MOVE "parametr" TO VIEW--PATH
> ee+       MOVE "OPN" TO VIEW--FUNC
> ee+       MOVE "U" TO VIEW--OPNMOD
> ee+       MOVE "PARAMETR1" TO VIEW--IONAME
> ee+       CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH
>             VIEW--KEY-EQUAL-FIX VIEW--PARAM.
>      ********
>      * PERSID ERMITTELN
>      ********
>           MOVE SPACES TO PERSID.
>           MOVE ZEROES TO DAT-STAT2, DAT-STAT.
>           CALL "PERID2" USING PERSID, DAT-STAT2, DAT-STAT.
>           CALL "ZCMSWF" USING SWNO3.
>      ******
>      * DIRECTORY EINTRAEGE IN LS: FILENAME UEBER COMMAND-LINE
>      ******
>           OPEN INPUT DIRLIST.
>           IF FI-STAT NOT = "00"       GO TO ENDE.
>       P010.
>           READ DIRLIST NEXT END       GO TO ENDE.
>           IF FI-STAT NOT < "10"       GO TO ENDE.
>           IF T2          < 56         GO TO P010.
>           MOVE DL-ZEILE (1:T2) TO DIR-ZEILE.
>           IF DIR-PRUEF NOT = "-"   GO TO P010.
>      *     IF DIR-OWNER NOT = "nobody" GO TO P010.
>      *     IF DIR-GROUP NOT = "nobody" GO TO P010.
>           MOVE SPACES TO FILENAME.
>           STRING PFAD        DELIMITED BY "  "
>                  DIR-FILE    DELIMITED BY SIZE
>           INTO FILENAME.
>           OPEN INPUT AIRINPUT.
>           IF FI-STAT > "10" GO TO P010.
>           MOVE SPACES TO RESPONSE-ELEMENTE.
>           MOVE ZEROES TO W-ANZ.
>      *******
>      * AUSLESEN DER 7A-TICKETING-AIR-SATZES
>      *******
>       P020.
>           READ AIRINPUT NEXT END             GO TO P098.
>           IF FI-STAT     = "10"              GO TO P098.
>           IF FI-STAT     > "10"              GO TO P098.
>           IF T1          < 10                GO TO P020.
>           ADD 1 TO W-ANZ.
>           MOVE HE-AIRINPUT (1:T1) TO ED-EIN-3840.
>           IF ED-EIN-10 = "AIR-BLK204"        GO TO P060-204.
>           IF ED-EIN-10 = "AIR-BLK206"        GO TO P060-206.
>           GO TO P098.
>      *******
>      * DATEN AUS 7A-TICKETING-AIR DATENSATZ EXTRAHIEREN
>      * 7A A.I.R VERSION 204 --> P200
>      * 7A A.I.R VERSION 206 --> P300
>      *******
>       P060-204.
>           MOVE SPACES TO RESPONSE-ELEMENTE, H-FLUGDATENX
>                          PCS-SATZ.
>           MOVE T1     TO MAX-MSG.
>           PERFORM P200-SEC.
>           GO TO P098.
>       P060-206.
>           MOVE SPACES TO RESPONSE-ELEMENTE, H-FLUGDATENX,
>                          PCS-SATZ.
>           MOVE T1     TO MAX-MSG.
>           PERFORM P300-SEC.
>           GO TO P098.
>       P098.
>           CLOSE AIRINPUT.
>           GO TO P010.
>       P099.  EXIT.
>       P200-SEC  SECTION.
>       P200.
>           DISPLAY "AIR-BLK204" LINE 23 COL 01.
>           IF FLAG-UPROG = ZEROES
>             ACCEPT IN-CHAR WITH NO ADVANCING.
>       P299-EX.  EXIT.
>       P300-SEC  SECTION.
>       P300.
>      *     INSPECT HE-AIRINPUT REPLACING ALL H-LF BY W-LF.
>           MOVE 1       TO PNT-EIN.
>           MOVE ZEROES  TO PNT1, PNT2, OVFL-CNT.
>           MOVE SPACES  TO UNST-FILLER.
>      ********
>      * 'AIR-BLK206'-SEG: ANZAHL SEGEMENTE INSGES.
>      ********
>           UNSTRING ED-EIN-3840 DELIMITED BY H-SEGTERM
>           INTO UNST-T1         DELIMITER IN U-DELIM
>                                COUNT     IN PNT1
>                UNST-T2         COUNT     IN PNT2
>                WITH            POINTER   PNT-EIN.
>      *          ON OVERFLOW MOVE 1 TO OVFL-CNT.
>           IF U-DELIM NOT = H-SEGTERM
>             DISPLAY "U-DELIM:T>" LINE 23 COL 01
>                     U-DELIM "<"
>             GO TO FF-EDI.
>           IF PNT1 > 500
>             MOVE PNT1 TO DIS-PNT1
>             DISPLAY "PNT1: " LINE 23 COL 01
>                     DIS-PNT1
>             GO TO FF-EDI.
>      ******
>      * 1. PORTION
>      ******
>           MOVE UNST-T1 TO SEG-DATA.
>           IF SEG-DATA (1:14)     = "AIR-BLK206;7A;" NEXT SENTENCE
>           ELSE
>             IF SEG-DATA (1:14)   = "AIR-BLK206;BT;" NEXT SENTENCE
>             ELSE
>               IF SEG-DATA (1:13) = "AIR-BLK206;O;"  GO TO P397A
>               ELSE
>                 DISPLAY "AIROPT NOT = 7A " LINE 23 COL 01
>                 GO TO FF-EDI.
>           MOVE PNT1    TO MAX-SEG.
>           MOVE 1       TO PNT-MSG.
>           ADD 1, MAX-SEG TO PNT-MSG.
>           MOVE ZEROES TO S-CNT, C-CNT, T-CNT.
>           MOVE ZEROES TO AMD-CNT, R-A-CNT, R-D-CNT, R-G-CNT
>                          R-H-CNT, R-I-CNT, R-T-CNT, R-K-CNT
>                          R-KN-CNT, R-KS-CNT, R-KFT-CNT, R-KNT-CNT
>                          R-KST-CNT, R-Q-CNT, R-FE-CNT, R-FM-CNT
>                          R-FO-CNT, R-FP-CNT, R-FV-CNT, R-FS-CNT
>                          R-FT-CNT, R-M-CNT, R-O-CNT.
>           MOVE SPACES TO UNST-FILLER.
>      *******
>      * NAECHSTES SEGMENT
>      *******
>       P310.
>           MOVE PNT-MSG TO PNT-EIN.
>           MOVE ZEROES  TO PNT1, PNT2, OVFL-CNT.
>           UNSTRING ED-EIN-3840 DELIMITED BY H-SEGTERM
>           INTO UNST-T1         DELIMITER IN U-DELIM
>                                COUNT     IN PNT1
>                UNST-T2         COUNT     IN PNT2
>                WITH            POINTER   PNT-EIN
>                ON OVERFLOW MOVE 1 TO OVFL-CNT.
>      ******
>      * MAX-SEG = LAENGE DES ZU BEARBEITENDEN/GELESENEN SEGMENTES
>      *           SEG-DELIMITER ANS ENDE DAMIT LETZTES COMPOSITE
>      *           AUCH PER UNST-T1 ABGEARBEITET WERDEN KANN
>      ******
>           MOVE PNT1      TO MAX-SEG.
>           MOVE UNST-T1   TO SEG-DATA.
>           IF U-DELIM NOT = H-SEGTERM
>             DISPLAY "U-DELIM NOT = H-SEGTERM" LINE 23 COL 01
>                     U-DELIM "<"
>             GO TO FF-EDI.
>           MOVE H-COMTERM TO SEG-DATA-DELIM.
>           MOVE 1         TO PNT-SEG.
>           MOVE ZEROES    TO C-CNT.
>      ******
>      * 7A-A.I.R SEGMENTE: ACHTUNG: SEQUENZ DER ABFRAGEN WESENTLICH!
>      ******
>       P310-DATA-LINES.
>      ******
>      * SEGEMENTE DIE NUR EINMAL PRO 7A-A.I.R VORKOMMEN
>      ******
>           IF SEG-TAG3 = "AMD"  GO TO P315.
>           IF AMD-CNT  < 3      GO TO P315.
>           IF SEG-TAG  = "A-"   GO TO P320.
>           IF SEG-TAG  = "B-"   GO TO P310-W.
>           IF SEG-TAG  = "C-"   GO TO P310-W.
>           IF SEG-TAG  = "D-"   GO TO P325.
>           IF SEG-TAG  = "G-"   GO TO P330.
>           IF SEG-TAG  = "H-"   GO TO P335.
>           IF SEG-TAG  = "K-"   GO TO P340.
>           IF SEG-TAG3 = "KN-"  GO TO P340.
>           IF SEG-TAG3 = "KS-"  GO TO P340.
>           IF SEG-TAG3 = "KFT"  GO TO P345.
>           IF SEG-TAG3 = "KNT"  GO TO P345.
>           IF SEG-TAG3 = "KST"  GO TO P345.
>           IF SEG-TAG  = "X-"   GO TO P310-W.
>           IF SEG-TAG  = "L-"   GO TO P310-W.
>           IF SEG-TAG  = "M-"   GO TO P370.
>           IF SEG-TAG  = "N-"   GO TO P310-W.
>           IF SEG-TAG  = "O-"   GO TO P375.
>           IF SEG-TAG  = "U-"   GO TO P310-W.
>           IF SEG-TAG  = "Q-"   GO TO P350.
>           IF SEG-TAG3 = "SIA"  GO TO P310-W.
>           IF SEG-TAG4 = "ENDX" GO TO P392.
>           IF SEG-TAG3 = "END"  GO TO P392.
>      *****
>      * SEGMENTE DIE MEHRMALS PRO 7A-A.I.R-DATENSATZ VORKOMMEN KOENNEN
>      *  -PASSENGER DATA-LINES
>      *  -PNR TICKETING DATA LINES
>      *  -PNR INVOICE/ITINERARY REMARKS
>      *  -PREPAID TICKET ADVICE ELEMENT LINES
>      *****
>           IF SEG-TAG  = "I-"   GO TO P355.
>           IF SEG-TAG  = "S-"   GO TO P310-W.
>           IF SEG-TAG  = "T-"   GO TO P360.
>           IF SEG-TAG  = "FE"   GO TO P365.
>           IF SEG-TAG  = "FM"   GO TO P365.
>           IF SEG-TAG  = "FO"   GO TO P365.
>           IF SEG-TAG  = "FP"   GO TO P365.
>           IF SEG-TAG  = "FV"   GO TO P365.
>           IF SEG-TAG  = "FS"   GO TO P365.
>           IF SEG-TAG  = "FT"   GO TO P365.
>           IF SEG-TAG  = "FH"   GO TO P310-W.
>           IF SEG-TAG  = "TK"   GO TO P310-W.
>           IF SEG-TAG  = "RM"   GO TO P310-W.
>           IF SEG-TAG3 = "OPL"  GO TO P310-W.
>           IF SEG-TAG3 = "SSR"  GO TO P310-W.
>           IF SEG-TAG3 = "OSI"  GO TO P310-W.
>           IF SEG-TAG3 = "FQV"  GO TO P310-W.
>           MOVE SPACES TO FFTEXT.
>           STRING "SEGMENT UNBEKANNT: " DELIMITED BY SIZE
>                  SEG-TAG4              DELIMITED BY SIZE
>           INTO FFTEXT.
>           IF FLAG-UPROG NOT = ZEROES
>             PERFORM FFF-F
>           ELSE
>             DISPLAY FFTEXT LINE 23 COL 1 ERASE END LINE
>             ACCEPT IN-CHAR WITH NO ADVANCING
>             IF IN-CHAR = "E" GO TO P392.
>      *******
>      * DATA-ELEMENTS: B- TICKETING INPUT
>      * DATA-ELEMENTS: C- SERVICING CARRIER
>      * DATA-ELEMENTS: X- OPERATIONAL FLIGHT AIR-SEGMENT
>      * DATA-ELEMENTS: U- UNTICKETED SEGMENT DATA
>      * DATA-ELEMENTS: L- PAYMENT RESTRICTION LINE
>      * DATA-ELEMENTS: M- FARE BASIS CODE LINE
>      * DATA-ELEMENTS: N- SEGMENT FARE LINES
>      * DATA-ELEMENTS: O- VALIDITY DATES LINES
>      * DATA-ELEMENTS: S- SEAT NUMBER DATA
>      * DATA-ELEMENTS: TK TICKETING ARRANGEMENT
>      * DATA-ELEMENTS: FH HAND TICKET NUMBER
>      * DATA-ELEMENTS: RM REMARKS
>      * DATA-ELEMENTS: SIA SUPPLEMENTRAY NEGO DATA LINE
>      * DATA-ELEMENTS: SSR SPECIAL SERVICE REQUEST
>      * DATA-ELEMENTS: OSI OTHER SERVIDE INFORMATION
>      * DATA-ELEMENTS: FQV FREQUENT FLYER
>      * DATA-ELEMENTS: OPL OP REMARKS
>      *******
>       P310-W.
>           GO TO P390.
>      *********
>      * LABEL PERFORM
>      *********
>       UNST-SEG-DATA.
>           MOVE ZEROES  TO PNT1, PNT2, OVFL-CNT.
>           MOVE SPACES  TO UNST-FILLER.
>           MOVE PNT-SEG TO PNT-EIN.
>           UNSTRING SEG-DATA DELIMITED BY H-COMTERM
>           INTO UNST-T1         DELIMITER IN U-DELIM
>                                COUNT     IN PNT1
>                UNST-T2         COUNT     IN PNT2
>                WITH            POINTER   PNT-EIN
>                ON OVERFLOW ADD 1 TO OVFL-CNT.
>      ******
>      * MAX-COM = LAENGE DES ZU BEARBEITENDEN/GELESENEN COMPONENTS
>      ******
>           MOVE PNT1      TO MAX-COM, DIS-PNT1.
>      ******
>      * 'AMD'-SEGMENT: BESONDERHEIT: TERMINATOR = 3. CR!
>      * IM 3. TEILSEGMENT STEHT PNR-FILEKEY
>      ******
>       P315.
>           ADD 1 TO AMD-CNT.
>           IF AMD-CNT < 3 GO TO P319.
>           IF AMD-CNT > 3
>             MOVE "AMD: > 3 TEIL-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>       P316.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P319.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 6          GO TO P318.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P317.
>      *******
>      * DATA-ELEMENTS: DIE ERSTEN 4 IM DRITTEN TEIL-SEGMENT
>      *******
>      * 1,.
>      * 2,.
>      * 3,   1 'MUC1A ' + REC.LOC OF PNR
>      *      2 TTL NUMBER OF PASSENGERS IN PNR
>      *        TTL NUMBER OF PASSENGERS IN AIR
>      *      3 AMADEUS OFFICE ID BOOKING AGENCY
>      *      4 IATA-NR        OF BOOKING AGENCY
>      *      5 AMADEUS OFFICE ID FIRST OWNER
>      *      6 IATA-NR        OF FIRST OWNER
>      *      7 AMADEUS OFFICE ID CURRENT OWNER
>      *      8 IATA-NR        OF CURRENT OWNER
>      *******
>           IF C-CNT = 1
>             MOVE UNST-T1 TO AMD-RECLOC
>             IF AMD-PRUEF NOT = "MUC1A"
>               MOVE "AMD-PRUEF NOT 'MUC1A'" TO FFTEXT
>               PERFORM FFF-F
>             ELSE
>               DISPLAY AMD-FILEKEY LINE 23 COL 1 ERASE END LINE.
>           IF C-CNT = 2
>             MOVE UNST-T1 TO AMD-PERS
>             IF AMD-PERS NOT NUMERIC
>               MOVE "AMD-PERS NOT NUMERIC" TO FFTEXT
>               PERFORM FFF-F.
>           IF C-CNT = 5
>             IF UNST-T1 NOT = SPACES
>               MOVE UNST-T1 TO AMD-OFFICEID
>               IF AMD-OFFICEID = SPACES
>                 MOVE "AMD-OFFICEID = SPACES" TO FFTEXT
>                 PERFORM FFF-F.
>           IF C-CNT = 6
>             IF UNST-T1 NOT = SPACES
>               MOVE UNST-T1 TO AMD-IATANR
>               IF AMD-IATANR NOT NUMERIC
>                 MOVE "AMD-IATANR NOT NUMERIC" TO FFTEXT
>                 PERFORM FFF-F.
>       P317.
>      ******
>      * SCAN ABBRECHEN WENN EINE DER IATANR = TMG-IATANR!
>      ******
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P318.
>           GO TO P316.
>      ******
>      * REFERENZ FELDER FUELLEN
>      ******
>      * VERKNUEPFUNG PNR <--> VORGNR: CRSACCESS
>      ******
>       P318.
>           MOVE AMD-FILEKEY TO PCS-FILEKEY.
>           MOVE ZEROES      TO DUP-RECH.
>           MOVE AMD-FILEKEY TO HE-CRSACCESS.
> ee-  *    START CRSACCESS KEY NOT < CA-FKEY INVALID GO TO P318B.
> ee+       MOVE "NL" TO VIEW--STRMOD
> ee+       MOVE 01 TO VIEW--KEYNUM
> ee+       PERFORM START-CRSACCES1
> ee+       IF STAT--INVALID
> ee+         GO TO P318B
> ee+       END-IF.
>       P318A.
> ee-  *    READ CRSACCESS NEXT         END GO TO P318B.
> ee+       PERFORM READ-CRSACCES1-NEXT
> ee+       IF STAT--ATEND
> ee+         GO TO P318B
> ee+       END-IF.
>           IF CA-FILEKEY NOT = AMD-FILEKEY GO TO P318B.
>           IF CA-CRS     NOT = "A"         GO TO P318A.
>           MOVE CA-RECH TO DUP-RECH.
>       P318B.
>           MOVE DUP-RECH   TO PCS-RECH.
>           IF DUP-RECH     = ZEROES
>             IF FLAG-UPROG = ZEROES
>               MOVE 000009 TO DUP-RECH
>             ELSE
>               GO TO P397.
>           MOVE DUP-RECH TO DISZ6.
>           DISPLAY " -> " LINE 23 COL 10
>                   DISZ6  LINE 23 COL 15.
>           IF DUP-RECH = ZEROES
>             MOVE SPACES TO EBI-6
>             ACCEPT EBI-6 WITH NO ADVANCING
>             IF EBI-6 NUMERIC MOVE EBI-6N TO DUP-RECH.
>      ******
>      * D-NR FESTLEGEN
>      ******
>           MOVE DUP-RECH    TO D-RECH.
>           MOVE 1           TO D-NR.
>           MOVE ZEROES      TO D-CONNR.
>           MOVE D-KEY       TO VGL-D-KEY.
>           MOVE VGL-D-KEY   TO HE-FLTIDRU.
>           MOVE ZEROES      TO D-NR, D-CONNR, D-AIRL, D-CODE, D-TICK
>                              D-FARE1N, D-FARE2N, D-TAX1N, D-TAX2N
>                              D-TAX3N, D-TOTN, D-PROZ, D-AGNR.
>      *     MOVE USER-ID     TO D-USER-ID.
>           MOVE "PCSI"      TO D-BEARB.
>           MOVE LOW-VALUES  TO D-TIDATX.
>           MOVE "N"         TO D-DRUCK.
>           MOVE AMD-FILEKEY TO D-FILEKEY.
>       P319.
>           GO TO P390.
>      ******
>      * 'A-'-SEGMENT:
>      ******
>       P320.
>           ADD 1 TO R-A-CNT.
>           IF R-A-CNT > 1
>             MOVE "R-A-CNT: > 1 R-A-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           MOVE 3 TO PNT-SEG.
>       P321.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P324.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 2          GO TO P323.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P322.
>      *******
>      * DATA-ELEMENTS: A- VALIDATING CARRIER
>      *******
>      *      1 TICKETING AIRLINE NAME
>      *      2 AIRLINE CODE
>      *        AIRLINE NUMERIC CODE
>      *        AIRLINE CHECK DIGIT
>      *******
>           IF C-CNT = 2
>             MOVE UNST-T1 TO R-A-AIRLINE
>             IF R-A-CODE NOT NUMERIC
>               MOVE "R-A-CODE NOT NUMERIC" TO FFTEXT
>               PERFORM FFF-F.
>       P322.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P323.
>           GO TO P321.
>      ******
>      * REFERENZ FELDER FUELLEN
>      ******
>       P323.
>           MOVE R-A-CODEN TO D-AIRL.
>       P324.
>           GO TO P390.
>      ******
>      * 'D-'-SEGMENT:
>      ******
>       P325.
>           ADD 1 TO R-D-CNT.
>           IF R-D-CNT > 1
>             MOVE "R-D-CNT: > 1 R-D-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           MOVE 3 TO PNT-SEG.
>       P326.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P329.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 3          GO TO P328.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P327.
>      *******
>      * DATA-ELEMENTS: D- PNR DATE
>      *******
>      *      1 PNR CREATION DATE
>      *      2 PNR CHANGE DATE
>      *      3 AIR CREATION DATE
>      *******
>           IF C-CNT = 3
>             MOVE UNST-T1 TO R-D-TIDAT
>             IF R-D-TIDAT NOT NUMERIC
>               MOVE "R-D-TIDAT NOT NUMERIC" TO FFTEXT
>               PERFORM FFF-F.
>       P327.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P328.
>           GO TO P326.
>      ******
>      * REFERENZ FELDER FUELLEN
>      ******
>       P328.
>           MOVE R-D-TIDATN TO D-TIDAT.
>       P329.
>           GO TO P390.
>      ******
>      * 'G-'-SEGMENT:
>      ******
>       P330.
>           ADD 1 TO R-G-CNT.
>           IF R-G-CNT > 1
>             MOVE "R-G-CNT: > 1 R-G-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           MOVE 3 TO PNT-SEG.
>       P331.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P334.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 3          GO TO P333.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P332.
>      *******
>      * DATA-ELEMENTS: G- SALES INDICATOR, ORIG/DESTINATION
>      *******
>      *      1
>      *      2 SALES INDICATOR
>      *      3 ORIG/DESTINATION
>      *******
>           IF C-CNT = 2
>             MOVE UNST-T1 TO R-G-ISI.
>           IF C-CNT = 3
>             MOVE UNST-T1 TO R-G-ORIGDEST.
>       P332.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P333.
>           GO TO P331.
>      ******
>      * REFERENZ FELDER FUELLEN
>      ******
>       P333.
>           MOVE R-G-ISI  TO D-ISI.
>           MOVE R-G-ORIG TO D-ORIG-3L, L3-KEY.
> ee-  *    READ FLDAT INVALID MOVE SPACES TO L3-ORT.
> ee+       MOVE 01 TO VIEW--KEYNUM
> ee+       PERFORM READ-FLDAT1
> ee+       IF STAT--INVALID
> ee+         MOVE SPACES TO L3-ORT
> ee+       END-IF.
>           MOVE L3-ORT   TO D-ORIG.
>           MOVE R-G-DEST TO D-DEST-3L, L3-KEY.
> ee-  *    READ FLDAT INVALID MOVE SPACES TO L3-ORT.
> ee+       MOVE 01 TO VIEW--KEYNUM
> ee+       PERFORM READ-FLDAT1
> ee+       IF STAT--INVALID
> ee+         MOVE SPACES TO L3-ORT
> ee+       END-IF.
>           MOVE L3-ORT   TO D-DEST.
>       P334.
>           GO TO P390.
>      ******
>      * 'H-'-SEGMENT:
>      ******
>       P335.
>           ADD 1 TO R-H-CNT.
>           IF R-H-CNT > 20
>             MOVE "R-H-CNT: > 20 R-H-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           MOVE 3      TO PNT-SEG.
>           MOVE SPACES TO R-H-ELEMENTE.
>       P336.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P339.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 14         GO TO P338.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P337.
>      *******
>      * DATA-ELEMENTS: H- TICKETED AIR SEGMENT
>      *                H- TICKETED SURFACE SEGMENT (AIRLINE-CODE = VOID)
>      *******
>      *      1
>      *      2 SEG-NR IN PNR
>      *        STOPOVER INDICATOR
>      *        ORIG. 3LTR-CODE
>      *      3 ORIG. CITY NAME
>      *      4 DEST. 3LTR CODE
>      *      5 DEST. CITY NAME
>      *      6 AIRLINE-CODE        EVTL. -VOID-
>      *        FLIGHTNUMBER
>      *        CLASS OF SERVICE
>      *        CLASS OF BOOKING
>      *        DEP. DATE
>      *        DEP. TIME
>      *        ARR. TIME
>      *        ARR. DATE
>      *      7 STATUS AND NUMBER IN PARTY
>      *      8 PNR-STATUS AND NUMBER IN PARTY
>      *      9 MEAL CODE
>      *     10 STOPS
>      *     11 EQUIPMENT CODE
>      *     12 ENTERTAINMENT CODE
>      *     13
>      *     14 BAGGAGE-CODE
>      *     15
>      *     16 CHECK-IN TIME
>      *     17 ELECTRONIC TICKET INDICATOR
>      *     18 DURATION
>      *     19 NON-SMOKING INDICATOR
>      *******
>      * DATA-ELEMENTS: H- TICKETED OPEN SEGMENT (FLIGHTNUMBER = OPEN)
>      *******
>      *    1-6 WIE OBEN
>      *      7 DEPATURE DATE (R-H-DATE)
>      *      8 STATUS        (R-H-ST)
>      *      9 BAGGAGE-CODE  (R-H-FREE)
>      ********
>           IF C-CNT = 2
>             MOVE UNST-T1 TO R-H-ORIGX.
>           IF C-CNT = 3
>             MOVE UNST-T1 TO R-H-FROM.
>           IF C-CNT = 4
>             MOVE UNST-T1 TO R-H-ARR-3L.
>           IF C-CNT = 5
>             MOVE UNST-T1 TO R-H-ARR.
>      **********
>      * TIME: HHMHx x = P --> PM
>      *               = A --> AM
>      *               = N --> NOON
>      *               = M --> MIDNIGHT
>      ********
>           IF C-CNT = 6
>             MOVE UNST-T1 TO R-H-FLUG
>             IF R-H-AP = "P"
>               ADD 12 TO R-H-HH
>             END-IF
>             IF R-H-AP = "M"
>               ADD 12 TO R-H-HH
>             END-IF
>             IF R-H-A-AP = "P"
>               ADD 12 TO R-H-A-HH
>             END-IF
>             IF R-H-A-AP = "M"
>               ADD 12 TO R-H-A-HH
>             END-IF.
>      *******
>      * UNTERSCHIEDLICHE STRUKTUREN IN DIESEM SEGMENT
>      *******
>           IF R-H-FLY = "OPEN" GO TO P336A.
>           IF C-CNT = 7
>             MOVE UNST-T1 TO R-H-STATUS.
>           IF C-CNT = 8
>             MOVE UNST-T1 TO R-H-PNRSTATUS.
>           IF C-CNT = 14
>             MOVE UNST-T1 TO R-H-FREE.
>           GO TO P337.
>       P336A.
>           IF C-CNT = 7
>             MOVE UNST-T1 TO R-H-DATE.
>           IF C-CNT = 8
>             MOVE UNST-T1 TO R-H-STATUS.
>           IF C-CNT = 9
>             MOVE UNST-T1 TO R-H-FREE.
>       P337.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P338.
>           GO TO P336.
>      ******
>      * REFERENZ FELDER FUELLEN
>      ******
>       P338.
>           IF R-H-X = "X"
>             MOVE R-H-X      TO H-X (R-H-CNT).
>           MOVE R-H-FROM-3L  TO H-FROM-3L (R-H-CNT), L3-KEY.
>           MOVE R-H-FROM     TO H-FROM (R-H-CNT).
>           MOVE SPACES       TO L3-ORT.
>           IF R-H-FROM-3L = "AGB" OR "QKL" OR "ZWS" OR "QDU"
> ee-  *      READ FLDAT INVALID MOVE SPACES TO L3-ORT.
> ee+         MOVE 01 TO VIEW--KEYNUM
> ee+         PERFORM READ-FLDAT1
> ee+         IF STAT--INVALID
> ee+           MOVE SPACES TO L3-ORT
> ee+         END-IF.
>           IF L3-ORT NOT = SPACES
>             MOVE L3-ORT     TO H-FROM (R-H-CNT).
>           IF R-H-CIA = "VOID"
>             MOVE "VOID"     TO H-FLY (R-H-CNT), H-BEFORE (R-H-CNT)
>             GO TO P339.
>           MOVE R-H-CIA      TO H-CIA (R-H-CNT).
>           MOVE R-H-FLY      TO H-FLY (R-H-CNT).
>           MOVE R-H-CL       TO H-CL (R-H-CNT).
>           MOVE R-H-DATE     TO H-DATE (R-H-CNT).
>           MOVE R-H-TIME     TO H-TIME (R-H-CNT).
>           MOVE R-H-ARR-TIME TO H-TIME2 (R-H-CNT).
>           MOVE R-H-ST       TO H-ST (R-H-CNT).
>           MOVE R-H-FREE     TO H-FREE (R-H-CNT).
>           MOVE R-H-ARR-3L   TO H-ARR-3L (R-H-CNT), L3-KEY.
>           MOVE R-H-ARR      TO H-ARR (R-H-CNT).
>           MOVE SPACES       TO L3-ORT.
>           IF R-H-ARR-3L = "AGB" OR "QKL" OR "ZWS" OR "QDU"
> ee-  *      READ FLDAT INVALID MOVE SPACES TO L3-ORT.
> ee+         MOVE 01 TO VIEW--KEYNUM
> ee+         PERFORM READ-FLDAT1
> ee+         IF STAT--INVALID
> ee+           MOVE SPACES TO L3-ORT
> ee+         END-IF.
>           IF L3-ORT NOT = SPACES
>             MOVE L3-ORT     TO H-ARR (R-H-CNT).
>           MOVE R-H-ARR-DATE TO H-ARR-DATE (R-H-CNT).
>           IF R-H-ARR-DATE = R-H-DATE OR SPACES GO TO P339.
>           MOVE D-TIDAT      TO DATN.
>           MOVE R-H-DATE     TO W-FL-TTMMM.
>           PERFORM FLUG-DATUM.
>           MOVE W-FL-DATN    TO B-DATN.
>           MOVE R-H-ARR-DATE TO W-FL-TTMMM.
>           PERFORM FLUG-DATUM.
>           MOVE W-FL-DATN    TO DATN.
>      *******
>      * DIFFERENZ AB-DAT BIS AN-DAT
>      *******
>           PERFORM DATSUB.
>           IF TAGE =  2 MOVE "*" TO  H-TIME2-X (R-H-CNT).
>           IF TAGE =  1 MOVE "+" TO  H-TIME2-X (R-H-CNT).
>           IF TAGE = -1 MOVE "#" TO  H-TIME2-X (R-H-CNT).
>       P339.
>           GO TO P390.
>      ******
>      * 'K-' -SEGMENT:
>      * 'KN-'-SEGMENT
>      * 'KS-'-SEGMENT
>      ******
>       P340.
>           MOVE 3 TO PNT-SEG.
>           IF SEG-TAG  = "K-"
>             ADD 1 TO R-K-CNT.
>           IF SEG-TAG3  = "KN-"
>             MOVE 4 TO PNT-SEG
>             ADD 1 TO R-KN-CNT.
>           IF SEG-TAG3  = "KS-"
>             MOVE 4 TO PNT-SEG
>             ADD 1 TO R-KS-CNT.
>           IF R-K-CNT > 1
>             MOVE "R-K-CNT: > 1 R-K-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           IF R-KN-CNT > 1
>             MOVE "R-KN-CNT: > 1 R-KN-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           IF R-KS-CNT > 1
>             MOVE "R-KS-CNT: > 1 R-KS-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>      ******
>      * LT. S.ADLER: FARE SEGMENT-HIERARCHIE : KN- DANN KS- DANN K-
>      ******
>           IF SEG-TAG3     = "KN-"
>             MOVE SPACES TO R-K-ELEMENTE
>             GO TO P341.
>           IF SEG-TAG3     = "KS-"
>             IF R-KN-CNT   = ZEROES
>               MOVE SPACES TO R-K-ELEMENTE
>               GO TO P341.
>           IF SEG-TAG      = "K-"
>             IF R-KN-CNT   = ZEROES
>               IF R-KS-CNT = ZEROES
>                 MOVE SPACES TO R-K-ELEMENTE
>                 GO TO P341.
>           GO TO P344.
>       P341.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P344.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 13         GO TO P343.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P342.
>      *******
>      * DATA-ELEMENTS: K- FARE LINE
>      *                KN- NETT FARE LINE
>      *                KS- SELLING FARE LINE
>      *******
>      *      1 X(01)
>      *        CURRENCY-CODE
>      *        FARE-BASE
>      *      2 CURRENCY-CODE
>      *        EQUIVAL AMOUNT
>      *     13 CURRENCY-CODE
>      *        TOTAL AMOUNT
>      *******
>           IF C-CNT = 1
>             MOVE UNST-T1 TO R-K-FARE1X.
>           IF C-CNT = 2
>             MOVE UNST-T1 TO R-K-FARE2X.
>           IF C-CNT = 13
>             MOVE UNST-T1 TO R-K-TOTAL.
>       P342.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P343.
>           GO TO P341.
>      ******
>      * REFERENZ FELDER FUELLEN: IN FLTIDRU: FARE2 IST DIE WICHTIGERE
>      ******
>       P343.
>           MOVE R-K-FARE1-WS   TO D-FARE1X, D-FARE2X.
>           MOVE R-K-FARE1      TO BIZEIL.
>           PERFORM ZAHL.
>           MOVE WS-PIZR        TO D-FARE1N, D-FARE2N.
>           IF R-K-FARE2X NOT = SPACES
>             IF R-K-FARE2-WS = "EUR"
>               MOVE R-K-FARE2-WS TO D-FARE2X
>               MOVE R-K-FARE2    TO BIZEIL
>               PERFORM ZAHL
>               MOVE WS-PIZR      TO D-FARE2N.
>           MOVE R-K-TTL-WS     TO D-TOTX.
>           MOVE R-K-TTL        TO BIZEIL.
>           PERFORM ZAHL.
>           MOVE WS-PIZR        TO D-TOTN.
>       P344.
>           GO TO P390.
>      ******
>      * 'KFT'-SEGMENT:
>      * 'KNT'-SEGMENT:
>      * 'KST'-SEGMENT:
>      ******
>       P345.
>           IF SEG-TAG3 = "KFT"
>             ADD 1 TO R-KFT-CNT.
>           IF SEG-TAG3 = "KNT"
>             ADD 1 TO R-KNT-CNT.
>           IF SEG-TAG3 = "KST"
>             ADD 1 TO R-KST-CNT.
>           IF R-KFT-CNT > 1
>             MOVE "R-KFT-CNT: > 1 R-KFT-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           IF R-KNT-CNT > 1
>             MOVE "R-KNT-CNT: > 1 R-KNT-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           IF R-KST-CNT > 1
>             MOVE "R-KST-CNT: > 1 R-KST-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           MOVE 4      TO PNT-SEG.
>           MOVE ZEROES TO X1.
>      ******
>      * LT. S.ADLER: FARE SEGMENT-HIERARCHIE : KNT DANN KST DANN KFT
>      ******
>           IF SEG-TAG3      = "KNT"
>             MOVE SPACES TO R-KFT-ELEMENTE
>             GO TO P346.
>           IF SEG-TAG3      = "KST"
>             IF R-KNT-CNT   = ZEROES
>               MOVE SPACES TO R-KFT-ELEMENTE
>               GO TO P346.
>           IF SEG-TAG3      = "KFT"
>             IF R-KNT-CNT   = ZEROES
>               IF R-KST-CNT = ZEROES
>                 MOVE SPACES TO R-KFT-ELEMENTE
>                 GO TO P346.
>           GO TO P349.
>       P346.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P349.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 31         GO TO P348.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P347.
>      *******
>      * DATA-ELEMENTS: KFT TAX DATA
>      *                KNT NETT TAX DATA
>      *                KST SELLING TAX DATA
>      *******
>      * 2,..31 X(01)
>      *        TAX CURRENCY-CODE
>      *        TAX AMOUNT
>      *        TAX CODE
>      *******
>           IF C-CNT > 1 AND < 32
>             IF UNST-T1 NOT = SPACES
>               ADD 1 TO X1
>               MOVE UNST-T1 TO R-KFT-TAXX (X1).
>       P347.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P348.
>           GO TO P346.
>      ******
>      * REFERENZ FELDER FUELLEN
>      ******
>       P348.
>           IF R-KFT-TAXX (1) NOT = SPACES
>             MOVE R-KFT-WS (1)      TO D-TAX1X
>             MOVE R-KFT-TAX (1)     TO BIZEIL
>             PERFORM ZAHL
>             MOVE WS-PIZR           TO D-TAX1N
>             MOVE R-KFT-TAXLAND (1) TO D-TAX1LAND.
>           IF R-KFT-TAXX (2) NOT = SPACES
>             MOVE R-KFT-WS (2)      TO D-TAX2X
>             MOVE R-KFT-TAX (2)     TO BIZEIL
>             PERFORM ZAHL
>             MOVE WS-PIZR           TO D-TAX2N
>             MOVE R-KFT-TAXLAND (2) TO D-TAX2LAND.
>           MOVE 1      TO POINT1.
>           MOVE SPACES TO XT-FARECALC.
>           IF R-KFT-TAXX (3) NOT = SPACES
>             STRING  "XT "             DELIMITED BY SIZE
>                     R-KFT-WS (3)      DELIMITED BY " "
>                     " "               DELIMITED BY SIZE
>                     R-KFT-TAX (3)     DELIMITED BY "  "
>                     R-KFT-TAXLAND (3) DELIMITED BY " "
>             INTO XT-FARECALC POINTER POINT1
>             MOVE R-KFT-WS (3)      TO D-TAX3X
>             MOVE R-KFT-TAX (3)     TO BIZEIL
>             PERFORM ZAHL
>             MOVE WS-PIZR           TO D-TAX3N
>             MOVE R-KFT-TAXLAND (3) TO D-TAX3LAND.
>      *****
>      * UNTER DER VORRAUSSETZUNG, DASS TAX3 = SPACES ODER EUR :
>      *****
>           MOVE POINT1 TO POINT1-XT.
>           MOVE 4      TO X1.
>       P348A.
>           IF R-KFT-TAXX (X1) NOT = SPACES
>             IF R-KFT-WS (X1)     = "EUR"
>               IF POINT1 = 1
>                 STRING  "XT"             DELIMITED BY SIZE
>                 INTO XT-FARECALC POINTER POINT1
>               END-IF
>               STRING  " "                DELIMITED BY SIZE
>                       R-KFT-WS (X1)      DELIMITED BY " "
>                       " "                DELIMITED BY SIZE
>                       R-KFT-TAX (X1)     DELIMITED BY "  "
>                       R-KFT-TAXLAND (X1) DELIMITED BY " "
>               INTO XT-FARECALC POINTER POINT1
>               MOVE R-KFT-WS (X1)    TO D-TAX3X
>               MOVE R-KFT-TAX (X1)   TO BIZEIL
>               PERFORM ZAHL
>               ADD WS-PIZR TO D-TAX3N
>               MOVE "XT"             TO D-TAX3LAND
>             ELSE
>               MOVE "XT NOT = EUR " TO FFTEXT
>               PERFORM FFF-F.
>           IF X1 < 30 ADD 1 TO X1 GO TO P348A.
>           IF POINT1 = POINT1-XT
>             MOVE SPACES TO XT-FARECALC
>           ELSE
>             MOVE POINT1 TO POINT1-XT.
>       P349.
>           GO TO P390.
>      ******
>      * 'Q-'-SEGMENT:
>      ******
>       P350.
>           ADD 1 TO R-Q-CNT.
>           IF R-Q-CNT > 1
>             MOVE "R-G-CNT: > 1 R-Q-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           MOVE 3 TO PNT-SEG.
>       P351.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P354.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 1          GO TO P353.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P352.
>      *******
>      * DATA-ELEMENTS: Q- SALES INDICATOR, ORIG/DESTINATION
>      *******
>      *      1 FARE CALCULATION
>      *******
>           IF C-CNT = 1
>             MOVE UNST-T1 TO R-Q-CALC
>             IF R-Q-CALC (241:190) NOT = SPACES
>               MOVE "FARE CALC ZU UMFANGREICH" TO FFTEXT
>               PERFORM FFF-F.
>       P352.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P353.
>           GO TO P351.
>      ******
>      * REFERENZ FELDER FUELLEN
>      ******
>       P353.
>           MOVE R-Q-CALC (001:060) TO D-CALC (1).
>           MOVE R-Q-CALC (061:120) TO D-CALC (2).
>           MOVE R-Q-CALC (121:180) TO D-CALC (3).
>           MOVE R-Q-CALC (181:240) TO D-CALC (4).
>       P354.
>           GO TO P390.
>      ******
>      * 'I-'-SEGMENT:
>      ******
>       P355.
>           IF R-I-CNT = 1
>             PERFORM TIDRU.
>           ADD 1 TO R-I-CNT.
>           IF R-I-CNT > 1
>             MOVE "R-I-CNT: > 1 R-I-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           MOVE 3 TO PNT-SEG.
>       P356.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P359.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 2          GO TO P358.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P357.
>      *******
>      * DATA-ELEMENTS: I- NAME
>      *******
>      *      1
>      *      2 TEILNEHMER NUMMER IN PNR
>      *        TEILNEHMER NAME
>      *******
>           IF C-CNT = 2
>             MOVE UNST-T1 TO R-I-NAMEX.
>       P357.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P358.
>           GO TO P356.
>      ******
>      * REFERENZ FELDER FUELLEN
>      ******
>       P358.
>           MOVE R-I-NAME TO D-NAM.
>           MOVE R-I-LFDN TO D-TEILN-NR.
>      ******
>      * GEGEN TEILNEMER PRUEFEN
>      ******
>           PERFORM TIX-NAME.
>       P359.
>           GO TO P390.
>      ******
>      * 'T-'-SEGMENT:
>      ******
>       P360.
>           ADD 1 TO R-T-CNT, T-CNT.
>           IF R-T-CNT > 1
>             MOVE "R-T-CNT: > 1 R-T-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           MOVE 3 TO PNT-SEG.
>       P361.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P364.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 1          GO TO P363.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P362.
>      *******
>      * DATA-ELEMENTS: T- TICKER NUMBER
>      *******
>      *      1 TIX-TYP (A=ATB, T=TAT)
>      *        "-"
>      *        TIX-CODE
>      *        TIX-NR
>      *        "-"
>      *        TIX-CONJ. (DIE LETZTEN 2 STELLEN)
>      *******
>           IF C-CNT = 1
>             MOVE UNST-T1 TO R-T-TICKETNR
>             IF R-T-CODEX NOT NUMERIC
>               MOVE "R-T-CODE NOT NUMERIC" TO FFTEXT
>               PERFORM FFF-F
>             END-IF
>             IF R-T-TIXX NOT NUMERIC
>               MOVE "R-T-TIXX NOT NUMERIC" TO FFTEXT
>               PERFORM FFF-F
>             END-IF
>             IF R-T-STRICH = "-"
>               IF R-T-CONJX NOT NUMERIC
>                 MOVE "R-T-TIXX NOT NUMERIC" TO FFTEXT
>                 PERFORM FFF-F.
>       P362.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P363.
>           GO TO P361.
>      ******
>      * REFERENZ FELDER FUELLEN
>      * -> PASSIERT IN P390ff
>      ******
>       P363.
>       P364.
>           GO TO P390.
>      ******
>      * 'FE'-SEGMENT:
>      * 'FM'-SEGMENT:
>      * 'FO'-SEGMENT:
>      * 'FP'-SEGMENT:
>      * 'FV'-SEGMENT:
>      * 'FS'-SEGMENT:
>      * 'FT'-SEGMENT:
>      ******
>       P365.
>           IF SEG-TAG  = "FE"
>             ADD 1 TO R-FE-CNT.
>           IF SEG-TAG  = "FM"
>             ADD 1 TO R-FM-CNT.
>           IF SEG-TAG  = "FO"
>             ADD 1 TO R-FO-CNT.
>           IF SEG-TAG  = "FP"
>             ADD 1 TO R-FP-CNT.
>           IF SEG-TAG  = "FV"
>             ADD 1 TO R-FV-CNT.
>           IF SEG-TAG  = "FS"
>             ADD 1 TO R-FS-CNT.
>           IF SEG-TAG  = "FT"
>             ADD 1 TO R-FT-CNT.
>           IF R-FE-CNT > 1
>             MOVE "R-FE-CNT: > 1 SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           IF R-FM-CNT > 1
>             MOVE "R-FM-CNT: > 1 SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           IF R-FO-CNT > 1
>             MOVE "R-FO-CNT: > 1 SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           IF R-FP-CNT > 1
>             MOVE "R-FP-CNT: > 1 SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           IF R-FV-CNT > 1
>             MOVE "R-FV-CNT: > 1 SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           IF R-FS-CNT > 1
>             MOVE "R-FS-CNT: > 1 SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           IF R-FT-CNT > 1
>             MOVE "R-FT-CNT: > 1 SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           MOVE 3      TO PNT-SEG.
>           MOVE SPACES TO R-FF-TEXT.
>       P366.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P369.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 1          GO TO P368.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P367.
>      *******
>      * DATA-ELEMENTS: FE ENDORSEMENT
>      * DATA-ELEMENTS: FM FARE COMMISSION
>      * DATA-ELEMENTS: FO ORIGINAL ISSUE /IN EXCAHNGE FOR
>      * DATA-ELEMENTS: FP FORM OF PAYMENT
>      * DATA-ELEMENTS: FV TICKETING CARRIER
>      * DATA-ELEMENTS: FS MISC. TIX REMARKS
>      * DATA-ELEMENTS: FT TOUR CODE
>      *******
>      *  FE  1 ENDORSEMENT/RESTRICTIONS
>      *  FM  1 FM FARE COMMISSION
>      *  FO  1 ORIGINAL ISSUE /IN EXCAHNGE FOR
>      *  FP  1 FORM OF PAYMENT
>      *  FV  1 TICKETING CARRIER
>      *  FS  1 MISC. TIX REMARKS
>      *  FT  1 TOUR CODE
>      *******
>           IF C-CNT = 1
>             MOVE UNST-T1 TO R-FF-TEXT.
>       P367.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P368.
>           GO TO P366.
>      ******
>      * REFERENZ FELDER FUELLEN
>      ******
>       P368.
>           IF SEG-TAG  = "FE"
>             MOVE R-FF-TEXT (01:28) TO D-BEM
>             MOVE R-FF-TEXT (29:28) TO D-BEM-2.
>           IF SEG-TAG  = "FM"
>             MOVE R-FF-TEXT TO BIZEIL
>             IF R-FF-TEXT (1:3) = "*M*" OR "*C*" OR "*F*"
>               MOVE R-FF-TEXT (4:10) TO BIZEIL
>             END-IF
>             IF R-FF-TEXT (1:4) = "*CR*"
>               MOVE R-FF-TEXT (5:10) TO BIZEIL
>             END-IF
>             PERFORM ZAHL
>             MOVE WS-PIZR   TO D-PROZ.
>           IF SEG-TAG  = "FO"
>             MOVE R-FF-TEXT TO D-ISSUE.
>           IF SEG-TAG  = "FP"
>             MOVE R-FF-TEXT TO D-PAYM.
>      *     IF SEG-TAG  = "FV"
>      *       MOVE R-FF-TEXT TO
>           IF SEG-TAG  = "FS"
>             IF D-BEM = SPACES
>               MOVE R-FF-TEXT TO D-BEM
>             ELSE
>             IF D-BEM-2 = SPACES
>               MOVE R-FF-TEXT TO D-BEM-2.
>           IF SEG-TAG  = "FT"
>             MOVE R-FF-TEXT TO D-TOURCODE.
>       P369.
>           GO TO P390.
>      ******
>      * 'M-'-SEGMENT: FARE BASIS CODES
>      ******
>       P370.
>           ADD 1 TO R-M-CNT.
>           IF R-M-CNT > 1
>             MOVE "R-M-CNT: > 1 R-M-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           MOVE 3      TO PNT-SEG.
>           MOVE ZEROES TO X1.
>           MOVE SPACES TO R-M-ELEMENTE.
>       P371.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P374.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 20         GO TO P373.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P372.
>      *******
>      * DATA-ELEMENTS: H- TICKETED AIR SEGMENT
>      *******
>      * 1,..28 PRIM-CODE
>      *        FARE-BASIS
>      *        TICKETDESIGNATOR
>      *******
>           IF C-CNT > 0 AND < 20
>             ADD 1 TO X1
>             MOVE UNST-T1 TO R-M-DATAX (X1).
>       P372.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P373.
>           GO TO P371.
>      ******
>      * REFERENZ FELDER FUELLEN
>      ******
>       P373.
>           MOVE 1 TO X2, X3.
>       P373A.
>           IF H-FLY (X3) =  "VOID"
>             IF X3 < 20 ADD 1 TO X3  GO TO P373A
>             ELSE
>               MOVE "X3 = 20 " TO FFTEXT
>               PERFORM FFF-F.
>           MOVE R-M-DATAX (X2) TO H-FAREBAS (X3).
>           IF X2 < X1 ADD 1 TO X2, X3 GO TO P373A.
>       P374.
>           GO TO P390.
>      ******
>      * 'O-'-SEGMENT: VALIDITY DATES
>      ******
>       P375.
>           ADD 1 TO R-O-CNT.
>           IF R-O-CNT > 1
>             MOVE "R-O-CNT: > 1 R-O-SEGMENTE" TO FFTEXT
>             PERFORM FFF-F.
>           MOVE 3      TO PNT-SEG.
>           MOVE ZEROES TO X1.
>           MOVE SPACES TO R-O-ELEMENTE.
>       P376.
>           PERFORM UNST-SEG-DATA.
>           IF U-DELIM NOT = H-COMTERM  GO TO P379.
>           ADD 1 TO C-CNT.
>           IF C-CNT       > 20         GO TO P379.
>           IF MAX-COM     = ZEROES OR
>              UNST-T1     = SPACES     GO TO P377.
>      *******
>      * DATA-ELEMENTS: H- TICKETED AIR SEGMENT
>      *******
>      * 1,..28 NV BEFOR
>      *        NV AFTER
>      *******
>           IF C-CNT > 0 AND < 20
>             ADD 1 TO X1
>             MOVE UNST-T1 TO R-O-VALIDITY (X1).
>       P377.
>           ADD 1, MAX-COM TO PNT-SEG.
>           IF PNT-SEG > MAX-SEG GO TO P378.
>           GO TO P376.
>      ******
>      * REFERENZ FELDER FUELLEN:
>      ******
>       P378.
>           MOVE 1 TO X2, X3.
>       P378A.
>           IF H-FLY (X3) =  "VOID"
>             IF X3 < 20 ADD 1 TO X3  GO TO P378A
>             ELSE
>               MOVE "X3 = 20 " TO FFTEXT
>               PERFORM FFF-F.
>           MOVE R-O-VALIDITY (X2) TO BIZEIL.
>           IF EBI-2 = "XX"
>             MOVE SPACES       TO R-O-BEFORE (X2)
>             MOVE BIZEIL (3:5) TO R-O-AFTER (X2).
>           MOVE R-O-AFTER (X2) TO BIZEIL.
>           IF EBI-2 = "XX"
>             MOVE SPACES       TO R-O-AFTER (X2).
>           MOVE R-O-BEFORE (X2) TO H-BEFORE (X3).
>           MOVE R-O-AFTER (X2)  TO H-AFTER (X3).
>           IF X2 < X1 ADD 1 TO X2, X3 GO TO P378A.
>       P379.
>           GO TO P390.
>       P390.
>           ADD MAX-SEG, 1 TO PNT-MSG.
>           IF PNT-MSG < MAX-MSG GO TO P310.
>       P392.
>           IF R-I-CNT NOT = R-T-CNT
>             MOVE "R-I-CNT NOT = R-T-CNT" TO FFTEXT
>             PERFORM FFF-F
>           ELSE
>             IF R-I-CNT   = ZEROES GO TO P395
>             ELSE
>               PERFORM TIDRU.
>      ******
>      * NORMAL: --> MOVE NACH BSP-OK
>      ******
>       P395.
>           IF T-CNT = ZEROES GO TO P397A.
>           GO TO P399.
>           MOVE SPACES TO BEFEHL.
>           STRING "mv "               DELIMITED BY SIZE
>                  FILENAME            DELIMITED BY "   "
>                  " /transx1/bsp-ok/" DELIMITED SIZE
>                  DIR-FILE            DELIMITED BY "   "
>           INTO BEFEHL.
>           CALL "SYSTEM" USING BEFEHL GIVING DAT-STAT.
>           GO TO P399.
>       P397.
>      *****
>      * PRUEFEN OB EVTL. TMG-PNR OHNE TIX-NR
>      *****
>           IF FLAG-LAUF  = 1
>             MOVE SPACES TO BEFEHL
>             STRING "mv "                  DELIMITED BY SIZE
>                    FILENAME               DELIMITED BY "   "
>                    " /transx1/bsp-notok/" DELIMITED SIZE
>                    DIR-FILE               DELIMITED BY "   "
>             INTO BEFEHL
>             CALL "SYSTEM" USING BEFEHL GIVING DAT-STAT.
>           IF FLAG-LAUF    = 3
>             IF AMD-IATANR = "23226000" GO TO P397B.
>           GO TO P399.
>       P397A.
>           MOVE SPACES TO BEFEHL.
>           STRING "mv "                  DELIMITED BY SIZE
>                  FILENAME               DELIMITED BY "   "
>                  " /transx1/bsp-not7a/" DELIMITED SIZE
>                  DIR-FILE               DELIMITED BY "   "
>           INTO BEFEHL
>           CALL "SYSTEM" USING BEFEHL GIVING DAT-STAT.
>           GO TO P399.
>       P397B.
>           MOVE SPACES TO BEFEHL.
>           STRING "mv "                  DELIMITED BY SIZE
>                  FILENAME               DELIMITED BY "   "
>                  " /transx1/bsp-tmg/" DELIMITED SIZE
>                  DIR-FILE               DELIMITED BY "   "
>           INTO BEFEHL
>           CALL "SYSTEM" USING BEFEHL GIVING DAT-STAT.
>           GO TO P399.
>       P399.  EXIT.
>       TIDRU SECTION.
>      ******
>      * FLTIDRU SCHREIBEN
>      ******
>       P160.
>           IF R-H-CNT = 0
>             MOVE "R-H-CNT = 0" TO FFTEXT
>             PERFORM FFF-F
>             GO TO P169.
>           IF R-I-CNT = 0
>             MOVE "R-I-CNT = 0" TO FFTEXT
>             PERFORM FFF-F
>             GO TO P169.
>           IF R-T-CNT = 0
>             MOVE "R-T-CNT = 0" TO FFTEXT
>             PERFORM FFF-F
>             GO TO P169.
>      ******
>      * XT-FARECALC IN FARE CALC UNTERBRINGEN
>      ******
>           IF XT-FARECALC NOT = SPACES
>             MOVE SPACES TO BIZEIL
>             STRING D-CALCOCC   DELIMITED BY "END   "
>                    "END "      DELIMITED BY SIZE
>                    XT-FARECALC DELIMITED BY "  "
>             INTO BIZEIL
>             MOVE BIZEIL TO D-CALCOCC
>             MOVE SPACES TO XT-FARECALC.
>      ******
>      * D-NR FESTLEGEN
>      ******
>           MOVE VGL-D-NR   TO Z.
>           MOVE HE-FLTIDRU TO DUP-FLTIDRU.
>       P162.
>           MOVE Z          TO D-NR.
>           MOVE ZERO       TO D-CONNR.
>           MOVE D-KEY      TO VGL-D-KEY.
>           MOVE 99         TO VGL-D-CONNR.
> ee-  *    START FLTIDRU KEY NOT < D-KEY INVALID GO TO P162A.
> ee+       MOVE "NL" TO VIEW--STRMOD
> ee+       MOVE 01 TO VIEW--KEYNUM
> ee+       PERFORM START-FLTIDRU1
> ee+       IF STAT--INVALID
> ee+         GO TO P162A
> ee+       END-IF.
> ee-  *    READ FLTIDRU NEXT                 END GO TO P162A.
> ee+       PERFORM READ-FLTIDRU1-NEXT
> ee+       IF STAT--ATEND
> ee+         GO TO P162A
> ee+       END-IF.
>           IF D-KEY > VGL-D-KEY
>             MOVE VGL-D-KEY TO D-KEY GO TO P162A.
>           IF Z < 999 ADD 1 TO Z     GO TO P162.
>           GO TO FF-LFD.
>       P162A.
>           MOVE DUP-FLTIDRU TO HE-FLTIDRU.
>           MOVE VGL-D-KEY   TO D-KEY.
>      ******
>      * PLAUSIB. CONJUNCTION
>      ******
>           MOVE ZEROES TO D-CONNR.
>           IF R-T-CONJX NUMERIC
>             MOVE 1    TO D-CONNR.
>           IF R-H-CNT   < 5
>             IF D-CONNR > ZEROES
>               MOVE "CONNR > 0 UND R-H-CNT < 5" TO FFTEXT
>               PERFORM FFF-F.
>           IF R-H-CNT   > 4
>             IF D-CONNR = ZEROES
>               MOVE "CONNR = 0 UND R-H-CNT > 4" TO FFTEXT
>               PERFORM FFF-F.
>      *****
>      * MAX-CONNR BELEGEN
>      *****
>           MOVE ZEROES     TO MAX-CONNR.
>           IF D-CONNR   = ZEROES     GO TO P163.
>           IF R-T-CONJN = R-T-TIX-RN GO TO P163.
>           MOVE 1          TO MAX-CONNR.
>           MOVE R-T-TIX-RN TO EBI-2N.
>       P162B.
>           IF EBI-2N = R-T-CONJN GO TO P163.
>           ADD 1 TO MAX-CONNR, EBI-2N.
>           GO TO P162B.
>       P163.
>           IF MAX-CONNR > 8
>             MOVE "MAX-CONNR > 8   " TO FFTEXT
>             PERFORM FFF-F.
>      ******
>      * D-MWSTKZ BELEGEN
>      ******
>           MOVE 1   TO X3.
>           MOVE "D" TO D-MWSTKZ.
>       P163A.
>           IF H-FROM-3L (X3) = SPACES  GO TO P164.
>           MOVE H-FROM-3L (X3) TO L3-KEY.
> ee-  *    READ FLDAT INVALID          GO TO P163B.
> ee+       MOVE 01 TO VIEW--KEYNUM
> ee+       PERFORM READ-FLDAT1
> ee+       IF STAT--INVALID
> ee+         GO TO P163B
> ee+       END-IF.
>           IF L3-INLAND  NOT = "J"     GO TO P163B.
>           IF H-ARR-3L (X3)  = SPACES  GO TO P164.
>           MOVE H-ARR-3L (X3)  TO L3-KEY.
> ee-  *    READ FLDAT INVALID          GO TO P163B.
> ee+       MOVE 01 TO VIEW--KEYNUM
> ee+       PERFORM READ-FLDAT1
> ee+       IF STAT--INVALID
> ee+         GO TO P163B
> ee+       END-IF.
>           IF L3-INLAND  NOT = "J"     GO TO P163B.
>           IF X3 < R-H-CNT ADD 1 TO X3 GO TO P163A.
>           GO TO P164.
>       P163B.
>           MOVE SPACE TO D-MWSTKZ.
>       P164.
>           IF D-MWSTKZ = "D"
>             MOVE "D-MWSTKZ = D    " TO FFTEXT
>             PERFORM FFF-F.
>      *****
>      * 3L-CODE DES GES. ITINERARY IN TEXT-RR
>      *****
>           MOVE SPACES       TO TEXT-RR.
>           MOVE 1            TO POINT1-RR.
>           STRING "REISE-ROUTE: "  DELIMITED BY SIZE
>                  H-FROM-3L (1)    DELIMITED BY SIZE
>                  "-"              DELIMITED BY SIZE
>                  H-ARR-3L (1)     DELIMITED BY SIZE
>           INTO TEXT-RR POINTER POINT1-RR.
>           MOVE H-ARR-3L (1) TO W-ARR.
>           MOVE 2            TO X1.
>       P164A.
>           IF H-FROM-3L (X1) NOT = W-ARR
>             STRING " "            DELIMITED BY SIZE
>                    H-FROM-3L (X1) DELIMITED BY SIZE
>             INTO TEXT-RR POINTER POINT1-RR.
>           IF H-ARR-3L (X1) NOT = SPACES
>             STRING "-"            DELIMITED BY SIZE
>                    H-ARR-3L (X1)  DELIMITED BY SIZE
>             INTO TEXT-RR POINTER POINT1-RR.
>           MOVE H-ARR-3L (X1) TO W-ARR.
>           IF H-FLUGDATEN (X1) = SPACES GO TO P166.
>           IF X1 < R-H-CNT ADD 1 TO X1  GO TO P164A.
>       P166.
>           MOVE R-T-CODEN TO D-CODE
>           MOVE R-T-TIXN  TO D-TICK.
>           MOVE SPACES    TO D-FLUGDATENOCC.
>      *****
>      * GES. ITINERARY IN 4ER PORTIONEN AUFTEILEN
>      *****
>           MOVE 1         TO X1, X2.
>       P166A.
>           IF H-FLUGDATEN (X1) NOT = SPACES
>             MOVE H-FLUGDATEN (X1) TO D-FLUGDATEN (X2)
>             IF X2 < 4
>               ADD 1 TO X2 GIVING X3
>               MOVE SPACES         TO D-X (X3)
>               MOVE H-ARR-3L (X1)  TO D-FROM-3L (X3)
>               MOVE H-ARR (X1)     TO D-FROM (X3).
>           IF X2 < 4 ADD 1 TO X1, X2 GO TO P166A.
>           MOVE SPACES             TO D-TOX.
>           MOVE H-ARR-3L (X1)      TO D-TO-3L.
>           MOVE H-ARR (X1)         TO D-TO.
>      ********
>      * EVTL. 'KLASSE' UPDATE PER REWRITE!
>      ********
>           MOVE HE-FLTIDRU         TO DUP-FLTIDRU.
>           MOVE D-KEY              TO VGL-DD-KEY.
>           MOVE ZEROES             TO D-NR, D-CONNR.
> ee-  *    START FLTIDRU KEY NOT < D-KEY INVALID GO TO P166Z.
> ee+       MOVE "NL" TO VIEW--STRMOD
> ee+       MOVE 01 TO VIEW--KEYNUM
> ee+       PERFORM START-FLTIDRU1
> ee+       IF STAT--INVALID
> ee+         GO TO P166Z
> ee+       END-IF.
>       P166B.
> ee-  *    READ FLTIDRU NEXT                 END GO TO P166Z.
> ee+       PERFORM READ-FLTIDRU1-NEXT
> ee+       IF STAT--ATEND
> ee+         GO TO P166Z
> ee+       END-IF.
>           IF D-RECHX NOT = VGL-D-RECHX          GO TO P166Z.
>           IF D-TINR  NOT = DUP-TINR             GO TO P166B.
>           MOVE D-USER-ID   TO DUP-USER-ID.
>           MOVE D-USER-STOP TO DUP-USER-STOP.
>           MOVE D-WV        TO DUP-WV.
>           MOVE D-TEILN-NRX TO DUP-TEILN-NRX.
>
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform