GST (Goods and Services Tax) Testing Utility (VTAM)
The GST Testing Utility locates up to five fields that you specify on output screens and makes them available for use in REXX routines that you write. The fields include an item code, three user-defined fields, and an actual result.
The GST Testing Utility also allows you to read a VSAM file in a REXX routine. The VSAM read command, HSCMDS "GETVSAMR", allows random access of an external VSAM file.
To start the GST testing utility, select option 8 GST from the Script Processors menu.
GST Testing Utility Main Options screen. ----------------------------- Script Processors ------------------------------- .
. Option ===> 8 .
. .
. .
. 1 REXX Processor Create "Smart" Script(s) .
. 2 Date Change Change Year Formats for Date Testing .
. 3 Date Find Report Location(s) of Date Field(s) .
. 4 Input Field Formats Change Input Fields to Row/Column Format .
. 5 MultiChange Processor Update Scripts to Reflect Application Changes .
. 6 Security Script Processor Locate and Modify Passwords .
. 7 Euro Euro Script Utility .
. 8 GST GST Testing Utility .
. 9 Message Filtering Message Filtering Utility .The REXX Script Processor * GST Testing Utility screen appears.
GST Testing Utility Main Options screen. ----------------- REXX Script Processor * GST Testing Utility ----------------- .
. Option ===> .
. .
. 1 GST Testing Utility .
. Go Begin Execution .
. .
. Specify the name of the control file below, then press Enter key .
. .
. Project . . . .
. Group . . . . .
. Type . . . . .
. Member. . . . .
. .
. Other Data Set Name: .
. Data Set Name . . . 'PMIJSS0.JMS.CONTROL.FILE(FILE1)' .
. .
. Execution Parameters: .
. GST VSAM DATASET NAME . . . .
. (full name) .
. User GST Proc Name . . . (Default: GSTPROC) .- Enter a GST VSAM Dataset Name — the VSAM data set the new script will retrieve. If you do not provide this name, Performance Test inserts ‘xxxxxxxx.xxxxxxxx.xxxxxxxx’.
- Enter a User GST Proc Name — the REXX routine name and member name of the output script data set to call from the new script. If you do not provide this name, Performance Test uses GSTPROC.
Select whether you want to execute an existing request or go to an entry screen to create or update GST requests.
- 1 accesses the REXX Script Processor - GST screen, where you can add, update, delete, or browse GST requests.
- GO executes the GST request. This creates a new script containing the information specified in the GST request.
REXX Script Processor * GST screen
. ------------------------- REXX Script Processor * GST ------------------------- .
. Option ===> Scroll ===> PAGE .
. .
. Add Create New GST Entries .
. .
. Line Cmds: U Update D Delete B Browse .
. .
. Message Variables .
. Message Text Location in LIST Description .
. ------------------------------------------------------------------------------- .
. ** NONE ** .
. ******************************* BOTTOM OF DATA ******************************** .- Select whether to Add, Update, Delete, or Browse the GST request.
Add a request
The REXX Script Processor * GST screen displays existing GST entries stored in the control file. If no entries exist, ** NONE ** is displayed.
To add a new entry, type ADD on the command line and press Enter. The REXX Script Processor * GST ADD screen appears. If you have an existing request, the new request will carry over the old request’s information. If not, all of the fields will be blank.
GST Add New Entry screen. ----------------------- REXX Script Processor * GST ADD ----------------------- .
. Command ===> .
. .
. ENTER Add item END End with save of added items .
. CANcel End without save of added items .
. .
. Enter optional GST entry description: .
. Description . . . . .
. .
. Describe the GST screen id and Message text: .
. Screen ID . . . . . * .
. ID Location . . . . ** , ** (Row,Col) .
. Message Text. . . . .
. Message Location. . ** , ** (Row,Col) .
. .
. Describe the GST variables: Are the variables in a list? . . . N (Y or N) .
. If Yes: Top Row . . Bottom Row . . .
. .
. GST Item Location . . . , (Row,Col) GST Item Length . . . .
. Value A Location . . . , (Row,Col) Value A Length . . . .
. Value B Location . . . , (Row,Col) Value B Length . . . .
. Value C Location . . . , (Row,Col) Value C Length . . . .
. Result Location . . . , (Row,Col) Result Length . . . .- Enter a brief Description of the GST request. This field is optional.
- Enter the name of the screen where the information is located in the Screen ID field. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. Wildcards are not allowed. The wildcard character is treated as an actual screen ID.
- In the ID Location field, specify where the Screen ID name is found on the screen, in row,column format.
- Enter the Message Text you want to find.
- In the Message Location field, specify where the message text is located on the screen, in row,column format.
- Enter Y or N in the Are the Variables in a List? field.
- If all of the items you are looking for are in a list, enter Y. If you enter Y, also include the top and bottom row of the list. You will be prompted to include this information if you do not add it before pressing Enter. In addition, if you enter Y, Performance Test will clear all information in the Row area of the locations at the bottom of this screen.
- If the items you are looking for are not in a list, enter N.
- Enter the row and column location of the items you want to find in the Location fields. You do not need to use all five variables — you can use any combination of the five.
- Enter the length of the items you want to find in the Length fields.
- Press Enter to add the request. Performance Test will prompt you for any missing information.
- Press End to save all changes and return to the REXX Script processor * GST screen, or press Cancel to leave the screen without saving your changes.
Update a request
The REXX Script Processor * GST screen displays existing GST entries stored in the control file. If no entries exist, ** NONE ** is displayed.
To update a request, type U next to the request and press Enter. The REXX Script Processor * GST UPDATE screen appears allowing you to change any of the specified information and resave the request.GST Update screen
. ---------------------- REXX Script Processor * GST UPDATE --------------------- .
. Command ===> .
. .
. Cancel End Update Without Save .
. END Update Entry .
. .
. Enter optional GST entry description: .
. Description . . . . SAMPLE .
. .
. Describe the GST screen id and Message text: .
. Screen ID . . . . . * .
. ID Location . . . . ** , ** (Row,Col) .
. Message Text. . . . JAKE .
. Message Location. . ** , ** (Row,Col) .
. .
. Describe the GST variables: Are the variables in a list? . . . N (Y or N) .
. If Yes: Top Row . . Bottom Row . . .
. .
. GST Item Location . . . , (Row,Col) GST Item Length . . . .
. Value A Location . . . , (Row,Col) Value A Length . . . .
. Value B Location . . . , (Row,Col) Value B Length . . . .
. Value C Location . . . , (Row,Col) Value C Length . . . .
. Result Location . . . , (Row,Col) Result Length . . . .- Enter a brief Description of the GST request. This field is optional.
- Enter the name of the screen where the information is located in the Screen ID field. Together, the screen ID and message text determine the output screen where the (up to) five fields you selected are. This field is case sensitive — the uppercase and lowercase characters must match the screen ID in the script exactly. Wildcards are not allowed. The wildcard character is treated as an actual screen ID.
- In the ID Location field, specify where the Screen ID name is found on the screen, in row,column format.
- Enter the Message Text you want to find. Together, the screen ID and message text determine the output screen where the (up to) five fields you selected are.
- In the Message Location field, specify where the message text is located on the screen, in row,column format.
- Enter Y or N in the Are the Variables in a List? field.
- If all of the items you are looking for are in a list, enter Y. If you enter Y, also include the top and bottom row of the list. You will be prompted to include this information if you do not add it before pressing Enter. In addition, if you enter Y, Performance Test will clear all information in the Row area of the locations at the bottom of this screen.
- If the items you are looking for are not in a list, enter N.
- Enter the row and column location of the items you want to find in the Location fields. You do not need to use all five variables — you can use any combination of the five.
- Enter the length of the items you want to find in the Length fields.
- 1 Press Enter to update the request. Performance Test will prompt you for any missing information.
- 1 Press End to save all changes and return to the REXX Script processor * GST screen, or press Cancel to leave the screen without saving your changes.
Browse a request
The REXX Script Processor * GST screen displays existing GST entries stored in the control file. If no entries exist, ** NONE ** is displayed.
To browse a request, type B next to the request and press Enter. The REXX Script Processor * GST BROWSE screen appears allowing you to view all of the information pertaining to a request. You cannot change any of the information on this screen.
GST Browse screen. ---------------------- REXX Script Processor * GST BROWSE --------------------- .
. Command ===> .
. .
. END End Browse .
. Next Browse Next Entry .
. Prev Browse Previous Entry .
. .
. The information in this GST entry is shown below: .
. .
. Description . . . . . . SAMPLE .
. Screen ID . . . . . . . * .
. ID Location . . . . . . ** , ** (Row,Col) .
. Message Text. . . . . . JAKE .
. Message Location. . . . ** , ** (Row,Col) .
. Variables in a List . . N .
. Top Row of the List . . Bottom Row of the List . . .
. GST item Location . . . , (Row,Col) Length . . .
. Value A Location . . . , (Row,Col) Length . . .
. Value B Location . . . , (Row,Col) Length . . .
. Value C Location . . . , (Row,Col) Length . . .
. Result Location . . . , (Row,Col) Length . . .- Press NEXT to view the next GST request, press PREV to view the previous GST request, or press End to return to the GST Entry Listing screen.
Delete a request
The REXX Script Processor * GST screen displays existing GST entries stored in the control file. If no entries exist, ** NONE ** is displayed.
- To delete a request, type D next to the request and press Enter. The Confirm Delete screen appears.
- Press End to cancel the delete and return to the previous screen, or leave the command line blank and press Enter, to delete the request.
Execute the requests
When you execute the GST utility, Performance Test runs all existing requests. If you do not want to run a specific request, you must delete it before you execute the utility.
To execute the GST utility, on the REXX Script Processor * GST screen, type GO on the command line and press Enter. The GST Execution screen appears.
Script Processor * Execution screen. ------------------------- Script Processor * Execution ------------------------ .
. Command ===> .
. .
. blank Continue .
. .
. Type the names of the script data sets below, then press Enter key .
. Do not specify the script/member name .
. .
. Input Script Data Set: .
. Project . . . .
. Group . . . . .
. Type . . . . .
. .
. Other Partitioned Data Set: .
. Data Set Name . . . 'PMIJSS0.HIPER.VTAM.SCRIPTS' .
. .
. Output Script Data Set: .
. Project . . . .
. Group . . . . .
. Type . . . . .
. Other Partitioned Data Set: .
. Data Set Name . . . 'PMIJSS0.HIPER.VTAM.SCRIPTS.OUTPUT' .- Enter the Input Script Data Set (PDS containing the recorded script), Other Partitioned Data Set, and Output Script Data Set (PDS to contain the processed output script. Do not specify the script/member name.
Press Enter to continue. The following screen appears.
Script Processor * Execution Processing screen. ------------------------- Script Processor * Execution ------------------------ .
. Option ===> .
. .
. F Initiate Processing In Foreground. .
. B Initiate Processing In Background. .
. .
. Input Script Data Set: 'PMIJSS0.JMS.SCRIPTS' .
. Output Script Data Set: 'PMIJSS0.HIPER.VTAM.SCRIPTS.OUTPUT' .
. .
. INPUT SCRIPT NAME OUTPUT SCRIPT NAME .
. SAMP0000 SAMP0000 .- The Input Script Data Set field specifies the script from the input PDS to be processed. Enter an asterisk (*) to process all members in the PDS.
- The Output Script Data Set field specifies the processed output script name to be stored in the output PDS. If an * is specified as the input script, then you must also specify an * in the output script name field.
- Enter Y in the Replace Existing Members field to overwrite an existing member.
- When you are ready to begin processing, type F on the command line and press Enter to process the script in TSO foreground, or type B to process the script in TSO background.
Examples
Following are examples of an original script, a script processed using the GST utility, and a userproc created by the GST utility.
Original Script
* CREATED BY USER: USER25 TPF: H01AC054 TIME: 14:35 DATE: 02/16/07 *
* DESC: GST utility demo script using plas transaction *
************************************************************************
* LU: CW010002 TPF: H01AC054 LOGMODE: SNX32702 *
************************************************************************
<VERSION>7
<IMSUNLOK>N
<OUTPUT>0000001
<RESPONSE>00.00.011
<S01>
<S02>
<S03>
<S04>
<S05>
<S06>
<S07>
<S08>
<S09>
<S10>
<S11>
<S12>
<S13>
<S14>
<S15>
<S16>
<S17>
<S18>
<S19>
<S20>
<S21>
<S22>
<S23>
<S24>
</OUTPUT>
<BASETIME>02/16/07 14:35:54.677
<INPUT>0000002
<THINK>00.04.238 AT 00:00:00.000
<KEY>ENTER
<CURSOR>00,04
<I01>"plas "
</INPUT>
<OUTPUT>0000002
<RESPONSE>00.00.605
<S01>PLAS_____- ENTER EMPLOYEE NUMBER
<S02>
<S03> *** COMPUWARE CORPORATION ***
<S04> CICS PLAYBACK SAMPLE TRANSACTION
<S05>
<S06> ENTER DESIRED EMPLOYEE NUMBER ABOVE:
<S07> VALID EMPLOYEE NUMBERS ARE:
<S08> 11111
<S09> 22222
<S10> 33333
<S11> 44444
<S12> 55555
<S13>
<S14>
<S15>
<S16>
<S17> DATE: 02/17/07
<S18> TIME: 14:35:55
<S19>
<S20>
<S21>
<S22>
<S23>
<S24> COPYRIGHT (C) COMPUWARE CORP. ALL RIGHTS RESERVED
</OUTPUT>
<THINK>00.02.312 AT 00:00:45.583
<KEY>ENTER
<CURSOR>00,06
<I01>"55555"
</INPUT>
<OUTPUT>0000011
<RESPONSE>00.00.125
<S01>PLAS
<S02>
<S03> ***COMPUWARE CORPORATION ***
<S04> CICS PLAYBACK SAMPLE TRANSACTION
<S05>
<S06> EMPLOYEE NUMBER: 55555
<S07> EMPLOYEE NAME: MR. JOE GREEN
<S08> HOURS WORKED: 50
<S09> HOURLY RATE: 9.50
<S10> GROSS PAY: 475.00
<S11>
<S12>
<S13>
<S14>
<S15>
<S16>
<S17> DATE: 02/16/07
<S18> TIME: 14:36:41
<S19>
<S20>
<S21> *** TRANSACTION COMPLETE ***
<S22> PRESS ENTER TO CONTINUE
<S23> OR CLEAR TO END
<S24>
</OUTPUT>
<INPUT>0000013
<THINK>00.04.318 AT 00:00:52.490
<KEY>CLEAR
</INPUT>
Script Processed Using GST Utility
* THIS SCRIPT HAS BEEN MODIFIED BY THE HIPERSTATION SCRIPT PROCESSOR *
************************************************************************
************************************************************************
* CREATED BY USER: USER25 TPF: H01AC054 TIME: 14:35 DATE: 02/17/07 *
* DESC: GST utility demo script using plas transaction *
************************************************************************
* LU: CW010002 TPF: H01AC054 LOGMODE: SNX32702 *
************************************************************************
<VERSION>7
/**********************************************************************/
/* GST Processing REXX inserted 29 Jun 2007 10:26:07 */
/**********************************************************************/
CALL gst_handle_init
<IMSUNLOK>N
<OUTPUT>0000001
<RESPONSE>00.00.011
<S01>
<S02>
<S03>
<S04>
<S05>
<S06>
<S07>
<S08>
<S09>
<S10>
<S11>
<S12>
<S13>
<S14>
<S15>
<S16>
<S17>
<S18>
<S19>
<S20>
<S21>
<S22>
<S23>
<S24>
</OUTPUT>
<BASETIME>02/17/07 14:35:54.677
<INPUT>0000002
<THINK>00.04.238 AT 00:00:00.000
<KEY>ENTER
<CURSOR>00,04
<I01>"plas "
</INPUT>
<OUTPUT>0000002
<RESPONSE>00.00.605
<S01>PLAS_____- ENTER EMPLOYEE NUMBER
<S02>
<S03> *** COMPUWARE CORPORATION ***
<S04> CICS PLAYBACK SAMPLE TRANSACTION
<S05>
<S06> ENTER DESIRED EMPLOYEE NUMBER ABOVE:
<S07> VALID EMPLOYEE NUMBERS ARE:
<S08> 11111
<S09> 22222
<S10> 33333
<S11> 44444
<S12> 55555
<S13>
<S14>
<S15>
<S16>
<S17> DATE: 02/17/07
<S18> TIME: 14:35:55
<S19>
<S20>
<S21>
<S22>
<S23>
<S24> COPYRIGHT (C) 2007 COMPUWARE CORP. ALL RIGHTS RESERVED
</OUTPUT>
<INPUT>0000003
<THINK>00.02.312 AT 00:00:45.583
<KEY>ENTER
<CURSOR>00,06
<IO1>”55555”
</INPUT>
<OUTPUT>0000003
<RESPONSE>00.00.125
<S01>PLAS
<S02>
<S03> ** COMPUWARE CORPORATION ***
<SO4> CICS PLAYBACK SAMPLE TRANSACTION
<S05>
<S06> EMPLOYE NUMBER: 55555
<S07> EMPLOYE NAME: MR. JOE GREEN
<S08> HOURS WORKED: 50
<S09> HOURLY RATE: 9.50
<S10> GROSS PAY: 475.00
<S11>
<S12>
<S13>
<S14>
<S15>
<S16>
<S17> DATE: 02/16/07
<S18> TIME: 14:36:41
<S19>
<S20>
<S21> *** TRANSACTION COMPLETE ***
<S22> PRESS ENTER TO CONTINUE
<S23> OR CLEAR TO END
<S24>
</OUTPUT>
CALL gst handle
<INPUT>0000004
<THINK>00.04.318 AT 00:00:52.490
<KEY>CLEAR
</INPUT>
/***************************************************************
/* GST Processing REXX inserted 29 Jun 2007 10:26:07 *
/***************************************************************
gst_handle_exit:
/*GST VSAM file will be freed with ddname GSTVSAM.*/
ADDRESS HSCMDS “FREE F(GSTVSAM)”
EXIT
gst_handle_init:
/* GST VSAM file will be allocated with ddname GSTVSAM.*/
/*Verify and correct VSAM dataset name */
ADDRESS HSCMDS “ALLOC F(GSTVSAM) DA(USER25.TRAINING.GSTKSDS) SHR REUSE”
HS_VSAM_DD=’GSTVSAM’
RETURN
gst_handle:
IF TPFNAME = '' THEN RETURN /* Session Demo */
CALL format_the_screen
IF SUBSTR(the_screen,(01-1)*columns+02,4) = 'PLAS' &,
SUBSTR(the_screen,(10-1)*columns+05,5) = 'GROSS' THEN
DO
CALL gst_process_1
RETURN
END
IF SUBSTR(the_screen,(01-1)*columns+02,4) = 'PLAS' &,
SUBSTR(the_screen,(10-1)*columns+05,5) = 'GROSS' THEN
DO
CALL gst_process_2
RETURN
END
RETURN
gst_process_1:
/*Assigning GST variables */
gst_process_id = 1
gst_list_proc = ‘N’
item_no = SUBST(the_screen.(06-1)*columns+22.05)
value_a = SUBST(the_screen.(07-1)*columns+22.15)
value_b = SUBST(the_screen.(08-1)*columns+26.04)
value_c = SUBST(the_screen.(09-1)*columns+26.07)
value_r = SUBST(the_screen.(10-1)*columns+26.07)
IF item_no <> ‘ ‘ THEN
CALL process_a_gst_item
RETURN
gst_process_2:
/* Assigning GST variables */
gst_process_id = 2
gst_list_proc = 'Y'
gst_top_row = 10
gst_bottom_row = 18
DO gi = gst_top_row to gst_bottom_row
item_no = SUBSTR(the_screen,(gi-1)*columns+22,05)
value_a = SUBSTR(the_screen,(gi-1)*columns+22,15)
value_b = SUBSTR(the_screen,(gi-1)*columns+26,04)
value_c = SUBSTR(the_screen,(gi-1)*columns+26,07)
value_r = SUBSTR(the_screen,(gi-1)*columns+26,07)
IF item_no = ' ' THEN LEAVE
CALL process_a_gst_item
END
RETURN
process_a_gst_item:
/***************************************************/
/* Now set parm to call PLASPROC . */
/* PLASPROC is first generated by the GST feature */
/* in the OUTPUT script dataset and */
/* may be modified by the client */
/***************************************************/
parm = item_no||'~'||value_a||'~'||value_b||'~'|| ,
value_c||'~'||value_r||'~'|| ,
gst_process_id||'~'||OUTPUTNUM||'~' ,
gst_list_proc||'~'||gi||'~'
CALL PLASPROC parm
RETURN
format_the_screen:
the_screen = TRANSLATE(screen,,XRANGE('00'x,'3F'x))
RETURN
USERPROC Created by the GST Utility
/* MEMBER: PLASPROC */
/* CREATED: 29 JUN 2007 */
/* DESCRIPTION: This member is a REXX program */
/* used to process GST related information. */
PLASPROC
PARSE ARG arg_parm
PARSE VAR arg_parm item_no ‘~’ value_a ‘~’ value_b ‘~’,
value_c ‘~’ value_r ‘~’.
gst_process_id ‘~’ OUTPUTNUM ‘~’,
gst_list_proc ‘~’ gi ‘~’
/*now process a gst item */
say ‘ ******* GST variables ******************’
say ‘ gst_process_id = ‘gst_process_id
say ‘ get_list_proc = ‘gest_list_proc
say ‘ gi (row) = ‘gi
say ‘ Variables Length Data ‘
say ‘ -------- ----- ----- '
say ‘ item_no : LENGTH(item_no) ‘ ‘ item_no
say ‘ value_a : LENGTH(value_a) ‘ ‘ value_a
say ‘ value_b : LENGTH(value_b) ‘ ‘ value_b
say ‘ value_c : LENGTH(value_c) ‘ ‘ value_c
say ‘ value_r : LENGTH(value_r) ‘ ‘ value_r
say ‘*****************************************’
HS_VSAM_DD = ‘GSTVSAM’
HS_VSAM_KEY = item_no
HS_VSAM_RC = 9999 /* set as bad return code */
ADDRESS HSCMDS “GETVSAMR”
/*****************************************/
/* HS_VSAM_RC : Notes */
/* 0 ; Successful */
/* 4 ; No record found */
/* 8 ; HS_VSAM_DD problem */
/* 12 ; HS_VSAM_KEY problem */
/* 16 ; HS_VSAM_REC problem */
/* 20 ; HS_VSAM_DD OPEN error */
/* 24 ; Not licensed */
/*****************************************/
IF HS_VSAM_RC <> 0 then
DO
say ‘ Non-zero HS_VSAM_RC received : ‘HS_VSAM_RC
say ‘ Return code of 4 means NO RECORD FOUND.’
END
say “HS_VSAM_REC : ‘HS_VSAM_REC
/*add the code to use HS-VSAM REC here */
RETURN_VALUE = 0
RETURN RETURN_VALUE