Previous Topic: USERNext Topic: Online DDDL Compiler


USER-DEFINED ENTITY

User-defined statements are used to directly establish user-defined entities in the dictionary. Optional clauses relate user-defined entities to other user-defined entities and to classes and attributes.

User-defined entities are established as classes by using the CLASS TYPE IS ENTITY clause of the CLASS statement. Statements for establishing and maintaining occurrences of user-defined entity types are similar to the ADD and MODIFY ATTRIBUTE statements. Once established, user-defined entities can be referenced by using any syntax that applies to classes and attributes.

If the SET OPTIONS statement specifies SECURITY FOR CLASS AND ATTRIBUTE IS ON, the user must be assigned the proper authority to issue user-defined entity statements.USER-DEFINED ENTITY.

Syntax

USER-DEFINED ENTITY statement

►►─┬─ ADD ─────┬─ user-defined-entity-type name is entity-occurrence-name ────►
   ├─ MODify ──┤
   ├─ REPlace ─┤
   └─ DELete ──┘

 ►─┬─────────────────────────────────────────────────────────┬────────────────►
   └─┬─ PREpared ─┬─ by user-id ──┬────────────────────────┬─┘
     └─ REVised ──┘               └─ PASsword is password ─┘

 ►─┬────────────────────────────────┬─────────────────────────────────────────►
   └─ NEW name is new-entity-name ──┘

 ►─┬────────────────────────────────┬─────────────────────────────────────────►
   └─ deletion LOCk is ─┬─ OFF ◄ ─┬─┘
                        └─ ON ────┘

   ┌─────────────────────────────────────────────────────────────────┐
 ►─▼─┬─────────────────────────────────────────────────────────────┬─┴────────►
     └─┬─ INClude ◄ ─┬─ USEr is user-id ──┬──────────────────────┬─┘
       └─ EXClude ───┘                    └─ user-specification ─┘

(for complete user-specification syntax, see USER clause)
 ►─┬──────────────────────────────────────────────────────┬───────────────────►
   └─ PUBlic access is ─┬───────────┬─ for ─┬─ ALL ◄ ───┬─┘
                        └─ ALLOwed ─┘       ├─ NONe ────┤
                                            ├─ UPDate ──┤
                                            ├─ MODify ──┤
                                            ├─ REPlace ─┤
                                            ├─ DELete ──┤
                                            └─ DISplay ─┘

   ┌───────────────────────────────────────────────────────────────────────┐
 ►─▼─┬───────────────────────────────────────────────────────────────────┬─┴──►
     └─┬ INClude ◄ ┬ class-name is attribute-name ┬────────────────────┬─┘
       └ EXClude ──┘                              └ TEXt is user-text ─┘

   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─ relational-key is ─┬─────────────┬─ attribute-name ───
       └─ EXClude ───┘                     └─ ATTribute ─┘
  ─────────────────────────────────────────────────────────┐
─►───────────────────────────────────────────────────────┬─┴──────────────────►
  ─┬───────────────────────────┬─┬─────────────────────┬─┘
   └─ WITHIn class class-name ─┘ └─ TEXt is user-text ─┘

   ┌─────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └┬─ INClude ◄ ─┬─ relational-key is class-name is attribute-name ────────
      └─ EXClude ───┘

  ───────────────────────────┐
─►─────────────────────────┬─┴────────────────────────────────────────────────►
  ─┬─────────────────────┬─┘
   └─ TEXt is user-text ─┘
   ┌──────────────────────────────────────────────────────────────────────────
 ►─▼─┬────────────────────────────────────────────────────────────────────────►─
     └─┬─ INClude ◄ ─┬─ entity-type-name is entity-occurrence-name ───────────
       └─ EXClude ───┘

  ──────────────────────────────────────────────────────────────────┐
─►────────────────────────────────────────────────────────────────┬─┴─────────►
  ─┬───────────────────────────────────┬─┬──────────────────────┬─┘
   └─ Version is ─┬─ version-number ─┬─┘ └─ TEXt is user-text ──┘
                  ├─ HIGhest ────────┤
                  └─ LOWest ─────────┘
   ┌───────────────────────────────────────────────────────────────┐
 ►─▼─┬───────────────────────────────────────────────────────────┬─┴──────────►
     │                            ┌────────────────────┐         │
     └─ EDIt ─┬─ COMments ────┬───▼─ edit-instruction ─┴─ QUIT ──┘
              ├─ DEFinition ──┤
              └─ comment-key ─┘

   ┌──────────────────────────────────────────────────┐
 ►─▼─┬─────────────────────────────────────────────┬──┴───────────────────────►◄
     └─┬─ COMments ─────┬── is ─┬─ NULl ─────────┬─┘
       ├─ DEFinition ───┤       └─ comment-text ─┘
       └─ comment-key ──┘

DISPLAY/PUNCH user-defined entity (for a single entity)

►►─┬─ DISplay ─┬─ user-defined-entity-type name is entity-occurrence-name ────►
   └─ PUNch ───┘

 ►─┬──────────────────────────────────────────────────┬───────────────────────►
   └─ PREpared by user-id ─┬────────────────────────┬─┘
                           └─ PASsword is password ─┘
   ┌─────────────────────────────────────────────────────────┐
 ►─▼─┬─────────────────────────────────────────────────────┬─┴────────────────►
     │                ┌──────────────────────────────────┐ │
     ├─ WITh ──────┬──▼──┬─ ALL ───────────────────────┬─┴─┘
     ├─ ALSo WITh ─┤     ├─ ALL COMment TYPes ─────────┤
     └─ WITHOut ───┘     ├─ ATTributes ────────────────┤
                         ├─ COMments ──────────────────┤
                         ├─ DEFinitions ───────────────┤
                         ├─ DEStinations ──────────────┤
                         ├─ DETails ───────────────────┤
                         ├─ ELements ──────────────────┤
                         ├─ ENTRy points ──────────────┤
                         ├─ FILes ─────────────────────┤
                         ├─ HIStory ───────────────────┤
                         ├─ LINes ─────────────────────┤
                         ├─ LOGical-terminals ─────────┤
                         ├─ MAPS ──────────────────────┤
                         ├─ MODules ─┬─────────┬───────┤
                         │           └─ ONLy ──┘       │
                         ├─ NONE ──────────────────────┤
                         ├─┬─ PANels ──┬───────────────┤
                         │ └─ SCReens ─┘               │
                         ├─ PHYsical-terminals ────────┤
                         ├─ PROCesses ─────────────────┤
                         ├─ PROgrams ──────────────────┤
                         ├─ QFIles ────────────────────┤
                         ├─ QUEues ────────────────────┤
                         ├─ RECords ───────────────────┤
                         ├─ REPorts ───────────────────┤
                         ├─┬─ SYStems ────┬────────────┤
                         │ └─ SUBSYstems ─┘            │
                         ├─ TABles ────────────────────┤
                         ├─ TASks ─────────────────────┤
                         ├─ TRAnsactions ──────────────┤
                         ├─ USErs ─────────────────────┤
                         ├─┬─ USEr DEFINED COMments ─┬─┤
                         │ └─ UDCs ──────────────────┘ │
                         ├─┬─ USEr DEFINED NESts ─┬────┤
                         │ └─ UDNs ───────────────┘    │
                         └─ WHEre USED ────────────────┘
 ►─┬──────────────────────────────────────────────────────────────────────────►─
   └─ TO ─┬─ SYSpch ──────────────────────────────────────────────────────────
          └─ MODule module-name ─┬───────────────────────────────────┬────────
                                 └─ Version is ─┬─ version-number ─┬─┘
                                                ├─ HIGhest ────────┤
                                                └─ LOWest ─────────┘

─►──────────────────────────────────────────────────────────────────────────┬─►
  ─────────────────────────────────────────────────────────────────────────┬┘
  ─┬──────────────────────┬┬──────────────────────────────────────────────┬┘
   └ LANguage is language ┘└ PREpared by user-id ┬───────────────────────┬┘
                                                 └ PASsword is password ─┘

 ►─┬──────────────────────┬──┬─────────────────────┬──────────────────────────►◄
   └─ VERB ─┬─ DISplay ─┬─┘  └─ AS ─┬─ SYNtax ───┬─┘
            ├─ PUNch ───┤           └─ COMments ─┘
            ├─ ADD ─────┤
            ├─ MODify ──┤
            ├─ REPlace ─┤
            └─ DELete ──┘

DISPLAY/PUNCH user-defined entity (for multiple entities)

►►─┬─ DISplay ┬─┬ ALL ─────────────────────┬ user-defined-entity-type ────────►
   └─ PUNch ──┘ └┬ FIRst ┬─┬ 1 ◄ ─────────┬┘
                 ├ NEXt ─┤ └ entity-count ┘
                 ├ LASt ─┤
                 └ PRIor ┘

 ►─┬──────────────────────────────────────────────────┬───────────────────────►
   └─ PREpared by user-id ─┬────────────────────────┬─┘
                           └─ PASsword is password ─┘

 ►─┬─────────────────────────────────┬────────────────────────────────────────►
   └─ WHEre conditional-expression ──┘

(for complete conditional-expression syntax, see WHERE clause)
 ►─┬──────────────────┬───────────────────────────────────────────────────────►
   └─ BY ─┬─ SET ◄ ─┬─┘
          └─ AREa ──┘

 ►─┬──────────────────────────────────────────────────────────────────────────►─
   └─ TO ─┬─ SYSpch ──────────────────────────────────────────────────────────
          └─ MODule module-name ─┬───────────────────────────────────┬────────
                                 └─ Version is ─┬─ version-number ─┬─┘
                                                ├─ HIGhest ────────┤
                                                └─ LOWest ─────────┘
─►──────────────────────────────────────────────────────────────────────────┬─►
  ─────────────────────────────────────────────────────────────────────────┬┘
  ─┬──────────────────────┬┬──────────────────────────────────────────────┬┘
   └ LANguage is language ┘└ PREpared by user-id ┬───────────────────────┬┘
                                                 └ PASsword is password ─┘

 ►─┬──────────────────────┬──┬──────────────────────────────────────┬─────────►◄
   └─ VERB ─┬─ DISplay ─┬─┘  └─ AS ─┬─ SYNtax ───┬──┬─────────────┬─┘
            ├─ PUNch ───┤           └─ COMments ─┘  └─ RECursive ─┘
            ├─ ADD ─────┤
            ├─ MODify ──┤
            ├─ REPlace ─┤
            └─ DELete ──┘

Parameters

user-defined-entity-type name is entity-occurrence-name

Identifies a new user-defined entity to be established in the dictionary, or an existing user-defined entity to be modified, replaced, deleted, displayed, or punched. User-defined-entity-type must be the 1- through 20-character name of a class defined with the CLASS TYPE IS ENTITY option.

Entity-occurrence-name must be a unique 1- through 40-character name within user-defined entity-type-name.

NEW NAMe is new-entity-name

Specifies a new name for the requested user-defined entity. New-entity-name must conform to the rules for entity-occurrence-name presented above. This clause changes only the name of the named entity;

it does not alter or delete any previously defined relationships in which the entity participates. Subsequent references to the entity must specify the new name. Note that the user-defined entity occurrence cannot be

renamed if DELETION LOCK IS ON (described below) is specified.

deletion LOCk is

Enables or disables the entity deletion lock.

OFF

Disables the deletion lock; the user can delete or rename the entity occurrence directly. OFF is the default.

ON

Enables the deletion lock; the user cannot delete or rename the entity. If DELETION LOCK IS ON is specified, MODIFY user-defined-entity DELETION LOCK IS OFF must be specified to delete or rename the

requested entity occurrence.

relational-key is ATTribute attribute-name

Associates the named entity with another entity through a previously defined relational key. The optional keyword ATTRIBUTE must be specified if the named class is defined with the same name as the attribute.

WITHIn class class-name

Uniquely identifies an established attribute. This parameter must be specified if the named attribute does not uniquely identify an established attribute. Class-name must match the name of a previously defined class.

relational-key is class-name is attribute-name

Associates an occurrence of a class with an occurrence of an attribute or user-defined entity through a previously defined relational key.

entity-type-name is entity-occurrence-name

Associates (INCLUDE) the named entity occurrence with or disassociates (EXCLUDE) it from an occurrence of the specified entity type.

WITh/ALSo WITh/WITHOut

Includes or excludes the specified options when the user-defined entity is displayed or punched. Detailed information for each DISPLAY/PUNCH option is under 3.4.2, “SET OPTIONS Syntax” on page 39. The options that are listed below present special considerations for this entity type.

DETails

Includes the DELETION LOCK specification.

ATTributes

Includes all user-defined entities to which the named user-defined entity is related.

Example:

In the following example, the user-defined entity types DEPARTMENT and EMPLOYEE are established in the dictionary by means of the CLASS TYPE IS ENTITY clause of the CLASS statement.

DOCUMENTATION and JMP are added as occurrences of DEPARTMENT and EMPLOYEE, respectively. The employee's birth date and date of hire can be added by relating two occurrences of DATE to an occurrence of EMPLOYEE.

add class department
class type is entity.
add class employee
class type is entity.
add department documentation.
add employee jmp
department documentation.
add class date
attributes are automatic
class type is entity.
modify entity attribute
user defined nest is hire
user defined nest is birth.
add employee tlm
department is personnel
birth date is 7/5/52
hire date is 2/2/82.

The MODIFY PROGRAM statement relates the predefined program PAYROLL to the user-defined entity occurrence EMPLOYEE TLM:

modify program payroll
employee is tlm.