SimoLYZE
When technology complements business   Source Member Typing
Copyright © 1987-2006  SimoTime Enterprises, LLC  All Rights Reserved http://www.simotime.com

 
Introduction Version 4.04.22
 
  Sample Summary Report
  Source Code Data Base
  System Requirements
  Installation
 
  Installation from Compact Disk
  Installation from Zip File
  Installation Verification Programs
  Running SimoLYZE
 
  Overview Flowchart
  Set Environment Variables
  Build a Directory Structure
  Sample Command File that runs SimoLYZE
  The SimoLYZE Functions
 
  The Organize Function
  The List Function
  The Query Function
 
  Source Code Data Base Extract to CSV File
  Table of Statements and Keywords
  The Update Function, Source Code Data Base
 
  Changing the Status of a Record (Active, Delete or Suspend)
  Changing the Member Language Definition
  Changing the Member Type Definition
  Creating a new Source Code Data Base
  Copy Source Code Data Base and Drop Deleted Records
  Summary List of Update Keywords
  The Copy Function
  Query by Member Date
  Flag Reset in Source Code Data Base
  Callable API
  Capabilities, Possibilities and Limitations
 
  Assembler Analysis and Support
  COBOL Analysis and Support
  JCL Analysis and Support
  BMS Analysis and Support
  MFS Analysis and Support
  DBD Analysis and Support
  PSB Analysis and Support
  Other Considerationsand Limitations
 
  Processing Time and Log Files
  JCL with Embedded COBOL Source Code
  Duplicate Source Member Names
  The Configuration File (SLZSYS1F)
  The Source Code Data Base (SLZSCDB1)
  Questions and Answers
  Summary
 
  Acquiring Software and Links to Similar Pages
  Comments or Suggestions
  About SimoTime

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

What is member typing and why is it important? Member typing is the process of storing a source member and then being able to determine its content without having to examine the member. This is typically accomplished in the following ways.

1. How the member is stored. Many of the source code management systems provide a capability of defining the type of member when it is being stored.
2. Where the member is stored. Member types are stored into specifics directories or libraries base on the type of member.
3. How the member is named. Naming conventions are used to identify a member type. For example, on the PC the file extension is typically used for this purpose.

If a process is not established to do source member typing then it will be necessary to scan the source member content and identify the type of member. SimoLYZE is designed to scan mainframe-oriented source code and determine the member type.

Source member typing is often overlooked or receives a low priority in some programming shops. The importance of member typing is not often recognized until a change to an application is required. Attempting to estimate the skills required to implement a change and define the scope-of-effort required is difficult and time consuming when the type and quantity of members that makeup an application are not known and/or are difficult to determine.

Applications running on a mainframe are usually written in COBOL. However, mainframe applications are typically COBOL oriented but are not written entirely in COBOL. Mainframe applications are dependent on non-COBOL processes such as calls to 370 assembler subroutines, embedded calls to external sort routines and dependencies on batch processes using mainframe JCL to create and update existing data bases. If the plan is to migrate the application or distribute components of the application from the mainframe to a PC or Unix platform then additional time should be allocated to handle these situations.

Some programming shops have the technology and a process to keep track of members by type but even these shops run an average error rate of five percent or higher. Other shops or programming groups do not even attempt to track member types and many shops have a variety of application source code that has not been touched in years. Knowledge about these applications is minimal or non-existent.

If the member type is not readily available or unknown it could be a significant effort to transfer programming functions from the mainframe to the PC Desktop or an application server. Revolve (see Note-1) and Mainframe Express (see Note-2) are dependent on member typing (i.e. the existence of a file extension with the file name). Many programming shops need assistance in creating and maintaining a programming environment that incorporates member typing. All programming shops could benefit from the ability to validate the accuracy of current member typing efforts.

Once a library of source members with accurate member typing has been established the time it requires to modify, deploy and maintain an application on the mainframe or PC, Micro Focus platform may be significantly reduced. Both Revolve and Mainframe Express deliver a tremendous amount of analytical and programming power for the analysis, development, testing, maintenance and deployment of business applications. However, both products are dependent on member typing. The suite of programs provided in this package will be referred to as SimoLYZE. The primary purpose of  SimoLYZE is to do member typing and provide an overview of the number and type of members stored in a mainframe library or source code management facility. Prior to doing the initial scanning of the source code it must be downloaded from the mainframe to the PC. The downloading of the source members is greatly simplified by using Mainframe Express (MFE) with Mainframe Access (MFA) that is provided by Micro Focus.

Note-1:  Revolve is a very powerful application and source code analysis tool provided by Micro Focus.

Note-2:  Mainframe Express (MFE) is a product that provides for the development, maintenance and testing of mainframe applications on the PC in a Windows environment. MFE also has the capability of easily downloading and uploading source members from and to the mainframe.

Note-3:  The Micro Focus web site is located at: http://www.microfocus.com .

Sample Summary Report
(Next) (Previous) (Table-of-Contents)

In addition to determining the member language and member type a summary report is also provided. The following is an example of the summary information that is produced by SimoLYZE.

o


o


o


o


o


o


o


o


o
* SLZLST01 SimoLYZE - List Source Data Base v04.04.22 http://www.simotime.com *
* SLZLST01 Copyright 1987-2006 SimoTime Enterprises, LLC All Rights Reserved *
         
Language(Type) Members Records Comments Blanks CodeLines CICS SQL
COBOL (CBL) 82 31639 10898 2209 18532 1  
COBOL (CPY) 37 2761 908 77 1776    
370(370) 15 3462 1566 2 1894    
370(CPY) 1 23 7 0 16    
370(MAC) 6 171 111 3 57    
JCL(JCL) 110 6052 4097 1 1954    
JCL(PRC) 2 86 72 0 14    
JCL(INC) 0 0 0 0 0    
370(BMS) 1 137 9 0 128    
370(MFS) 0 0 0 0 0    
370(DBD) 0 0 0 0 0    
370(PSB) 0 0 0 0 0    
Unknown(UNK) 0 0 0 0 0    
Other(???) 0 0 0 0 0    
               
Subtotal (Known) 254 44331 17668 2292 24371    
Subtotal (UNK) 0 0 0 0 0    
TOTAL 254 44331 17668 2292 24371    
               
o


o


o


o


o


o


o


o


o

Please note that many of the items discussed in this document are based on the hardware and software technologies that were available when this document was created. This is a rapidly changing environment and functional improvements are expected.

Source Code Data Base
(Next) (Previous) (Table-of-Contents)

During the scanning process SimoLYZE will create and/or maintain a Source Code Data Base (SLZSCDB1.DAT and .IDX) that contains information about the individual source members. Some of the information is the member language, member type, record count and date/time of last update. The Source Code Data Base is an indexed file in the Micro Focus file format.

For a detailed description of the record layout refer to The Source Code Data Base (SLZSCDB1) section of this document.

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

This documentation is intended for SimoLYZE, Version 4.0.00. The following is the minimum system requirements.

  Windows/2000, Window/NT or Windows/XP
  64meg of memory
  8 gig disk space
  Internet Explorer 4.0 or Netscape Navigator 4.0 (used to review the documentation)

The following is a typical system configuration for running SimoLYZE with Micro Focus Mainframe Express and/or Mainframe Access.

  Windows/2000, Window/NT or Windows/XP
  256 meg of memory
  20 gig disk space
  Internet Explorer 4.0 or Netscape Navigator 4.0 (used to review the documentation)
  Mainframe Express (for compiling and executing mainframe applications on the PC)
  Revolve, used to do further analysis after member typing is complete

Note: The software and supporting members included in the SimoLYZE package require less than 1 meg of disk space.

Note: Mainframe Express and Revolve are products provided by Micro Focus (http://www.microfocus.com).

The SimoLYZE program, this documentation, the Installation Verification Procedures (IVP's) and examples are provided in a zip'ed file. Additional information about acquiring SimoLYZE may be obtained from http://www.simotime.com/evaltek2.htm

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

SimoLYZE is currently delivered on a Compact Disk . SimoLYZE is also available directly from SimoTime via digital delivery using e-mail. Information about the latest version may be obtained from the following WEB site.

  http://www.simotime.com

Installation from Compact Disk
(Next) (Previous) (Table-of-Contents)

If you have received SimoLYZE on a CD then simply follow the SETUP instructions from the custom install options to install SimoLYZE. This process will install SimoLYZE into a directory called SimoLIBR.

Installation from Zip File
(Next) (Previous) (Table-of-Contents)

If you have received SimoLYZE in a zipped file then the following instructions define the necessary steps for installation.

Step Description
1. Create a directory on the C-drive called SimoLIBR.
2. Make SimoLIBR the current directory.
3. Create a sub-directory LOGS under the SimoLIBR directory.
4. Unzip the SimoLYZE.ZIP file into the SimoLIBR directory.

The following is the list of command statements required using WinZip.

C:\>md SimoLIBR
C:\>cd SimoLIBR
C:\SimoLIBR>md LOGS
C:\SimoLIBR>wzunzip SimoLYZE.zip

Installation Verification Procedures
(Next) (Previous) (Table-of-Contents)

Three Installation Verification Procedures (IVP's) are provided with SimoLYZE. The IVP's may also serve as examples. A little setup and preparation is required prior to running the IVP's. First, we must set the environment variables that will map directories.

  C:\SimoLIBR> SET4LYZ1

Next, we must create a set of directories.The following command will use the environment variables that were set in the preceding command and create the input directory (SLZINPUT) and the output directory (SLZMODEL) with its sub-directories.

  C:\SimoLIBR> DIR4LYZ1

The preceding command also creates an input directory. This is the directory that needs to be populated with the source members without file extension (i.e. unknown content).

Now it is necessary to copy a few source member into the SLZINPUT directory. For the IVP approximately ten (10) source members will provide an adequate test for proper installation.

Note: Do not use file extensions. Use only the file name without a file extension. The file name should be eight characters or less.

After copying a few member into the SLZINPUT directory run the following command to execute the SimoLYZE Installation Verification Procedure.

  C:\SimoLIBR> IVP4LYZ1  SET4LYZ1

The preceding command will scan all the members (filenames without extensions) in the SLZINPUT directory and copy the typed members (filenames with extensions) to the appropriate sub-directories of SLZMODEL. A separate window should be displayed with a summary of the members by type. Use Windows Explorer to view the contents of the SLZMODEL directory and sub-directories.

The following is a second IVP that will produce a detailed list by member and the summary information.

  C:\SimoLIBR> IVP4LYZ2  SET4LYZ2

The following is a third IVP that will produce a a cross reference listing in an ASCII/Text file and summary information.

  C:\SimoLIBR> IVP4LYZ3  SET4LYZ3

Running SimoLYZE
(Next) (Previous) (Table-of-Contents)

SimoLYZE is run from a DOS command line by calling SIMOLYZE.EXE . It requires one parameter. Depending on the parameter value certain environment variables will need to be specified. The following is the command line format.

  C:\SimoLIBR> SIMOLYZE parameter

The Installation Verification Programs (IVP's) provide a good model for running SimoLYZE and are described in more detail in this section.

The following table is a summary of the parameters (function to be performed) and environment variables.

parameter Description and Environment Variables
ORGANIZE  The purpose of the ORGANIZE function is to do the member typing. Refer to The Organize Function for more information.
set SYSIMP1=filename ... this file contains two records. The first record provides the name of the PDS where the members are stored on the mainframe. The second record provides the name of the PC directory where the input members are stored.
set SYSIMP2=filename ... this file contains a list of the input members to be analyzed and typed. Each record in the file contains one file name. The format of the file is ASCII/Text .
set SLZSYS1F=filename ... this if the SimoLYZE configuration file.
set SLZSCDB1=filename ... this is the SimoLYZE Source Code Data Base.
QUERY The purpose if the QUERY function is to provide a method for selecting certain member types from the Source Code Data Base (SLZSCDB1) and create a file of "user-specified" output. Refer to The Query Function for more information.
set SYSQRY1=filename ... this file contains the specifications for selecting records from the Source Code Data Base.
set SYSQRY2=filename ... this file is created by the Query function and contains the results of the query.
set SYSQRY3=filename ... this file is used to specify a user date. The query function can then do a select of record information from the Source Code Data Base using this date.
set SLZSYS1F=filename ... this if the SimoLYZE configuration file.
set SLZSCDB1=filename ... this is the SimoLYZE Source Code Data Base.
UPDATE The purpose of the UPDATE function is to provide a method for updating information in the Source Code Data Base (SLZSCDB1) without having to write a program. Refer to The Update Function for more information.
set SYSUPD1=filename ... this file contains the specifications for the information to be updated.
set SLZSYS1F=filename ... this if the SimoLYZE configuration file.
set SLZSCDB1=filename ... this is the SimoLYZE Source Code Data Base.
COPY The purpose of the COPY function is to copy the specified members from the untyped directory to the typed directories with proper extensions. Refer to The Copy Function for more information.
set SYSCPY0=filename ... each record within the file has a from-filename and a to-filename.
set SYSCPY3=filename ... each record in this file will have a "UPD" or "ADD" in positions 1-3, positions 4-nn will contain the to-filename.
set SLZSYS1F=filename ... this if the SimoLYZE configuration file.
LIST The purpose of the LIST function is to read the Source Code Data Base (SLZSCDB1) file and create and ASCII/Text file of summary or detailed information about the source members. Refer to The List Function for more information.
set SLZLIST=filename ... this is the output file that contains the listing information. The format is ASCII/Text and may be viewed with most editors.
set SLZSYS1F=filename ... this if the SimoLYZE configuration file.
set SLZSCDB1=filename ... this is the SimoLYZE Source Code Data Base.

Overview Flowchart
(Next) (Previous) (Table-of-Contents)

The following figure shows the process flow used by the Installation Verification Procedure for SimoLYZE.

               
     
IVP4LYZ1
cmd
     
      The First Parameter is usually SET4LZY1
 
SYSUPD1
     
     
     
SIMOLYZE
update
      If the Source Code Data Base does not exist then create one.
     
     
       
     
DIR
/B /A-D /ON
     
     
     
SYSTEMP2
SYSIMP2
  Use the DIR command to create a list of the un-typed members in the SLZINPUT directory.
     
     
       
 
SYSIMP1
     
     
     
SIMOLYZE
organize
     
     
     
SLZSCDB1
  The Organize Function, Update the Source Code Data Base with member type
 
SYSIMP2
     
     
     
     
 
 
       
 
SYSQRY1
     
     
     
SIMOLYZE
query
     
SYSQRY2
  The Query Function, identify members that have been changed
 
SYSQRY3
     
     
     
 
       
 
SLZSCDB1
     
     
     
 
 
 
       
 
SLZSYS1F
     
     
     
 
 
 
       
 
SLZINPUT
unknown
source
members
     
     
SIMOLYZE
copy
 
     
     
SLZMODEL
sub-directories
asm
asmcpy1
asmmac1
cobol
cobcpy1
etc...
  The Copy Function, copy the typed members to the model directories.
 
SLZSYS1F
     
     
     
SIMOLYZE
list
     
     
     
SLZLIST
  Read the Source Code Data Base and create a SLZLIST file in ASCII/Text format.
     
 
       
     
EOJ
       
               

The SIMOLIBR directory is the directory where SimoLYZE is installed. The SLZINPUT directory is the directory that contains the untyped source members (i.e. names without file extensions).

The IVP4LYZ1 is a command file that will run the necessary programs to analyze each of the members in the SLZINPUT directory and copy each member to the proper sub-directory within SLZMODEL based on the member type.

This process will also create a Source Code Data Base (SLZSCDB1). This data base is a VSAM file with a single key composed of the member name. The actual name of the SLZSCDB1 is determined by an environment variable called SLZSCBD1.

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

The environment variables must be set prior to running SimoLYZE. The following is a description of the environment variables used in SET4LYZ1.BAT.

@echo OFF
echo * SET4LYZ1 is STARTING...
echo * SET4LYZ1 **********************************************************
echo * SET4LYZ1 * Setting the Environment Variables for SimoLYZE. This   *
echo * SET4LYZ1 * batch file provides a single location for defining the *
echo * SET4LYZ1 * location of the input directory, output directories,   *
echo * SET4LYZ1 * the configuration file and the Source Code Data Base.  *
echo * SET4LYZ1 **********************************************************
rem  *
rem  * Identify the directory where the SimoLYZE work files and the
rem  * user-defined Source Code Data Base are located.
rem  *
     set SLZUSER=C:\slzwork1
rem  *
rem  * Define the location of the SimoLYZE configuration file.
rem  *
     set SLZSYS1F=cfg4lyz1.cfg
rem  *
rem  * Define the fully qualified name for the Source Code Data Base file.
rem  * Notice the technique of using the previously defined SLZUSER
rem  * environment variable. The following could also be an explicit,
rem  * fully qualified drive, directory and filename.ext.
rem  *
     set SLZSCDB1=%SLZUSER%\SLZSCDB1.DAT
rem  *
rem  * Define the Input directory. The following directory will contain the
rem  * source members that do not have file extensions.
rem  *
     set SLZINPUT=C:\slzinput
rem  *
rem  * Provide for a high-level directory definition for output members
rem  *
     set SLZMODEL=C:\slzmodel
rem  *
rem  * Define the Output directories
rem  *
     set SLZ4CBL=%SLZMODEL%\cobol
     set SLZ4COBCPY1=%SLZMODEL%\cobcpy1
     set SLZ4ASM=%SLZMODEL%\asm
     set SLZ4ASMCPY1=%SLZMODEL%\asmcpy1
     set SLZ4ASMMAC1=%SLZMODEL%\asmmac1
     set SLZ4JCL=%SLZMODEL%\jcl
     set SLZ4PRC=%SLZMODEL%\prc
     set SLZ4INC=%SLZMODEL%\inc
     set SLZ4BMS=%SLZMODEL%\bms
     set SLZ4MFS=%SLZMODEL%\mfs
     set SLZ4DBD=%SLZMODEL%\dbd
     set SLZ4PSB=%SLZMODEL%\psb
     set SLZ4OTHER=%SLZMODEL%\other
rem  *
rem  * The following is provided as a method for identifying the
rem  * PDS where the original members reside.
rem  * It is only used to when writing to the Source Code Data Base
rem  *
     set SLZHOST=SIMOTIME.DEMO.BASE
rem  *
rem  * *************************************************************************
rem  * The following are optional based on configuration file setting to
rem  * enable or disable a function.
rem  *
rem  * The following is for the SLZLIST file.
rem  *
     set SLZLIST=%SLZUSER%\SLZLIST.TXT
rem  *
rem  * The following is for the messaging file.
rem  *
     set SYSMSG1=%SLZUSER%\SYSMSG1.TXT
rem  *
rem  * The following is for the cross reference file of main members to
rem  * to copyfiles.
rem  *
     set COPYXREF=%SLZUSER%\COPYXREF.TXT
rem  *
echo * SET4LYZ1 is COMPLETE...

Build a Directory Structure
(Next) (Previous) (Table-of-Contents)

The input directory and output directories must be must exist prior to running SimoLYZE. The following is a description of a sample command file (DIR4LYZ1.CMD) that may be used to create a directory structure.

Please note, prior to running the following command file the environment variables must be set as described in the Previous section of this document

@echo OFF
echo * DIR4LYZ1 is STARTING...
echo **************************************************************
echo *                This program is provided by:                *
echo *                 SimoTime Enterprises, LLC                  *
echo *        (C) Copyright 1987-2003 All Rights Reserved         *
echo *                                                            *
echo *          Web Site URL:   http://www.simotime.com           *
echo *                e-mail:   helpdesk@simotime.com             *
echo **************************************************************
echo *
echo * This file will create the directories used by the
echo * Installation Verification Procedures for SimoLYZE.
echo *
echo * Please note, the environment variables must be set prior
echo * to running this procedure. Refer to the SET4LYZ4.BAT file
echo * for more information.
echo *
     MD %SLZUSER%
rem  *
     MD %SLZINPUT%
     MD %SLZMODEL%
rem  *
     MD %SLZ4CBL%
     MD %SLZ4COBCPY1%
     MD %SLZ4ASM%
     MD %SLZ4ASMCPY1%
     MD %SLZ4ASMMAC1%
     MD %SLZ4JCL%
     MD %SLZ4PRC%
     MD %SLZ4INC%
     MD %SLZ4BMS%
     MD %SLZ4MFS%
     MD %SLZ4DBD%
     MD %SLZ4PSB%
     MD %SLZ4OTHER%
echo * DIR4LYZ1 is COMPLETE...

Sample Command File that runs SimoLYZE
(Next) (Previous) (Table-of-Contents)

The following is a description of a sample command file (IVP4LYZ1.CMD) that steps through the member typing process.

@ECHO OFF
echo * Ivp4Lyz1 is Starting, v04.04.14...
echo * Ivp4Lyz1 **********************************************************
echo * Ivp4Lyz1 *              This program is provided by:              *
echo * Ivp4Lyz1 *               SimoTime Enterprises, LLC                *
echo * Ivp4Lyz1 *      (C) Copyright 1987-2006 All Rights Reserved       *
echo * Ivp4Lyz1 *        Web Site URL:   http://www.simotime.com         *
echo * Ivp4Lyz1 *              e-mail:   helpdesk@simotime.com           *
echo * Ivp4Lyz1 **********************************************************
rem  *
echo * Ivp4Lyz1 set Specific Base Directory's variables
rem  *
     if "%1" == "" GOTO :ABEND01
     CALL %1
echo * Ivp4Lyz1 SLZINPUT set to %SLZINPUT%
rem  *
rem  ******************************************************************************
echo * Ivp4Lyz1 Create temporary Source-Code-Data-Base for unidentified members.
rem  *
     if   EXIST %SLZSCDB1% GOTO :SKIPALOC
echo * Ivp4Lyz1 Call SIMOLYZE with UPDATE to create a Source Code Data Base
echo * Ivp4Lyz1 %SLZSYS1F%
echo * Ivp4Lyz1 %SLZSCDB1%
     set  SLZUPD1=UPD4ALOC.UPD
     SimoLYZE UPDATE
     if   ERRORLEVEL = 1 GOTO :ABEND02
:SKIPALOC
rem  *
rem  ******************************************************************************
echo * Ivp4Lyz1 Prepare to read the unidentified source members.
rem  *
rem  * The HOSTNAME identifies the original mainframe PDS. On the
rem  * PC this is used for documentation purposes,
rem  * The PCDIR identifies the directory where the unidentified
rem  * input source members are stored. If the source members are not
rem  * in the current directory the PCDIR must be used.
rem  *
rem  * The DIR command will create a list file of the members in the
rem  * input directory.
rem  * The /B option will list only the file name.
rem  * The /A-D option will cause directory names not to be listed.
rem  * The /ONE option will organize in name and extension sequence.
rem  *
     echo HOSTNAME %SLZHOST%           >%SLZUSER%\SYSTEMP1.TXT
     echo PCDIR    %SLZINPUT%\        >>%SLZUSER%\SYSTEMP1.TXT
     dir  %SLZINPUT%\*.* /B /A-D /ONE  >%SLZUSER%\SYSTEMP2.TXT
rem  *
rem  * Load the Source-Code-Data-Base with unknown member types.
rem  * Do the source code analysis to determine member type.
rem  *
echo * Ivp4Lyz1 Populate the Source Code Data Base
rem  *
     set SYSIMP1=%SLZUSER%\SYSTEMP1.TXT
     set SYSIMP2=%SLZUSER%\SYSTEMP2.TXT
     SimoLYZE ORGANIZE
     if   ERRORLEVEL = 1 GOTO :ABEND03
rem  *
rem  ******************************************************************************
echo * Ivp4Lyz1 Select members from the Source Code Data Base to be copied.
rem  *
rem  * This command file is usually run with the CFG4LYZ1.CFG file that has
rem  * the statement ...SLZQRY01 USERDATE NO... included
rem  * Therefore, all members that meet the other criteria will be selected.
rem  *
     set SYSQRY1=QRY4CPY1.QRY
     set SYSQRY2=%SLZUSER%\SYSTEMP3.TXT
     SimoLYZE QUERY
rem  *
rem  ******************************************************************************
rem  * Ivp4Lyz1 Copy member to SLZMODEL Directories, append the file extension.
rem  *
     set SYSCPY0=%SLZUSER%\SYSTEMP3.TXT
     set SYSCPY3=%SLZUSER%\SYSCPY3.LOG
     SimoLYZE COPY
echo * Ivp4Lyz1 Source members have been copied to specified user directories.
rem  *
rem  ******************************************************************************
echo * Ivp4Lyz1 Create an ASCII/Text SLZLIST file from the Source Code Data Base
rem  *
     set SLZLIST=%SLZUSER%\SLZLIST.TXT
     SimoLYZE LIST
rem  *
echo * Ivp4Lyz1 Notepad will display the list file in a separate window.
rem  *
     START notepad %SLZUSER%\SLZLIST.TXT
rem  *
echo * Ivp4Lyz1 Thank you for using SimoLYZE by SimoTime Enterprises
rem  *
     goto :EojAok
rem  *
rem  ******************************************************************************
:ABEND01
     echo * Ivp4Lyz1 ABENDING Parameter 1 is required, must be the name of the set command!
     echo * Ivp4Lyz1 ABENDING Parameter 1 is usually SET4IVP1 for this IVP.
     goto :END
rem  *
rem  ******************************************************************************
:ABEND02
     echo * Ivp4Lyz1 ABENDING Allocate function for Source Code Data Base failed!
     goto :END
rem  *
rem  ******************************************************************************
:ABEND03
     echo * Ivp4Lyz1 ABENDING Organize function for Source Code Data Base failed!
     goto :END
rem  *
rem  ******************************************************************************
:EojAok
     echo * Ivp4Lyz1 is Finished
rem  *
:END

The SimoLYZE Functions
(Next) (Previous) (Table-of-Contents)

This section describes each of the SimoLYZE functions. The ORGANIZE function does the actual member typing. The LIST function reads the Source Code Data Base and creates a listing file in ASCII/Text format for easy viewing with most editors. The UPDATE function provides a quick method for updating records in the Source Code Data Base. The QUERY function provides a quick method for accessing information in the Source Code Data Base. The COPY function provides a method for quickly copying the untyped source members from an input directory to the appropriate directories that have been defined for each member type.

The Organize Function
(Next) (Previous) (Table-of-Contents)

The organize function does the actual member typing. This function will read each of the specified source members and determine the member type. This function starts by reading an ASCII/Text file (SYSIMP2) that contains a list of members that will be used to update or add records to the source code data base file (SLZSCDB1.DAT). The configuration file is read to get additional parameters to determine the execution behavior and results. The SYSIMP1 file contains two records. The first record provides the name of the PDS where the members are stored on the mainframe. The second record provides the name of the PC directory where the input members are stored.

               
 
SYSIMP1
     
     
     
SimoLYZE
organize
     
SLZSCDB1
  The Organize Function
 
SYSIMP2
     
     
     
 
 
 
       
 
SLZSYS1F
     
     
     
 
 
 
       
 
SLZSCDB1
     
     
     
EOJ
 
               

The List Function
(Next) (Previous) (Table-of-Contents)

The list function will read the Source Code Data Base file (SLZSCDB1.DAT) and produce a listing file in ASCII/Text format.

               
 
SLZSCDB1
     
     
     
SimoLYZE
list
     
SLZLIST
  The List Function
 
SLZSYS1F
     
     
     
     
      Configuration File
     
EOJ
 
               

The following is an example of a command file (SLZLIST1.CMD) that will execute SimoLYZE with the LIST option.

@echo OFF
echo * slzList1 is Starting...
echo **************************************************************
echo *                This program is provided by:                *
echo *                 SimoTime Enterprises, LLC                  *
echo *        (C) Copyright 1987-2006 All Rights Reserved         *
echo *          Web Site URL:   http://www.simotime.com           *
echo *                e-mail:   helpdesk@simotime.com             *
echo **************************************************************
echo *
echo * This procedure will read the Source Code Data Base and
echo * create a listing file.
echo *
rem  **************************************************************
rem  * Set the required environmnet variables.
rem  *
     set SLZSYS1F=c:\SimoLIBR\tmp4lyze.cfg
     set SLZSCDB1=c:\SLZWORK1\SLZSCDB1.DAT
     set SLZLIST=c:\SLZWORK1\SlzList1.TXT
rem  *
rem  **************************************************************
rem  * The following two statements will create a temporary
rem  * configuration file for the SimoLYZE List function.
rem  *
     echo SLZLST01 DETAIL        > %SLZSYS1F%
     echo SLZLST01 SUMMARY      >> %SLZSYS1F%
rem  *
rem  **************************************************************
rem  * Run the List function and display the results with NotePAD.
rem  *
     SIMOLYZE LIST
     echo * slzList1 Notepad will display the list file in a separate window.
     START notepad %SLZLIST%
rem  *
rem  **************************************************************
rem  * End of Job.
echo * slzList1 Thank you for using SimoLYZE by SimoTime Enterprises
echo * slzList1 is Finished...

The following statements in the configuration file (SLZSYS1F) affect the program execution for the list function

SLZLST01 DETAIL                * Include record detail
SLZLST01 SUMMARY               * Include summary information

The first statement with the DETAIL keyword will write detailed information about each source member to the listing file. The NODETAIL keyword prevents the detailed information about each source member from being written to the listing file.

The second statement with the SUMMARY keyword will provide a summary of the number of source members in each type grouping and total count of members with total lines of code. The NOSUMMARY keyword will prevent the summary information from being placed in the listing file.

The Query Function
(Next) (Previous) (Table-of-Contents)

The query function will read the Source Code Data Base file (SLZSCDB1.DAT) and produce an ASCII/Text file using the control specifications contained in the SYSQRY1 file.

               
 
SYSQRY1
selection criteria
     
     
     
SimoLYZE
query
     
SYSQRY2
  The Query Function
 
SYSQRY3
userdate
usertime
     
     
     
 
 
 
      User Date/Time for Selection Criteria (Optional)
 
SLZSYS1F
     
     
     
 
 
 
      Configuration File
 
SLZSCDB1
     
     
     
EOJ
Source Code Data Base
               

Query, Source Code Data Base Extract to CSV File
(Next) (Previous) (Table-of-Contents)

This example will read the Source Code Data Base and produce a CSV file that may be imported into an Excel Spreadsheet or other data bases. The following (QryGET02.QRY) is an example of a control file for the QUERY function.

**********************************************************
*              This program is provided by:              *
*               SimoTime Enterprises, LLC                *
*      (C) Copyright 1987-2006 All Rights Reserved       *
*        Web Site URL:   http://www.simotime.com         *
*              e-mail:   helpdesk@simotime.com           *
**********************************************************
* This Query will select active member records from the
* Source Code Data Base and create a CSV file that may
* be imported into an Excel Spreadsheet.
*
//IF STATUS EQ A
//PUT &<membername<&,&<language<&,&<type<&,&<records<&
//END-IF
*

The following is the command file (SlzQry02.CMD) that will execute the query function using the preceding query control file information.

@echo OFF
echo * slzQry02 is Starting, v04.04.14...
echo **************************************************************
echo *                This program is provided by:                *
echo *                 SimoTime Enterprises, LLC                  *
echo *        (C) Copyright 1987-2006 All Rights Reserved         *
echo *          Web Site URL:   http://www.simotime.com           *
echo *                e-mail:   helpdesk@simotime.com             *
echo **************************************************************
echo * Read the Source Code Data Base and create a CSV file       *
echo * that may be imported into an Excel Spreadsheet.            *
echo **************************************************************
rem  * Set the required environmnet variables.
rem  *
     set SLZSYS1F=c:\SimoLIBR\DataWrk1\QryCfg02.CFG
     set SLZSCDB1=c:\SLZWORK1\SLZSCDB1.DAT
     set SYSQRY1=QryGet02.QRY
     set SYSQRY2=%SLZUSER%\QryPut02.CSV
rem  *
rem  **************************************************************
rem  * The following statements will create a temporary
rem  * configuration file for the SimoLYZE Query function.
rem  * Note: The SLZSYS1F could be set to the CFG4LYZ1.CFG file
rem  * that is included with SimoLYZE. The purpose of using the
rem  * following is to show the minimum requirements.
rem  *
     echo SLZQRY01 MSGLEVEL 0             > %SLZSYS1F%
     echo SLZQRY01 WILDCARD *            >> %SLZSYS1F%
     echo SLZQRY01 DOENVARS              >> %SLZSYS1F%
     echo SLZQRY01 USERDATE NO           >> %SLZSYS1F%
rem  *
rem  **************************************************************
rem  * Run the Query function and display the results with NotePAD.
rem  *
     SIMOLYZE QUERY
     echo * slzQry02 Query File is %SYSQRY2%
     echo * slzQry02 Display the QUERY file in a separate window.
     START notepad %SYSQRY2%
rem  *
rem  **************************************************************
rem  * End of Job.
echo * slzQry02 Thank you for using SimoLYZE by SimoTime Enterprises
echo * slzQry02 is Finished...

The following (QryPUT02.CSV) is the CSV file created as a result of running the preceding query function.

CBLBITC1,CBL,CBL,00000452
CBLDAYC1,CBL,CBL,00000438
CBLDAYC2,CBL,CBL,00000272
CBLHBXC2,CBL,CBL,00000400
CBLHBXC3,CBL,CBL,00000280
CBLNUXC1,CBL,CBL,00000296
CBLNUXC2,CBL,CBL,00000288
CBLPARC3,CBL,CBL,00000218
CBLPARC4,CBL,CBL,00000220
PASSBITS,CBL,CPY,00000025

Query, Table of Statements and Keywords
(