Previous Topic: ExamplesNext Topic: Example 2—Adding Path-groups to Expand Functionality


Example 1—Allowing for CALC Database Entry

This example shows how to modify an ASF-generated table definition to allow for CALC database entry. The table definition joins the EMPLOYEE, EMPOSITION, and JOB records from the sample employee database. By default, the ASF-generated application performs an area sweep to retrieve the first record in the path.

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
            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                             ├-- Area
        OBTAIN EACH EMPLOYEE WITHIN EMP-DEMO-REGION     │   sweep
            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
    .

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 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
            ┌-----------------------------------------┐
            │ OBTAIN FIRST EMPLOYEE ◄-----------------┼--- CALC
            │     WHERE CALCKEY EQ EMP-ID-0415        │    entry
            │     OF REQUEST                          │
            │     ON 0000 NEXT                        │
            │     ON 0326 RETURN INVALID-ID           │
            └-----------------------------------------┘
              OBTAIN EACH EMPOSITION WITHIN EMP-EMPOSITION
                  ON 0000 NEXT
                  ON 0307 ITERATE
              OBTAIN OWNER WITHIN JOB-EMPOSITION
                  ON 0000 NEXT
          .