Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

DCAM-Exit (075)

&pagelevel(3)&pagelevel

Der DCAM-Exit bietet dem Benutzer die Möglichkeit, DCAM-Funktionen zu erweitern, zu ändern und eigene spezielle Funktionen hinzuzufügen. Solche Funktionen sind z.B.:

  • über TRANSDATA hinausgehender Datenschutz durch erweiterte Berechtigungsprüfungen, z.B. Öffnen von Anwendungen abhängig machen von der Benutzerkennung: Verbindungsaufbau für eine Anwendung nur mit definierten Partnern/Prozessoren zulassen

  • zusätzliche Aktionen veranlassen, z.B. Jobs starten, Meldungen ausgeben

Die benutzerspezifische Exit-Routine wird beim Öffnen und Schließen von Anwendungen sowie beim Öffnen und Schließen von Verbindungen aufgerufen. Beim Öffnen von Anwendungen und Verbindungen kann die Exit-Routine den Aufruf annehmen, ablehnen oder ggfs. modifizieren. Die Aufrufe beim Schließen dienen nur zur Information der Exit-Routine.

Aufrufereignisse

Zurzeit gibt es 12 Aufrufereignisse für die DCAM-Exit-Routine. Zu unterscheiden sind Hauptereignisse (Exit Maincases) und Nebenereignisse (Exit Subcases), die jeweils durch eine 3 Zeichen lange Buchstabenfolge gekennzeichnet sind. Die 6-stellige Kombination aus Haupt- und Nebenereignis-Kennzeichnung bezeichnet eindeutig das Aufrufereignis.

Es muss damit gerechnet werden, dass Exit Maincase und Exit Subcase in zukünftigen DCAM Versionen erweitert werden!

Auf den folgenden Seiten sind die Hauptereignisse APP und CON und ihre Nebenereignisse einander gegenübergestellt.

Hauptereignis APP

APP betrifft Ereignisse, die mit dem Öffnen und Schließen von Anwendungen (Application) zusammenhängen.

Exit Subcase

Aufruf der Exit-Routine

Funktion der Exit-Routine

APPOPN

bei jedem YOPEN-Aufruf:
nach Prüfung der Benutzerangaben
vor Bearbeitung des Aufrufs

  • zusätzliche Prüfungen,
    z.B.: Anwendung darf nur von bestimmten Benutzern eröffnet werden;
    Tabellen nachladen

  • YOPEN-Aufruf akzeptieren

  • YOPEN-Aufruf ablehnen

  • YOPEN-Parameter modifizieren

  • zusätzliche Aktionen veranlassen; z.B. Jobs starten, etc.

APPCLS

bei jedem YCLOSE-Aufruf:
vor Abbau der DCAM-Datenstruktur

  • zusätzliche Aktionen veranlassen;

    z.B.: Meldung ausgeben, exitspezifische Tabellen aktualisieren etc.

APPSHU

bei jedem internen Schließen einer Anwendung,
wenn der Operatorein BCEND-, BCLOSE- oder SHUTDOWN-Kommando eingegeben hat *)


APPRTM

beim internen Schließen einer Anwendung,
bei Programm- oder Taskterminierung

Ersatztask starten

APPFCL

bei unvorhergesehenem Schließen einer Anwendung wegen einer DCAM-Störung


*)

Der Exit wird nur beim Schließen, nicht bei einer eventuell vorangehenden Warnung aufgerufen. Er wird nicht aufgerufen, wenn vor der DCAM-Terminierung die TIAM-Terminierung abläuft, d.h. wenn das DCAM-Programm als Dialogtask gestartet wurde. In diesem Fall wird bereits durch TIAM eine Task-Terminierung eingeleitet, d.h. der Exit APPTRM wird aufgerufen.

Hauptereignis CON

CON betrifft Ereignisse, die mit dem Auf-/Abbau von Verbindungen zusammenhängen. Die Exit-Routine wird jedoch nicht aufgerufen, wenn beim Schließen einer Anwendung implizit alle noch bestehenden Verbindungen geschlossen werden.

Folgende Nebenereignisse sind zu unterscheiden:

  • Auffordern zum Verbindungsaufbau (YOPNCON ACQUIRE):

    • beim YOPNCON-ACQUIRE-Aufruf des Benutzers

    • nach erfolgreichem Verbindungsaufbau

  • Annehmen einer Verbindungsaufforderung

    • beim Eintreffen einer Aufforderung zum Verbindungsaufbau

    • nach Annahme der Aufforderung (YOPNCON ACCEPT)

  • bei explizitem Verbindungsabbau oder nach einem DCAM-Fehler:

    • Verbindungsabbau durch den Benutzer

    • Erzwungener Verbindungsabbau durch Störung

    • Verbindungsabbau durch den Partner

    Exit Subcase

    Aufruf der Exit-Routine

    Funktion der Exit-Routine

    CONACQ

    bei Senden einer Aufforderung zum Verbindungsaufbau (YOPNCON ACQUIRE),
    nach Prüfung der Benutzerangaben
    vor Bearbeitung des Aufrufs (d.h. vor BCAM-Call ' REQCON' )

    • zusätzliche Prüfungen z.B. Verbindungsnachricht (LOGON MESSAGE) gemäß Vereinbarungen?

    • Aufruf annehmen

    • Aufruf ablehnen

    • YOPNCON-Parameter ändern

    CONACC

    bei jedem Annehmen eines Verbindungswunsches (YOPNCON ACCEPT),
    nach Prüfung der Benutzerangaben,
    vor Bearbeitung des Aufrufs

    • zusätzliche Prüfungen

    • Auftrag annehmen

    • Auftrag ablehnen

    • YOPNCON-Parameter ändern

    CONCPL

    nach erfolgreichem Verbindungsaufbau,
    d.h., wenn ein YOPNCON ACQUIRE vom Partner angenommen wurde


    CONREQ

    beim Eintreffen eines Verbindungswunsches,
    nach Prüfung der Angaben,
    vor Bearbeitung des Verbindungswunsches

    • zusätzliche Prüfungen

    • Verbindungswunsch
      annehmen / ablehnen

    CONCLS

    bei jedem Verbindungsabbau durch den Benutzer (YCLSCON),
    vor Freigabe der DCAM-Datenstruktur


    CONFCL

    bei jedem erzwungenen Verbindungsabbau wegen NEA-Protokollfehler oder wegen Quittungsüberlauf


    CONBAD

    bei jedem Verbindungsabbau durch den Partner


    Folgende Informationen werden an die Exit-Routine übergeben:

R1 = A(YDDEXPL) = DCAM-Exit-Parameterbereich
R12 = A(TPR Program Manager)
R13 = A(Sicherungsbereich)
R14 = A(indirekter Rücksprung)
R15 = A(Exit-Routine)

Rückkehrinformation an die rufende Systemkomponente erfolgt über den Parameterbereich im Feld YDDXRETC:

YDDXRETC

X'00FDBKRC'

FDBK =

Rückkehrinformation der Exit-Routine an den DCAM-Benutzer

RC =

Rückkehrinformation der Exit-Routine an die rufende DCAM-
Komponente.

00 Aufruf annehmen

04 Aufruf ablehnen

08 Aufruf modifizieren

Das Feld FDBK muss versorgt werden, wenn RC=04 gesetzt ist. Die Angabe wird an den DCAM-Benutzer im Feld FDBK1/FDBK2 (siehe Handbuch „DCAM-Makroaufrufe“ [1]) übergeben. FDBK kann entweder aus einem für die Exit-Routine reservierten Bereich 'CC00'-'CCFF' genommen werden oder kann einer der gültigen DCAM-Returncodes sein (siehe Handbuch „Systemmeldungen“ [15]). FDBK darf nicht '0000' sein. Ist RC = 08, übergibt die Exit-Routine im Parameterbereich YDDEXPL die gültigen Daten für die Modifikation. Die Hinweise zur Programmierung von Exit-Routinen sind zu beachten.

Das Feld FDBK wird nur bei den Exitereignissen APPOPN, CONACQ und CONACC an den Benutzer übergeben (entspricht YOPEN, YOPNCON ACQ und YOPNCON ACC), jedoch nicht an den Partner geschickt.

Bei Ablehnung eines Verbindungswunsches durch den Systemexit des Partners wird der YOPNCON ACQUIRE nicht mit dem dort angegebenen FDBK sondern mit X'0C40' beendet.

DSECT

         YDDEXPL D
YDDEXPL  DSECT
*******************************************************************
*                                                                 *
*    DCAM  EXIT PARAMETERLISTE                                    *
*                                                                 *
*******************************************************************
*
* EINGABEPARAMETER
*
YDDXDPAR DS    A             A(DARPPAR)
*                            DCAM INTERNER ARBEITSBEREICH
YDDXMAIN DS    X             EXIT-MAIN-CASE
YDDXAPPL EQU   1               APPL
YDDXCONN EQU   2               CONN
YDDXSUB DS    X             EXIT-SUB-CASE
YDDXAOPN EQU   1               APPOPN
YDDXACLS EQU   2               APPCLS
YDDXASHU EQU   3               APPSHU
YDDXATRM EQU   4               APPTRM
YDDXAFCL EQU   5               APPFCL
YDDXCACQ EQU   6               CONACQ
YDDXCACC EQU   7               CONACC
YDDXCCPL EQU   8               CONCPL
YDDXCREQ EQU   9               CONREQ
YDDXCCLS EQU   10              CONCLS
YDDXCFCL EQU   11              CONFCL
YDDXCBAD EQU   12              CONBAD
*
* EINGABE-/RUECKGABEPARAMETER
*
YDDXLOGL DS    H             LAENGE DER LOGON MESSAGE
YDDXLOGM DS    CL80          LOGON MESSAGE
*
* RUECKGABEPARAMETER
*
YDDXPW  DS    XL4           PASSWORT
YDDXRETC DS    F             RETURNCODE '..FDBKRC'
*
YDDXL   EQU   *-YDDEXPL     LAENGE DER DCAM EXIT PARAMETERLISTE
               *,YDDEXPL    060    950330   55647211

 

Beschreibung der YDDEXPL-Felder

YDDXDPAR

A(DARPPAR)


Adresse eines DCAM-internen Arbeitsbereichs, in dem weitere aufrufspezifische Informationen an die Exit-Routine übergeben werden

YDDXMAIN

Indikator für das Hauptereignis

YDDXMAIN

Indikator für das Hauptereignis

YDDXAPPL

Hauptereignis ' APP' (betr. Anwendungen)

YDDXCONN

Hauptereignis ' CON' (betr. Verbindungen

YDDXSUB

Indikator für das Nebenereignis

YDDXAOPN

Exit-Case APPOPN

YDDXACLS

Exit-Case APPCLS

YDDXASHU

Exit-Case APPSHU

YDDXATRM

Exit-Case APPTRM

YDDXAFCL

Exit-Case APPFCL

YDDXCACQ

Exit-Case CONACQ

YDDXCACC

Exit-Case CONACC

YDDXCCPL

Exit-Case CONCPL

YDDXCREQ

Exit-Case CONREQ

YDDXCCLS

Exit-Case CONCLS

YDDXCFCL

Exit-Case CONFCL

YDDXCBAD

Exit-Case CONBAD

YDDXLOGL

Länge der Verbindungsnachricht (LOGON-Message) im Feld YDDXLOGLM; die Verbindungsnachricht darf höchstens 80 Bytes lang sein. Dieses Feld kann von der Exit-Routine verändert werden.
YDDXLOGL = 0: Es existiert keine Verbindungsnachricht

YDDXLOGM

enthält die Verbindungsnachricht (LOGON-Message), die von der Exit-Routine verändert werden kann.

YDDXPW

enthält ein Kennwort, das die Exit-Routine beim Rücksprung an DCAM übergibt. Dieses Kennwort ersetzt das vom Benutzer angegebene RDF-Kennwort beim YOPEN oder das LOGON-Kennwort beim YOPNCON ACQUIRE.

YDDXRETC

Returncode der Exit-Routine

Hinweise zur Programmierung von DCAM-Exit-Routinen

Zusätzlich zu den in „Exit-Routinen“ beschriebenen Regeln gelten für DCAM-Exit-Routinen folgende Einschränkungen

  • Auf alle Felder der DCAM-Datenstruktur (DARPPAR, Kontrollblöcke, s.u.) darf nur lesend zugegriffen werden. Schreibzugriff ist nur für die Rückgabefelder im Parameterbereich YDDEXPL erlaubt.

  • Es sind keine BCAM-Aufrufe erlaubt.

  • Die Exit-Routine darf keine Börsen-Locks setzen.

  • Die Exit-Routine darf ihren Prozess(PCB)-Level nicht ändern.

Auszug aus der DCAM-Datenstruktur

Die für die Programmierung von Exit-Routinen wichtigsten Elemente der DCAM-Datenstruktur sind nachfolgend aufgeführt. Da für das Layout der DCAM-Kontrollblöcke keine Kompatibilität garantiert wird, darf der Zugriff zur DCAM-Datenstruktur nur über die symbolischen Adressen erfolgen. Bei DCAM-Versionswechsel können Neuübersetzungen oder Sourceänderungen notwendig werden.

DCAM-interner Arbeitsbereich

DARPPAR
enthält taskspezifische Daten, z.B. die aktuellen Adressen der DCAM-Kontrollblöcke (siehe Handbuch „DCAM Makroaufrufe“ [1])

Eine DSECT für DARPPAR kann erzeugt werden mit dem Makroaufruf

[name] YDDDVEC D [,prefix]

Standardwerte:

name

YDDDVEC


prefix

YDDV

DCAM Application Control Block

DACB
enthält anwendungsspezifische Daten, z.B. Anwendungsname, Attribute ... Der DACB wird beim YOPEN angelegt und bleibt bis zum Schließen der Anwendung bestehen.

Eine DSECT kann erzeugt werden mit dem Makroaufruf

[name] YDDDACB D [,prefix]

Standardwerte:

name

YDDDACB


prefix

YDDH

DCAM Connection Control Block

DCCB
enthält verbindungsspezifische Daten, z.B. Partner-, Prozessornamen. Pro Verbindung wird ein DCCB angelegt.

Eine DSECT kann generiert werden mit dem Makroaufruf

[name] YDDDCCB D [,prefix]

Standardwerte:

name

YDDDCCB


prefix

YDDL

DCAM Request Parameter Block

DRPB

enthält bei asynchronen Aufrufen die aufrufspezifischen Informationen aus dem RPB.

Eine DSECT kann erzeugt werden mit dem Makroaufruf

[name] YDDDRPB D [,prefix]

Standardwerte:

name

YDDDRPB


prefix

YDDD

Feldinhalte bei Aufruf der Exit-Routine

Abhängig vom Aufrufereignis (Exit Case) werden die in den folgenden Tabellen enthaltenen Felder des Exit-Parameterbereichs und des internen Arbeitsbereiches versorgt. Nicht versorgte Felder und Adressen werden mit X'00' vordefiniert.

YDDEXPL - Exit-Parameterbereich

Feldname

Feldinhalt

Exit Case

APP

CON

OPN

CLS

SHU

TRM

FCL

ACQ

ACC

CPL

REQ

CLS

FCL

BAD

YDDXMAIN

Exit Main Case

x

x

x

x

x

x

x

x

x

x

x

x

YDDXSUB

Exit Sub Case

x

x

x

x

x

x

x

x

x

x

x

x

YDDXDPAR

A(DARPPAR)

x

x

x

x

x

x

x

x

x

x

x

x

YDDXLOGL

Länge LOGON Mess.






x

x

x

x




YDDXLOGM

A(LOGON Message)






x

x

x

x




YDDDVEC - DCAM-interner Arbeitsbereich

Feldname

Feldinhalt

Exit Case

APP

CON

OPN

CLS

SHU

TRM

FCL

ACQ

ACC

CPL

REQ

CLS

FCL

BAD

YDDVXTID

A(TID)

x

x

x

x

x

x

x

x

x

x

x

x

YDDVADAC

A(DACB)

x

x

x

x

x

x

x

x

x

x

x

x

YDDVADCC

A(DCCB)






x

x

x



x

x

YDDVADRP

A(DRPB)






x

x

x





YDDVARPB

A(RPB)






x

x

x


x



YDDVAPCN

A(PCN) *)







x


x




YDDVAPTN

A(PTN) *)







x


x




*)

Bei Anstoß des Exits durch das Ereignis CONREQ existiert noch kein Verbindungssteuerblock (DCCB). Der Benutzer kann sich mithilfe von YDDVAPTN über die Partneradresse informieren, jedoch nicht modifizieren.

PCN

CL8

PROCESSOR NAME

PTN

CL8

PARTNER NAME

 

Rückkehrinformation der Exit-Routine

Bei den Aufrufereignissen APPCLS, APPSHU, APPTRM, APPFCL, CONCPL, CONCLS, CONFCL und CONBAD muss die Exit-Routine das rechte Byte im Feld YDDXRETC auf null setzen (RC = X'00'). An diesen Aufrufereignissen kann nur Information an die Exit-Routine übergeben werden, die DCAM-Verarbeitung kann nicht durch die Exit-Routine beeinflusst werden.

Bei den Aufrufereignissen APPOPN, CONACQ, CONACC und CONREQ kann die Exit-Routine über den Returncode im Feld YDDXRETC des Parameterbereichs die DCAM-Verarbeitung beeinflussen. Welche Returncodes zu setzen sind, zeigt die folgende Tabelle.

Returncodes (1)


Bedingung

Exit Case

APPOPN

CONACQ

CONACC

CONREQ

YDDXRETC

RC = 00


x

x

x

x

RC = 04


x

x

x

x

RC = 08


x

x

x

-

FDBK

RC = 04

+

+

+

+

YDDEXPL

YDDXPW

RC = 08

*

*

-

-

YDDXLOGL

RC = 08

-

*

*

-

YDDXLOGM

YDDXLOGL > 0

-

*

*

-

Erläuterung:

x: der Wert/das Feld kann angegeben werden
-: der Wert/das Feld kann nicht angegeben werden
+: das Feld muss angegeben werden, wenn die Bedingung zutrifft
*: das Feld kann bei RC = 08 verändert an DCAM zurückgegeben werden

Die in der vorangehenden Tabelle mit '*' gekennzeichneten Fälle sind in der folgenden Tabelle näher erläutert.

Returncodes (2)

Exit-Case

Feld in YDDEXPL

Modifikation

APPOPN

YDDXPW

das RDF-Kennwort (Parameter USEPW im ACB) wird beim BCAM-Aufruf durch das übergebene Kennwort ersetzt;
YDDXPW = 0: das Kennwort wird nicht verändert

CONACC
CONACQ

YDDXLOGL

YDDXLOGL = 0: die Verbindungsnachricht wird nicht verändert
YDDXLOGL = X' 7FFF' : die Verbindungsnachricht soll gelöscht werden

CONACC
CONACQ

YDDXLOGM

die Verbindungsnachricht (LOGON Message) des Benutzers (Inhalt von AREA) wird vor dem BCAM-Aufruf durch die übergebenen Daten ersetzt

CONACQ

YDDXPW

das LOGON-Kennwort (Parameter LOGPW im CCB) wird vor dem BCAM-Aufruf durch das übergebene Kennwort ersetzt
YDDXPW = X' 00' : das Kennwort wird nicht ersetzt