|
|||||
|
| 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.
|
|
Base directory for the Lite Web Server | ||||||||||||||||||||||||||||||||||||
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
This is the batch file that sets the CLASSPATH environment variable and start the Lite Web Server | |||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
This ibatch file will set the CLASSPATH for the compiles of the COBOL and Java members. | |||||||||||||||||||||||||||||||||||
|
|
|
|
This is the Java Bean for Customer Inquiry. | |||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||
|
|
|
|
This is the KSDS VSAM Data Set. | |||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
This is the documentation and help text for the application. | |||||||||||||||||||||||||||||||||||
|
|
|
|
This is the Web page for the various options or functions provided by the demo. | |||||||||||||||||||||||||||||||||||
|
|
|
|
This is the Java Server Page for the customer inquiry and information display. | |||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
|
| 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%