Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For instance, imagine a small order processing system that could be visualized like this:

Panel

                               ORDWRK
                                     |
                      ----

No Format
                         ORDWRK                             |                      

------|-------

                    |       |       |                   ORD001  ORD002  ORD003

...

---
                     |               |              |
              ORD001  ORD002  ORD003

When a user enters this system and begins jumping from ORD001 to ORD002 to ORD003, and so on, a fair amount of computer resource can be wasted opening and closing files used by all the functions.

...

To fix this problem we might code a "file opener" called ORD004 that looked like this:  OPEN FILE

     OPEN FILE(TABLES)

...

 USE_OPTION(*KEEPOPEN)

...

     OPEN FILE(ORDHDR)

...

 USE_OPTION(*KEEPOPEN)

...

     OPEN FILE(ORDLIN)

...

 USE_OPTION(*KEEPOPEN)

...

     CALL PROCESS(ORDWRK)

which would fit into the existing system like this:

Panel

                               ORD004
                                     |
                                     |
                              ORDWRK
                                     |
                      ----

No Format
                            ORD004                                 |                                 |                              ORDWRK                                 |                          

------|--------

                        |       |       |                       ORD001  ORD002  ORD003

--
                     |               |              |
               ORD001  ORD002  ORD003

In this situation, the implicit OPEN and CLOSE requests issued by ORD001, ORD002 and ORD003 are ignored, which results in much faster processing.