Baustein anmelden: REGISTER

EXEC TAA REGISTER [COLLECT CONDITIONS] END-EXEC.
EXEC TAA REGISTER RAISE CONDITION ON EXIT END-EXEC. 

REGISTER wird in der Regel die erste Anweisung in der PROCEDURE DIVISION sein. Erst nach dem REGISTER stehen die Inhalt der Datenobjekte und sonstige TAA-Leistungen zur Verfügung.

Die REGISTER-Anweisung muss in einer Zeile stehen.

Durch das Registrieren wird der Baustein bei der TAA-Infrastruktur angemeldet: Bei Ausführung des Programms wird die Infrastruktur darüber informiert, dass dieser Service jetzt startet und von diesem Service weitere Anforderungen an die Infrastruktur ausgehen können.

Innerhalb des EXEC TAA REGISTER wird auch dafür gesorgt, dass die von dem Modul benutzten TAA-Objekte entsprechend ihrer Rolle zur Verfügung stehen; dafür werden bestimmte Objektoperationen automatisch erzeugt:

Objektart Klasse Rolle automatisch durchgeführte Operation
Parm, Global alle CRE NEW
Parm, Global REC REF MOD GET
Parm, Global LST, REF REF MOD GET FIRST (abhängig vom Registry-Setting AutoGetFirst)
Lokal alle - DECLARE

COLLECT CONDITIONS oder RAISE CONDITION ON EXIT

Beim Registrieren wird auch festgelegt, wie der Baustein mit Laufzeitzuständen (engl.: „Conditions“) verfahren soll, die noch nicht aufgeworfen oder gelöscht wurden, wenn der UNREGISTER erreicht ist.

„COLLECT CONDITIONS“ wird angenommen, wenn Sie keine Angabe machen (Default). Es bedeutet, dass die Laufzeitzustände unbearbeitet in der Liste bleiben, es sei denn, das aufrufende Modul, zu dem die Kontrolle zurückgeht, enthält Anweisungen, um von sich aus in der Liste nachzusehen und ggf. aufgetretene Laufzeitzustände aufzuwerfen.

„RAISE CONDITION ON EXIT“ bestimmt, dass beim UNREGISTER automatisch ein RAISE auf den zuletzt gesetzten Laufzeitzustand erfolgen soll. Das Verhalten ist dann so, als wenn ein ausdrücklicher RAISE erfolgt wäre, mit dem Ergebnis TC-CND-ACTION-CALLERHDL: Die Infrastruktur sorgt dafür, dass der Laufzeitzustand bei Rückkehr in das aufrufende Modul erneut aufgeworfen wird. Auf diese Weise erfährt der Aufrufer sofort, dass in dem aktuellen Modul ein Laufzeitzustand aufgetreten ist.

Beispiel (Anmelden):

sample.cbl
IDENTIFICATION DIVISION.
   EXEC TAA IDENTIFY EFUN SERVICE AF-DATEN-TBF-VERSORGEN
     IN LEVERT END-EXEC.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
    DECIMAL-POINT IS COMMA.
DATA DIVISION.
WORKING-STORAGE SECTION.
* ......
LINKAGE SECTION.
PROCEDURE DIVISION.
MAIN SECTION.
    EXEC TAA REGISTER END-EXEC
    SET TC-STATE-NICHT-OK OF ME TO TRUE
    EVALUATE TRUE
    WHEN TC-EVENT-DURCHFUEHREN
       PERFORM INIT
       PERFORM ANTRAG-VERTRAG
       SET TC-STATE-OK OF ME TO TRUE
    WHEN OTHER
       EXEC TAA SET AND RAISE SEVERE GROUP APPLERR CODE 3
          ARGUMENTS = (TC-EVENT)
       END-EXEC
    END-EVALUATE
    EXEC TAA UNREGISTER END-EXEC.
cobref:cob:register · Zuletzt geändert: 15.04.2015 11:32

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