Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

ONEVT Bedingung für ein Jobvariablen-Ereignis setzen

&pagelevel(4)&pagelevel

Allgemeines

Anwendungsgebiet:

Jobvariablen

Makrotyp:

S-Typ (bei VERSION=0): Standardform/C-/D-/E-/L-Form
S-Typ (bei VERSION=1): Standardform/C-/D-/E-/L-/M-Form
siehe Abschnitt „Der Operand MF“

Makrobeschreibung

Im Makroaufruf ONEVT wird eine Bedingung angegeben und eine Ereigniskennung vorgegeben. Während der Programmausführung wird vom System immer dann ein POSSIG abgesetzt, wenn das Ereignis „Bedingung erfüllt“ oder „Katalog exportiert“ eintritt.
Die Maximalzahl abzusetzender POSSIG-Aufrufe kann angegeben werden.
Zur Ereignissteuerung siehe Handbuch „Makroaufrufe an den Ablaufteil“ [4].

Makroaufrufformat und Operandenbeschreibung

Operation

Operanden

ONEVT

'bed.ausdruck' / adr1 / (r1)

,EIID=adr / (r)

[,POST=wert / (r)]

,COUNT=1 / zahl / (r) 

{

,VERSION=0
      ,MF=S / (D,pre) / D / (E,..) / C / (C,pre) / L

|

,VERSION=1
      ,MF=S / C / D / E / L / M
    
[,PARAM=adr / (r)]
    
 ,PREFIX=J / pre
    
 ,MACID=VSC / macid

}


'bed.ausdruck'
Die Bedingung wird als Direktoperand angegeben und muss in Apostrophe eingeschlossen werden. Wegen der Verwendung des Apostrophs in der Assemblersprache als syntaktisches Zeichen müssen folgende Regeln beachtet werden:
Jeder Apostroph innerhalb von „bed.ausdruck“ muss verdoppelt werden. Die Maximallänge des „bed.ausdruck“ ohne die einschließenden Apostrophe beträgt 127 Bytes.
Sonder-Jobvariablen sind nicht zulässig.

adr1
symbolische Adresse eines Bereichs im Benutzerprogramm, der den „bed.ausdruck“ enthält.
Das Satzformat muss vom Typ „variabel“ sein. Der Bereich beginnt mit einem 4 Byte langen Feld, dessen erste zwei Byte die Länge des „bed.ausdruck“ in Byte + 4 enthalten.

Beispiel

SYMADR1      DC  Y(END-SYMADR1)
             DS  CL2
             DC  'bedingter ausdruck'
END          EQU *


(r1)
r1 = Register, das die Adresse des „bed.ausdruck“ enthält, der wie unter adr1 beschrieben aufgebaut sein muss. Der „bed.ausdruck“ darf keine Sonder-Jobvariablen enthalten.

EIID=
benennt die Ereigniskurzkennung, die durch den TU-Eventing Makroaufruf ENAEI dem Benutzerprogramm zur Verfügung gestellt wird. Der Makro ENAEI muss vor dem ONEVT-Makro aufgerufen werden.

adr
symbolische Adresse der Ereigniskurzkennung,

(r)
r = Register, das die Adresse der Ereigniskurzkennung enthält.

POST=
gibt einen 2 Byte langen Wert an, der auf Programmebene zur Identifizierung des ONEVT verwendet werden kann. Er wird an das Benutzerprogramm in den zwei am weitesten rechts stehenden Bytes des Post Codes übergeben. Der Post Code ist 4 Byte lang und wird dem Programm bei Ereignissen wie „Bedingung erfüllt“ etc. mitgeteilt.

wert
2 Byte lange Assembler-Konstante beliebigen Formats.

(r)
r = Register, das die Adresse eines 2 Byte langen Feldes enthält, in
dem der Benutzer den Wert hinterlegt hat.

Format des Post Codes:

ereignisbezogene
Anzeige

Bedingungsergebnis

'ONEVT'
Kennungs-„wert“

1 Byte

1 Byte

2 Byte

Bedeutung der ersten beiden Bytes:

  • ereignisbezogene Anzeige:
    X'14'    gibt an, dass das Ereignis durch einen ONEVT-Makro verursacht wurde.

  • Bedingungsergebnis:
    gibt den 'Grund' für den vom System angegebenen POSSIG an.
    X'00': Bedingung erfüllt
    X'08': Katalog exportiert

Ist der Post-Operand nicht vorhanden, so wird auch kein „wert“ zur ONEVT-Kennung (d.h. also X'00000000') übermittelt.

COUNT=
gibt an, wie viel POSSIG-Aufrufe maximal vom System abgesetzt werden dürfen (1 <= zahl <= 32767); Standardwert = 1.
Vom COUNT-Operanden hängt es ab, wie oft das Programm über ein Ereignis unterrichtet wird.

zahl
Anzahl der erlaubten POSSIG-Aufrufe für den Fall „Bedingung erfüllt“. Wenn die Anzahl erreicht ist, erlischt die Wirksamkeit des Makroaufrufs ONEVT.
Unabhängig von der Angabe im COUNT-Operanden erlischt die Wirksamkeit des ONEVT-Makros unmittelbar nach einem POSSIG-Aufruf, der durch das Ereignis „Katalog exportiert“ verursacht wurde oder durch einen DONEVT-Makroaufruf.

(r)
r = Register, das die Adresse eines Halbwortes enthält, in dem der Wert des COUNT-Operanden abgespeichert ist.

MF=
PREFIX=
MACID=
PARAM=
Zur Beschreibung der Operanden MF, PREFIX, MACID und PARAM siehe "Allgemeine Makro-Operanden". Die gültigen Werte und Voreinstellungen von MF für diesen Makro sind zu Beginn der Makrobeschreibung, von PREFIX und MACID bei der Beschreibung des Operanden VERSION angegeben.

VERSION
legt fest, welcher Version die Makroauflösung entsprechen soll.

0
ist Voreinstellung: Die Makroauflösung entspricht dem Stand JV <= V8.7. Bei der C- und D-Form des Makroaufrufs kann ein Präfix (pre=1..3 Buchstaben) angegeben werden. 
Voreinstellung: pre=ONE

1
Die Makroauflösung entspricht dem Stand JV >= V10.0. Bei der C-, D- oder M-Form des Makroaufrufs kann ein Präfix (p=1 Buchstabe) und bei der C- oder M-Form zusätzlich eine Macid MACID angegeben werden.


Funktionsweise

Der Benutzer kann das Ergebnis „Bedingung erfüllt“ - über das er vom POSSIG unterrichtet wird - nach seinen Vorstellungen der BS2000-TU-Ereignissteuerung unterziehen, z.B. abwarten, bis „Bedingung erfüllt“ eintritt (SOLSIG COND=) oder dass asynchron ein Contingency-Prozess ausgeführt wird, wenn „Bedingung erfüllt“ gilt (SOLSIG COID=....).

Rückinformation und Fehleranzeigen

bei VERSION=0:

R15





b

b





a

a

Über die Ausführung des Makros ONEVT (VERSION=0) wird im Register R15 ein Returncode übergeben:

(aa=Rücksprungschalter, bb= Sekundärindikator)

X'bb'

X'aa'

Erläuterung

X'00'

X'00'

Ausführung normal beendet.

X'00'

X'04'

Funktion nicht ausgeführt: ungültige Adresse für die Ereigniskennung bzw. die Bedingung oder ungültige COUNT-Angabe.

X'04'

X'04'

Funktion nicht ausgeführt: Ereigniskennung nicht gefunden.

X'08'

X'04'

Funktion nicht ausgeführt: ungültiger bedingter Ausdruck.

X'10'

X'04'

Funktion nicht ausgeführt: auf eine angegebene Jobvariable kann nicht zugegriffen werden.


X'FF'

Funktion nicht ausgeführt: CJC im System nicht verfügbar.

bei VERSION=1:

Nach Initialisierung des Standardheaders (bei Aufruf mit MF=S/L) wird die Rückkehrinformation an der symbolischen Adresse <PREFIX><MACID>RET zur Verfügung gestellt (4Byte).

Standardheader





c

c

b

b

a

a

a

a

Über die Ausführung des Makros ONEVT (VERSION=1) wird im Standardheader ein Returncode übergeben:

(aaaa=MAINCODE, bb=SUBCODE1, cc=SUBCODE2)

X'cc'

X'aaaa'

Erläuterung

X'00'

X'0000'

Ausführung normal beendet.

X'00'

X'0004'

Funktion nicht ausgeführt: ungültige Adresse für die Bedingung bzw. die Ereigniskennung oder unzulässiger Wert für COUNT.

X'04'

X'0004'

Funktion nicht ausgeführt: Ereigniskennung nicht gefunden.

X'08'

X'0004'

Funktion nicht ausgeführt: Bedingung fehlerhaft.

X'10'

X'0004'

Funktion nicht ausgeführt: auf eine genannte Jobvariable kann nicht zugegriffen werden.

X'14'

X'0004'

Funktion nicht ausgeführt: es ist nicht genügend Speicherplatz vorhanden.

X'18'

X'0004'

Funktion nicht ausgeführt: die Ereignissteuerung ist nicht verfügbar.


X'FFFF'

Funktion nicht ausgeführt: Fehler bei der Initialisierung des Standardheaders, siehe .

Zusätzlich zu den bei VERSION=0 bzw. 1 genannten Returncodes können bei grundlegenden Fehlern (z.B. ungültige Adresse der Operandenliste) auch allgemeine JV-Returncodes auftreten. Deren Bedeutung kann dem Kommentar zum entsprechenden Returncode im Makro IDEJVS (siehe "Makroebene") entnommen werden.

DSECT

  ONEVT    ONEVT MF=D,VERSION=1
1 ONEVT    MFCHK MF=D,                                                   C
1                SUPPORT=(C,D,E,L,M,S),                                  C
1                PREFIX=J,                                               C
1                MACID=VSC,                                              C
1                DMACID=VSC,                                             C
1                DNAME=ONEVTPL,                                          C
1                PARAM=,                                                 C
1                SVC=190
2 ONEVT    DSECT ,
2                *,##### PREFIX=J, MACID=VSC #####
1 JVSCFHDR   FHDR  MF=(C,JVSC),EQUATES=NO
2 JVSCFHDR DS    0A
2 JVSCFHE  DS    0XL8            0   GENERAL PARAMETER AREA HEADER
2 *
2 JVSCIFID DS    0A              0   INTERFACE IDENTIFIER
2 JVSCFCTU DS    AL2             0   FUNCTION UNIT NUMBER
2 *                                  BIT 15    HEADER FLAG BIT,
2 *                                  MUST BE RESET UNTIL FURTHER NOTICE
2 *                                  BIT 14-12 UNUSED, MUST BE RESET
2 *                                  BIT 11-0  REAL FUNCTION UNIT NUMBER
2 JVSCFCT  DS    AL1             2   FUNCTION NUMBER
2 JVSCFCTV DS    AL1             3   FUNCTION INTERFACE VERSION NUMBER
2 *
2 JVSCRET  DS    0A              4   GENERAL RETURN CODE
2 JVSCSRET DS    0AL2            4   SUB RETURN CODE
2 JVSCSR2  DS    AL1             4   SUB RETURN CODE 2
2 JVSCSR1  DS    AL1             5   SUB RETURN CODE 1
2 JVSCMRET DS    0AL2            6   MAIN RETURN CODE
2 JVSCMR2  DS    AL1             6   MAIN RETURN CODE 2
2 JVSCMR1  DS    AL1             7   MAIN RETURN CODE 1
2 JVSCFHL  EQU   8               8   GENERAL OPERAND LIST HEADER LENGTH
2 *
1 JVSCUNU1   DS    CL3                        UNUSED
1 JVSCPCON   DS    X                          PARAM.-CONTROL
1 JVSCCORE   EQU   X'80'                      A(CONDITION) IN REGISTER
1 JVSCEREG   EQU   X'40'                      A(IDENTIFIER) IN REGISTER
1 JVSCPREG   EQU   X'20'                      POST IN REGISTER
1 JVSCCREG   EQU   X'10'                      COUNT IN REGISTER
1 JVSCPTPR   EQU   X'02'                      P2 CALLER 
1 JVSCCOND   DS    A                          A(CONDITION)
1          ORG   JVSCCOND
1 JVSCCONR   DS    AL1                        REG. CONT. A(COND.)
1          DS    AL3                          NOT USED IN THIS CONTEXT
1 JVSCEIID    DS    A                         A(IDENTIFIER)
1          ORG   JVSCEIID
1 JVSCEIDR   DS    AL1                        REG. CONT. A(IDENTIFIER)
1          DS    AL3                          NOT USED IN THIS CONTEXT
1 JVSCPOST   DS    H                          POST-VALUE
1          ORG   JVSCPOST
1 JVSCPOSR   DS    AL1                        REG. CONT. POST-VALUE
1          DS    AL1                          NOT USED IN THIS CONTEXT
1 JVSCCNT    DS    H                          COUNT-VALUE
1          ORG   JVSCCNT
1 JVSCCNTR   DS    AL1                        REG. CONT. COUNT-VALUE
1          DS    AL1                          NOT USED IN THIS CONTEXT
1 JVSCJVS    DS    F                          RESERVED
1 JVSC#      EQU   *-JVSCFHDR                 LENGTH
1 *
1 * RETURNCODES
1 *
1 JVSCOK     EQU   X'00000000'               SUCCESSFUL CALL
1 JVSCINAD   EQU   X'00010004'               INVALID PARM.-LIST
1 JVSCINEI   EQU   X'04010004'               INVALID IDENTIFIER
1 JVSCSYTE   EQU   X'08000004'               SYNTAX ERROR IN CONDITION
1 JVSCJVNA   EQU   X'10000004'               JV NOT ACCESSABLE
1 JVSCSYSE   EQU   X'14000004'               SYSTEM ERROR ($GETMEM)
1 JVSCBOER   EQU   X'18000004'               SYSTEM ERROR (BOURSES)