Objekt anlegen: NEW

EXEC TAA
    NEW <Objektname>
END-EXEC

Record-Objekt: Aufgrund der NEW-Anweisung stellt die Infrastruktur den Speicherplatz für ein Objekt zur Verfügung und initialisiert ihn, gemäß den Angaben über das Objekt, die zuvor mit DECLARE gemacht wurden.

Ein NEW wird implizit durchgeführt, wenn ein lokales Objekt einem anderen Baustein als Parameter übergeben wird, und das Parameter­objekt dort die Rolle CRE hat.

Sie können die Anweisung NEW auch benutzen, um ein bereits benutztes Objekt neu zu initialisieren; dabei wird der Inhalt sowohl im COBOL-Modul als auch in der Infrastruktur zurückgesetzt.

Bei der Initialisierung der REcord-Objekte beachten Sie bitte die unten beschriebenen Unterschiede.

Listenobjekt: Der NEW hat dieselbe Wirkung wie der ResetContents. Außerdem wird der Inhalt des Datenbereichs durch einen COBOL-Initialize gelöscht; eine weitergehende Initialisierung der Datenstruktur erfolgt nicht. Hierfür kann der Initialize aufgerufen werden. Eine vollständig TAA-gemäße Initialisierung von leeren Listenobjekten ist auch auf dem PC nicht möglich, weil für das Objekt in der Infrastruktur keine initialisierbaren Datenbereiche mehr vorhanden sind, die in die COBOL-Struktur übernommen werden könnten.

Achtung: Unterschiede in der Initialisierung von Objekten

In Modulen, die unter MVS laufen sollen, werden Record-Objekte wie beim Initialize beschrieben initialisiert.

In Modulen, die auf dem PC ablaufen, erfolgt die Initialisierung in der Infrastruktur unter Berücksichtigung der TAA-spezifischen Feldformate; dieser initialiserte Bereich wird in die COBOL-Datenstruktur übernommen.

Beispiel: Lokale Objekte

sample.cbl
 IDENTIFICATION DIVISION.
    EXEC TAA
        IDENTIFY NFUN SERVICE MYMODL IN TEST
    END-EXEC.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
    EXEC TAA
        DECLARE L-OBJ2
        WITH TYPE KUNDE
        AND CLASS LST
    END-EXEC.
    EXEC TAA
        DECLARE L-OBJ1
        WITH TYPE KUNDE
        AND CLASS REC
    END-EXEC.
 LINKAGE SECTION.
 PROCEDURE DIVISION.
    EXEC TAA REGISTER END-EXEC.
*   Verwendung der lokalen Objekte in Service-Anforderung:
    EXEC TAA
       CALL NINT SERVICE MY-INTR-PRN-BEARBEITEN IN TEST.ERFASSEN
       WITH KUNDE=L-OBJ1
    END-EXEC.
*   Anlegen über NEW:
    EXEC TAA
        NEW L-OBJ2
    END-EXEC. 
cobref:cob:new · Zuletzt geändert: 13.06.2019 13:06

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum