Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

COMPARE-SYNTAX-FILE Objekte zweier Syntaxdateien vergleichen

&pagelevel(4)&pagelevel

Mit der Anweisung COMPARE-SYNTAX-FILE vergleichen Sie Objekte in zwei verschiedenen Syntaxdateien miteinander.
SDF-A sucht das zu vergleichende Objekt zuerst mit dem externen Namen in der ersten Syntaxdatei. Wenn es vorhanden ist, sucht SDF-A dieses Objekt mit seinem internen Namen in der zweiten Syntaxdatei. Deshalb können nur Objekte mit gleichen internen Namen verglichen werden. Im ausgegebenen Vergleichsprotokoll verwendet SDF-A immer den ersten Standardnamen des Objektes, d.h. bei gleichem internen Namen können in der Ausgabe durchaus unterschiedliche externe Namen für ein Objekt erscheinen.

COMPARE-SYNTAX-FILE

OBJECT = *GLOBAL-INFORMATION / *DOMAIN(...) / *COMMAND(...) / *PROGRAM(...) /

*STATEMENT(...) / *OPERAND(...) / *VALUE(...)

*DOMAIN(...)

   NAME = *ALL / <structured-name 1..30 with-wild> / list-poss(2000): <structured-name 1..30>

*COMMAND(...)

   NAME = *ALL / <structured-name 1..30 with-wild> / list-poss(2000): <structured-name 1..30>

*PROGRAM(...)

   NAME = *ALL / <structured-name 1..30 with-wild> / list-poss(2000): <structured-name 1..30>

*STATEMENT(...)

  NAME = *ALL / <structured-name 1..30 with-wild> / list-poss(2000): <structured-name 1..30>
  ,PROGRAM = <structured-name 1..30>

*OPERAND(...)

  OPERAND-L1 = <structured-name 1..20>
  ,VALUE-L1 = *NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING / *C-STRING /

*NAME*ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME /

*PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN /

*COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /

*POSIX-PATHNAME / *POSIX-FILENAME /

<composed-name 1..30>

 ,OPERAND-L2 = *NO / <structured-name 1..20>
 ,VALUE-L2*NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING / *C-STRING /

*NAME*ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME /

*PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN /

*COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /

*POSIX-PATHNAME / *POSIX-FILENAME /

<composed-name 1..30>

  ,OPERAND-L3 = *NO / <structured-name 1..20>
  ,VALUE-L3*NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING / *C-STRING /

*NAME*ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME /

*PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN /

*COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /

*POSIX-PATHNAME / *POSIX-FILENAME /

<composed-name 1..30>

  ,OPERAND-L4 = *NO / <structured-name 1..20>
  ,VALUE-L4*NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING / *C-STRING /

*NAME*ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME /

*PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN /

*COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /

*POSIX-PATHNAME / *POSIX-FILENAME /

<composed-name 1..30>

  ,OPERAND-L5 = *NO / <structured-name 1..20>
  ,ORIGIN = *COMMAND(...) / *STATEMENT(...)

*COMMAND(...)
   NAME = <structured-name 1..30>

*STATEMENT(...)
   NAME = <structured-name 1..30>
   ,PROGRAM = <structured-name 1..30>

*VALUE(...)

  OPERAND-L1 = <structured-name 1..20>
  ,VALUE-L1*NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING / *C-STRING /

*NAME*ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME /

*PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN /

*COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /

*POSIX-PATHNAME / *POSIX-FILENAME /

<composed-name 1..30>

,OPERAND-L2 = *NO / <structured-name 1..20>
  ,VALUE-L2*NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING / *C-STRING /

*NAME*ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME /

*PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN /

*COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /

*POSIX-PATHNAME / *POSIX-FILENAME /

<composed-name 1..30>

  ,OPERAND-L3 = *NO / <structured-name 1..20>
  ,VALUE-L3*NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING / *C-STRING /

*NAME*ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME /

*PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN /

*COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /

*POSIX-PATHNAME / *POSIX-FILENAME /

<composed-name 1..30>

  ,OPERAND-L4 = *NO / <structured-name 1..20>
  ,VALUE-L4*NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING / *C-STRING /

*NAME*ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME /

*PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN /

*COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /

*POSIX-PATHNAME / *POSIX-FILENAME /

<composed-name 1..30>

  ,OPERAND-L5 = *NO / <structured-name 1..20>
  ,VALUE-L5*NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING / *C-STRING /

*NAME*ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME /

*PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN /

*COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /

*POSIX-PATHNAME / *POSIX-FILENAME /

<composed-name 1..30>  

  ,ORIGIN = *COMMAND(...) / *STATEMENT(...)

*COMMAND(...)
   NAME = <structured-name 1..30>


*STATEMENT(...)
  NAME = <structured-name 1..30>
  ,PROGRAM = <structured-name 1..30>

,INPUT-FILE = <filename 1..54 without-gen-vers>(...)

<filename1..54 without-gen-vers>(...)

   TYPE = *SYSTEM / *USER / *GROUP

,COMPARE-FILE = <filename 1..54 without-gen-vers>(...)

<filename 1..54 without-gen-vers>(...)

   TYPE = *SYSTEM / *USER / *GROUP

,ATTACHED-INFORMATION = *YES / *NO

,OUTPUT = *SYSOUT / *SYSLST(...)

*SYSLST(...)

   SYSLST-NUMBER = *STD / <integer 1..99>

,COMPARE-ATTRIBUTES = *ALL / *USER-INTERFACE / *PRIVILEGES-ALLOWNESS


OBJECT =
Art des Objekts, dessen Definition zu vergleichen ist.

OBJECT = *GLOBAL-INFORMATION
Die Globalinformationen der Syntaxdateien werden verglichen.

OBJECT = *DOMAIN(...)
Die Definitionen von Anwendungsbereichen werden verglichen.

NAME = *ALL / <structured-name 1..30 with-wild> / list-poss(2000): <structured-name 1..30>
Die Definitionen von allen bzw. den namentlich genannten Anwendungsbereichen werden verglichen.

OBJECT = *COMMAND(...)
Die Definitionen von Kommandos werden verglichen.

NAME = *ALL / <structured-name 1..30 with-wild> / list-poss(2000): <structured-name 1..30>
Die Definitionen von allen bzw. den namentlich genannten Kommandos werden verglichen.

OBJECT = *PROGRAM(...)
Die Definitionen von Programmen werden verglichen.

NAME = *ALL / <structured-name 1..30 with-wild> / list-poss(2000): <structured-name 1..30>
Die Definitionen von allen bzw. den namentlich genannten Programmen werden verglichen.

OBJECT = *STATEMENT(...)
Die Definitionen von Anweisungen werden verglichen.

NAME = *ALL / <structured-name 1..30 with-wild> / list-poss(2000): <structured-name 1..30>
Die Definitionen von allen bzw. den namentlich genannten Anweisungen werden verglichen.

PROGRAM = <structured-name 1..30>
Name des Programms, zu dem die Anweisungen gehören.

OBJECT = *OPERAND(...)
Bestimmt, dass die Definition eines Operanden verglichen wird. Steht dieser Operand in einer Struktur, so wird er durch Angabe des zu ihm führenden Pfades spezifiziert, d.h. durch Angabe der auf diesem Pfad liegenden Operanden und struktureinleitenden Operandenwerte. Ist der Name eines auf diesem Pfad liegenden Operanden nicht nur innerhalb seiner Struktur eindeutig, sondern auch in Bezug auf die übergeordnete Struktur (oder kommando- bzw. anweisungsglobal), so muss der Pfad nicht vollständig (oder gar nicht) ange-geben werden. Ein Operand, der zur Identifizierung der zu vergleichenden Operandendefinition nicht unbedingt gebraucht wird, sowie der zu ihm gehörende Operandenwert muss nicht angegeben werden. Ein zu VALUE-Li (i=1,..,5) angegebener Operandenwert muss zu dem Operanden gehören, der durch OPERAND-Li bestimmt ist. Nach dem ersten VALUE-Li=*NO betrachtet SDF-A den durch OPERAND-Li bestimmten Operanden als den, dessen Definition zu vergleichen ist. SDF-A wertet dann die Angaben zu eventuellen restlichen OPERAND-Lj, VALUE-Lj nicht mehr aus. Wird zu VALUE-Li ein anderer Wert als *NO angegeben, so muss zu OPERAND-Li+1 ebenfalls ein von *NO verschiedener Wert angegeben werden.

OPERAND-L1 = <structured-name 1..20>
Bestimmt den Operanden, dessen Definition zu vergleichen ist (VALUE-L1=*NO), oder einen Operanden, der auf dem Pfad zu diesem liegt (VALUE-L1î*NO). <structured-name> muss ein kommando- bzw. anweisungsglobal eindeutiger Operandenname sein.

VALUE-L1 = *NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING / *C-STRING /*NAME / *ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME /*PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN /*COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /*POSIX-PATHNAME / *POSIX-FILENAME / <composed-name 1..30>
*NO bedeutet, dass die Definition von OPERAND-L1 zu vergleichen ist. Andernfalls ist ein Operandenwert anzugeben, der eine Struktur einleitet. Diese muss den Operanden unmittelbar oder mittelbar enthalten, dessen Definition zu vergleichen ist. Ist der struktureinleitende Operandenwert vom Datentyp KEYWORD(-NUMBER), so ist der für ihn definierte Einzelwert anzugeben (siehe ADD-VALUE TYPE=*KEYWORD, ... , VALUE=<c-string>).
Dabei ist zu beachten, dass dieser Einzelwert in jedem Fall ohne vorangestellten Stern anzugeben ist. Ist der struktureinleitende Operandenwert nicht vom Typ KEYWORD bzw. KEYWORD-NUMBER, so ist der für ihn definierte Datentyp anzugeben.

OPERAND-L2 = *NO / <structured-name 1..20>
*NO bedeutet, dass OPERAND-L2 für die Spezifizierung des Operanden, dessen Definition zu vergleichen ist, nicht relevant ist. Andernfalls ist der Name eines Operanden anzugeben, der innerhalb der durch VALUE-L1 bestimmten Struktur eindeutig ist. Dieser Operand ist entweder der, dessen Definition zu vergleichen ist (VALUE-L2=*NO), oder einer, der auf dem Pfad zu diesem liegt (VALUE-L2î*NO).

VALUE-L2 = analog VALUE-L1
*NO bedeutet, dass VALUE-L2 für die Spezifizierung des Operanden nicht relevant ist. Andernfalls ist ein Operandenwert anzugeben, der eine Struktur einleitet. Diese muss den Operanden unmittelbar oder mittelbar enthalten, dessen Definition zu vergleichen ist. Weitere Informationen siehe VALUE-L1.

OPERAND-L3 = *NO / <structured-name 1..20>
*NO bedeutet, dass OPERAND-L3 für die Spezifizierung des Operanden, dessen Definition zu vergleichen ist, nicht relevant ist. Andernfalls ist der Name eines Operanden anzugeben, der innerhalb der durch VALUE-L2 bestimmten Struktur eindeutig ist. Dieser Operand ist entweder der, dessen Definition zu vergleichen ist (VALUE-L3=*NO), oder einer, der auf dem Pfad zu diesem liegt (VALUE-L3î*NO).

VALUE-L3= analog VALUE-L1
*NO bedeutet, dass VALUE-L3 für die Spezifizierung des Operanden nicht relevant ist. Andernfalls ist ein Operandenwert anzugeben, der eine Struktur einleitet. Diese muss den Operanden unmittelbar oder mittelbar enthalten, dessen Definition zu vergleichen ist. Weitere Informationen siehe VALUE-L1.

OPERAND-L4 = *NO / <structured-name 1..20>
siehe OPERAND-L2.

VALUE-L4 = analog VALUE-L1
siehe VALUE-L2.

OPERAND-L5 = *NO / <structured-name 1..20>
siehe OPERAND-L2.

ORIGIN =
Kommando oder Anweisung, zu dem die zu vergleichende Operandendefinition gehört.

ORIGIN = *COMMAND(...)
Die Operandendefinition gehört zu einem Kommando.

NAME = <structured-name 1..30>
Name des Kommandos.

ORIGIN = *STATEMENT(...)
Die Operandendefinition gehört zu einer Anweisung.

NAME = <structured-name 1..30>
Name der Anweisung.

PROGRAM = <structured-name 1..30>
Name des Programms, zu dem die Anweisung gehört.

OBJECT = *VALUE(...)
Die Definition eines Operandenwerts wird verglichen. Dieser Operandenwert wird durch den zu ihm führenden Pfad spezifiziert, d.h. durch Angabe der auf diesem Pfad liegenden Operanden und struktureinleitenden Operandenwerte. Gehört der Operandenwert zu einem Operanden, der außerhalb jeder Struktur steht, so liegt auf dem Pfad nur dieser Operand. Gehört der Operandenwert zu einem Operanden, der in einer Struktur steht, so liegen auf dem Pfad außerdem die übergeordneten Operanden und die dazugehörenden struktureinleitenden Operandenwerte. Ist der Name eines auf diesem Pfad liegenden Operanden nicht nur innerhalb seiner Struktur eindeutig, sondern auch in Bezug auf die übergeordnete Struktur (oder kommando- bzw. anweisungsglobal), so muss der Pfad nicht vollständig angegeben werden. Ein Operand, der zur Identifizierung der zu vergleichenden Operandenwertdefinition nicht unbedingt gebraucht wird, sowie der zu ihm gehörende Operandenwert muss nicht angegeben werden. Ein zu VALUE-Li (i=1,..,5) angegebener Operandenwert muss zu dem Operanden gehören, der durch OPERAND-Li bestimmt ist. Nach dem ersten OPERAND-Li+1=*NO betrachtet SDF-A den durch VALUE-Li bestimmten Operandenwert als den, dessen Definition zu vergleichen ist. SDF-A wertet dann die Angaben zu eventuellen restlichen OPERAND-Lj, VALUE-Lj nicht mehr aus. Wird zu OPERAND-Li ein anderer Wert als *NO angegeben, so muss zu VALUE-Li ebenfalls ein von *NO verschiedener Wert angegeben werden.

OPERAND-L1 = <structured-name 1..20>
Bestimmt den Operanden, zu dem der Operandenwert gehört, dessen Definition zu vergleichen ist (OPERAND-L2=*NO), oder einen Operanden, der auf dem Pfad zu diesem Operandenwert liegt (OPERAND-L2î*NO).

VALUE-L1=*NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING/ *C-STRING / *NAME / *ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME /*PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN / *COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /*POSIX-PATHNAME / *POSIX-FILENAME / <composed-name 1..30>
Bestimmt den Operandenwert, dessen Definition zu vergleichen ist (OPERAND-L2=*NO), oder einen struktureinleitenden Operandenwert, der auf dem Pfad zu diesem liegt (OPERAND-L2 != *NO). Ist VALUE-L1 vom Datentyp KEYWORD(-NUMBER), so ist der für ihn definierte Einzelwert anzugeben (siehe ADD-VALUE TYPE=*KEYWORD,..., VALUE= <c-string>). Dabei ist zu beachten, dass dieser Einzelwert in jedem Fall ohne vorangestellten Stern anzugeben ist. Ist der Operandenwert nicht vom Typ
KEYWORD(-NUMBER), so ist der für ihn definierte Datentyp anzugeben.

OPERAND-L2 = *NO / <structured-name 1..20>
*NO bedeutet, dass die Definition von VALUE-L1 zu vergleichen ist. Andernfalls ist der Name des Operanden anzugeben, zu dem die zu vergleichende Operandenwertdefinition gehört (OPERAND-L3=*NO), oder der Name eines Operanden, der auf dem Pfad zu diesem Operandenwert liegt (OPERAND-L3î*NO). Wird ein Operandenname angegeben, so muss dieser innerhalb der durch VALUE-L1 bestimmten Struktur eindeutig sein.

VALUE-L2 = *NO / *COMMAND-REST / *INTEGER / *LONG-INTEGER / *X-STRING / *C-STRING /*NAME / *ALPHANUMERIC-NAME / *STRUCTURED-NAME / *FILENAME / *PARTIAL-FILENAME / *TIME / *DATE / *TEXT / *CAT-ID / *LABEL / *VSN /*COMPOSED-NAME / *X-TEXT / *FIXED / *DEVICE / *PRODUCT-VERSION /*POSIX-PATHNAME / *POSIX-FILENAME / <composed-name 1..30>
*NO bedeutet, dass VALUE-L2 für die Spezifizierung des zu vergleichenden Operandenwerts nicht relevant ist. Andernfalls ist ein Operandenwert anzugeben; entweder der Operandenwert, dessen Definition zu vergleichen ist (OPERAND-L3=*NO), oder ein struktureinleitender Operandenwert, der auf dem Pfad zu diesem liegt (OPERAND-L3 != *NO). Weitere Informationen siehe VALUE-L1.

OPERAND-L3 = *NO / <structured-name 1..20>
*NO bedeutet, dass OPERAND-L3 für die Spezifizierung der zu vergleichenden Operandenwertdefinition nicht relevant ist. Andernfalls ist der Name des Operanden anzugeben, zu dem die zu vergleichende Operandenwertdefinition gehört (OPERAND-L4=*NO), oder der Name eines Operanden, der auf dem Pfad zu diesem Operandenwert liegt (OPERAND-L4 != *NO). Wird ein Operandenname angegeben, so muss dieser innerhalb der durch VALUE-L2 bestimmten Struktur eindeutig sein.

VALUE-L3 = analog VALUE-L2
*NO bedeutet, dass VALUE-L3 für die Spezifizierung der zu vergleichenden Operandenwertdefinition nicht relevant ist. Andernfalls ist ein Operandenwert anzugeben; entweder der Operandenwert, dessen Definition zu vergleichen ist (OPERAND-L4=*NO), oder ein struktureinleitender Operandenwert, der auf dem Pfad zu diesem liegt (OPERAND-L4 != *NO). Weitere Informationen siehe VALUE-L1.

OPERAND-L4 = *NO / <structured-name 1..20>
siehe OPERAND-L3.

VALUE-L4 = analog VALUE-2 
siehe VALUE-L2.

OPERAND-L5 = *NO / <structured-name 1..20>
siehe OPERAND-L3.

VALUE-L5= analog VALUE-2
siehe VALUE-L2.

ORIGIN =
Kommando oder Anweisung, zu dem die zu vergleichende Operandenwertdefinition gehört.

ORIGIN = *COMMAND(...)
Die Operandenwertdefinition gehört zu einem Kommando.

NAME = <structured-name 1..30>
Name des Kommandos.

ORIGIN = *STATEMENT(...)
Die Operandenwertdefinition gehört zu einer Anweisung.

NAME = <structured-name 1..30>
Name der Anweisung.

PROGRAM = <structured-name 1..30>
Name des Programms, zu dem die Anweisung gehört.

INPUT-FILE = <filename 1..54 without-gen-vers>(...)
Syntaxdatei, die die zu vergleichenden Definitionen bzw. die zu vergleichende Globalinformation enthält.

TYPE = *SYSTEM / *GROUP / *USER
Typ der Syntaxdatei mit den zu vergleichenden Definitionen bzw. der zu vergleichenden Globalinformation: Systemsyntaxdatei, Gruppensyntaxdatei oder Benutzersyntaxdatei.

COMPARE-FILE = <filename 1..54 without-gen-vers>(...)
Syntaxdatei, mit der die Definitionen bzw. die Globalinformation aus INPUT-FILE verglichen werden.

TYPE = *SYSTEM / *GROUP / *USER
Typ der Syntaxdatei:
Systemsyntaxdatei, Gruppensyntaxdatei oder Benutzersyntaxdatei

ATTACHED-INFO =
Bestimmt, welche der Definitionen ausgegeben werden, die zu dem ausgewählten Objekt gehören.

ATTACHED-INFO = *YES
Die Definition des ausgewählten Objekts wird einschließlich der Definitionen aller Objekte ausgegeben, die diesem Objekt zugeordnet sind (Anwendungsbereich mit zugeordneten Kommandos, Programm mit zugehörigen Anweisungen, Kommando oder Anweisung mit zugehörigen Operanden, Operand mit zugehörigen Operandenwerten, Operandenwert mit zugehöriger Struktur, Globalinformation mit sprachabhängigen Texten).

ATTACHED-INFO = *NO
Die Definition des ausgewählten Objekts wird ohne die Definitionen der Objekte ausgegeben, die diesem Objekt zugeordnet sind (Anwendungsbereich ohne Kommandozuordnungen, Programm ohne zugehörige Anweisungen, Kommando oder Anweisung ohne zugehörige Operanden, Operand ohne zugehörige Operandenwerte, Operandenwert ohne zugehörige Struktur, Globalinformation ohne sprachabhängige Texte).

OUTPUT =
Bestimmt das Ausgabemedium für das Vergleichsprotokoll.

OUTPUT = *SYSOUT
Die Ausgabe erfolgt in die logische Systemdatei SYSOUT, d.h. im Dialog in der Regel auf den Bildschirm.

OUTPUT = *SYSLST(...)
Die Ausgabe erfolgt in die logische Systemdatei SYSLST.

SYSLST-NUMBER = *STD / <integer 1..99>
Bestimmt die Nummer der logischen Systemdatei SYSLST. Bei Angabe von *STD erhält die logische Systemdatei SYSLST keine Nummer.

COMPARE-ATTRIBUTES =
Legt die Vergleichs-Attribute fest

COMPARE-ATTRIBUTES = *ALL
Die komplette Objekt-Definition wird verglichen.

COMPARE-ATTRIBUTES = *USER-INTERFACE
Verglichen werden

  • die Hilfetexte des Kommandos, der Anweisung, des Anwendungsbereiches oder des Operanden

  • die Zusätze zum Datentyp eines Operandenwertes (z.B. <integer 1..99>)

  • die Kommentarzeile, die einem Programm zugeordnet ist.

COMPARE-ATTRIBUTES = *PRIVILEGES-ALLOWNESS
Verglichen werden

  • die Eingabemodi (DIALOG-ALLOWED, DIALOG-PROC-ALLOWED, BATCH-ALLOWED usw.)

  • die Privilegien, die dem Objekt zugeordnet sind.

Ausgaben der Anweisung COMPARE-SYNTAX-FILE

Wenn die zu vergleichenden Objekte identisch definiert sind, werden nur die Namen der beiden Syntaxdateien und anschließend die Meldung END OF COMPARISON ausgegeben.

Sind die zu vergleichenden Objekte nicht identisch definiert, dann gibt SDF-A folgende Informationen aus:

  • Namen der beiden Syntaxdateien

  • Identifizierung der Objekte, die unterschiedlich definiert sind

  • Unterschiede in der Definition

Namen der beiden Syntaxdateien

Die Ziffer in der ersten Spalte identifiziert die Syntaxdatei:

1:

Syntaxdatei, die bei INPUT-FILE angegeben wurde

2:

Syntaxdatei, die bei COMPARE-FILE angegeben wurde

Fehlt die Ziffer in der ersten Spalte, dann betrifft die darauffolgende Information beide Syntaxdateien.

Identifizierung der Objekte, die unterschiedlich definiert sind

SDF-A sucht jedes Objekt zuerst mit dem externen Namen in der Syntaxdatei 1 (INPUT-FILE). Wenn es vorhanden ist, sucht SDF-A dieses Objekt mit seinem internen Namen in der Syntaxdatei 2 (COMPARE-FILE).

Der Identifikator im Vergleichsprotokoll beginnt immer mit dem Objekttyp, gefolgt von einem Doppelpunkt und der genauen Pfadangabe zum Objekt. Im folgenden Text bedeutet:


<domain-name>Name des Anwendungsbereiches
<command-name>Erster STANDARD-NAME des Kommandos (siehe ADD-CMD, "ADD-CMD Kommando definieren")
<program-name>Name des Programmes
<statement-name>Erster STANDARD-NAME der Anweisung (siehe ADD-STMT, "ADD-STMT Anweisung definieren")

<operand-name>

Erster STANDARD-NAME des Operanden (siehe ADD-OPERAND,
"ADD-OPERAND Operand definieren")

<value-name>

                                             

Erster STANDARD-NAME des Operandenwertes, wenn dieser vom Datentyp KEYWORD(-NUMBER) ist; ansonsten der Datentyp des Operandenwertes in Kleinbuchstaben


DOMAIN:<domain-name>

Es gibt Unterschiede in der Definition eines Anwendungsbereichs.

COMMAND:<domain-name>.<command-name>

Es gibt Unterschiede in der Kommandodefinition und der Vergleich wurde mit OBJECT=*DOMAIN(...) durchgeführt.

COMMAND:<command-name>

Es gibt Unterschiede in der Kommandodefinition und der Vergleich wurde mit OBJECT=*COMMAND(...) durchgeführt.

PROGRAM:<program-name>

Es gibt Unterschiede in der Programmdefinition.

STATEMENT:<program-name>.<statement-name>

Es gibt Unterschiede in der Anweisungsdefinition.

OPERAND:<domain-name>.<command-name>.<operand-name>

Es gibt Unterschiede in der Operandendefinition eines Kommandos und der Vergleich wurde mit OBJECT=*DOMAIN(...) durchgeführt.

OPERAND:<command-name>.<operand-name>

Es gibt Unterschiede in der Operandendefinition eines Kommandos und der Vergleich wurde mit OBJECT=*COMMAND(...) durchgeführt.

OPERAND:<program-name>.<statement-name>.<operand-name>

Es gibt Unterschiede in der Operandendefinition einer Anweisung und der Vergleich wurde mit OBJECT=*PROGRAM(...) durchgeführt.

VALUE:<domain-name>.<command-name>.<operand-name>.<value-name>

Es gibt Unterschiede in der Operandenwertdefinition in einem Kommando und der Vergleich wurde mit OBJECT=*DOMAIN(...) durchgeführt.

VALUE:<command-name>.<operand-name>.<value-name>

Es gibt Unterschiede in der Operandenwertdefinition in einem Kommando und der Vergleich wurde mit OBJECT=*COMMAND(...) durchgeführt.

VALUE:<program-name>.<statement-name>.<operand-name>.<value-name>

Es gibt Unterschiede in der Operandenwertdefinition einer Anweisung und der Vergleich wurde mit OBJECT=*PROGRAM(...) durchgeführt.

Unterschiede zwischen den verglichenen Objekten

Direkt nach dem Objekt-Identifikator wird das Vergleichsresultat ausgegeben.
Zeilen ohne die Ziffer 1 oder 2 in der ersten Spalte betreffen beide Syntaxdateien und enthalten z.B. den Text ’NOT DEFINED’ als Hinweis darauf, dass das zu vergleichende Objekt in beiden Syntaxdateien nicht definiert ist. Nachfolgend finden Sie einige Beispiele für Ausgabezeilen in einem Vergleichsprotokoll und eine kurze Erklärung dazu.

Beispiele für nicht definierte Objekte

PROGRAM NOT DEFINED

In beiden Syntaxdateien ist kein Programm definiert. Beim Vergleich wurde OBJECT=*PROGRAM(NAME=*ALL) angegeben.

PROGRAM:SDF-A NOT DEFINED

Das Programm SDF-A ist weder in Syntaxdatei 1 (INPUT-FILE) noch in Syntaxdatei 2 (COMPARE-FILE) definiert.

1 OPERAND:MODIFY-SDF-OPTIONS.MODE.TEST.CHECK-PRIVILEGES NOT DEFINED

In Syntaxdatei 1 ist der Operand CHECK-PRIVILEGE in der Struktur MODE=*TEST(...) im Kommando MODIFY-SDF-OPTIONS nicht definiert.

2 COMMAND:SDF.RESET-INPUT-DEFAULTS NOT DEFINED

In Syntaxdatei 2 ist das Kommando RESET-INPUT-DEFAULTS im Anwendungsbereich SDF nicht definiert.

1 COMMAND:MODIFY-SDF-OPTIONS NOT DEFINED

2 COMMAND:MODIFY-SDF-OPTIONS NOT DEFINED

Das Kommando MODIFY-SDF-OPTIONS hat in Syntaxdatei 2 nicht den gleichen internen Namen wie in Syntaxdatei1.

Beispiele für unterschiedliche Objekte

Unterschiede werden in Form des Teils der SDF-A-Anweisung dargestellt, mit der das betroffene Objekt definiert wurde; z.B. ADD-CMD bei Unterschieden zwischen Kommandos, ADD-DOMAIN bei Unterschieden zwischen Anwendungsbereichen oder SET-GLOBALS bei unterschiedlichen Globalinformationen.

1 COMMAND:MODIFY-SDF-OPTIONS HELP=(E('help from input-file'))

2 COMMAND:MODIFY-SDF-OPTIONS HELP=(E('help from compare-file'))

Die Hilfetexte für das Kommando MODIFY-SDF-OPTIONS unterscheiden sich.
Der Unterschied wird wie ein Teil der Anweisung ADD-CMD NAME=MODIFY-SDF-OPTIONS,...,HELP=(E('...')) dargestellt.

1 COMMAND:MODIFY-SDF-OPTIONS HELP=(E('help from compare-file')) NOT DEFINED

In Syntaxdatei 1 ist für das Kommando MODIFY-SDF-OPTIONS kein englischer Hilfetext definiert (der Hilfetext 'help from compare-file' stammt aus Syntaxdatei 2 und fehlt in Syntaxdatei 1).

1 VALUE:SDF.MODIFY-SDF-OPTIONS.MODE.TEST STRUCTURE=YES

2 VALUE:SDF.MODIFY-SDF-OPTIONS.MODE.TEST STRUCTURE=NO

Der Wert TEST im Operanden MODE des Kommandos MODIFY-SDF-OPTIONS (Anwendungsbereich SDF) ist in Syntaxdatei 1 mit STRUCTURE=*YES definiert, in Syntaxdatei 2 jedoch mit STRUCTURE=*NO.