Java and COBOL
When technology complements business   The Documentation
Copyright © 1987-2007  SimoTime Enterprises, LLC  All Rights Reserved http://www.simotime.com

 
Introduction Version 03.01.24
 
  Continue with Business as Usual
  Rewrite using Java
  Use both Java and COBOL
  The COBOL Environment using Micro Focus Net Express
  The Java Development and Run Time by Sun Micro System
  The Lite Web Server by Gefion
  Running the Application Examples
 
  Customer Inquiry, Access VSAM Keyed Sequential Data Set (KSDS)
  Customer Registration, Write to an ASCII Text File
  Write me a Check, Convert Numbers or Digits to Text
  Show me the Date, Validate and Convert from Gregorian to Julian
  What is my Age, Calculate Date Difference in Days
  Show me the Hex Dump, Hexadecimal Dump Routine
  Systems Information
 
  Directory Structure
  Setting Environment Variables
  Z-Members for System Tasks
 
  ZENVJLIB.BAT, Setting Additional Environment Variables
  ZCBLJLIB.BAT, Compiling and Linking the COBOL Programs
  ZJAVJLIB.BAT, Compiling the Java Programs
  ZUPDJLIB.BAT, Updating the LWS Server Directory
  ZLWSJLIB.BAT, Starting the Lite Web Server
  Starting the Application Menu
  Application Structure and Design
 
  Customer Inquiry, Structure and Design
  Customer Registration, Structure and Design
  Write me a Check, Structure and Design
  Show me the Date, Structure and Design
  What is my Age, Structure and Design
  Show me the Hexadecimal Dump, Structure and Design
  Possibilities, Considerations & Limitations
 
  ASCII and EBCDIC Translation
  Expanded Help Text
  Numeric Fields
  Alpha-Numeric Fields, Truncate Trailing Spaces
  Summary
 
  Software Agreement and Disclaimer
  Downloads and Links to Similar Pages
  Comments or Suggestions
  About SimoTime

Introduction
(Next) (Previous) (Table-of-Contents)

This web application demonstrates the use of Java Server Pages (including JSP tags, HTML and JavaScript), Java Beans, Applets, Scriplets and COBOL programs working together in a mixed-language environment. The purpose of this suite of sample programs is to provide practical examples and possible solutions for individuals that will be creating Internet applications that may require complementary processing with a mainframe. This suite of sample programs also executes on an application server that functions independent of the mainframe.

For example, this application suite accesses a local data set that was downloaded from a mainframe in EBCDIC format. The program could make a connection to a Mainframe to access the data set that is a VSAM Keyed, Sequential Data Set (KSDS). An example of converting between ASCII and EBCDIC is also provided in the data access member.

This set of programs was created and/or downloaded from a mainframe system as a result of a "Discovery Session and Proof-of-Concept" project to determine the feasibility and possible approaches of extending mainframe application functionality to the Internet. The initial analysis reduced the focus to the following three possibilities.

1. Continue with Business as usual.
2. Rewrite the application using Java.
3. Use Java for the Internet front-end and reuse as many of the existing COBOL programs as possible.

One of the goals was to complete the "Discovery Session and Proof-of-Concept" within fifteen (15) days. This required a focus on a sampling of typical routines used in the mainframe application. Six functions were selected and the corresponding mainframe COBOL programs were downloaded from the mainframe to the PC.

The "Java Rewrite" numbers are estimates. The time estimates to rewrite exceeded the scope of the "Discovery Session and Proof-of-Concept". An attempt was made to access the data base for the "Customer Inquiry" function using Java. It was quickly determined that Java does not have native support for Indexed or Keyed files. Converting the data base to a relational data base was discussed. This is a possibility but was not included as part of this project.

Description of Function Create JSP Java API COBOL Reuse Java Rewrite
Access a Data Base 0.50 0.50 0.25 3.00
Write to a Journal or Log File 0.75 0.50 0.25 1.50
Create a Text String from Numbers 0.50 0.50 0.25 4.50
Date Validation-Conversion-Formatting 0.50 0.75 0.25 5.00
Date Difference Routine 0.50 0.50 0.25 2.00
Hex-Dump Routine for Debugging 0.50 0.50 0.25 5.00
Total Number of Days 3.25 3.25 1.50 21.00

Note: The technical evaluation phase took eight days. Doing the documentation took an additional four days.

Introduction, Continue with Business as Usual
(Next) (Previous) (Table-of-Contents)

This complete online business function is not being replaced. The current use of mainframe terminals by trained employees will continue. The "application extension" to allow customers to view and possibly update their information via the Internet will be a subset of the complete business function. The complete business function could be ported to the Internet or an Intranet but this should be a second phase or separate project.

Also, it should be noted that providing access to business functions by individuals outside a company may require a much higher level of usability than the current legacy systems provides. It should not be assumed that what can be accomplished within a company by a skilled employee can be easily mastered by a first time user that is not familiar with the application. Improved messages will be needed when an individual does not follow the business rules. Readily available help text will be a requirement when moving to the Internet.

Introduction, Rewrite using Java
(Next) (Previous) (Table-of-Contents)

The size and complexity of the examples in this project were small in comparison with the size and complexity of some of the legacy programs running critical business functions on the host system. Re-writing everything in Java for the Internet could not be done within the business time frame and cost objectives.

Introduction, Using both Java and COBOL
(Next) (Previous) (Table-of-Contents)

This option requires a teaming of both COBOL and Java programmers. An individual that is familiar with the techniques of providing documentation in a hypertext environment should be part of the team. Also, the software vendor that provides the API for the different languages should be included as part of the team. For this project the Micro Focus involvement was essential in order to meet the target date.

The COBOL Environment using Micro Focus Net Express
(Next) (Previous) (Table-of-Contents)

This application requires Net Express, version 3.1 with all the Web Sync fixes as of December 10, 2001.

Micro Focus Net Express® is a COBOL development environment for Windows and UNIX platforms offering an open scalable alternative to running COBOL systems on the mainframe. It combines a rich Windows development environment with tools for creating and extending enterprise business processes written in COBOL delivering distributed e-business COBOL applications on Windows or UNIX.

For more information refer to the Micro Focus web site at  http://www.microfocus.com.

The Java Development and Run Time by Sun Micro System
(Next) (Previous) (Table-of-Contents)

This sample suite was initially tested using the Production Release of the JavaTM SDK, Standard Edition v 1.2.2_008 for Microsoft Windows.

In line with Sun Microsystems, Inc.'s continued support of developers targeting the JavaTM Platform on Microsoft Windows, Sun is committed to supporting both JDKTM 1.1.8 and the various Java 2 releases on Windows 2000. Sun is not aware of any significant issues with Sun Java releases on the Windows 2000, but it will provide normal support for any issues that should surface later. Now supported: Microsoft Windows 2000 Server, Windows 2000 Advanced Server and Microsoft Windows Millennium Edition (Windows Me) on these J2SETM platforms: JDKTM/JRE 1.1.8, J2SE v 1.2.2, and J2SE v 1.3.

This application uses the Java Developers Kit from Sun Micro Systems. For more information refer to their web site at http://www.sun.com.

The Lite Web Server by Gefion
(Next) (Previous) (Table-of-Contents)

This application uses the LiteWebServer from Gefion Software. LiteWebServer is a pure Java web server with native support for the Servlet 2.2 API and JavaServer Pages (JSP) 1.1. LiteWebServer's very small size (420 KB complete, 130 KB without JSP) makes it ideal for embedded systems, for bundling with web application demos sent to potential customers, and for running web applications distributed on CDs. It's also an easy to use web server for servlet development, personal use or a small intranet.

For more information refer to their web site at http://www.gefionsoftware.com.

Running the Application Examples
(Next) (Previous) (Table-of-Contents)

This section contains a description of "how to" use the applications provided within this demonstration package. A detailed specification for how each application is structured is provided in the Systems Information section of this document.

This suite of "Application Examples" contains a menu-of-applications page, six mini-applications and the documentation or help text.. To display the menu the local Web Server must be started (refer to the Starting the Lite Web Server section of this document.

To display the menu-of-applications page select the Net Express, "COBOL and Java Project" icon from the desktop.

Application Example, Customer Inquiry
(Next) (Previous) (Table-of-Contents)

To retrieve customer information simply type a six-digit customer number and press the  Continue  button.

The local Data Base contains twenty-six (26) records. The Customer numbers are six digits. Valid customer numbers are 00nn00 where nn is 01-26.

If a valid customer key is requested the name, address, city, state/province and postal code will be displayed. Otherwise, a message will be displayed.

Note: Refer to the System Information, Customer Inquiry, Structure and Design section for detailed specifications.

 

Application Example, Customer Registration
(Next) (Previous) (Table-of-Contents)

This section describes how to use the "Customer Registration" option to save information that has been typed by the user.

Note: Refer to the System Information, Customer Registration, Structure and Design section for detailed specifications.

 

Application Example, Write Me a Check
(Next) (Previous) (Table-of-Contents)

To display a check image simply type a name and an amount and press the  Do a Check  button. The numeric amount will be subjected to "reasonability" checks.

If the amount is "reasonable" a check image will be displayed with both a numeric and a converted text string showing the amount. Otherwise, a message will be displayed.

Note: Refer to the System Information, Write Me a Check, Structure and Design section for detailed specifications.

 

Application Example, Show Me the Date
(Next) (Previous) (Table-of-Contents)

This example will prompt a user for a date in the ccyymmdd format. The user types a date and clicks on the  Vali-DATE  button. The user date will then be processed by the date validation and editing routine.

If the user date is valid (i.e. meets the reasonability checks) the various date formats are displayed. Otherwise, an error message will be displayed.

The following is an example of the contents of the input or date-card.

DATECARD 1976/11/24

The following is an example of the date information provided by the date routine.

Gregorian Date .............. 19761124
Edited Gregorian Date ....... 1976-11-24
Text for the Date............ November 24, 1976
Julian Date ................. 1976329
Days remaining in the year .. 037
Leap Year Flag (Y or N) ..... Y
Days in the Month ........... 30
Text for the Month .......... November

Note: Refer to the System Information, Show me the Date, Structure and Design section for detailed specifications.

 

Application Example, What is My Age
(Next) (Previous) (Table-of-Contents)

This example will prompt a user for a date of birth in the ccyymmdd format. The user types a date and clicks on the  Calculate Age  button. The number of days since the user's birth date and today's date will then be calculated and the results displayed.

If the user birth date is valid (i.e. meets the reasonability checks) the difference in days will be displayed. Otherwise, an error message will be displayed.

Note: Refer to the System Information, What is My Age, Structure and Design section for detailed specifications.

 

Application Example, Show Me the Hexadecimal Dump
(Next) (Previous) (Table-of-Contents)

This example will prompt a user for a text string. The user types a maximum of sixteen (16) characters and clicks on the  Do HexDump  button. The contents of the text string will be converted to a hexadecimal dump format and this will be displayed at the Server console and be written to the SYSLOG file.

Note: Refer to the System Information, Show Me the Hexadecimal Dump, Structure and Design section for detailed specifications.

 

System Information
(Next) (Previous) (Table-of-Contents)

The purpose of this section is to provide additional information for the Help Desk and programming support staff.

 

The Directory Structure
(Next) (Previous) (Table-of-Contents)

The following directory structure is based on the directory structure used by the Lite Web Server. This configuration was selected to simply the installation process and minimize the configuration and deployment efforts for the Lite Web Server.

                     
LWS-2.2.2
dir
     
     
     
                Base directory for the Lite Web Server
 
     
     
     
BIN
dir
     
     
     
             
   
     
     
     
     
     
     
ZLWSJLIB
bat
          This is the batch file that sets the CLASSPATH environment variable and start the Lite Web Server
   
CONFIG
dir
     
     
     
             
   
     
     
     
     
     
     
EXAMPLES
dir
     
     
     
         
   
     
     
     
   
     
     
     
CLASSES
dir
     
     
     
     
   
     
     
     
       
     
     
     
ZENVJLIB
bat
  This ibatch file will set the CLASSPATH for the compiles of the COBOL and Java members.
   
     
     
     
       
     
     
     
AP01JC01
through

AP06JC01
java
  This is the Java Bean for Customer Inquiry.
   
DATASYS1
dir
     
     
     
             
   
     
     
     
     
     
     
EBC00256
ksd
          This is the KSDS VSAM Data Set.
   
DOC
dir
               
   
     
               
   
HTML
dir
     
     
     
             
   
     
     
     
     
     
     
EXAMPLES
dir
     
     
     
         
   
     
     
     
   
     
     
     
DOCSJ001
htm
      This is the documentation and help text for the application.
   
     
     
     
   
     
     
     
MENUJ001
htm
      This is the Web page for the various options or functions provided by the demo.
   
     
     
     
   
     
     
     
AP01J001
through

AP06J001
jsp
      This is the Java Server Page for the customer inquiry and information display.
   
LIB
dir
               
   
     
               
   
SERVLETS
dir
               

 

Setting Environment Variables
(Next) (Previous) (Table-of-Contents)

The following is the JAVA_HOME environment variable.

set JAVA_HOME=d:\j2sdk1.4.0

 

The following is a list of the entries for the PATH environment variable.

C:\WINNT\system32;
C:\WINNT;
C:\WINNT\System32\Wbem;
d:\j2sdk1.4.0;
d:\j2sdk1.4.0\bin;
d:\lws-2.2.2\config\examples\classes;

For additional environment settings refer to the ZENVJLIB.BAT member in the Z-Members for System Tasks section of this document.

Z-Members for System Tasks
(Next) (Previous) (Table-of-Contents)

The Z-Members (Zxxxxxxx.BAT) are provided as a programatic method for setting environment varibales, mapping COBOL program file names to PC file names, compiling programs and starting the Lite Web Server. The Z-Members have an additional advantage of providing a documented and repeatable process.

ZENVJLIB.BAT, Setting Additional Environment Variables
(Next) (Previous) (Table-of-Contents)

The ZENVJLIB.BAT member is a batch file used to set the CLASSPATH and other environment variables. Notice it is also used to map PC file names to the COBOL program file names.

@echo off
echo * %0 is STARTING...
echo * %0 is STARTING...          >XENVJLIB.LOG
rem  *
rem  * The following statement will cause the COBOL programs to
rem  * be compiled with ANIMATION enabled.
rem  *
     echo * JLIBMODE is set to %JLIBMODE%    >>XENVJLIB.LOG
     SET  JLIBANIM=ANIM
     echo * JLIBANIM is set to %JLIBANIM%    >>XENVJLIB.LOG
     SET  cobidy=d:\simojlib
     if   "%JLIBMODE%"  == "EXECUTE" SET  cobidy=d:\simojlib
     echo * COBIDY is set to %COBIDY%        >>XENVJLIB.LOG
     SET  cobcpy=.;d:\simojlib
     echo * COBCPY is set to %COBCPY%        >>XENVJLIB.LOG
rem  *
set path=%path%;d:\Net Express;d:\Net Express\base\bin
set ClassBASE=d:\lws-2.2.2
set CLASSPATH=.
set CLASSPATH=%CLASSPATH%;c:\
set CLASSPATH=%CLASSPATH%;d:\j2sdk1.4.0
set CLASSPATH=%CLASSPATH%;%ClassBASE%\lib\lws.jar
set CLASSPATH=%CLASSPATH%;%ClassBASE%\lib\engine.jar
set CLASSPATH=%CLASSPATH%;%ClassBASE%\lib\util.jar
set CLASSPATH=%CLASSPATH%;%ClassBASE%\lib\servlet.jar
set CLASSPATH=%CLASSPATH%;%ClassBASE%\lib\jasper.jar
set CLASSPATH=%CLASSPATH%;%ClassBASE%\lib\jaxp.jar
set CLASSPATH=%CLASSPATH%;%ClassBASE%\lib\parser.jar
set CLASSPATH=%CLASSPATH%;%ClassBASE%\config\examples\classes
set CLASSPATH=%CLASSPATH%;%JAVA_HOME%\lib\tools.jar
set CLASSPATH=%CLASSPATH%;%ClassBASE%\servlets
set CLASSPATH=%CLASSPATH%;d:\Net Express\base\bin\MFCOBOL.JAR
set CLASSPATH=%CLASSPATH%;d:\Net Express
rem  *
rem  *
echo * path is %path%
echo * classpath is %classpath%
echo *
echo * path is as follows...       >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo * %path%                      >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo * classpath is as follows...  >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo * %classpath%                 >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo * JAVA_HOME is %JAVA_HOME%    >>XENVJLIB.LOG
rem  *
rem  *
SET  CUSTMAST=%ClassBASE%\datasys1\ebc00256.ksd
echo * CUSTMAST is %CUSTMAST%
echo *                             >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo * CUSTMAST is as follows...   >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo * %CUSTMAST%                  >>XENVJLIB.LOG
rem  *
SET  syslog=%ClassBASE%\datasys1\syslog.txt
if   exist %syslog% goto :jump01
echo * SYSLOG creation . . . >%syslog%
:jump01
echo * SYSLOG   is %syslog%
echo *                             >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo * SYSLOG   is as follows...   >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo * %SYSLOG%                    >>XENVJLIB.LOG
rem  *
SET  sysjrnl=%ClassBASE%\datasys1\sysjrnl.txt
if   exist %sysjrnl% goto :jump02
echo * SYSLOG creation . . . >%sysjrnl%
:jump02
echo * SYSJRNL  is %sysjrnl%
echo *                             >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo * SYSJRNL  is as follows...   >>XENVJLIB.LOG
echo *                             >>XENVJLIB.LOG
echo * %SYSJRNL%                   >>XENVJLIB.LOG
rem  *
rem  *
echo * %0 is COMPLETE...
echo * %0 is COMPLETE...           >>XENVJLIB.LOG

 

ZCBLJLIB.BAT, Compiling and Linking the COBOL Programs
(Next) (Previous) (Table-of-Contents)

The following is the ZCBLJLIB.BAT that compiles and links the COBOL source members. The members will be compiled with NOANIM. To compile the programs with ANIMATE set the SIMOANIM environment variable as follows. The statement is found in the ZENVJLIB.BAT member.

set JLIBANIM=ANIM

Note: The preceding environment variable must be upper case.

@echo off
rem  ****************************************************************
rem  * This batch file compiles all the COBOL programs for the Demo.
rem  ****************************************************************
rem  *
     if exist XCBLJLIB.LOG erase XCBLJLIB.LOG
echo * %0 for JLIBANIM is STARTING...                        >XCBLJLIB.LOG
     SET  JLIBMODE=COMPILE
     CALL zenvjlib.bat
rem  *
     setlocal
     CALL :COMPILE AP01INQ1
     CALL :COMPILE AP01INQ2
     CALL :COMPILE AP02JRNL
     CALL :COMPILE AP05DIFF
     CALL :COMPILE SIMODATE
     CALL :COMPILE SIMOTXTN
     CALL :COMPILE SIMODUMP
     call :COMPILE SIMOLOGS
     echo * %0 for SimoJLIB is COMPLETE...                  >>XCBLJLIB.LOG
     dir  XCBLJLIB.LOG
     type XCBLJLIB.LOG
     goto :END

:COMPILE
     if exist %1.idy erase %1.idy
     if exist %1.obj erase %1.obj
     if exist %1.dll erase %1.dll
     if "%JLIBANIM%" == "ANIM" goto :COMPILE2
     cbllink -D -Rm -o%1.DLL -Uzdirnoan.dir %1.CBL
     if exist %1.DLL echo * %1 compiled with NO ANIMATE...
     if exist %1.DLL echo * %1 compiled with NO ANIMATE...  >>XCBLJLIB.LOG
     if exist %1.DLL goto :END
     echo * %1 Compile failure!!!                           >>XCBLJLIB.LOG
:COMPILEEND

:COMPILE2
     cbllink -D -Rm -o%1.DLL -Uzdiranim.dir %1.CBL
     if exist %1.DLL echo * %1 compiled with ANIMATION...
     if exist %1.DLL echo * %1 compiled with ANIMATION...  >>XCBLJLIB.LOG
     if exist %1.DLL goto :END
     echo * %1 Compile failure!!!                          >>XCBLJLIB.LOG
:COMPILE2END

:END

-d Create a .dll module.

-roption[v] Link your program with the shared run-time library using dynamic binding.

Note: Make sure the CLASSPATH is set correctly. Otherwise compile or link errors will occur.

The ZDIRNOAN.DIR file has one record that contains the following content.

noanim assign(external)

 

The ZDIRANIM.DIR file has one record that contains the following content.

anim csi assign(external)

 

ZJAVJLIB.BAT, Compiling the Java Programs
(Next) (Previous) (Table-of-Contents)

The following is the ZJAVJLIB.BAT that compiles the Java source members.

Note: Make sure the CLASSPATH is set correctly. Otherwise compile errors will occur.

@echo off
rem  ****************************************************************
rem  * This batch file compiles all the Java programs for the Demo.
rem  ****************************************************************
echo * %0 for SimoJLIB is STARTING...                  >XJAVJLIB.LOG
echo * %0 for SimoJLIB is STARTING, Please Wait...
rem  *
     SET  JLIBMODE=COMPILE
     CALL zenvjlib.bat
rem  *
     setlocal
     call :COMPILE AP01JC01
     call :COMPILE AP01JC02
     call :COMPILE AP01JC03
     call :COMPILE AP02JC01
     call :COMPILE AP02JC02
     call :COMPILE AP02JC03
     call :COMPILE AP03JC01
     call :COMPILE AP03JC02
     call :COMPILE AP03JC03
     call :COMPILE AP04JC01
     call :COMPILE AP04JC02
     call :COMPILE AP04JC03
     call :COMPILE AP05JC01
     call :COMPILE AP05JC02
     call :COMPILE AP05JC03
     call :COMPILE AP06JC01
     call :COMPILE AP06JC02
     call :COMPILE AP06JC03
     echo * %0 for SimoJLIB is COMPLETE...             >>XJAVJLIB.LOG
     dir  XJAVJLIB.LOG
     type XJAVJLIB.LOG
     goto :END

:COMPILE
     echo * XJAVJLIB - %1 is compiling
     if "%SIMOANIM%" == "DEBUG" goto :COMPILE2
     if exist %1.class erase %1.class
     javac %1.java
     if exist %1.class echo * %1 compiled...           >>XJAVJLIB.LOG
     if exist %1.class goto :END
     echo * %1 Compile failure!!!                      >>XJAVJLIB.LOG
:COMPILEEND

:COMPILE2
     echo * %1.java is compiling...
     if exist %1.class erase %1.class
     javac %1.java
     if exist %1.class echo * %1 compiled...           >>XJAVJLIB.LOG
     if exist %1.class goto :END
     echo * %1 Compile failure!!!                      >>XJAVJLIB.LOG
:COMPILE2END

:END

 

ZUPDJLIB.BAT, Starting the Lite Web Server Directory
(Next) (Previous) (Table-of-Contents)

After the programs have been compiled or changes have been made to the HTML or JSP pages in the SimoJLIB directory it will be necessary to update the LWS directories. The ZUPDJLIB.BAT member is provided as a process for updating the LWS directories.

@echo OFF
rem  *
     set BASELIB1=d:\lws-2.2.2\bin\
     set DATALIB1=d:\lws-2.2.2\datasys1\
     set HTMLLIB1=d:\lws-2.2.2\html\examples\
     set PRODLIB1=d:\lws-2.2.2\config\examples\classes\
rem  *
echo * ZUPDJLIB.BAT, Copy the documentation and Main Menu Page.
     copy d:\simojlib\docsj001.htm %htmllib1%
     copy d:\simojlib\menuj001.htm %htmllib1%
rem  *
echo * ZUPDJLIB.BAT, Copy the Java Server Pages, JSP's.
     copy d:\simojlib\ap01j001.jsp %htmllib1%
     copy d:\simojlib\ap02j001.jsp %htmllib1%
     copy d:\simojlib\ap03j001.jsp %htmllib1%
     copy d:\simojlib\ap04j001.jsp %htmllib1%
     copy d:\simojlib\ap05j001.jsp %htmllib1%
     copy d:\simojlib\ap06j001.jsp %htmllib1%
rem  *
     copy d:\simojlib\header01.gif %htmllib1%
     copy d:\simojlib\simotime.gif %htmllib1%
     copy d:\simojlib\mflogo01.gif %htmllib1%
rem  *
echo * ZUPDJLIB.BAT, Copy the "Customer Inquiry" members.
     copy d:\simojlib\ap01jc01.class %prodlib1%
     copy d:\simojlib\ap01jc02.class %prodlib1%
     copy d:\simojlib\ap01jc03.class %prodlib1%
rem  *
echo * ZUPDJLIB.BAT, Copy the "Customer Registration" members.
     copy d:\simojlib\ap02jc01.class %prodlib1%
     copy d:\simojlib\ap02jc02.class %prodlib1%
     copy d:\simojlib\ap02jc03.class %prodlib1%
rem  *
echo * ZUPDJLIB.BAT, Copy the "Write me a Check" members.
     copy d:\simojlib\ap03jc01.class %prodlib1%
     copy d:\simojlib\ap03jc02.class %prodlib1%
     copy d:\simojlib\ap03jc03.class %prodlib1%
rem  *
echo * ZUPDJLIB.BAT, Copy the "Show me the Date" members.
     copy d:\simojlib\ap04jc01.class %prodlib1%
     copy d:\simojlib\ap04jc02.class %prodlib1%
     copy d:\simojlib\ap04jc03.class %prodlib1%
rem  *
echo * ZUPDJLIB.BAT, Copy the "What is my Age" members.
     copy d:\simojlib\ap05jc01.class %prodlib1%
     copy d:\simojlib\ap05jc02.class %prodlib1%
     copy d:\simojlib\ap05jc03.class %prodlib1%
rem  *
echo * ZUPDJLIB.BAT, Copy the "Show me the Hexadecimal" members.
     copy d:\simojlib\ap06jc01.class %prodlib1%
     copy d:\simojlib\ap06jc02.class %prodlib1%
     copy d:\simojlib\ap06jc03.class %prodlib1%
rem  *
echo * ZUPDJLIB.BAT, Copy the COBOL members.
     copy d:\simojlib\ap01inq1.dll   %prodlib1%
     copy d:\simojlib\ap01inq2.dll   %prodlib1%
     copy d:\simojlib\ap02jrnl.dll   %prodlib1%
     copy d:\simojlib\simodate.dll   %prodlib1%
     copy d:\simojlib\simotxtn.dll   %prodlib1%
     copy d:\simojlib\ap05diff.dll   %prodlib1%
     copy d:\simojlib\simodump.dll   %prodlib1%
     copy d:\simojlib\simologs.dll   %prodlib1%
rem  *
echo * ZUPDJLIB.BAT, Copy the EXEC members.
     copy d:\simojlib\zlwsjlib.bat   %baselib1%
     copy d:\simojlib\zenvjlib.bat    %baselib1%
rem  *
echo * ZUPDJLIB.BAT, Copy the Data Files.
     copy d:\simojlib\datasys1\ebc00256.idx   %datalib1%
     copy d:\simojlib\datasys1\ebc00256.ksd   %datalib1%