It all starts with the customer’s need to invoke a COMMAREA program or read a VSAM file or process any buffer described by a COBOL copybook.
- Customer downloads the COBOL copybook (or copybooks if the input COMMAREA is different from the output COMMAREA) from the host to their PC and navigates to the CopybookToCode web page (go ahead and click on it, you can’t hurt it).
- The request for the web page flows through our firewall and to a Microsoft IIS server that acts as a proxy and redirects the request to our mainframe. The only thing the IIS system does is port translation from the standard HTTP port (80 or 443) to the port our CICS system is listening on. The web page is actually served out of HB.js running inside CICS on our z/OS system.
- The customer selects the copy book from his file system and clicks Generate and then magic happens. (I really do think it is magic, how all of these disparate technologies and systems work quickly and reliably together. I’m amazed every day. Of course I can also spend hours looking at a burning candle.)
- The script pulls apart the POSTed html mime multi-part message into the various named value pairs and the uploaded files.
- It then creates a Channel with a Container that has the copybook. The CB2XML Java program is invoked with the Channel and does its thing of generating XML that represents the copybook.
- 1 byte for the data type
- 1 byte for signed
- 1 byte for precision
- 1 byte for scale
- 4 bytes for length
- 4 bytes for position (offset within group), the actual offset within the buffer has to be calculated based on occurs for this field and containing groups.
- 4 bytes for OCCURS
- 4 bytes for parent/group OCCURS
- 4 byte pointer to the parent group
Okay, so the title was misleading, there is only one picture.