Because of its structure, Ideal Web Interface assumes by default that all programs in the run-unit are in PROD status; therefore any subprogram of the web application must be in production status before it can be used through the interface.
However, test versions can be easily used.
Using a test version of the main program of an Ideal web transaction requires a modification of the SCWBTRAN table. In fact, positions 12 to 14 of TRNDATA parameter of SCWEBTB macro can contain a version number or PRD, as can be read on Ideal documentation:
Specifies the system, name, and version of the CA Ideal for Datacom program to be called to process this request. Bytes 1 to 3 are the system ID, 4 to 11 are the program name, and 12 to 14 the version number or "PRD". Trailing blanks should be entered if the program name is less than 8 characters. Note that if the program is in PROD status, the version must be specified as PRD and not as a numeric value. Bytes 16 to 23 may contain the name of a member belonging to the Default User that will be used as a sign-on member in place of the default “SIGNON”. Commands in this member (e.g. ASSIGN commands for subprogram versions) will be executed prior to the SELECT and RUN commands. Note that byte 15 is always blank.
So, in order to run version 004 of WEBPGM01 in $ID Ideal system when executing WEB1 transaction, we have to code the macro in the following way:
SCWEBTB TYPE=ENTRY,TRANID=WEB1,TRNDATA='$IDWEBPGM01 004',DFLTUSR=WWW
In order to use non-PROD versions of subprograms we have to modify the Ideal member being executed by the web transaction. The name of member and the related Ideal user can be found on the SCWEBTB entry of the transaction; for example if the macro is coded as follows:
SCWEBTB TYPE=ENTRY,TRANID=WEB1,TRNDATA='$IDWEBPGM01 004 TESTMEMB',DFLTUSR=WWW
the member related to WEB1 transaction is WWW.TESTMEMB; if no member name is coded in bytes 16 to 23 of TRNDATA parameter, the member name defaults to SIGNON.
Once the member name is identified, it must be edited to add an ASSIGN command. Using our previous sample, if WEBPGM01 v 004 calls WEBPGM02 v 007 (same Ideal system), the ASSIGN command should read:
ASSIGN PGM WEBPGM02 SYS $ID V 007