COBOL EGL Program (source) EGL Program source file (.egl file) - EGL Library - EGL Service (Web and non-web) - PageHandler Generated Java …or… generated COBOL executable EGL program, Library, Service EGL Report Handling and TUI Print Forms EGL PageHandler and TUI Character-based Forms Program (Load Module) COBOL batch program COBOL report writing program CICS, IMS TM (online) program COBOL Identification division COPY …or… ++INCLUDE ENVIRONMENT DIVISION DATA DIVISION Statements at top of EGL file Import PIC X(N) variable-lth character data Properties of EGL file type + EGL Build file entries page (global) data … Also have local data within functions (simple and maintenance-friendly) EGL variables - note that EGL has additional variables for interfacing with the web and modern languages (Java, C++) such as Date/Time/Money/Boolean, etc. char(n) …and… string (usual compatible) string COMP Int COMP-3 Decimal COMP-1 88-LEVEL OCCURS OCCURS DEPENDING ON REDEFINES PROCEDURE DIVISION ENTRY USING … LINKAGE SECTION CICS COMMAREA MOVE Float EGL DataTable Fixed-length EGL array Dynamic EGL array Redefines and EGL system function libraries Function passed/returned parameters onPageLoad() - web, or main() with parameters - batch COBOL Variables COBOL Math operations IF/ELSE AND … OR move (can also do assignment ala COBOL COMPUTE statement) Note also that, besides individual and group moves, EGL move provides for: Array assignment (Move ALL) and positional or more corresponding record-based moves. exact same as COMPUTE statement (*, /, +, -,) if/else && || CASE (EVALUATE) COBOL Paragraphs COBOL sub-routines CALL PERFORM LE - in-house system utilities PERFORM UNTIL PERFORM VARYING COMPUTE HANDLE CONDITION and ONERR Case EGL Functions Programs, libraries, services and functions contained Call – note, EGL calls can be invoked against: EGL resources, COBOL, RPG, Java and C++ (with no difference in syntax or statement structure). invoke function, functionName() 8 EGL system libraries (strlib, mathlib, datetimelib, loblib, etc.) – which provide comprehensive and in-depth coverage of common coding patterns while for EGL assignment calculation (exactly like compute, without the word compute) try/onexception JCL Compile/Link JCL Runtime JCL itself //STEPLIB …or… //JOBLIB //DD File specification EGL Build file cmd/.shell script (UNIX/Linux). Also, in WD/z can generate run-time JCL for generated COBOL CLASSPATH=… (environment variable for Java environments); STEPLIB/JOBLIB for generated COBOL (certain) JNDI specifications and Database specification for Databases; resource association and DD names for files SQL/RDBMS and FILE I-O SQL/RDBMS and FILE I-O Embedded SQL RDBMS Table DCLGEN SQL statement – hand coded CALL Stored Proc Dynamic (Prepared) SQL Can create SQL data access with 3 levels of effort: implicit, explicit, and exactly as hard as mainframe RDBMS table Data Parts Wizard (note – this wizard also creates handy C.R.U.D. function calls) SQL statement – fully-generated, partially-generated, and handcoded (like COBOL) Call Stored Procedure Dynamic (Prepared) SQL statements – note that a wizard exists to assist in creating SQLCODE/SQLCA – hand coded Indexed and Sequential file read Update/Delete/Write WebSphere MQ access IMS DB access SQLCODE and full SQLCA access automatically available Supported with get verb(s) Supported Supported with same keywords Supported with same keywords CICS, IMS TM WebSphere Application Server BMS Map …IMS MFS JSP page with JSF and HTML components and their properties (built using drag & drop) (also forms and form-groups for 3270 and 5250 screens) CICS Queue/IMS TM SPA EGL Session variable - for web applications; CICS Queue and work databases for IMS BMS - IMS MFS MID/MOD EGL Request/Response variables for web applications and form fields for 3270/5250 programs VTAM/SNA IMS or CICS Transaction Code TCP/IP URL for Web applications; IMS or CICS Transaction codes for 3270 programs CICS ‘XCTL’ CICS ‘START’ URL to same site for web applications, transfer to program for CICS URL to different site for web applications, transfer to transaction or CICS CICS ‘LINK’ / IMS TM ‘Call …’ CICS Temp Storage Application EGL inter-program call verb Server Session Object for web applications, CICS Temp Storage for CICS applications IMSGEN or CICS Table entries Run-time URL address and IP equivalent of resource. During development, there are a number of WAS configuration files that contain similar information and deployment descriptors - CICS Table entries for CICS programs 3270 Data Stream HTTP Request/Response data for web applications, 3270/5250 Data 3270 LU Device Stream for online programs PC + browser software for web applications, PC + Emulators for 3270/5250 programs Tools z/OS - iSeries TSO/ISPF Windows, z/OS, iSeries, AIX, LINUX, etc. WD/z or Rational Software