Previous Topic: Example 1—Allowing for CALC Database EntryNext Topic: Example 3—Implementing Referential Integrity Checks for a Table


Example 2—Adding Path-groups to Expand Functionality

This example shows how to add a STORE and ERASE path group to the ASF-generated table definition described above.

ASF-generated Subschema

ADD
SUBSCHEMA NAME IS RU000199 OF SCHEMA NAME IS IDMSR VERSION IS 1
    .
    .
    .
ADD
LOGICAL RECORD NAME IS EMP-EMPOSITION
    ELEMENTS ARE
        ASF-RDEF-REC
        EMPLOYEE
        EMPOSITION
        JOB
    .                                 ◄---┐
ADD                                       │
PATH-GROUP NAME IS MODIFY EMP-EMPOSITION  │
    SELECT                                │
        FIND CURRENT EMPLOYEE             │
            ON 0000 NEXT                  │
        MODIFY EMPLOYEE                   │
            ON 0000 NEXT                  │
        FIND CURRENT EMPOSITION           ├-- MODIFY
            ON 0000 NEXT                  │   path group
        MODIFY EMPOSITION                 │
            ON 0000 NEXT                  │
        FIND CURRENT JOB                  │
            ON 0000 NEXT                  │
        MODIFY JOB                        │
            ON 0000 NEXT                  │
    .                                 ◄---┘

ADD                                            ◄--------┐
PATH-GROUP NAME IS OBTAIN EMP-EMPOSITION                │
    SELECT                                              │
        FIND FIRST ASF-RDEF-OWN WITHIN IDMSR-AREA       │
            ON 0000 NEXT                                │
            ON 0307 ITERATE                             │
        OBTAIN EACH EMPLOYEE WITHIN EMP-DEMO-REGION     ├-- OBTAIN
            ON 0000 NEXT                                │   path group
            ON 0307 ITERATE                             │
        OBTAIN EACH EMPOSITION WITHIN EMP-EMPOSITION    │
            ON 0000 NEXT                                │
            ON 0307 ITERATE                             │
        OBTAIN OWNER WITHIN JOB-EMPOSITION              │
            ON 0000 NEXT                                │
    .                                          ◄--------┘

Modified Subschema
   ADD
   SUBSCHEMA NAME IS RU000199 OF SCHEMA NAME IS IDMSR VERSION IS 1
       .
       .
       .
   ADD
   LOGICAL RECORD NAME IS EMP-EMPOSITION
       ELEMENTS ARE
           ASF-RDEF-REC
           EMPLOYEE
           EMPOSITION
           JOB
 
   
┌---------------------------------------------------------┐
│  ADD                                                    │
│  PATH-GROUP NAME IS ERASE EMP-EMPOSITION ◄--------------┼--- New ERASE
│      SELECT                                             │    path group
│          FIND CURRENT EMPLOYEE                          │
│              ON 0000 NEXT                               │
│              ON 0306 DO                                 │
│                      OBTAIN FIRST EMPLOYEE              │
│                          WHERE CALCKEY EQ EMP-ID-0415   │
│                              OF LR                      │
│                          ON 0000 NEXT                   │
│                          ON 0326 RETURN NO-EMPLOYEE     │
│                      END                                │
│          OBTAIN EACH EMPOSITION WITHIN EMP-EMPOSITION   │
│              ON 0000 NEXT                               │
│              ON 0307 ITERATE                            │
│          ERASE EMPOSITION                               │
│              ON 0000 ITERATE                            │
│      .                                                  │
└---------------------------------------------------------┘
   ADD
   PATH-GROUP NAME IS MODIFY EMP-EMPOSITION
       SELECT
           FIND CURRENT EMPLOYEE
               ON 0000 NEXT
           MODIFY EMPLOYEE
               ON 0000 NEXT
           FIND CURRENT EMPOSITION
               ON 0000 NEXT
           MODIFY EMPOSITION
               ON 0000 NEXT
           FIND CURRENT JOB
               ON 0000 NEXT
           MODIFY JOB
               ON 0000 NEXT
       .
   ADD
   PATH-GROUP NAME IS OBTAIN EMP-EMPOSITION
       SELECT
           FIND FIRST ASF-RDEF-OWN WITHIN IDMSR-AREA
               ON 0000 NEXT
               ON 0307 ITERATE
           OBTAIN EACH EMPLOYEE WITHIN EMP-DEMO-REGION
               ON 0000 NEXT
               ON 0307 ITERATE
          OBTAIN EACH EMPOSITION WITHIN EMP-EMPOSITION
               ON 0000 NEXT
               ON 0307 ITERATE
           OBTAIN OWNER WITHIN JOB-EMPOSITION
               ON 0000 NEXT
       .
┌--------------------------------------------------------┐
│  ADD                                                   │
│  PATH-GROUP NAME IS STORE EMP-EMPOSITION  ◄------------┼-- New STORE
│      SELECT                                            │   path group
│          FIND CURRENT EMPLOYEE                         │
│              ON 0000 NEXT                              │
│              ON 0306 DO                                │
│                      OBTAIN FIRST EMPLOYEE             │
│                          WHERE CALCKEY EQ EMP-ID-0415  │
│                              OF EMPLOYEE OF LR         │
│                          ON 0000 NEXT                  │
│                          ON 0326 RETURN NO-EMPLOYEE    │
│                      END                               │
│          STORE EMPOSITION                              │
│              ON 0000 NEXT                              │
│      .                                                 │
└--------------------------------------------------------┘