Part_1 | - Easytrieve converter introduction |
- sample Easytrieve source file to illustrate conversion | |
- converter output equivalent (uvcopy job) | |
- Setup required for Easytrieve conversion | |
- Libraries & Data directories required | |
- Converting Easytrieve - 1 program at a time | |
- Converting Easytrieve - ALL programs in directory | |
- Executing uvcopy job converted from Easytrieve | |
- test/data Input/Output files illustrated | |
- possible manual changes required after conversion |
Part_2 | - QUIKJOB (documentation not provided here) |
- see https://www.uvsoftware.ca/jclcnv1demo.htm#6B1 - 6B4 |
Note |
|
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
1A1. | Easytrieve converter introduction |
1B1. | sample Easytrieve source file to illustrate conversion |
1B2. | converter output equivalent (uvcopy job) |
1C0. | Converting Easytrieve source to uvcopy code |
1C1. | Pre-Requisites, setup profiles as per ADMjobs.doc |
1C2. | Setup required for Easytrieve conversion |
1C3. | Libraries & Data directories required for Easytrieve conversion |
1D1. | Converting Easytrieve - 1 program at a time |
1D2. | Converting Easytrieve - ALL programs in directory |
1D3. | Possible manual changes after auto-conversion |
1E1. | Executing uvcopy job (eztlist1) converted from Easytrieve |
1E2. | test/data Input/Output files illustrated |
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
'ez2uvcopy' is a Vancouver Utility (from UV Software) to convert CA Easytrieve to the uvcopy interpretive language. 'uvcopy' is a powerful data manipulation language that was developed to replace various mainframe utilities when converting to Unix or Linux systems.
uvcopy provides functions that are non-existent in the usual Unix utilities:
uvcopy is somewhat similar to the IBM 360 assembler language, so if you have a mainframe background the code will look familiar to you. In addition to the usual basic instructions, uvcopy has many powerful instructions for scan/replace, table processing, etc.
uvcopy has the power of assembler but without the complexity of compiling since it is 'interpretive' (just edit the parameter file & rerun).
There is a lot of documentation for uvcopy, but if you have a mainframe background, I think you could get a quick start by studying the examples given in UVjobs1.htm. Then you could run the 'eztlist1' conversion given in Part 1 of this EZTRVetc.doc & refer to the uvcopy3.htm instruction manual as required.
install.htm - install guide for Vancouver Utilities on Unix/Linux ADMjobs.htm - Site Admin (backups, cron scheduling, console logs) UVjobs1.htm - pre-programmed uvcopy jobs to Demo & Customize uvcopy1.htm - uvcopy introduction, file declarations, etc uvcopy2.htm - work areas,$symbols,options,patterns,registers,etc uvcopy3.htm - detailed instruction reference (with alpha index) CNVaids.htm - Mainframe JCL/COBOL/DATA Conversion Aids JCLcnv1demo.htm - Converting MVS JCL to Unix/Linux Korn shell scripts VSEJCL.htm - Converting VSE JCL to Unix/Linux Korn shell scripts
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
* EZTLIST1 - CREATE CUSTOMER TELEPHONE LIST * - cust#, name, tel#, contact * - demo EasyTrieve conversion to uvcopy * - by Owen Townsend, UV Software, Oct2011, updt Mar2015 FILE CUSTMAS SYS004 F(256) CUS-REC 1 256 A CUS-NO 1 6 N CUS-NAME 11 25 A CUS-ADRS 36 25 A CUS-CITY 61 17 A CUS-PROV 78 02 A CUS-POSTAL 81 10 A CUS-TEL 91 12 A CUS-CONTACT 103 18 A * FILE EZTLIST SYSLST F(80) TEL-REC 1 80 A TEL-CUSNO 1 6 N TEL-NAME 9 25 A TEL-NUM 36 12 A TEL-CONTACT 50 68 A REC-COUNT W 5 N * JOB INPUT CUSTMAS FINISH CUSTEOF MOVE SPACES TO TEL-REC MOVE CUS-NO TO TEL-CUSNO MOVE CUS-NAME TO TEL-NAME MOVE CUS-TEL TO TEL-NUM MOVE CUS-CONTACT TO TEL-CONTACT ADD 1 TO REC-COUNT PUT EZTLIST GO TO JOB * CUSTEOF. PROC DISPLAY 'TOTAL RECORDS' REC-COUNT END-PROC
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
# eztlist1 - uvcopy job converted from EasyTrieve by Vancouver Utilities # - ez2uvcopy run on 2015/03/26_18:29:34 at UV_Software # See documentation at www.uvsoftware.ca/eztrvetc.htm # - or www.uvsoftware.ca/jclcnv1demo.htm#Part_6 # was=a8192b8192c8192d8192e8192f8192g8192h8192q24000s8192 #<-- set area memories #* eztlist1 - create customer telephone list #* - cust#, name, tel#, contact #* - demo easytrieve conversion to uvcopy #* - by owen townsend, uv software, oct2011, updt mar2015 #file custmas sys004 f(256) fili1=?${CUSTMAS},rcs=00256,typ=RSF #* #file eztlist syslst f(80) filo2=?${EZTLIST},rcs=00080,typ=LSTt #* lodc1=q0(48) $custmas =a0(256c) $cus-rec =a0(256c) $cus-no =a0(6z) $cus-name =a10(25c) $cus-adrs =a35(25c) $cus-city =a60(17c) $cus-prov =a77(2c) $cus-postal =a80(10c) $cus-tel =a90(12c) $cus-contact =a102(18c) $eztlist =b0(80c) $tel-rec =b0(80c) $tel-cusno =b0(6z) $tel-name =b8(25c) $tel-num =b35(12c) $tel-contact =b49(68c) $rec-count =s0(5z) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
@run opn all #job input custmas finish custeof job010 get fili1,a0 get next record skp<= 2 bal custeof skp job900 add $ca1,1 count records in file # clr $tel-rec,' ' mvf $tel-cusno,$cus-no mvf $tel-name,$cus-name mvf $tel-num,$cus-tel mvf $tel-contact,$cus-contact add $rec-count,1 put filo2,b0 skp job010 #* #*EJect custeof nop msgv1 ' TOTAL RECORDS $rec-count ' ret= nofin ret= dummy subrtn if no FINISH on job job900 cls all end all files eoj
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
Easytrieve conversions will probably be performed following the JCL conversions (documented in JCLcnv1demo.htm &/or VSEJCL.htm).
JCLcnv1demo.htm#Part_3 instructed you to setup user 'mvstest' (/home/mvstest), copy supplied demo files from /home/uvadm/mvstest/..., run the conversions,& execute the resulting Korn shell scripts.
If you did the above, you are ready to begin the Easytrieve conversions, because mvstest includes the directories & files required for the easytrieve test/demos.
If you have not already setup 'mvstest', the following instructions will show you how to setup 'testlibs' & 'testdata' in your homedir, copy the demo files, run the conversions,& execute the resulting uvcopy jobs.
The following instructions will assume your userid is 'userxx'.
You must setup your profile to use the Vancouver utilities as instructed in admjobs.htm#Part_1.
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
Note |
|
#1. Login userxx ---> /home/userxx
#2a. mkdir testlibs - make superdir for library subdirs ==============
#2b. mkdir testlibs - make superdir for library subdirs ==============
#3a. cdl <-- change into libraries using alias 'cdl' (in common_profile) === alias cdl='cd $RUNLIBS' & RUNLIBS=$HOME/testlibs
#3b. mkdir ezt0 ezt1 ezt3 ezts tmp ============================= - make subdirs required for Easytrieve conversions - see illustrations & descriptions on the next page
#3c. cp $UV/mvstest/testlibs/ezt0/* ezt0 =================================== - copy supplied test/demo easytrieve source files - use $UV (usually /home/uvadm) in case your site is non-standard
#4a. cdd <-- change into libraries using alias 'cdd' (in common_profile) === alias cdd='cd $RUNDATA' & RUNDATA=$HOME/testdata
#4b. mkdir data1 jobtmp rpts tmp =========================== - make subdirs required for Easytrieve executions - see illustrations & descriptions on the next page
#4c. cp $UV/mvstest/testdata/data1/* data1 ===================================== - copy supplied test/demo DATA files - eztlist1 uses only data1/customer.master - but copies several small files in case of other demos
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
/home/userxx <-- can setup in your home-dir :----testlibs - profile contains: export RUNLIBS=$HOME/testlibs : :----ezt0 - subdir for Easytrieve source from the mainframe : : :----eztlist1 - Easytrieve source for demo : :----ezt1 - cleaned up source (col 73-80 cleared) : :----ezt2 - converter output (uvcopy jobs) : :----ezts - copy here before any changes : : - protect overwriting edits on conversion reruns : :----tmp - subdir often required by Vancouver Utilities - to keep working directory clean
:----testdata - profile: export RUNDATA=$HOME/testdata : :----data1 - subdir for data files : : :----customer.master - input for eztlist1 : : :----customer.phone.list - output report : :----rpts : : :----customer.phone.list - optional, reports in separate subdir : : : :----tmp - subdir required for 'uvhd' etc
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
The following Operating Instructions are based on the supplied demo 'eztlist1' which was listed on page '1B1' & the expected converter output on page '1B2'.
#1. Login userxx ---> /home/userxx
#2. cdl <-- change into libraries using alias 'cdl' (in common_profile) === alias cdl='cd $RUNLIBS' & RUNLIBS=$HOME/testlibs
#3. uvcopy cleanup,fili1=ezt0/eztlist1,filo1=ezt1/eztlist1,uop=q0i7g8n1 =================================================================== - cleanup mainframe easytrieve source (clear cols 73-80)
#4. uvcopy ez2uvcopy,fili1=ezt1/eztlist1,filo1=ezt2/eztlist1 ======================================================== - convert mainframe easytrieve source to uvcopy code
#5. cp ezt2/eztlist1 ezts ===================== - copy to ezts before any changes that may be required - protects overwriting your edits in case of conversion reruns
Note |
|
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
The operating instructions to convert ALL files in a directory are actually easier than for 1 file at a time, because we only need to specify the directory names (vs individual files).
Note that 'uvcopy' is replaced by 'uvcopyx' which is a script that repeats the specified uvcopy job (cleanup or ez2uvcopy) for all files in the directory.
#1. Login userxx ---> /home/userxx
#2. cdl <-- change into libraries using alias 'cdl' (in common_profile) === alias cdl='cd $RUNLIBS' & RUNLIBS=$HOME/testlibs
#3. uvcopyx cleanup ezt0 ezt1 uop=q0i7g8n1 ====================================== - cleanup mainframe easytrieve sources (clear cols 73-80)
#4. uvcopyx ez2uvcopy ezt1 ezt2 uop=q0i7 ==================================== - convert mainframe easytrieve sources to uvcopy jobs
#5. cp ezt2/* ezts <-- do NOT do this ==============
Note |
|
#5a. cp ezt2/eztlist1 ezts ===================== - copy 1 at a time only when we ready to edit/test/debug each job - protects overwriting your edits in case of conversion reruns
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
After automatic conversion by 'ez2uvcopy', many jobs will execute with no manual changes, but some may require changes. Here are the possible changes we are aware of & some of these may be automated in future.
IF FIELDA EQ 'A', 'B', 'C' <-- easytrieve cmc $fielda,'A' <-- auto conversion to uvcopy tst $fields,'ABC' <-- manual correction
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
#1. login userxx --> /home/userxx
#2. cdd <-- change into data dirs using alias 'cdd' (in common_profile) === alias cdd='cd $RUNDATA' & RUNDATA=$HOME/testdata
#3. Export Logical filenames to Physical filenames
#3a. export CUSTMAS=data1/customer.master <-- demo file supplied ==================================== - see listing below #3b. export EZTLIST=rpts/customer.phone.list <-- output file -======================================
The converted uvcopy job (listed on page '1B2') defines the files as:
fili1=${CUSTMAS} <-- $symbol replaced by export value from above filo1=${EZTLIST} <-- $symbol replaced by export value from above
#4. uvcopy eztlist1 <-- execute the job using exported filenames ===============
#4a. uvcopy eztlist1,fili1=data1/cutsomer/master,filo1=rpts/customer.phone.list ==========================================================================
See Input records & Output report listed on teh next page -->
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page
The input file is provided in /home/uvadm/dat1/custmas1. The same file is also provided in /home/uvadm/mvstest/testdata/data1/customer.master for the test/demo. This file contains 24 packed decimal fields & cannot be displayed or printed by normal unix/linux utilities (vi,lp,etc). Here is the 'uvhd' of first record:
uvhd dat1/custmas1 r256 =======================
10 20 30 40 50 60 r# 1 0123456789012345678901234567890123456789012345678901234567890123 0 130140 EVERGREEN MOTORS LTD. 1815 BOWEN ROAD NANA 3333332222454545444244545524542222233332445442544422222222224444 130140000056527255E0DF4F230C44E0000181502F75E02F140000000000E1E1 64 IMO BC V9S1H1 250-754-5531 LARRY WRENCH ..4V|... 4442222222222442535343222233323332333324455525544442222201357000 9DF00000000002306931810000250D754D55310C12290725E38000000246C000 128 .........W0....`........)X}..f3.....\.................4V}...f... 0000000005300016000000002570063100095000000000000000013570016000 0C0000C0270D0540C0000C0098D0263C0444C0000C0000C0000C0246D0056C00 192 ...............................f.....<........f.C 19950531 0000008900000000880000000018000680001300000000694233333333222222 00C0026C0000C0023C0000C0083C0056D0012C0000C0016D3019950531000000
130140 EVERGREEN MOTORS LTD. 250-754-5531 132588 GEECOE GENERATOR SERVICES 604-278-4488 139923 JOHNSTONE BOILER & TANKS 604-320-1845 142175 LILLY ELECTRIC (1973) LTD 604-534-9787 145264 MAGRATH SUPPLIES LTD. 250-843-2987 147615 O'CONNER R.V. CENTRE 604-858-4161 - - - etc (22 lines removed) - - - 318833 TOP NOTCH CONSTRUCTION 403-385-2965 400002 ACKLANDS LTD 250-705-2583 401210 COAST RANGE CONSTRUCTION 604 681 2626 402875 HULL, DON & SONS LTD. 250-836-2964 403887 MILNER, LARRY 250-351-9472 406082 PRECAM RENTALS LTD: 250-637-6351 TOTAL RECORDS 00032
Goto: Begin this doc , End this doc , Index this doc , Contents this library , UVSI Home-Page