TEAMCONNECTION INTEROPERABILITY WITH MVS AND SCLM Document Number TR 29.2231 Mike Petersen Jeri Petersen TeamConnection Integration IBM Software Solutions Research Triangle Park, N.C. (c) Copyright International Business Machines Corporation 1997. All rights reserved. ii TeamConnection and MVS/SCLM TRADEMARKS AND SERVICE MARKS The following terms are trademarks or service marks of the IBM Corporation in the United States or other countries: +---------------+---------------+---------------+---------------+ | IBM | | | | | | | | | | ISPF | | | | | | | | | | MVS | | | | | | | | | | OS/2 | | | | | | | | | | SCLM | | | | | | | | | | TeamConnection| | | | +---------------+---------------+---------------+---------------+ The following terms are trademarks or service marks of other com- panies: +---------------+---------------+---------------+---------------+ | Object Store | Object Design,|Inc. | | +---------------+---------------+---------------+---------------+ TRADEMARKS AND SERVICE MARKS iii iv TeamConnection and MVS/SCLM ABSTRACT This report describes techniques for interoperability between TeamConnection, MVS, and SCLM (Software Configuration and Library Manager) for application development. These techniques will help the application developer to: o run TeamConnection commands on a workstation from MVS o run TeamConnection commands on a workstation from an SCLM BUILD o run SCLM commands on MVS from a TeamConnection BUILD You might find TR 29.2196 "USING REXX COMMAND FILES WITH TEAMCONNECTION MVS BUILD SCRIPTS" to be a useful companion docu- ment. This document contains details regarding use of REXX command files on MVS for running compilers, linkage editors, and other products from a TeamConnection BUILD. The techniques described in this report for using SCLM with TeamConnection BUILD are not covered in TR 29.2196. The techniques in this report demonstrate: o how to change TeamConnection parts and run a TeamConnection BUILD from MVS: - use TeamConnection CHECKOUT to lock a part in the TeamConnection data base - edit a copy of the part in MVS - use TeamConnection CHECKIN to update the part in the TeamConnection data base - use TeamConnection BUILD to build the application o how to coordinate a BUILD between TeamConnection and SCLM: - construct an architecture definition member in SCLM that will result in a TeamConnection BUILD from the SCLM BUILD - construct a part in a TeamConnection build tree that will result in an SCLM BUILD from the TeamConnection BUILD o how to setup a TeamConnection command line interface from MVS: - run TeamConnection commands from SCLM - run TeamConnection commands from MVS ABSTRACT v ITIRC KEYWORDS o Build agent o Build processor o Build server o Configuration Management o Library Management o MVS o REXX o SCLM o TeamConnection Acknowledgements The author would like to acknowledge the following people who helped with developing the techniques presented in this report: Gary Greiner Marv Knight Marsha O'Brien Matt Seabold Beth Shelly Alain Vandermeersh Xavier Veroughstraete vi TeamConnection and MVS/SCLM ABOUT THE AUTHORS Mike Petersen is an IBM software developer for TeamConnection Integration in Raleigh, North Carolina. Mike was an SCLM soft- ware developer for six years. He has worked in systems, applica- tion, and other product programming areas. He also has had assignments with world trade, IBM faculty loan program, technical education, and technical support for marketing. Mike received a BS in mathematics with a physics minor in 1972 and an MS in computer science in 1974 from Purdue University. In 1979 he received an MBA from Marist College. Jeri Petersen is an IBM software developer for TeamConnection Integration in Raleigh, North Carolina. Jeri was in VisualAge Generator development for nine years. She has also worked in application development for IBM, as well as for other companies. Jeri received a BS in mathematics with a physics minor in 1972 from Purdue University, an MS in computer science in 1974 from Rutgers University, and an MBA in 1979 from Marist College. ABOUT THE AUTHORS vii viii TeamConnection and MVS/SCLM CONTENTS TRADEMARKS AND SERVICE MARKS . . . . . . . . . . . . . . . III ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . V ABOUT THE AUTHORS . . . . . . . . . . . . . . . . . . . . . VII FIGURES . . . . . . . . . . . . . . . . . . . . . . . . . XIII BEFORE WE BEGIN . . . . . . . . . . . . . . . . . . . . . . . 1 Disclaimer - Notice to Users of the Source Code Examples 2 OVERVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . 3 MVS TO TEAMCONNECTION . . . . . . . . . . . . . . . . . . . . 5 MVS to TeamConnection - CHECKOUT . . . . . . . . . . . . . 6 MVS to TeamConnection - CHECKIN . . . . . . . . . . . . . . 9 MVS to TeamConnection - BUILD . . . . . . . . . . . . . . 11 Putting it all Together . . . . . . . . . . . . . . . . . 13 Setup Requirements . . . . . . . . . . . . . . . . . . . 13 Step 1 - Workstation preliminary activities . . . . . . 13 Step 2 - MVS preliminary activities . . . . . . . . . . 14 Step 3 - TeamConnection CHECKOUT issued from MVS . . . . 17 Step 4 - Change the part in MVS . . . . . . . . . . . . 17 Step 5 - TeamConnection CHECKIN issued from MVS . . . . 18 Step 6 - TeamConnection BUILD issued from MVS . . . . . 19 Step 7 - Test the OS/2 Application . . . . . . . . . . . 19 Hints and Tips for Debugging . . . . . . . . . . . . . . 20 SCLM TO TEAMCONNECTION . . . . . . . . . . . . . . . . . . 21 SCLM Workstation BUILD - How it Works . . . . . . . . . . 21 SCLM Workstation BUILD - TeamConnection Commands . . . . 22 SCLM to TeamConnection - CHECKOUT . . . . . . . . . . . . 24 SCLM to TeamConnection - CHECKIN . . . . . . . . . . . . 24 SCLM to TeamConnection - BUILD . . . . . . . . . . . . . 24 Putting it all Together . . . . . . . . . . . . . . . . . 24 Setup Requirements . . . . . . . . . . . . . . . . . . . 25 Notes . . . . . . . . . . . . . . . . . . . . . . . . . 25 Step 1 - Workstation preliminary activities . . . . . . 25 Step 2 - MVS preliminary activities . . . . . . . . . . 26 Step 3 - TeamConnection CHECKOUT issued from SCLM BUILD 27 Step 4 - Change the part in SCLM . . . . . . . . . . . . 32 Step 5 - TeamConnection CHECKIN issued from SCLM BUILD . 35 Step 6 - TeamConnection BUILD issued from SCLM BUILD . . 37 Step 7 - Test the OS/2 Application . . . . . . . . . . . 40 TEAMCONNECTION TO SCLM . . . . . . . . . . . . . . . . . . 43 TeamConnection to SCLM - BUILD . . . . . . . . . . . . . 43 Setup Requirements . . . . . . . . . . . . . . . . . . . 43 Step 1 - Workstation preliminary activities . . . . . . 43 Contents ix Step 2 - MVS preliminary activities . . . . . . . . . . 44 Step 3 - Create TeamConnection builder and parts for an SCLM BUILD . . . . . . . . . . . . . . . . . . . . . . . 46 Step 4 - Connect TeamConnection parts in a build tree . 49 Step 5 - Create an SCLM controlled member. . . . . . . . 51 Step 6 - Create an SCLM architecture definition member . 53 Step 7 - Run an SCLM BUILD from a TeamConnection BUILD . 55 Step 8 - Examine SCLM build map . . . . . . . . . . . . 57 COORDINATED TEAMCONNECTION AND SCLM BUILD . . . . . . . . . 59 TeamConnection BUILD from SCLM . . . . . . . . . . . . . 59 SCLM BUILD from TeamConnection . . . . . . . . . . . . . 61 BUILD from SCLM or TeamConnection . . . . . . . . . . . . 65 Marking SCLM members out of date . . . . . . . . . . . . 65 Marking TeamConnection parts out of date . . . . . . . . 66 Doing the builds from SCLM . . . . . . . . . . . . . . . 66 Doing the builds from TeamConnection . . . . . . . . . . 66 Summary . . . . . . . . . . . . . . . . . . . . . . . . 67 SCLM ARCHITECTURE DEFINITION PARAMETERS FOR TEAMCONNECTION COMMANDS . . . . . . . . . . . . . . . . . . . . . . . . 71 Additional Parameters Recognized by the Extended FLMLTWST 71 Parameters to Avoid File Transfers . . . . . . . . . . . 73 General Purpose ACTION in the ACTINFO File . . . . . . . 74 Using the ACTION value in FLMTRNSL . . . . . . . . . . . 75 Using the Extended FLMLTWST with ISPF . . . . . . . . . . 77 APPENDIX A. TEAMCONNECTION PARTS AND SCRIPTS . . . . . . . 79 Demonstration Materials . . . . . . . . . . . . . . . . . 80 Simple C++ Programs . . . . . . . . . . . . . . . . . . . 82 Simple C++ Program Include . . . . . . . . . . . . . . . 82 SCLM Build Command Parameters . . . . . . . . . . . . . . 82 C++ Build Script . . . . . . . . . . . . . . . . . . . . 83 Linkage Edit Build Script . . . . . . . . . . . . . . . . 85 APPENDIX B. TEAMCONNECTION FAMILY SETUP . . . . . . . . . 89 Administration . . . . . . . . . . . . . . . . . . . . . 90 Preliminary Activities . . . . . . . . . . . . . . . . . 90 Create a New Family . . . . . . . . . . . . . . . . . . 91 Start the TeamConnection Client . . . . . . . . . . . . 94 Create Components . . . . . . . . . . . . . . . . . . . 96 Create a Release . . . . . . . . . . . . . . . . . . . . 96 Create Builders . . . . . . . . . . . . . . . . . . . . 97 Create Parsers . . . . . . . . . . . . . . . . . . . . . 100 Optional - Save the Family Database . . . . . . . . . . 100 Open a Feature and Create a Work Area . . . . . . . . . 102 Create Parts . . . . . . . . . . . . . . . . . . . . . . 103 Create Build Tree . . . . . . . . . . . . . . . . . . . 105 Start the OS/2 Build Agent and Build Processor . . . . . 108 Build the OS/2 Application . . . . . . . . . . . . . . . 109 Test the OS/2 Application . . . . . . . . . . . . . . . 110 Integrate the Work Area to the Release . . . . . . . . . 110 Create a Work Area for Application Development . . . . . 111 Optional - Save the Family Database . . . . . . . . . . 111 x TeamConnection and MVS/SCLM APPENDIX C. ISPF C/S WORKSTATION INSTALLATION USING TCP/IP 113 Workstation preparations . . . . . . . . . . . . . . . . 113 MVS . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 APPENDIX D. SCLM PROJECT DEFINITION SETUP . . . . . . . . 117 Create USERINFO and ACTINFO files . . . . . . . . . . . . 117 Create SCLM Language Definitions and Project Definition Data Sets . . . . . . . . . . . . . . . . . . . . . . . . 118 Create the SCLM Project Definition Member . . . . . . . . 119 Assemble and Link the Project Definition . . . . . . . . 120 Allocate the Data Sets Controlled by the SCLM Project Definition . . . . . . . . . . . . . . . . . . . . . . . 121 Create the VSAM Cluster for the SCLM Accounting File . . 121 APPENDIX E. TEAMCONNECTION BUILD SCRIPTS AND PARTS FOR SCLM 141 APPENDIX F. SCLM FLMLTWST EXTENSIONS FOR PARAMETERS . . . 149 Additional Keyword Parameters . . . . . . . . . . . . . . 150 Avoiding Transfer of Files . . . . . . . . . . . . . . . 151 Parameter for a CPARM Value . . . . . . . . . . . . . . . 152 Contents xi xii TeamConnection and MVS/SCLM FIGURES 1. Syntax - MVS REXX programs to run TeamConnection commands 5 2. tcchkout.rex TeamConnection CHECKOUT from MVS . . . . . 7 3. tcchkin.rex TeamConnection CHECKIN from MVS . . . . . 10 4. tcbuild.rex TeamConnection BUILD from MVS . . . . . . 12 5. TSO builder information for mvssclm family . . . . . . 47 6. Build tree with part sclmbild.prm . . . . . . . . . . 50 7. Referencing TeamConnection build trees from SCLM architecture definitions . . . . . . . . . . . . . . . 60 8. Referencing SCLM architecture definitions from TeamConnection build trees . . . . . . . . . . . . . . 63 9. Example of building from SCLM or TeamConnection . . . 68 10. ACTINFO - general purpose ACTION . . . . . . . . . . . 74 11. FLMLANGL and FLMTRNSL for General Purpose ACTION . . . 76 12. testpart.c C++ Program . . . . . . . . . . . . . . . . 82 13. testcopy.h C++ Include . . . . . . . . . . . . . . . . 82 14. sclmbild.prm SCLM BUILD command parameters . . . . . . 82 15. fhbocomp.cmd C++ Build Script . . . . . . . . . . . . 83 16. fhbolink.cmd Linkage Edit Build Script . . . . . . . . 86 17. OS2 builder information for mvssclm family . . . . . . 99 18. Build Tree for testpart.exe . . . . . . . . . . . . . 107 19. vsamallc.jcl SCLM VSAM account file allocation . . . . 123 20. userinfo.txt SCLM TeamConnection USERINFO file . . . . 124 21. actinfo.txt SCLM TeamConnection ACTINFO file . . . . . 125 22. dummy.lng SCLM DUMMY Language Definition . . . . . . . 128 23. checkout.lng SCLM TeamConnection CHECKOUT Language Definition . . . . . . . . . . . . . . . . . . . . . . 129 24. checkin.lng SCLM TeamConnection CHECKIN Language Definition . . . . . . . . . . . . . . . . . . . . . . 132 25. tcbuild.lng SCLM TeamConnection TCBUILD Language Definition . . . . . . . . . . . . . . . . . . . . . . 135 26. sclmtc.prj SCLM Project Definition . . . . . . . . . . 138 27. CLIST to concatenate a library containing FLMLTWST to SYSEXEC . . . . . . . . . . . . . . . . . . . . . . . 139 28. sclmcmd.jcl - build script to run MVS REXX programs 141 29. sclmcmd.rex - MVS REXX program to issue SCLM BUILD . . 142 30. exflmcmd.rex - MVS REXX program to issue SCLM flmcmd 146 31. Sample JCL Using LE/370 for RUNPGMT . . . . . . . . . 147 32. FLMLTWST - adding keyword parameter defaults . . . . . 150 33. FLMLTWST - avoiding transfer of input files . . . . . 151 34. FLMLTWST - avoiding transfer of output files . . . . . 151 35. FLMLTWST - CPARM value replaced by parameter value . . 152 Figures xiii xiv TeamConnection and MVS/SCLM BEFORE WE BEGIN This report is written for: o MVS users who need a TeamConnection command line interface for tools o SCLM users who need to run TeamConnection commands (specif- ically BUILD) o TeamConnection users who need to run SCLM commands (specif- ically BUILD) The MVS section is independent of the SCLM section although what happens "behind the scenes" is the same. You do not need to know SCLM to use the MVS section. (SCLM users typically have some MVS knowledge.) The MVS and SCLM users do not need extensive know- ledge of TeamConnection to use the techniques. Similarly, TeamConnection users do not need extensive knowledge of MVS and SCLM to use the techniques. In order to run the examples in this report you will need to: o have access to an MVS system with ISPF 4.2 (or newer) and the TeamConnection MVS build processor o have access to a workstation with TeamConnection Version 2.0 (or newer) o connect your MVS system to your workstation using the ISPF Client/Server function through TCP/IP or APPC o create a simple TeamConnection family with components, releases, work areas, parts, builders, and build trees (Appendix B, "TeamConnection Family Setup" on page 89 con- tains the instructions for this) o create REXX programs from examples in the appendices (a few changes to part, file, and data set names may be required) o create a simple SCLM project definition with language defi- nitions, architecture definitions, and members for the SCLM samples (Appendix D, "SCLM Project Definition Setup" on page 117 contains the instructions for this) BEFORE WE BEGIN 1 DISCLAIMER - NOTICE TO USERS OF THE SOURCE CODE EXAMPLES THIS TECHNICAL REPORT PROVIDES THE SOURCE CODE EXAMPLES, BOTH INDIVIDUALLY AND AS ONE OR MORE GROUPS, "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOURCE CODE EXAMPLES, BOTH INDIVIDUALLY AND AS ONE OR MORE GROUPS, IS WITH YOU. SHOULD ANY PART OF THE SOURCE CODE EXAMPLES PROVE DEFECTIVE, YOU (AND NOT IBM OR AN AUTHORIZED DEALER) ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 2 TeamConnection and MVS/SCLM OVERVIEW The general idea for the use of TeamConnection from MVS and SCLM is to use the file transfer, workstation command, and client/server features of ISPF 4.2. The MVS user can use REXX command files to transfer data to and from the workstation as well as run TeamConnection commands on the workstation. The SCLM user can use the workstation build techniques of ISPF 4.2 with TeamConnection commands to also transfer data to and from the workstation as well as run TeamConnection commands on the workstation. The general idea for the use of SCLM from TeamConnection is to have a part in the build tree whose builder puts a build event on the job queue for the MVS build processor. This build event directs the build processor to run IRXJCL which then runs a REXX command file that contains an SCLM command. A coordinated TeamConnection and SCLM BUILD can be accomplished: 1) from TeamConnection by using a part in the TeamConnection build tree with a builder that results in running an SCLM BUILD command, or 2) from SCLM by using a source member in an SCLM con- trolled library with a language definition that invokes a TeamConnection BUILD command. Each major section explains the technique and then contains a "Putting it All Together" that walks you through the steps to try out the technique. The following technical reports might be helpful in understanding these techniques: o TR 29.2196 USING REXX COMMAND FILES WITH TEAMCONNECTION MVS BUILD SCRIPTS o TR 29.2147 SCLM GUIDE TO TEAMCONNECTION TERMINOLOGY o TR 29.2034 Using ISPF's Software Configuration and Library Manager (SCLM) to Manage Workstation and Cooperative Applica- tions OVERVIEW 3 4 TeamConnection and MVS/SCLM MVS TO TEAMCONNECTION The connection between MVS and the TeamConnection client or family server machine is through the ISPF 4.2 Client/Server func- tion. The ISPF Client/Server software must be installed on the workstation in order for ISPF to communicate with the work- station. See Appendix C, "ISPF C/S Workstation Installation Using TCP/IP" on page 113 for ISPF Client/Server software instal- lation instructions. The MVS interface to a TeamConnection command line uses the ISPF SELECT service and WSCMDV (Workstation Command with Variables) to run a TeamConnection command. This service can be invoked from a REXX program. REXX programs running from TSO or the ISPF TSO command line (usually option 6 of the "ISPF Primary Option Window") can use this service to run any TeamConnection command. The following commands are examples of what can be done: o CHECKOUT a part from the TeamConnection data base o CHECKIN a part to the TeamConnection data base o BUILD a part in the TeamConnection data base The high level data set qualifier TSOUSER used in following exam- ples can be replaced by your TSO userid or some other value for your MVS system. +---------------------------------------------------------------+ | | | The REXX programs in the following examples use the same|syntax. | | | To run a REXX program that is member 'member' of the MVS|partitioned | data set 'dataset' from native TSO, at the "Ready" promp| type: | EX 'dataset(member)' 'partname workarea' | | | | To run this program from ISPF, on a command line type: | | TSO EX 'dataset(member)' 'partname workarea' | | | | where 'dataset(member)' is the MVS data set containing t|e REXX program | 'partname' is the name of the TeamConnectio| part | 'workarea' is the name of the TeamConnectio| work area | | +---------------------------------------------------------------+ Figure 1. Syntax - MVS REXX programs to run TeamConnection com- mands MVS to TeamConnection 5 MVS TO TEAMCONNECTION - CHECKOUT Running the MVS REXX program in Figure 2 on page 7 results in a part being checked out from a TeamConnection data base and a copy placed in a member of an MVS partitioned data set. The TeamConnection family must be running and the release, work area, and part must exist. The part version will be checked out from the work area view. The numbers in parenthesis are not part of the REXX program. They are used as references to statements in the program for the explanation that follows the program. 6 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | /* REXX PROGRAM TO PERFORM TEAMCONNECTION CHECKOUT */ | | TRACE INTERMEDIATES | | ADDRESS ISPEXEC | | | | parse arg partname wkareanam | (1) | | | /*****************************************************/ | | /* BUILD NAME OF PART FOR MVS HOST SYSTEM */ | | /*****************************************************/ | | namelen = LENGTH(partname) | (2) | IF namelen > 8 then | | namelen = 8 | | periodloc = POS('.',partname) | | IF periodloc < namelen & , | | periodloc <> 0 then | | namelen = periodloc - 1 | | hostpart = SUBSTR(partname,1,namelen) | | hostpart = translate(hostpart) | | /*****************************************************/ | | /* CONSTRUCT TEAMCONNECTION COMMAND */ | | /*****************************************************/ | | USER_CMD = 'teamc part -checkout ' partname | (3) | USER_CMD = USER_CMD||' -release release1 -workarea ' w|areanam | USER_CMD = USER_CMD||' -family mvssclm' | | USER_CMD = USER_CMD||' -relative e:\mytemp' | | WSDIR = 'e:\ispfcs\' | (4) | /*****************************************************/ | | /* RUN TEAMCONNECTION COMMAND */ | | /* MODE CAN BE MAX, MIN, VIS, OR INVIS */ | | /*****************************************************/ | | MODE = 'MAX' | | 'SELECT WSCMDV(USER_CMD) WSDIR(WSDIR) 'MODE' MODAL' | (5) | SAY 'RC = ' RC | | /*****************************************************/ | | /* TRANSFER WORKSTATION FILE TO MAINFRAME FILE */ | | /* HVAR = MAINFRAME FILE TO RECEIVE WORKSTATION FILE */ | | /* WVAR = WORKSTATION FILE TO SEND TO MAINFRAME */ | | /*****************************************************/ | | IF RC = 0 THEN | (6) | DO | | HVAR = '''TSOUSER.PRIVATE.SOURCE('hostpart')''' | | WVAR = 'e:\mytemp\'partname | | 'FILEXFER HOST(HVAR) WS(WVAR) TO(HOST), | | TEXT' | | SAY 'RC = ' RC | | END | | EXIT | | | +---------------------------------------------------------------+ Figure 2. tcchkout.rex TeamConnection CHECKOUT from MVS MVS to TeamConnection 7 The parse statement at (1) assigns the first parameter to the name of the part to be checked out and the second parameter to the name of the work area to be used for the TeamConnection CHECKOUT command. The statements starting at (2) assign a truncation of the part name parameter to the variable "hostpart". This variable will be used for a member name in a partitioned data set. The truncation will start at the ninth character or the first period (whichever occurs first in the parameter). Depending upon your naming con- ventions, a different technique might be required here to convert from a TeamConnection part name to a partitioned data set member name. The statements starting at (3) put the TeamConnection CHECKOUT command together by concatenating pieces of the command. The release, family, and relative directory are hard coded. This REXX program can be modified to make these values parameters like "partname" and "wkareanam". The relative directory must exist. The statement at (4) assigns to the variable WSDIR the work- station directory for running the workstation command. The default is e:\ispfcs (the directory in which the ISPF Client/Server workstation component was installed in Appendix C, "ISPF C/S Workstation Installation Using TCP/IP" on page 113). The TeamConnection commands should run from any directory if you followed the instructions in Appendix B, "TeamConnection Family Setup" on page 89. The statement at (5) uses the ISPF SELECT service to run WSCMDV (Workstation Command with Variables). The value of USER_CMD will be run as a command from the workstation directory indicated by the value of WSDIR. This is a TeamConnection CHECKOUT command. The statements at (6) test for a good return code from the work- station command (via the ISPF SELECT service). If the return code is 0, then: o HVAR is assigned the name of the MVS partitioned data set and member to receive a copy of the TeamConnection part that was checked out (allocate this data set as FB with an LRECL of 80). TSOUSER.PRIVATE.SOURCE is a suggested data set name. You can replace the qualifier TSOUSER with your TSO user id. This REXX program can be modified to make the partitioned data set name a parameter like "partname" and "wkareanam". o WVAR is assigned the location of the checked out part on the workstation (the directory is the value of "relative" in the TeamConnection CHECKOUT command in the statements at (3)). o The "FILEXFER" command transfers a copy of the checked out part that is in a workstation file (WVAR) from the work- station to the member of the partitioned data set (HVAR) on MVS. Members that already exist are overwritten. 8 TeamConnection and MVS/SCLM MVS TO TEAMCONNECTION - CHECKIN Running the MVS REXX program in Figure 3 on page 10 results in a copy of a member of an MVS partitioned data set being transferred to a workstation file and the contents of that file being checked in to the TeamConnection data base. The TeamConnection family must be running and the release, work area, and part must exist. The numbers in parenthesis are not part of the REXX program. They are used as references to statements in the program for the explanation that follows the program. MVS to TeamConnection 9 +---------------------------------------------------------------+ | | | /* REXX PROGRAM TO PERFORM TEAMCONNECTION CHECKIN */ | | TRACE INTERMEDIATES | | ADDRESS ISPEXEC | | parse arg partname wkareanam | (1) | /*****************************************************/ | | /* BUILD NAME OF PART FOR MVS HOST SYSTEM */ | | /*****************************************************/ | | namelen = LENGTH(partname) | (2) | IF namelen > 8 then | | namelen = 8 | | periodloc = POS('.',partname) | | IF periodloc < namelen & , | | periodloc <> 0 then | | namelen = periodloc - 1 | | hostpart = SUBSTR(partname,1,namelen) | | hostpart = translate(hostpart) | | /*****************************************************/ | | /* TRANSFER MAINFRAME FILE TO WORKSTATION FILE */ | | /* HVAR = MAINFRAME FILE TO SEND TO WORKSTATION */ | | /* WVAR = WORKSTATION FILE TO RECEIVE MAINFRAME FILE */ | | /*****************************************************/ | | HVAR = '''TSOUSER.PRIVATE.SOURCE('hostpart')''' | (3) | WVAR = 'e:\mytemp\'partname | | 'FILEXFER HOST(HVAR) WS(WVAR) TO(WS), | | TEXT' | | SAY 'RC = ' RC | | /*****************************************************/ | | /* IF TRANSFER WAS SUCCESSFUL, CHECK IN TO */ | | /* TEAMCONNECTION */ | | /*****************************************************/ | | IF RC = 0 THEN | | DO | | /************************************************/ | | /* CONSTRUCT TEAMCONNECTION COMMAND */ | | /************************************************/ | | USER_CMD = 'teamc part -checkin ' partname | (4) | USER_CMD = USER_CMD||' -release release1 -workarea '|wkareanam | USER_CMD = USER_CMD||' -family mvssclm' | | USER_CMD = USER_CMD||' -relative e:\mytemp' | | WSDIR = 'e:\ispfcs\' | (5) | /************************************************/ | | /* RUN TEAMCONNECTION COMMAND */ | | /* MODE MAY BE MAX, MIN, VIS, OR INVIS */ | | /************************************************/ | | MODE = 'MAX' | | 'SELECT WSCMDV(USER_CMD) WSDIR(WSDIR) 'MODE' MODAL' | (6) | SAY 'RC = ' RC | | END | | EXIT | | | +---------------------------------------------------------------+ Figure 3. tcchkin.rex TeamConnection CHECKIN from MVS 10 TeamConnection and MVS/SCLM The parse statement at (1) assigns the first parameter to the name of the part to be checked in and the second parameter to the name of the work area to be used for the TeamConnection CHECKIN command. The statements starting at (2) assign a truncation of the part name parameter to the variable "hostpart". This variable will be used for a member name in a partitioned data set. The truncation will start at the ninth character or the first period (whichever occurs first in the parameter). Depending upon your naming con- ventions, a different technique might be required here to convert from a TeamConnection part name to a partitioned data set member name. The statements at (3) assign the name of the MVS partitioned data set and member to variable HVAR and the workstation location for the transferred member to variable WVAR. The "FILEXFER" command transfers a copy of the MVS partitioned data set member (HVAR) from MVS to the workstation (WVAR). This REXX program can be modified to make the partitioned data set name a parameter like "partname" and "wkareanam". The statements starting at (4) put the TeamConnection CHECKIN command together by concatenating pieces of the command. The release, family, and relative directory are hard coded. This REXX program can be modified to make these values parameters like "partname" and "wkareanam". The relative directory must exist. The statement at (5) assigns to the variable WSDIR the work- station directory for running the workstation command. The default is e:\ispfcs (the directory in which the ISPF Client/Server workstation component was installed in Appendix C, "ISPF C/S Workstation Installation Using TCP/IP" on page 113). The TeamConnection commands should run from any directory if you followed the instructions in Appendix B, "TeamConnection Family Setup" on page 89. The statement at (6) uses the ISPF SELECT service to run WSCMDV (Workstation Command with Variables). The value of USER_CMD will be run as a command from the workstation directory indicated by the value of WSDIR. This is a TeamConnection CHECKIN command. MVS TO TEAMCONNECTION - BUILD Running the MVS REXX program in Figure 4 on page 12 results in a TeamConnection build of a part in the TeamConnection data base. The TeamConnection family must be running and the release, work area, and part must exist. MVS to TeamConnection 11 The numbers in parenthesis are not part of the REXX program. They are used as references to statements in the program for the explanation that follows the program. +---------------------------------------------------------------+ | | | /* REXX PROGRAM TO PERFORM TEAMCONNECTION BUILD */ | | TRACE INTERMEDIATES | | ADDRESS ISPEXEC | | | | parse arg partname wkareanam | (1) | | | /*****************************************************/ | | /* CONSTRUCT TEAMCONNECTION COMMAND */ | | /* */ | | /*****************************************************/ | | USER_CMD = 'teamc part -build ' partname ' -type TCPar|' (2) | USER_CMD = USER_CMD||' -release release1 -workarea' wk|reanam | USER_CMD = USER_CMD||' -family mvssclm' | | USER_CMD = USER_CMD||' -pool pool1 -normal' | | WSDIR = 'e:\ispfcs\' | (3) | | | /*****************************************************/ | | /* RUN TEAMCONNECTION COMMAND */ | | /* MODE MAY BE MAX, MIN, VIS, OR INVIS */ | | /* */ | | /*****************************************************/ | | MODE = 'MAX' | | 'SELECT WSCMDV(USER_CMD) WSDIR(WSDIR) 'MODE' MODAL' | (4) | SAY 'RC = ' RC | | EXIT | | | +---------------------------------------------------------------+ Figure 4. tcbuild.rex TeamConnection BUILD from MVS The parse statement at (1) assigns the first parameter to the name of the part to be built and the second parameter to the name of the work area to be used for the TeamConnection BUILD command. The statements starting at (2) put the TeamConnection BUILD command together by concatenating pieces of the command. The release and family are hard coded. This REXX program can be mod- ified to make these values parameters like "partname" and "wkareanam". The statement at (3) assigns to the variable WSDIR the work- station directory for running the workstation command. The default is e:\ispfcs (the directory in which the ISPF Client/Server workstation component was installed in Appendix C, "ISPF C/S Workstation Installation Using TCP/IP" on page 113). 12 TeamConnection and MVS/SCLM The TeamConnection commands should run from any directory if you followed the instructions in Appendix B, "TeamConnection Family Setup" on page 89. The statement at (4) uses the ISPF SELECT service to run WSCMDV (Workstation Command with Variables). The value of USER_CMD will be run as a command from the workstation directory indicated by the value of WSDIR. This is a TeamConnection BUILD command which places a build event on the TeamConnection job queue. The TeamConnection build agent and build processor must be started in order for the build event to be removed from the job queue by the build agent and sent on to the build processor. PUTTING IT ALL TOGETHER The following example uses MVS REXX programs and the TeamConnection parts from Appendix A, "TeamConnection Parts and Scripts" on page 79. This example shows how from MVS you can: 1. CHECKOUT a TeamConnection part (Figure 2 on page 7) 2. change the part in MVS 3. CHECKIN the part to TeamConnection (Figure 3 on page 10) 4. BUILD a part in TeamConnection (Figure 4 on page 12) Setup Requirements __________________ o The TeamConnection family mvssclm and parts must be installed on the workstation (see Appendix B, "TeamConnection Family Setup" on page 89). o The ISPF Client/Server must be installed and running on the workstation (see Appendix C, "ISPF C/S Workstation Installa- tion Using TCP/IP" on page 113). Step 1 - Workstation preliminary activities ___________________________________________ +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Start the ObjectStore server. | | +--------------------------------------+------------------------+ | Start the family mvssclm. | | +--------------------------------------+------------------------+ MVS to TeamConnection 13 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | From an OS/2 window set the | The build agent starts | | TeamConnection family information: | in the OS/2 window. | | | | | o TC_FAMILY=MVSSCLM | You must also have | | | PATH set to | | o TC_USER=SUPRUSER | e:\family\mvssclm if | | | that is where | | o TC_BECOME=SUPRUSER | teamagnt.exe and | | | teamproc.exe are | | o TC_DBPATH=E:\FAMILY\MVSSCLM | located. Otherwise | | | you could get a | | Start the build agent from this OS/2 | SYS1041 error from | | window by issuing this command: | OS/2. | | | | | TEAMAGNT -F MVSSCLM -E OS2 -P POO|1 -S BLDSOCK | | | | | Do not close the window. | | +--------------------------------------+------------------------+ | From an OS/2 window start the build | The build processor | | processor by issuing this command: | starts in the OS/2 | | | window. | | TEAMPROC -S BLDSOCK | | | | | | Do not close the window. | | +--------------------------------------+------------------------+ | Start the ISPF C/S on the work- | The "ISPF C/S" window | | station by entering ISPFCS from the | will appear on the | | "e:\ispfcs" directory. | workstation. | | | | | | Do not close the "ISPF | | | C/S" window. | +--------------------------------------+------------------------+ Step 2 - MVS preliminary activities ___________________________________ +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | LOGON to TSO. | | +--------------------------------------+------------------------+ | Bring up ISPF. | ISPF may come up auto- | | | matically or may need | | | to be brought up by | | | entering "ISPF" of | | | "PDF". | +--------------------------------------+------------------------+ | Select SETTINGS from the "ISPF | The "ISPF Settings" | | Primary Options Menu". This is | panel appears. | | usually option 0. | | +--------------------------------------+------------------------+ 14 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Change OPTIONS, PRINT GRAPHICS, | The suggested | | GENERAL, and TERMINAL CHARACTER- | "Options" are not | | ISTICS as needed on the "ISPF Set- | required. | | tings" panel (these values retain | | | their previous settings and change | | | infrequently). | | | | | | Suggested "Options" | | | / Command line at bottom | | | / Panel display CUA mode | | | Long message in pop-up | | | / Tab to action bar choices | | | Tab to point-and-shoot fields | | | / Restore TEST/TRACE options | | | Session Manager mode | | | / Jump from leader dots | | | Edit PRINTDS Command | | | / Always show split line | | | | | | Suggested "Print Graphics" | | | Family printer type 2 | | | Device name . . . . | | | Aspect ratio . . . 0 | | | | | | Suggested "General" | | | Input field pad . . N | | | Command delimiter . ; | | | | | | Suggested "Terminal Characteristics" | | | Screen format 1 (Data) | | | Terminal Type 3 (3278) | | +--------------------------------------+------------------------+ | Select WORKSTATION from the "ISPF | The "Workstation" | | Settings" panel. | pulldown appears. | | | | | Tab to the Workstation heading and | | | press the ENTER key. | | +--------------------------------------+------------------------+ | Select WORKSTATION CONNECTION... | The "Initiate Work- | | from the "Workstation" pulldown. | station Connection" | | | panel appears. | +--------------------------------------+------------------------+ MVS to TeamConnection 15 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Change WORKSTATION CONNECTION, GUI | The "TCP/IP Address" | | NETWORK PROTOCOL, GUI WINDOW FRAME, | is the address of the | | DEFAULT WINDOW BACKGROUND COLOR, GUI | workstation machine. | | TITLE, and TCP/IP ADDRESS as needed | | | on the "Initiate Workstation Con- | | | nection" panel (TCP/IP is assumed | | | for this example). | | | | | | Suggested settings: | | | WORKSTATION CONNECTION | | | 2 (Without GUI display) | | | GUI NETWORK PROTOCOL | | | 1 (TCP/IP) | | | GUI WINDOW FRAME | | | 1 (Standard (STD)) | | | DEFAULT WINDOW BACKGROUND COLOR 1 | | | Dialog (DLG) | | | GUI TITLE | | | TSOUSER | | | TCP/IP ADDRESS | | | 9.37.195.43 | | +--------------------------------------+------------------------+ | Press the ENTER key to initiate a | A "Connection" infor- | | workstation session. | mation window appears. | +--------------------------------------+------------------------+ | Select YES on the "Connection" | | | information window to accept a con- | | | nection to the workstation. | | +--------------------------------------+------------------------+ | Go back to the "ISPF Primary Options | | | Menu" by pressing the F3 function | | | key. | | +--------------------------------------+------------------------+ | Allocate the partitioned data set | Parts checked out | | 'TSOUSER.PRIVATE.SOURCE' (or some | from, and checked | | other name) as FB with LRECL=80 or | into, TeamConnection | | select an existing partitioned data | require an MVS parti- | | set to use with the REXX programs | tioned data set to | | for receiving files from the work- | hold copies of the | | station. | parts. | | | | | You can use ISPF Utilities (usually | You can use an | | option 3) and then select the data | existing data set or | | set option (usually option 2). Sug- | allocate a new one. | | gested space unit is 3200, primary | The REXX programs will | | quantity is 10, secondary quantity | need to be updated by | | is 50, and directory blocks is 10. | replacing | | | 'TSOUSER.PRIVATE.SOURCE| | | with the correct data | | | set name. | +--------------------------------------+------------------------+ 16 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Allocate the partitioned data set | See Appendix A, | | 'TSOUSER.TEAMC.REXX' (or some other | "TeamConnection Parts | | name) as FB with LRECL=80. You can | and Scripts" on | | use an existing partitioned data | page 79 for informa- | | set. | tion about soft copies | | | of the REXX programs. | | Create the following members: | | | TCCHKOUT with the contents of | | | Figure 2 on page 7 | | | TCCHKIN with the contents of | | | Figure 3 on page 10 | | | TCBUILD with the contents of | | | Figure 4 on page 12 | | +--------------------------------------+------------------------+ Step 3 - TeamConnection CHECKOUT issued from MVS ________________________________________________ +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Make any needed changes to the REXX | The MVS data set | | program in Figure 2 on page 7 (part | 'TSOUSER.PRIVATE.SOURCE| | of the materials referenced in | will need to be | | Appendix A, "TeamConnection Parts | changed to one of your | | and Scripts" on page 79). | MVS data sets. | | | | | | The other values | | | should not change if | | | you did not change | | | them when you set up | | | the TeamConnection | | | family. | +--------------------------------------+------------------------+ | Run the REXX program in Figure 2 on | The member 'TESTPART' | | page 7 from a TSO or ISPF TSO | in | | command line to CHECKOUT | 'TSOUSER.PRIVATE.SOURCE| | TeamConnection part testpart.c | should contain the | | (Figure 12 on page 82) and place it | same data as | | in an MVS data set: | testpart.c. | | | | | EX 'TSOUSER.TEAMC.REXX(TCCHKOUT)' | | | 'TESTPART.C MVSTCWA' | | +--------------------------------------+------------------------+ Step 4 - Change the part in MVS _______________________________ MVS to TeamConnection 17 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Change | | | 'TSOUSER.PRIVATE.SOURCE(TESTPART)' | | | using ISPF EDIT. Add the line: | | | | | | PRINTF("I WAS CHANGED ON MVS!\N"); | | | | | | after the 'printf("I am | | | testpart.c\n");' line so that you | | | can see the change by extracting and | | | running testpart.exe after the | | | TeamConnection BUILD. | | +--------------------------------------+------------------------+ Step 5 - TeamConnection CHECKIN issued from MVS _______________________________________________ +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Make any needed changes to the REXX | The MVS data set | | program in Figure 3 on page 10 (part | 'TSOUSER.PRIVATE.SOURCE| | of the materials referenced in | will need to be | | Appendix A, "TeamConnection Parts | changed to one of your | | and Scripts" on page 79). | MVS data sets. | | | | | | The other values | | | should not change if | | | you did not change | | | them when you set up | | | the TeamConnection | | | family. | +--------------------------------------+------------------------+ | Run the REXX program in Figure 3 on | The TeamConnection | | page 10 from a TSO or ISPF TSO | part testpart.c should | | command line to transfer | contain the same data | | 'TSOUSER.PRIVATE.SOURCE(TESTPART)' | as the member | | to a workstation file and CHECKIN | 'TESTPART' in | | that file as TeamConnection part | 'TSOUSER.PRIVATE.SOURCE|. | testpart.c: | This data should | | | contain the changes | | EX 'TSOUSER.TEAMC.REXX(TCCHKIN)' | made from the ISPF | | 'TESTPART.C MVSTCWA' | EDIT. | +--------------------------------------+------------------------+ 18 TeamConnection and MVS/SCLM Step 6 - TeamConnection BUILD issued from MVS _____________________________________________ +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Make any needed changes to the REXX | There should be no | | program in Figure 4 on page 12 (part | changes if you did not | | of the materials referenced in | change the family, | | Appendix A, "TeamConnection Parts | release, work area, or | | and Scripts" on page 79). | pool name when you set | | | up the TeamConnection | | | family. | +--------------------------------------+------------------------+ | Run the REXX program to BUILD the | A window will appear | | application in TeamConnection: | on the workstation | | | showing the build | | EX 'TSOUSER.TEAMC.REXX(TCBUILD)' | progress messages. | | 'TESTPART.EXE MVSTCWA' | | +--------------------------------------+------------------------+ Step 7 - Test the OS/2 Application __________________________________ Extract the executable part TESTPART.EXE and run it for the test. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | From the "TeamConnection - Tasks" | The "Extract Parts" | | window select ACTIONS, then PARTS, | window appears. | | and then EXTRACT. | | +--------------------------------------+------------------------+ | Set the following fields: | | | | | | PATH NAMES testpart.exe| | | RELEASE release1 | | | WORK AREA mvstcwa | | | DESTINATION DIRECTORY e:\mytemp | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ | Go to an OS/2 window. | The messages from | | | testpart.exe should | | Run the command E:\MYTEMP\TESTPART. | appear: | | | | | Minimize or close the OS/2 window. | I am testpart.c | | | I was changed on MVS! | | | I was built by the | | | Team Connection | | | integrated Build | | | Tool!!! | +--------------------------------------+------------------------+ MVS to TeamConnection 19 Hints and Tips for Debugging ____________________________ o if you get RC=20 from the ISPF SELECT statement in TCCHKOUT, TCCHKIN, or TCBUILD - check that the TCP/IP information you specified in the workstation connection information is correct o if you get other return codes (eg 301, 101) from the ISPF SELECT statement in TCCHKOUT, TCCHKIN, or TCBUILD - look at e:\family\mvssclm\audit.log to determine cause of the problem 20 TeamConnection and MVS/SCLM SCLM TO TEAMCONNECTION The connection between SCLM and the TeamConnection client or family server machine is through the ISPF 4.2 Client/Server func- tion. The ISPF Client/Server software must be installed on the workstation in order for SCLM to communicate with the work- station. See Appendix C, "ISPF C/S Workstation Installation Using TCP/IP" on page 113 for ISPF Client/Server software instal- lation instructions. SCLM WORKSTATION BUILD - HOW IT WORKS The SCLM workstation build function uses the ISPF SELECT function to run the REXX program FLMLTWST. This REXX program uses tech- niques similar to those described in "MVS to TeamConnection" on page 5 to transfer files to the workstation, run a command, and transfer files back to the mainframe. FLMLTWST uses the USERINFO (see Figure 20 on page 124) and ACTINFO (see Figure 21 on page 125) files to put together the workstation commands and response files as needed. The files to be sent to the work- station and the files to be sent back to the mainframe are deter- mined from information in the SCLM build map. The SCLM BUILD function creates a new build map that is used by SCLM in much the same fashion as TeamConnection uses a job queue of build events. SCLM creates the build map by looking at the language definitions of the members being built. SCLM allocates the appropriate data sets and passes control to the tools (called translators) identified by the language definition COMPILE keywords for members that have changed, or have been affected by changes, since the last build. These translators are typically precompilers, compilers, linkage editors, and other mainframe tools. For a workstation build the mainframe tool is the ISPF SELECT function. An SCLM workstation build function that uses FLMLTWST relies on 3 files: o ACTINFO - ACTION parameter information (see Figure 21 on page 125 for references to the numbered statements) - (1) SCLM file type mapping to workstation file name extension - (2) ASCII/EBCDIC translation for a particular SCLM file type - (3) subdirectory for transferring files to or from the workstation (each command can specify a different subdi- rectory) SCLM to TeamConnection 21 - (4) one workstation command (such as a TeamConnection CHECKOUT, CHECKIN, or BUILD command) for each ACTION keyword parameter value - response file contents (not used in this example) o USERINFO - information specific to the workstation - DATA_DIR directory for transferring files to or from the workstation (this will be concatenated with the subdirec- tory value from the ACTINFO file) - WSDIR directory for running the workstation command (must be the same as DATA_DIR for TeamConnection commands) - RESPONSE_FILE response file name for commands that use a response file (the response file contents from the ACTINFO file will be stored in this file for use by the workstation command) - mode WSCMDV MODE default - del_cmd delete command o language definition - one for each workstation command, see Figure 23 on page 129, Figure 24 on page 132, and Figure 25 on page 135. (The SCLM project definition load module is used as a table of information by SCLM at run time. Language definitions are part of the project definition load module.) - FLMLTWST parameters - data set name of USERINFO file - data set name of ACTINFO file SCLM WORKSTATION BUILD - TEAMCONNECTION COMMANDS The SCLM build function can be used to run any TeamConnection command. This section describes how the SCLM build function can be used to do this. The SCLM workstation build function is designed to transfer MVS input members to workstation files, run workstation commands that produce output files, and transfer these workstation output files back to MVS members. SCLM does not "know" if the input files are really needed by the workstation command or if the output files are really produced by the workstation command. There is no restriction upon these workstation commands to only run com- pilers, linkage editors, and other traditional build tools. 22 TeamConnection and MVS/SCLM By placing TeamConnection commands in the ACTINFO file (the MVS file that maps FLMLTWST ACTION parameter values to workstation commands) you can use the SCLM BUILD function to run any TeamConnection command on a workstation. The language defi- nitions CHECKOUT (Figure 23 on page 129), CHECKIN (Figure 24 on page 132), and TCBUILD (Figure 25 on page 135) all use the ISPF SELECT function to run FLMLTWST for an SCLM BUILD. These lan- guage definitions, the ACTINFO file, and the USERINFO file are used by FLMLTWST to run TeamConnection CHECKOUT, CHECKIN, and BUILD commands on a workstation. You need to create a member in an SCLM controlled library that has the appropriate language definition for the desired TeamConnection command. An SCLM BUILD of this member, or of an architecture definition member that references this member, will result in running the TeamConnection command. FLMLTWST was written to transfer files to and from the work- station based solely upon the contents of the build map. The build map identifies inputs (source members and related dependen- cies) and outputs. This means that the input members (both source and dependencies) identified in the build map will be transferred to the workstation even if they are not used as inputs to the TeamConnection command. Similarly output members identified in the build map will be transferred back to MVS even if they were not created by running the TeamConnection command. In a sense FLMLTWST can be used as a "Trojan horse" to get members into, run commands on, and get files out of a work- station. You can modify FLMLTWST so that it only transfers files to the workstation when they are needed (See "SCLM Architecture Defi- nition Parameters for TeamConnection Commands" on page 71 and Appendix F, "SCLM FLMLTWST Extensions for Parameters" on page 149 for how this can be done.) You can also run a REXX program (rather than a TeamConnection command) on the workstation which uses the files transferred to the workstation as input and then run TeamConnection commands based upon information in these files. The possibilities go beyond running a simple TeamConnection command. The examples shown in this section cover the basics of running simple TeamConnection commands from an SCLM BUILD. The source members are sent to the workstation for each SCLM BUILD but are not always needed by the TeamConnection command. The examples run SCLM BUILD with architecture definition members (the SCLM counter-part of TeamConnection build trees) rather than source members because the author has discovered from years of SCLM experience that this is a good habit. Architecture definitions are also useful for parameters so that the TeamConnection com- mands, action flags, option lists, attribute flags, and arguments do not have to be hard coded (see "SCLM Architecture Definition Parameters for TeamConnection Commands" on page 71). SCLM to TeamConnection 23 SCLM TO TEAMCONNECTION - CHECKOUT An SCLM BUILD of a member with a language of CHECKOUT (Figure 23 on page 129) results in a part being checked out from a TeamConnection data base and a copy placed in a member of an SCLM controlled library. The TeamConnection family must be running and the release, work area, and part must exist. The part version will be checked out from the work area view. See Figure 23 on page 129 for a description of how SCLM uses the CHECKOUT language definition. SCLM TO TEAMCONNECTION - CHECKIN An SCLM BUILD of a member with a language of CHECKIN (Figure 24 on page 132) results in the contents of a member of an SCLM con- trolled library being transferred to a workstation file which is then checked in to a TeamConnection data base. The TeamConnection family must be running and the release, work area, and part must exist. See Figure 24 on page 132 for a description of how SCLM uses the CHECKIN language definition. SCLM TO TEAMCONNECTION - BUILD An SCLM BUILD of a member with a language of TCBUILD (Figure 25 on page 135) results in a TeamConnection build of a TeamConnection part. The TeamConnection family must be running and the release, work area, and part must exist. The part version will be built from the work area view. See Figure 25 on page 135 for a description of how SCLM uses the TCBUILD language definition. PUTTING IT ALL TOGETHER The following example uses SCLM BUILD and the TeamConnection parts from Appendix A, "TeamConnection Parts and Scripts" on page 79. This example shows how from SCLM you can: 1. CHECKOUT a TeamConnection part 24 TeamConnection and MVS/SCLM 2. change the part in SCLM 3. CHECKIN the part to TeamConnection 4. BUILD a part in TeamConnection Setup Requirements __________________ o The TeamConnection family mvssclm and parts must be installed on the workstation (see Appendix B, "TeamConnection Family Setup" on page 89). o The ISPF Client/Server must be installed on the workstation (see Appendix C, "ISPF C/S Workstation Installation Using TCP/IP" on page 113). o The SCLM project definition SCLMTC must be installed on the MVS system (see Appendix D, "SCLM Project Definition Setup" on page 117). Notes _____ In this example, the name of the TeamConnection part to be checked out, checked in, and built as well as the TeamConnection part commands CHECKOUT, CHECKIN, and BUILD are hard-coded in the ACTINFO file (Figure 21 on page 125). See "SCLM Architecture Definition Parameters for TeamConnection Commands" on page 71 for how to use parameters. The SCLM type and member name to receive a copy of the checked out TeamConnection part is specified in an architecture defi- nition output statement created in "Step 3 - TeamConnection CHECKOUT issued from SCLM BUILD" on page 27. Step 1 - Workstation preliminary activities ___________________________________________ +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Be sure these environment variables | | | are set in config.sys: | | | | | | TC_FAMILY mvssclm | | | TC_USER SuprUser | | | TC_BECOME SuprUser | | | TC_DBPATH e:\family\mvssclm| | +--------------------------------------+------------------------+ SCLM to TeamConnection 25 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Start the ObjectStore server. | | +--------------------------------------+------------------------+ | Start the family mvssclm. | | +--------------------------------------+------------------------+ | From an OS/2 window issue the | The build agent starts | | command | in the OS/2 window. | | | | | TEAMAGNT -F MVSSCLM -E OS2 -P POO|1DoSnotDclose the | | | window. | +--------------------------------------+------------------------+ | From an OS/2 window issue the | The build processor | | command | starts in the OS/2 | | | window. | | TEAMPROC -S BLDSOCK | | | | Do not close the | | | window. | +--------------------------------------+------------------------+ | Start the ISPF Client/Server on the | The "ISPF | | workstation by entering ISPFCS from | Client/Server" window | | the "e:\ispfcs" directory. | appears on the work- | | | station. | | | | | | Do not close the | | | window. | +--------------------------------------+------------------------+ Step 2 - MVS preliminary activities ___________________________________ +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | LOGON to TSO. | | +--------------------------------------+------------------------+ 26 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | If you do not have FLMLTWST in a | See Figure 27 on | | data set concatenated to SYSEXEC | page 139 for an | | then run a CLIST that will concat- | example of a CLIST | | enate a data set containing FLMLTWST | that will perform the | | with the libraries in SYSEXEC. Your | concatenation using | | TSO session can be set up to perform | the system library | | this concatenation automatically. | 'SYS1.ISP.SISPSAMP' | | | which contains | | | FLMLTWST. Some | | | systems use a dif- | | | ferent library name. | | | You can determine the | | | library name by | | | checking to see which | | | "ISP" data set is | | | allocated to ddname | | | SAMPLIB. | | | | | | This must be done | | | before bringing up | | | ISPF. | +--------------------------------------+------------------------+ | Bring up ISPF. | | +--------------------------------------+------------------------+ | Connect to the workstation. | See "Step 2 - MVS pre- | | | liminary activities" | | | on page 14 for | | | detailed instructions. | +--------------------------------------+------------------------+ Step 3 - TeamConnection CHECKOUT issued from SCLM BUILD _______________________________________________________ In this step you run an SCLM BUILD of an architecture definition member which references an input member assigned the language CHECKOUT and an output member for receiving a copy of a TeamConnection part. The CHECKOUT language runs FLMLTWST which issues a TeamConnection CHECKOUT command and stores a copy of the checked out part in a member of an SCLM controlled library. There are three parts to this step: o create member 'TSOUSER.DEVELOP.SOURCE(CHECKOUT)' using SCLM EDIT and assign the language CHECKOUT (this language runs the TeamConnection CHECKOUT command) o create member 'TSOUSER.DEVELOP.ARCHDEF(CHECKOUT)' using SCLM EDIT and assign the language ARCHDEF (this member identifies the input member 'TSOUSER.DEVELOP.SOURCE(CHECKOUT)' and the output member 'TSOUSER.DEVELOP.SRC(TESTPART)' for the SCLM BUILD) SCLM to TeamConnection 27 o run SCLM BUILD of member 'TSOUSER.DEVELOP.ARCHDEF(CHECKOUT)' (the CHECKOUT language of the input member 'TSOUSER.DEVELOP.SOURCE(CHECKOUT)' runs the TeamConnection CHECKOUT command for TeamConnection part testpart.c and stores a copy of testpart.c in 'TSOUSER.DEVELOP.SRC(TESTPART)') NOTE: If the member 'TSOUSER.DEVELOP.SOURCE(CHECKOUT)' exists from a previous demonstration you must either delete the member using the SCLM library utility and follow the instructions below or use SCLM EDIT and SAVE the member so that it will be updated for the SCLM BUILD (remember to enter "SAVE" on the command line in the SCLM EDIT session). Create 'TSOUSER.DEVELOP.SOURCE(CHECKOUT)': This member does not _________________________________________ take part in the TeamConnection CHECKOUT but is transferred to the workstation as part of the SCLM BUILD due to the way FLMLTWST is written. For this reason it will contain one line of dummy information. (See "SCLM Architecture Definition Parameters for TeamConnection Commands" on page 71 for how to avoid the file transfer.) +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select SCLM from the "ISPF Primary | The "SCLM Main Menu" | | Option Menu". | appears. | | | | | This is usually option 10. | | +--------------------------------------+------------------------+ | On the SCLM MAIN MENU enter: | The "SCLM Edit - Entry | | | Panel" appears. | | PROJECT TSOUSER | | | ALTERNATE SCLMTC | The | | GROUP DEVELOP | 'TSOUSER.DEVELOP.xxx' | | OPTION ===> 2 | data sets were allo- | | | cated in Appendix D, | | Edit is usually option 2. | "SCLM Project Defi- | | | nition Setup" on | | | page 117. | +--------------------------------------+------------------------+ | On the SCLM EDIT - ENTRY PANEL | An SCLM EDIT session | | enter: | appears. | | | | | PROJECT TSOUSER | The | | GROUP DEVELOP | 'TSOUSER.DEVELOP.SOURCE| | TYPE SOURCE | data set was allocated | | MEMBER CHECKOUT | in Appendix D, "SCLM | | | Project Definition | | Press the ENTER key. | Setup" on page 117. | +--------------------------------------+------------------------+ 28 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Enter the following line of dummy | | | information: | | | | | | THIS IS DUMMY INFORMATION. | | +--------------------------------------+------------------------+ | Press the F3 function key to save | The "SCLM Edit | | the member. | Profile" box appears. | +--------------------------------------+------------------------+ | Enter CHECKOUT for the "Language". | The language defi- | | | nition CHECKOUT | | Press the ENTER key. | (Figure 23 on | | | page 129) is assigned | | | to this member. | | | | | | The "SCLM Edit - Entry | | | Panel" appears. | +--------------------------------------+------------------------+ Create 'TSOUSER.DEVELOP.ARCHDEF(CHECKOUT)': An SCLM architecture __________________________________________ definition member needs to be created for the SCLM BUILD. You can create architecture definition member 'TSOUSER.DEVELOP.ARCHDEF(CHECKOUT)' by using SCLM EDIT and assigning the language ARCHDEF. This member identifies the source member to be built ('TSOUSER.DEVELOP.SOURCE(CHECKOUT)') and the output member ('TSOUSER.DEVELOP.SRC(TESTPART)') to receive a copy of the TeamConnection part. NOTE: If the output member exists from a previous demonstration you can delete the member using the SCLM library utility. This must be done if the output member exists but was changed to an editable member during a previous demonstration because SCLM will not replace an editable member with an output from a BUILD. If the architecture definition member exists from a previous dem- onstration, it does not need to be recreated or edited and saved. It can be used "as is" and you can go directly to the SCLM BUILD of this member in this step. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | On the SCLM EDIT - ENTRY PANEL | An SCLM EDIT session | | enter: | appears. | | | | | PROJECT TSOUSER | | | GROUP DEVELOP | | | TYPE ARCHDEF | | | MEMBER CHECKOUT | | | | | | Press the ENTER key. | | +--------------------------------------+------------------------+ SCLM to TeamConnection 29 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Enter the following: | The SINC architecture | | | definition statement | | SINC CHECKOUT SOURCE | (SINC means Source | | OUT1 TESTPART SRC | INClude) identifies | | | the input member | | | (CHECKOUT) to be built | | | and the low level data | | | set qualifier | | | (SOURCE). Member | | | CHECKOUT has the lan- | | | guage CHECKOUT. | | | | | | The OUT1 architecture | | | definition statement | | | identifies the output | | | member (TESTPART) to | | | be created and the low | | | level data set qual- | | | ifier (SRC). | | | | | | The language defi- | | | nition CHECKOUT | | | (Figure 23 on | | | page 129) allocates | | | the SCLM output data | | | set | | | 'TSOUSER.DEVELOP.SRC' | | | that contains member | | | TESTPART. The | | | FLMALLOC macro with | | | KEYREF=OUT1 in this | | | language definition | | | performs the allo- | | | cation. | | | | | | Note: The ACTINFO file | | | maps the SCLM type | | | "SRC" to the | | | TeamConnection exten- | | | sion "C". | +--------------------------------------+------------------------+ | Press the F3 function key to save | The "SCLM Edit | | the member. | Profile" box appears. | +--------------------------------------+------------------------+ 30 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Enter ARCHDEF for the "Language". | The language defi- | | | nition ARCHDEF is | | Press the ENTER key. | assigned to this | | | member. The project | | | definition (Figure 26 | | | on page 138) uses the | | | standard architecture | | | definition language | | | FLM@ARCD. | | | | | | The "SCLM Edit - Entry | | | Panel" appears. | +--------------------------------------+------------------------+ | Press the F3 function key. | The "SCLM Main Menu" | | | appears. | +--------------------------------------+------------------------+ Build 'TSOUSER.DEVELOP.ARCHDEF(CHECKOUT)': This section _________________________________________ describes how to build member 'TSOUSER.DEVELOP.ARCHDEF(CHECKOUT)'. During the SCLM BUILD, the TeamConnection CHECKOUT command runs and the part testpart.c is checked out as per the TeamConnection CHECKOUT command in the ACTINFO file (Figure 21 on page 125). A copy of this part will be transferred to MVS and stored in 'TSOUSER.DEVELOP.SRC(TESTPART)'. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | On the SCLM MAIN MENU enter: | The "SCLM Build - | | | Entry Panel" appears. | | PROJECT TSOUSER | | | ALTERNATE SCLMTC | | | GROUP DEVELOP | | | OPTION ===> 4 | | | | | | Build is usually option 4. | | +--------------------------------------+------------------------+ SCLM to TeamConnection 31 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | On the SCLM BUILD - ENTRY PANEL | A workstation window | | enter: | appears while the | | | CHECKOUT command runs. | | PROJECT TSOUSER | | | GROUP DEVELOP | When the build ends | | TYPE ARCHDEF | you will find member | | MEMBER CHECKOUT | TESTPART in | | WORKSTATION BUILD / | 'TSOUSER.DEVELOP.SRC'. | | MODE 1 | | | SCOPE 2 | TeamConnection part | | PROCESS 1 | testpart.c is checked | | MESSAGES 1 3 | out and locked on the | | REPORT 1 3 | workstation. | | LISTINGS 1 3 | | | | | | Press the ENTER key. | | +--------------------------------------+------------------------+ Step 4 - Change the part in SCLM ________________________________ The member TESTPART in 'TSOUSER.DEVELOP.SRC' is an output from an SCLM BUILD and as such cannot be edited without changing it to an editable member. This section shows the steps to: 1. change the member 'TSOUSER.DEVELOP.SRC(TESTPART)' to an edit- able member a. copy 'TSOUSER.DEVELOP.SRC(TESTPART)' to another data set b. use SCLM library utilities to delete 'TSOUSER.DEVELOP.SRC(TESTPART)' c. use SCLM to create 'TSOUSER.DEVELOP.SRC(TESTPART)' with the language CHECKIN and the contents of TESTPART as stored in the other data set 2. change the member 'TSOUSER.DEVELOP.SRC(TESTPART)' using SCLM EDIT 3. assign the CHECKIN language In the next step this member will be an input for an SCLM BUILD that will transfer the member to the workstation and run the TeamConnection CHECKIN command. 32 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Copy 'TSOUSER.DEVELOP.SRC(TESTPART)' | The member contents | | to a non-SCLM controlled data set | needs to be saved | | for later use. | while the SCLM con- | | | trolled member is | | | deleted and then | | | created. | +--------------------------------------+------------------------+ | Select SCLM from the "ISPF Primary | The "SCLM Main Menu" | | Option Menu". | appears. | | | | | This is usually option 10. | | +--------------------------------------+------------------------+ | On the SCLM MAIN MENU enter: | The "SCLM Utilities | | | Menu" appears. | | PROJECT TSOUSER | | | ALTERNATE SCLMTC | The "SCLM Utilities" | | GROUP DEVELOP | is used to delete | | OPTION ===> 3 | member TESTPART. | | | | | Utilities is usually option 3. | | +--------------------------------------+------------------------+ | Select LIBRARY from the "SCLM Utili- | The "SCLM Library | | ties Menu". | Utility - Entry Panel" | | | appears. | | This is usually option 1. | | +--------------------------------------+------------------------+ | On the SCLM LIBRARY UTILITY - ENTRY | An SCLM "Confirm | | PANEL enter: | Delete" window | | | appears. | | PROJECT TSOUSER | | | GROUP DEVELOP | | | TYPE SRC | | | MEMBER TESTPART | | | OPTION ===> D | | | | | | Press the ENTER key. | | +--------------------------------------+------------------------+ | Press the ENTER key. | The member | | | 'TSOUSER.DEVELOP.SRC(TE|TPART)' | | is deleted. | | | | | | The "SCLM Library | | | Utility - Entry Panel" | | | appears. | +--------------------------------------+------------------------+ | Press the F3 function key. | The "SCLM Utilities | | | Menu" appears. | +--------------------------------------+------------------------+ | Press the F3 function key. | The "SCLM Main Menu" | | | appears. | +--------------------------------------+------------------------+ SCLM to TeamConnection 33 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | On the SCLM MAIN MENU enter: | The "SCLM Edit - Entry | | | Panel" appears. | | PROJECT TSOUSER | | | ALTERNATE SCLMTC | | | GROUP DEVELOP | | | OPTION ===> 2 | | | | | | Edit is usually option 2. | | +--------------------------------------+------------------------+ | On the SCLM EDIT - ENTRY PANEL | An SCLM EDIT session | | enter: | appears. | | | | | PROJECT TSOUSER | This will create the | | GROUP DEVELOP | member TESTPART. | | TYPE SRC | | | MEMBER TESTPART | | | | | | Press the ENTER key. | | +--------------------------------------+------------------------+ | Copy in the contents of member | To copy the member: | | TESTPART from the data set used to | | | save it prior to deletion. | o enter "COPY" on | | | the EDIT command | | Add the following line: | line | | | | | PRINTF("I WAS ALSO CHANGED ON | o press the "Enter" | | SCLM!\N"); | key | | | | | before the line: 'printf("I was | o enter the data set | | built by the TeamConnection\n");'. | information on the | | | panel that appears | +--------------------------------------+------------------------+ | Press the F3 function key to save | The "SCLM Edit | | the member. | Profile" box appears. | +--------------------------------------+------------------------+ | Enter CHECKIN for the "Language" in | The language defi- | | the "SCLM Edit Profile" box. | nition CHECKIN | | | (Figure 24 on | | Press the ENTER key. | page 132) is assigned | | | to this member. | | | | | | The "SCLM Edit - Entry | | | Panel" appears. | +--------------------------------------+------------------------+ 34 TeamConnection and MVS/SCLM Step 5 - TeamConnection CHECKIN issued from SCLM BUILD ______________________________________________________ Member 'TSOUSER.DEVELOP.SRC(TESTPART)' was assigned the language CHECKIN in the previous step. This section describes how to create the architecture member 'TSOUSER.DEVELOP.ARCHDEF(CHECKIN)' using SCLM EDIT. This member is assigned the language ARCHDEF and identifies the member to be built ('TSOUSER.DEVELOP.SRC(TESTPART)'). An SCLM BUILD of 'TSOUSER.DEVELOP.ARCHDEF(CHECKIN)' results in a transfer of the contents of 'TSOUSER.DEVELOP.SRC(TESTPART)' to the workstation followed by the TeamConnection part CHECKIN command. The part testpart.c as changed in SCLM is checked in to TeamConnection. NOTE: If the architecture definition member exists from a pre- vious demonstration, it does not need to be recreated or edited and saved. It can be used "as is" and you can go directly to the SCLM BUILD of this member in this step. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | On the SCLM EDIT - ENTRY PANEL | An SCLM EDIT session | | enter: | appears. | | | | | PROJECT TSOUSER | | | GROUP DEVELOP | | | TYPE ARCHDEF | | | MEMBER CHECKIN | | | | | | Press the ENTER key. | | +--------------------------------------+------------------------+ | Enter the following: | Note: There is no | | | output part created | | SINC TESTPART SRC | for this BUILD. | | | | | | The ACTINFO file maps | | | the SCLM type "SRC" to | | | the TeamConnection | | | extension "C". | +--------------------------------------+------------------------+ | Press the F3 function key to save | The "SCLM Edit | | the member. | Profile" box appears. | +--------------------------------------+------------------------+ SCLM to TeamConnection 35 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | In the "SCLM Edit Profile" box enter | The language defi- | | ARCHDEF for the "Language". | nition ARCHDEF is | | | assigned to this | | Press the ENTER key. | member. The project | | | definition (Figure 26 | | | on page 138) uses the | | | standard architecture | | | definition language | | | FLM@ARCD. | | | | | | The "SCLM Edit - Entry | | | Panel" appears. | +--------------------------------------+------------------------+ | Press the F3 function key. | The "SCLM Main Menu" | | | will appear. | +--------------------------------------+------------------------+ | On the SCLM MAIN MENU enter: | The "SCLM Build - | | | Entry Panel" appears. | | PROJECT TSOUSER | | | ALTERNATE SCLMTC | | | GROUP DEVELOP | | | OPTION ===> 4 | | | | | | Build is usually option 4. | | +--------------------------------------+------------------------+ | On the SCLM BUILD - ENTRY PANEL | A workstation window | | enter: | will appear while the | | | TeamConnection CHECKIN | | PROJECT TSOUSER | command runs. | | GROUP DEVELOP | | | TYPE ARCHDEF | When the build ends | | MEMBER CHECKIN | you will find | | WORKSTATION BUILD / | TeamConnection part | | MODE 1 | testpart.c will be | | SCOPE 2 | checked in and | | PROCESS 1 | unlocked on the work- | | MESSAGES 1 3 | station. | | REPORT 1 3 | | | LISTINGS 1 3 | You could select | | | 'Action -> Parts -> | | Press the ENTER key. | View -> View contents' | | | on TeamConnection for | | | part testpart.c to see | | | the changes that you | | | made. | +--------------------------------------+------------------------+ | Return to the SCLM MAIN MENU. | | +--------------------------------------+------------------------+ 36 TeamConnection and MVS/SCLM Step 6 - TeamConnection BUILD issued from SCLM BUILD ____________________________________________________ In this step you run an SCLM BUILD of an architecture definition member which references an input member assigned the language TCBUILD. The TCBUILD language runs FLMLTWST which issues a TeamConnection BUILD command for part testpart.exe. There are three parts to this step: o create member 'TSOUSER.DEVELOP.SOURCE(TCBUILD)' using SCLM EDIT and assign the language TCBUILD (this language runs the TeamConnection BUILD command) o create member 'TSOUSER.DEVELOP.ARCHDEF(TCBUILD)' using SCLM EDIT and assign the language ARCHDEF (this member identifies the input member 'TSOUSER.DEVELOP.SOURCE(TCBUILD)' for the SCLM BUILD) o run SCLM BUILD of member 'TSOUSER.DEVELOP.ARCHDEF(TCBUILD)' (the TCBUILD language of the input member 'TSOUSER.DEVELOP.SOURCE(TCBUILD)' runs a TeamConnection BUILD command for TeamConnection part testpart.exe) Even though the member 'TSOUSER.DEVELOP.SOURCE(TCBUILD)' does not take part in the TeamConnection BUILD it is transferred to the workstation due to the way FLMLTWST is written. For this reason it contains one line of dummy information because there are no "empty" members in SCLM controlled libraries. (See "SCLM Archi- tecture Definition Parameters for TeamConnection Commands" on page 71 for how to avoid a transfer of a file.) NOTE: If the member exists from a previous demonstration, you must either delete the member using the SCLM library utility and follow the instructions below or use SCLM EDIT and SAVE the member so that it will be updated for the SCLM BUILD (remember to enter "SAVE" on the command line in the SCLM EDIT session). The TeamConnection CHECKIN from the previous step results in TeamConnection part testpart.c needing to be built. If testpart.c had not changed since the last successful TeamConnection BUILD of testpart.exe then testpart.c would need to be "touched" if you wanted to see TeamConnection BUILD an out of date part. Create 'TSOUSER.DEVELOP.SOURCE(TCBUILD)' ________________________________________ SCLM to TeamConnection 37 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | On the SCLM MAIN MENU enter: | The "SCLM Edit - Entry | | | Panel" appears. | | PROJECT TSOUSER | | | ALTERNATE SCLMTC | | | GROUP DEVELOP | | | OPTION ===> 2 | | | | | | Edit is usually option 2. | | +--------------------------------------+------------------------+ | On the SCLM EDIT - ENTRY PANEL | An SCLM EDIT session | | enter: | appears. | | | | | PROJECT TSOUSER | | | GROUP DEVELOP | | | TYPE SOURCE | | | MEMBER TCBUILD | | | | | | Press the ENTER key. | | +--------------------------------------+------------------------+ | Enter the following line of dummy | | | information: | | | | | | THIS IS DUMMY INFORMATION. | | +--------------------------------------+------------------------+ | Press the F3 function key to save | The "SCLM Edit | | the member. | Profile" box appears. | +--------------------------------------+------------------------+ | In the "SCLM Edit Profile" box enter | The language defi- | | TCBUILD for the "Language". | nition TCBUILD (see | | | Figure 25 on page 135) | | | is assigned to this | | | member. | +--------------------------------------+------------------------+ | Press the ENTER key. | The "SCLM Edit - Entry | | | Panel" appears. | +--------------------------------------+------------------------+ Create 'TSOUSER.DEVELOP.ARCHDEF(TCBUILD)': This section shows _________________________________________ how to create member 'TSOUSER.DEVELOP.ARCHDEF(TCBUILD)' using SCLM EDIT and assigns the language ARCHDEF. This member identi- fies the source member to be built ('TSOUSER.DEVELOP.SOURCE(TCBUILD)'). The language definition TCBUILD tells SCLM to run FLMLTWST which transfers the contents of 'TSOUSER.DEVELOP.SOURCE(TCBUILD)' to the workstation and runs TeamConnection BUILD of part testpart.exe as per the ACTINFO file. NOTE: If the architecture definition member exists from a pre- vious demonstration it does not need to be recreated or edited 38 TeamConnection and MVS/SCLM and saved. It can be used "as is" and you can go directly to the SCLM BUILD of this member in this step. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | On the SCLM EDIT - ENTRY PANEL | An SCLM EDIT session | | enter: | appears. | | | | | PROJECT TSOUSER | | | GROUP DEVELOP | | | TYPE ARCHDEF | | | MEMBER TCBUILD | | | | | | Press the ENTER key. | | +--------------------------------------+------------------------+ | Enter the following: | | | | | | SINC TCBUILD SOURCE | | +--------------------------------------+------------------------+ | Press the F3 function key to save | The "SCLM Edit | | the member. | Profile" box appears. | +--------------------------------------+------------------------+ | In the "SCLM Edit Profile" box enter | The language defi- | | ARCHDEF for the "Language". | nition ARCHDEF is | | | assigned to this | | Press the ENTER key. | member. The project | | | definition (Figure 26 | | | on page 138) uses the | | | standard architecture | | | definition language | | | FLM@ARCD. | | | | | | The "SCLM Edit - Entry | | | Panel" appears. | +--------------------------------------+------------------------+ | Press the F3 function key. | The "SCLM Main Menu" | | | appears. | +--------------------------------------+------------------------+ Build 'TSOUSER.DEVELOP.ARCHDEF(TCBUILD)': This section describes ________________________________________ how to build member 'TSOUSER.DEVELOP.ARCHDEF(TCBUILD)'. The TeamConnection BUILD command is invoked and the part testpart.exe is built as per the TeamConnection BUILD command in the ACTINFO file (Figure 21 on page 125). SCLM to TeamConnection 39 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | On the SCLM MAIN MENU enter: | The "SCLM Build - | | | Entry Panel" appears. | | PROJECT TSOUSER | | | ALTERNATE SCLMTC | | | GROUP DEVELOP | | | OPTION ===> 4 | | | | | | Build is usually option 4. | | +--------------------------------------+------------------------+ | On the SCLM BUILD - ENTRY PANEL | A workstation window | | enter: | appears with the | | | TeamConnection build | | PROJECT TSOUSER | progress messages | | GROUP DEVELOP | while the | | TYPE ARCHDEF | TeamConnection BUILD | | MEMBER TCBUILD | command runs. | | WORKSTATION BUILD / | | | MODE 1 | TeamConnection part | | SCOPE 2 | testpart.exe will be | | PROCESS 1 | up to date on the | | MESSAGES 1 3 | workstation after a | | REPORT 1 3 | successful | | LISTINGS 1 3 | TeamConnection BUILD. | | | It can be extracted | | Press the ENTER key. | and run to demonstrate | | | that the changes made | | | in SCLM are present in | | | the part. | +--------------------------------------+------------------------+ Step 7 - Test the OS/2 Application __________________________________ Extract the executable part TESTPART.EXE and run it for the test. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select ACTIONS, then PARTS, and then | The "Extract Parts" | | EXTRACT from the "TeamConnection - | window appears. | | Tasks" window. | | +--------------------------------------+------------------------+ | Set the following fields: | | | | | | PATH NAMES testpart.exe| | | RELEASE release1 | | | WORK AREA mvstcwa | | | DESTINATION DIRECTORY e:\mytemp | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ 40 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Go to an OS/2 window. | The messages from | | | testpart.exe should | | Run the command E:\MYTEMP\TESTPART. | appear: | | | | | Minimize or close the OS/2 window. | I am testpart.c | | | I was changed on MVS! | | | I was also changed on | | | SCLM! | | | I was built by the | | | Team Connection | | | integrated Build | | | Tool!!! | | | | | | The line "I was | | | changed on MVS!" will | | | appear if you ran the | | | MVS example ("MVS to | | | TeamConnection" on | | | page 5). | +--------------------------------------+------------------------+ SCLM to TeamConnection 41 42 TeamConnection and MVS/SCLM TEAMCONNECTION TO SCLM The connection between TeamConnection and SCLM is through the TeamConnection BUILD function. The concept is to place a part in a build tree with a builder that runs IRXJCL on MVS which then runs a REXX program containing an SCLM command. TR 29.2196 USING REXX COMMAND FILES WITH TEAMCONNECTION MVS BUILD SCRIPTS describes this concept in detail for MVS tools such as precom- pilers, compilers, and linkage editors. Running an SCLM command requires a slightly more complex REXX program because it needs to use the ISPSTART function in order to run FLMCMD (the service interface to SCLM). TEAMCONNECTION TO SCLM - BUILD This example uses the TeamConnection family described in Appendix B, "TeamConnection Family Setup" on page 89 and the SCLM project definition described in Appendix D, "SCLM Project Defi- nition Setup" on page 117. The example that follows shows how to construct a build tree with a part that contains parameters for FLMCMD. (see Figure 14 on page 82). An MVS REXX program (see Figure 29 on page 142) creates an FLMCMD parameter string from these parameters and runs the FLMCMD for the SCLM BUILD. Setup Requirements __________________ o The TeamConnection family mvssclm and parts must be installed on the workstation (see Appendix B, "TeamConnection Family Setup" on page 89). o The SCLM project definition SCLMTC and parts must be installed on the MVS system (see Appendix D, "SCLM Project Definition Setup" on page 117). Step 1 - Workstation preliminary activities ___________________________________________ TeamConnection to SCLM 43 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Be sure these environment variables | | | are set in config.sys: | | | | | | TC_FAMILY mvssclm | | | TC_USER SuprUser | | | TC_BECOME SuprUser | | | TC_DBPATH e:\family\mvssclm| | +--------------------------------------+------------------------+ | Start the ObjectStore server. | | +--------------------------------------+------------------------+ | Start the family mvssclm. | | +--------------------------------------+------------------------+ | From an OS/2 window issue the | The MVS build agent | | command | starts in the OS/2 | | | window. | | TEAMAGNT -F MVSSCLM -E TSO -P POOL1|-S TSOSOCK -K IBM-850 | | | The MVS build | | | processor will be | | | started on MVS by sub- | | | mitting a job that | | | runs TEAMPROC from | | | TSO. | +--------------------------------------+------------------------+ Step 2 - MVS preliminary activities ___________________________________ +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | LOGON to TSO. | | +--------------------------------------+------------------------+ | Submit the job that runs the | This job should be | | TeamConnection RUNPGMT program (it | active on the MVS job | | might be in the data set | queue and waiting for | | 'TSOUSER.TEAMC.JCLLOAD(RUNPGMT)'). | a file from the MVS | | | build agent. | | See Figure 31 on page 147 for an | | | example of the JCL. | | +--------------------------------------+------------------------+ 44 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Allocate the partitioned data set | See Appendix A, | | 'TSOUSER.TEAMC.REXX' (or some other | "TeamConnection Parts | | name) as FB with LRECL=80. You can | and Scripts" on | | use an existing partitioned data | page 79 for informa- | | set. | tion about soft copies | | | of the REXX programs. | | Create the following members: | | | SCLMCMD with the contents of | | | Figure 29 on page 142 | | | EXFLMCMD with the contents of | | | Figure 30 on page 146 | | +--------------------------------------+------------------------+ TeamConnection to SCLM 45 Step 3 - Create TeamConnection builder and parts for an SCLM ____________________________________________________________ BUILD _____ This section creates the tso builder and parts for the TeamConnection build tree that will result in running an SCLM BUILD command on MVS. A TeamConnection part contains parameters for the FLMCMD service that runs the SCLM BUILD. (As an alterna- tive the part containing these parameters may be stored on MVS as a member of a partitioned data set. See TR 29.2196 USING REXX COMMAND FILES WITH TEAMCONNECTION MVS BUILD SCRIPTS for a dis- cussion of the technique.) NOTE: If the input part sclmbild.prm exists from a previous dem- onstration and has not changed since the last time it was built you must "touch" the input part sclmbild.prm in order for a build event to be placed on the job queue. After touching the input part you can go to "Step 4 - Connect TeamConnection parts in a build tree" on page 49. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Modify | Changes to the MVS | | e:\tcdemo\mvssclm\scripts\sclmcmd.jcl| build script must be | | to have SYSEXEC DD point to the data | made before creating | | set created in "Step 2 - MVS prelim- | the builder in order | | inary activities" on page 44. | to avoid modifying the | | | builder properties | | | later. | | | | | | Changes to a build | | | script are only picked | | | up by the builder when | | | you follow the changes | | | with a builder "Modify | | | properties". | +--------------------------------------+------------------------+ | From the "TeamConnection - Tasks" | The "Create Builders" | | window, select ACTIONS, then | window appears. | | BUILDERS, and then CREATE on client | | | workstation. | | +--------------------------------------+------------------------+ | Enter the builder information shown | | | in Figure 5 on page 47, pressing the | | | APPLY push button after each entry. | | +--------------------------------------+------------------------+ | Press the CANCEL push button to | The "TeamConnection - | | return to the Tasks list. | Tasks" window appears. | +--------------------------------------+------------------------+ 46 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | Builder SCLMjcl | | Release release1 | | Script SCLM.jcl | | Environment tso | | Comp. oper. == | | RC value 0 | | File type text | | Source file e:\tcdemo\mvssclm\scripts\sclmcmd.jcl | | Parameters 'SCLMCMD' | | Timeout 10 | | | +---------------------------------------------------------------+ Figure 5. TSO builder information for mvssclm family +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | From the "TeamConnection - Tasks" | The "Create Parts" | | window, select ACTIONS, then PARTS, | window appears. | | and then CREATE. | | +--------------------------------------+------------------------+ | Set the following fields for each | | | part: | | | | | | PART NAMES see Table 1 on | | | page 48 | | | RELEASE release1 | | | WORK AREA mvstcwa | | | COMPONENT projname | | | FILE TYPE see Table 1 on | | | page 48 | | | SOURCE see Table 1 on | | | page 48 | | | SOURCE FILE see Table 1 on | | | page 48 | | | BUILDER see Table 1 on | | | page 48 | | | PARSER see Table 1 on | | | page 48 | | | | | | Enter the parts and information | | | shown in Table 1 on page 48, | | | pressing the APPLY push button after | | | each entry. | | +--------------------------------------+------------------------+ | Press the CANCEL push button to | The "TeamConnection - | | return to the Tasks list. | Tasks" window appears. | +--------------------------------------+------------------------+ TeamConnection to SCLM 47 +---------------------------------------------------------------+ | Table 1. projname Create Part Information | +------------+-----+------+------------------+------------+-----+ | PART NAME | FILE| SOURC| SOURCE FILE | BUILDER | PARS|R | | TYPE| | | | | +------------+-----+------+------------------+------------+-----+ | sclmbild.pr| Text| Copy | e:\tcdemo\mvssclm| | | | | | from | \parts\sclmbild.p|m | | +------------+-----+------+------------------+------------+-----+ | sclmbild.dm| None| | | SCLMjcl | | +------------+-----+------+------------------+------------+-----+ 48 TeamConnection and MVS/SCLM Step 4 - Connect TeamConnection parts in a build tree _____________________________________________________ FLMCMD parameters to run the SCLM BUILD command are located in part sclmbild.prm (Figure 14 on page 82) that is connected as an input to part sclmbild.dmy. Part sclmbild.dmy has the builder SCLMjcl (Figure 17 on page 99) with the MVS build script (Figure 28 on page 141). Part sclmbild.dmy could be connected as an input to a collector part in a larger build tree for a more interesting example of a coordinated build between TeamConnection and SCLM. NOTE: If the parts are connected as in Figure 6 on page 50 from a previous demonstration you can go to "Step 5 - Create an SCLM controlled member." on page 51. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select OBJECTS, then PARTS, and then | The "Part Filter" | | PARTS. | window appears. | +--------------------------------------+------------------------+ | Set the following fields: | The "TeamConnection - | | | Parts" window appears. | | RELEASE release1 | | | WORK AREA mvstcwa | | | | | | In the "History" section, select | | | SHOW ALL PARTS | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ | For each icon in Table 2 on page 50: | The fields "Path | | | names", "Type", | | o click on the ICON in the | "Release", and "Work | | "TeamConnection - Parts" window | area" should already | | | have the correct | | o click on mouse button 2 | values. | | | | | o click on CONNECT from the pop up | | | | | | o Set the following fields and | | | radio buttons in the "Connect | | | Parts" window: | | | | | | PARENT see Table 2 | | | on page 50 | | | RELATION TO PARENT see Table 2 | | | on page 50 | | | | | | o Press the OK push button. | | +--------------------------------------+------------------------+ TeamConnection to SCLM 49 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Close the "TeamConnection - Parts" | The "TeamConnection - | | window. | Tasks" window appears. | +--------------------------------------+------------------------+ | Select OBJECTS, then PARTS, and then | The "BuildView Filter" | | BUILDVIEW. | window appears. | +--------------------------------------+------------------------+ | Set the following fields: | The "TeamConnection - | | | BuildView" window | | RELEASE release1 | appears. | | WORK AREA mvstcwa | | | | | | In the "History" section, select | | | SHOW ALL BUILDVIEW | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ | Expand the SCLMBILD.DMY icon to show | Examine the tree for | | the entire tree. | proper structure (see | | | Figure 6 on page 50). | +--------------------------------------+------------------------+ | Close the "TeamConnection - | The "TeamConnection - | | BuildView" window. | Tasks" window appears. | +--------------------------------------+------------------------+ +---------------------------------------------------------------+ | Table 2. release1 Build Tree Information | +-------------------------+-------------------------+-----------+ | ICON | PARENT | RELATION | +-------------------------+-------------------------+-----------+ | sclmbild.prm | sclmbild.dmy | input | +-------------------------+-------------------------+-----------+ +---------------------------------------------------------------+ | | | -------------- | | | | | | | sclmbild.dmy | | | | | | | -------------- | | | | | | -------------- | | | | | | | -----------| sclmbild.prm | | | | (I) | | | -------------- | | | +---------------------------------------------------------------+ Figure 6. Build tree with part sclmbild.prm 50 TeamConnection and MVS/SCLM Step 5 - Create an SCLM controlled member. __________________________________________ Member 'TSOUSER.DEVELOP.SOURCE(PROGRAM1)' will be created using SCLM EDIT and assigned the language DUMMY. This member will rep- resent a source program. A more complicated example could use a COBOL program and a COBOL language definition. The simple lan- guage definition DUMMY is used for demonstration purposes. NOTE: If the member exists from a previous demonstration you must either delete the member using the SCLM library utility and follow the instructions below or use SCLM EDIT and SAVE the member so that it will be updated for the SCLM BUILD (remember to enter "SAVE" on the command line in the SCLM EDIT session). +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select SCLM from the "ISPF Primary | The "SCLM Main Menu" | | Option Menu". | appears. | | | | | This is usually option 10. | | +--------------------------------------+------------------------+ | On the SCLM MAIN MENU enter: | The "SCLM Edit - Entry | | | Panel" appears. | | PROJECT TSOUSER | | | ALTERNATE SCLMTC | | | GROUP DEVELOP | | | OPTION ===> 2 | | | | | | Edit is usually option 2. | | +--------------------------------------+------------------------+ | On the SCLM EDIT - ENTRY PANEL | An SCLM EDIT session | | enter: | appears. | | | | | PROJECT TSOUSER | | | GROUP DEVELOP | | | TYPE SOURCE | | | MEMBER PROGRAM1 | | | | | | Press the ENTER key. | | +--------------------------------------+------------------------+ | Enter the following line of source | | | code for PROGRAM1: | | | | | | THIS IS SOURCE CODE. | | +--------------------------------------+------------------------+ | Press the F3 function key to save | The "SCLM Edit | | the member. | Profile" box appears. | +--------------------------------------+------------------------+ TeamConnection to SCLM 51 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | In the "SCLM Edit Profile" box enter | The simple language | | DUMMY for the "Language". | definition DUMMY (see | | | Figure 22 on page 128) | | Press the ENTER key. | that is convenient for | | | demonstration purposes | | Press the F3 function key. | is assigned to this | | | member. | | | | | | The "SCLM Edit - Entry | | | Panel" appears. | | | | | | The "SCLM Main Menu" | | | appears. | +--------------------------------------+------------------------+ 52 TeamConnection and MVS/SCLM Step 6 - Create an SCLM architecture definition member ______________________________________________________ Member 'TSOUSER.DEVELOP.ARCHDEF(APPL1)' will be created using SCLM EDIT and assigned the language ARCHDEF. This member identi- fies the source member to be built (PROGRAM1). NOTE: If the architecture definition member exists from a pre- vious demonstration it does not need to be recreated or edited and saved. It can be used "as is" and you can go directly to "Step 7 - Run an SCLM BUILD from a TeamConnection BUILD" on page 55. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | On the SCLM MAIN MENU enter: | The "SCLM Edit - Entry | | | Panel" appears. | | PROJECT TSOUSER | | | ALTERNATE SCLMTC | | | GROUP DEVELOP | | | OPTION ===> 2 | | | | | | Edit is usually option 2. | | +--------------------------------------+------------------------+ | On the SCLM EDIT - ENTRY PANEL | An SCLM EDIT session | | enter: | appears. | | | | | PROJECT TSOUSER | | | GROUP DEVELOP | | | TYPE ARCHDEF | | | MEMBER APPL1 | | | | | | Press the ENTER key. | | +--------------------------------------+------------------------+ | Enter the following: | | | | | | SINC PROGRAM1 SOURCE | | +--------------------------------------+------------------------+ | Press the F3 function key to save | The "SCLM Edit | | the member. | Profile" box appears. | +--------------------------------------+------------------------+ TeamConnection to SCLM 53 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | In the "SCLM Edit Profile" box enter | The language defi- | | ARCHDEF for the "Language". | nition ARCHDEF will be | | | assigned to this | | Press the ENTER key. | member. The project | | | definition (Figure 26 | | Press the F3 function key. | on page 138) uses the | | | standard architecture | | | definition language | | | FLM@ARCD. | | | | | | The "SCLM Edit - Entry | | | Panel" appears. | | | | | | The "SCLM Main Menu" | | | appears. | +--------------------------------------+------------------------+ 54 TeamConnection and MVS/SCLM Step 7 - Run an SCLM BUILD from a TeamConnection BUILD ______________________________________________________ This TeamConnection BUILD is the same as any TeamConnection BUILD involving an MVS build processor. In this demonstration a BUILD of sclmbild.dmy puts a build event on the job queue. The MVS build agent sends the build script and FLMCMD parameters to the MVS build processor. The MVS build processor runs IRXJCL as per the build script which will then run an MVS REXX program con- taining the FLMCMD service interface to the SCLM BUILD. After a successful BUILD you can examine the build map using the "SCLM Utilities" for 'TSOUSER.SCLMTC.ARCHDEF(APPL1)'. The BUILD date and time will be updated to show the date and time of this SCLM BUILD. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select OBJECTS, then PARTS, and then | The "BuildView Filter" | | BUILDVIEW. | window appears. | +--------------------------------------+------------------------+ | Set the following fields: | The "TeamConnection - | | | BuildView" window | | RELEASE release1 | appears. | | WORK AREA mvstcwa | | | | | | In the "History" section, select | | | SHOW ALL BUILDVIEW and press the OK | | | push button. | | +--------------------------------------+------------------------+ | Click on SCLMBILD.DMY. | | +--------------------------------------+------------------------+ | Select SELECTED, and then BUILD. | The "Build Parts" | | | window appears. | +--------------------------------------+------------------------+ | Set the following fields and radio | | | buttons: | | | | | | PATH NAME sclmbild.dmy | | | TYPE TCPart | | | RELEASE release1 | | | WORK AREA mvstcwa | | | POOL pool1 | | | BUILD MODE normal | | | PARAMETERS | | | DETAIL FILE | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ | Monitor the "Build Progress" window, | The "TeamConnection - | | press the OK push button when the | BuildView" window | | build is complete. | appears. | +--------------------------------------+------------------------+ TeamConnection to SCLM 55 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Close the "TeamConnection - | The "TeamConnection - | | BuildView" window. | Tasks" window appears. | +--------------------------------------+------------------------+ 56 TeamConnection and MVS/SCLM Step 8 - Examine SCLM build map _______________________________ The build map for member 'TSOUSER.DEVELOP.ARCHDEF(APPL1)' is examined to demonstrate that the SCLM BUILD actually took place. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | On the SCLM MAIN MENU enter: | The "SCLM Utilities | | | Menu" appears. | | PROJECT TSOUSER | | | ALTERNATE SCLMTC | | | GROUP DEVELOP | | | OPTION ===> 3 | | | | | | Utilities is usually option 3. | | +--------------------------------------+------------------------+ | On the SCLM UTILITIES MENU" select | The "SCLM Library | | LIBRARY. | Utility - Entry Panel" | | | appears. | | Library is usually option 1. | | +--------------------------------------+------------------------+ | On the SCLM LIBRARY UTILITY - ENTRY | A display of the | | PANEL enter: | "TSOUSER.DEVELOP.ARCHDE|(APPL1): | | Build Map Record" | | PROJECT TSOUSER | appears. | | GROUP DEVELOP | | | TYPE ARCHDEF | The "Change Date" and | | MEMBER APPL1 | "Change Time" should | | OPTION ===> M | be the same as when | | | the member was built | | Press the ENTER key. | from TeamConnection. | +--------------------------------------+------------------------+ | Press the F3 function key. | The "SCLM Library | | | Utility - Entry Panel" | | | appears. | +--------------------------------------+------------------------+ | Press the F3 function key. | The "SCLM Utilities | | | Menu" appears. | +--------------------------------------+------------------------+ | Press the F3 function key. | The "SCLM Main Menu" | | | appears. | +--------------------------------------+------------------------+ TeamConnection to SCLM 57 58 TeamConnection and MVS/SCLM COORDINATED TEAMCONNECTION AND SCLM BUILD This section ties together the application development environ- ment of TeamConnection with that of SCLM for BUILD activity. The techniques presented in this section expand upon those of the previous section. The section "BUILD from SCLM or TeamConnection" on page 65 pre- sents a TeamConnection build tree and SCLM architecture defi- nition structure that reference each other. A TeamConnection BUILD of the top collector part in the build tree will yield similar results as an SCLM BUILD of the top high level architec- ture definition member. A BUILD from either TeamConnection or SCLM produces the same application outputs. TEAMCONNECTION BUILD FROM SCLM An application might exist as a combination of members of data sets controlled by SCLM and parts stored in a TeamConnection family. The techniques described in this paper can be used to create an SCLM architecture definition that has one member for each TeamConnection build tree to be built. Each of these archi- tecture definition members references a source member whose lan- guage definition uses the ISPF SELECT function to run an MVS REXX program which then runs a TeamConnection BUILD. As shown in Figure 7 on page 60, one way of adding a TeamConnection BUILD to an existing SCLM architecture definition structure is by creating two additional high level architecture definition members. One member points to the architecture defi- nition members for the TeamConnection BUILD while the other points to the existing SCLM structure. This provides the ability to build both the SCLM members and TeamConnection parts, only the SCLM members, or only the TeamConnection parts. Coordinated TeamConnection and SCLM BUILD 59 +---------------------------------------------------------------+ | | | ----------------------- | | | INCL SCLMBILD ARCHDEF | Architec|ure Definition | | INCL TCONBILD ARCHDEF | Member B|ILDALL | ----------------------- | | | | | ----------------------------------- | | | | | | | Architecture Definition | Archit|cture Definition | | Member SCLMBILD | Member|TCONBILD | ------------------- --------------|---- | | INCL XXX1 ARCHDEF | | INCL YYY1 ARC|DEF | | | . | | . | | | | . | (1) | . | | (2) | | . | | . | | | | INCL XXXn ARCHDEF | | INCL YYYn ARC|DEF | | ------------------- --------------|---- | | | The architecture definition in box (1) builds SCLM contr|lled members | whose language definitions use MVS translators such as c|mpilers and | linkage editors. It controls the existing applications u|der SCLM. | | | The architecture definition in box (2) builds SCLM contr|lled members | whose language definitions use the ISPF SELECT service a|d WSCMDV to | run TeamConnection build commands. It controls the appli|ations that exist | under TeamConnection. For example, a build of this membe| could result in a | build of collector part tcbuild.col in Figure 8 on page |3. | | | When an SCLM BUILD command is issued for member BUILDALL|both | SCLM and TeamConnection builds will occur. | | | | When an SCLM BUILD command is issued for SCLMBILD then o|ly the members | for applications controlled by SCLM will be built. | | | | When an SCLM BUILD command is issued for TCONBILD then o|ly the parts | for applications controlled by TeamConnection will be bu|lt. | | | NOTE: A change in a TeamConnection part outside of SCLM |ill not update | the SCLM accounting records. The "dummy" parts with the |eamConnection | BUILD command language definitions must be "out of date"|in order to be | built without a "forced" SCLM build. | | | | A "forced" SCLM build does not change the TeamConnection|build to | "force". The TeamConnection build executed by WSCMDV mus| specify "force" | in order to run a "force" TeamConnection build. However,|SCLM does have | the provision for a user-written build exit that runs af|er the SCLM | build. This build exit receives a parameter list that in|ludes the SCLM | build mode. The exit could examine the parameter list an| run a "force" | TeamConnection build if the SCLM build mode was "forced"| | | +---------------------------------------------------------------+ Figure 7 (Part 1 of 2). Referencing TeamConnection build trees from SCLM architecture definitions 60 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | This is an SCLM architecture definition structure for a |oordinated | BUILD using the examples in this paper: | | | | | | ----------------------- | | | INCL APPL1 ARCHDEF | Architec|ure Definition | | INCL TCBUILD ARCHDEF | Member B|ILDALL | ----------------------- | | | | | Member ------------------------------------------|Member | APPL1 | ||TCBUILD | --------------------------- --------------|------------ | | | | | | | | SINC PROGRAM1 SOURCE | | SINC TCBUILD |OURCE | | | | | | | | | | | | | | --------------------------- --------------|------------ | The application controlled by Because only o|e TeamConnection | SCLM has only one source program part is to be |uilt, there is | (PROGRAM1 in this example). no need to hav| an INCL for | In a typical application this another archit|cture definition | member would be the high level with just one |INC statement. | architecture definition member | | for the entire application under | | SCLM control. | | | | | | NOTE: A change to TeamConnection part testpart.c using t|e | CHECKOUT/change/CHECKIN example in this document will NO| update | 'TSOUSER.TCSCLM.SOURCE(TCBUILD)'. The TCBUILD member mus| be "out | of date" in order to avoid a "forced" build. | | | +---------------------------------------------------------------+ Figure 7 (Part 2 of 2). Referencing TeamConnection build trees from SCLM architecture definitions SCLM BUILD FROM TEAMCONNECTION An application might exist as a combination of parts stored in a TeamConnection family and members of data sets controlled by SCLM. The techniques described in this paper can be used to create a TeamConnection build tree that has a part for each SCLM controlled application to be built. Each of these parts has a builder that will run an MVS REXX program to do an SCLM BUILD. As shown in Figure 8 on page 63, one way of adding an SCLM BUILD to an existing TeamConnection build tree is by creating two addi- tional parts. One part contains FLMCMD parameters for building a specific SCLM architecture definition member (normally the high level member for an application). The other part is the parent Coordinated TeamConnection and SCLM BUILD 61 of the FLMCMD parameters part and has a builder that runs IRXJCL which then runs an MVS REXX program. This parent part could be connected to a collector part in an existing build tree. This type of tree structure provides the ability to build both the TeamConnection parts and SCLM members, only the TeamConnection parts, or only the SCLM members. 62 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | ----------------------- | | | appl.col | TeamConn|ction | | NULL builder | collecto| part | ----------------------- (file ty|e of None) | | | | ------------------------------------------| | (+) | (+) || | --------------------------- --------------|------------ | | tcbuild.col | | scbui|d.col | | | NULL builder | | NULL |uilder | | | | | | | | | collector part for an | | collector par| for parts | | | existing build tree | | that build SC|M members | | --------------------------- --------------|------------ | This part is the parent for This part is t|e parent for | each part that has a builder each part that|has a builder | for parts in applications which runs IRX|CL to run an | controlled by TeamConnection. MVS REXX progr|m which runs | an SCLM BUILD |ommand. | For example, a|build of this | part could res|lt in a build | of architectur| definition | SCLMBILD in Fi|ure 7 on page 60 | | | When a TeamConnection BUILD command is issued for part a|pl.col | then both SCLM and TeamConnection builds will occur. | | | | When a TeamConnection BUILD command is issued for part t|build.col | then only the parts controlled by TeamConnection will be|built. | | | When a TeamConnection BUILD command is issued for part s|build.col | then only the parts controlled by SCLM will be built. | | | | NOTE: A change in an SCLM member outside of TeamConnecti|n will NOT | update the TeamConnection parts with builders that have |he MVS build | scripts. These parts, or their inputs, must be "out of d|te" in order to | put a build event on the job queue without a "force" bui|d. | | | A "force" TeamConnection build does not change the SCLM |uild to | "forced". The SCLM build executed by the MVS REXX progra| must specify | "forced" in order to run a "forced" SCLM build. | | | +---------------------------------------------------------------+ Figure 8 (Part 1 of 2). Referencing SCLM architecture definitions from TeamConnection build trees Coordinated TeamConnection and SCLM BUILD 63 +---------------------------------------------------------------+ | | | This is a TeamConnection build tree for a coordinated BU|LD using the | examples in this paper: | | | | | | ----------------------- | | | appl.col | | | | os2null builder | (file ty|e of None) | ----------------------- | | | | | ------------------------------------------| | (I) | (I) || | --------------------------- --------------|------------ | | | | | | | | testpart.exe | | sclmbi|d.dmy | | | Clink builder | | SCLMjcl|builder | | --------------------------- --------------|------------ | (I) | (I) || | --------------------------- --------------|------------ | | | | | | | | testpart.obj | | sclmbi|d.prm | | | Ccompile builder | | | | | --------------------------- --------------|------------ | (I) | Because only o|e SCLM | --------------------------- application is|to be built, | | | there is no ne|d to have a | | testpart.c | collector part|as the parent of | | Cparser parser | just one part |ith an MVS | --------------------------- script. | | (D) | | | --------------------------- | | | | | | | testcopy.h | | | | Cparser parser | | | --------------------------- | | | | | | NOTE: A change to SCLM member PROGRAM1 will NOT update s|lmbild.dmy | or sclmbild.prm. Either of these parts must be "out of d|te" in order | to avoid a "forced" build. | | | +---------------------------------------------------------------+ Figure 8 (Part 2 of 2). Referencing SCLM architecture definitions from TeamConnection build trees 64 TeamConnection and MVS/SCLM BUILD FROM SCLM OR TEAMCONNECTION You can develop an application partly in SCLM and partly in TeamConnection with the BUILD being performed from either envi- ronment. You can build the highest level SCLM architecture defi- nition member or the highest TeamConnection collector part in the build tree. Some coordination is required between the two plat- forms in order to be sure that all members and parts are examined for a build. In order for all SCLM members to be examined from a TeamConnection BUILD, the TeamConnection parts that result in SCLM builds must be marked as out of date when the SCLM members are out of date. Similarly, in order for all TeamConnection parts to be examined from an SCLM BUILD, the SCLM members that result in TeamConnection builds must be marked as out of date when the TeamConnection parts are out of date. However, SCLM does not automatically mark SCLM members as out of date following changes to TeamConnection parts and TeamConnection does not auto- matically mark TeamConnection parts as out of date following changes to SCLM parts. Some coordination of updates between SCLM and TeamConnection is required in order to have a normal build started from either TeamConnection or SCLM examine each SCLM member and TeamConnection part in the build scope. Marking SCLM members out of date ________________________________ The TeamConnection user needs to be sure that the SCLM members that correspond to the TeamConnection BUILD of the TeamConnection parts being changed are marked as being out of date so that a normal BUILD can be done from SCLM. This coordination of updates can be done manually or automatically. The manual coordination in SCLM can be done by editing and saving the dummy source member(s) that are used for a TeamConnection BUILD or by deleting their build maps. The automatic coordination of TeamConnection updates with SCLM can be done by using the SCLM DELETE service to delete the build maps of members whose language definition invokes a TeamConnection BUILD. This service can be invoked from a REXX program using the FLMCMD service interface just like the SCLM BUILD is invoked from TeamConnection. The TeamConnection user could use a part with parameters for the SCLM DELETE service along with an appropriate MVS REXX program to delete the build maps of the dummy source members that invoke the TeamConnection BUILD at any time prior to issuing a TeamConnection BUILD. Ideally TeamConnection would automatically issue the SCLM DELETE service for the appropriate SCLM member build maps when TeamConnection recognizes a TeamConnection part is out of date. Coordinated TeamConnection and SCLM BUILD 65 Marking TeamConnection parts out of date ________________________________________ The SCLM user needs to be sure that the TeamConnection parts that correspond to the SCLM BUILD of the SCLM members being changed are marked as being out of date so that a BUILD may be done from TeamConnection. This coordination of updates can be done manu- ally or automatically. In TeamConnection this can be done by "touching" each part that is an input to a part with an MVS build script that runs an SCLM BUILD. The automatic coordination of SCLM updates with TeamConnection can be done by using the TeamConnection command "part -touch" to mark the parts that invoke an SCLM BUILD as being stale and in need of a build. This command can be invoked from MVS with a REXX program or from an SCLM BUILD of a member with a language definition that uses the ISPF SELECT service to run FLMLTWST and an appropriate command in the ACTINFO file (Figure 21 on page 125). The SCLM user could run the TeamConnection "part -touch" commands for the parts that invoke an SCLM BUILD at any time prior to issuing a TeamConnection BUILD. Ideally SCLM would automatically issue the TeamConnection "part -touch" commands for the appropriate TeamConnection parts when SCLM recognizes an SCLM member is out of date. Doing the builds from SCLM __________________________ An SCLM BUILD results in the SCLM members being built and the TeamConnection parts for the applications controlled by TeamConnection being built. The TeamConnection parts which BUILD the SCLM members are not involved in this build and remain out of date. (If they were involved there would be a possibility of an infinite loop or a "lockup" because SCLM tells TeamConnection to BUILD which then tells SCLM to BUILD and so on.) A small amount of overhead results when the next TeamConnection BUILD issues an SCLM BUILD command for SCLM members that have not changed since the last SCLM BUILD. Doing the builds from TeamConnection ____________________________________ A TeamConnection BUILD results in the TeamConnection parts being built and the SCLM members for the applications controlled by SCLM being built. The SCLM members which BUILD the TeamConnection parts are not involved in this build and remain out of date. (If they were involved there would be a possibility of an infinite loop or a "lockup" because TeamConnection tells SCLM to BUILD which then tells TeamConnection to BUILD and so on.) A small amount of overhead results when the next SCLM BUILD issues a TeamConnection BUILD command for TeamConnection parts that have not changed since the last TeamConnection BUILD. 66 TeamConnection and MVS/SCLM Summary _______ The important point is that a BUILD command can be run in both environments without requiring a forced build. This is illus- trated in the example shown in Figure 9 on page 68 which is a combination of the techniques shown in Figure 7 on page 60 and Figure 8 on page 63. Coordinated TeamConnection and SCLM BUILD 67 +---------------------------------------------------------------+ | | | SCLM: ----------------------- | | | INCL SCLMBILD ARCHDEF | Architec|ure Definition | | INCL TCONBILD ARCHDEF | Member B|ILDALL | ----------------------- | | | | | Member ------------------------------------------|Member | SCLMBILD | ||TCONBILD | --------------------------- --------------|------------ | | INCL SCLMAPPL ARCHDEF | | SINC TCONBI|D SOURCE | | --------------------------- | | | | This member is the high level --------------|------------ | architecture definition for Source member |CONBILD has a | one or more applications language defin|tion which uses | controlled by SCLM. ISPF SELECT to|run a REXX | This is the member built by program that r|ns WSCMDV to run | TeamConnection. a TeamConnecti|n BUILD of part | tconbild.col. | | | | --------------------------------------------------------|---------------- | | | TEAMCONNECTION: ----------------------- | | | appl.col | TeamConn|ction | ----------------------- collecto| part | | | | ------------------------------------------| | (+) | (I) || | --------------------------- --------------|------------ | | tconbild.col | | sclmbi|d.dmy | | --------------------------- --------------|------------ | This part is the collector (I) || | part for all of the parts in --------------|------------ | applications controlled by | sclmbi|d.prm | | TeamConnection. --------------|------------ | This is the part built by SCLM. This part cont|ins parameters | used by an MVS|REXX program to | run an SCLM BU|LD command for | architecture d|finition member | SCLMBILD. | | | | When an SCLM BUILD command is issued for member BUILDALL|both | SCLM and TeamConnection builds will occur. The SCLM BUIL| of | architecture definition member SCLMBILD will NOT update |he build | status of TeamConnection part sclmbild.dmy. | | | | When a TeamConnection BUILD command is issued for part a|pl.col both | TeamConnection and SCLM builds will occur. The TeamConne|tion BUILD of | part tconbild.col will NOT update the build status of SC|M member | TCONBILD. | | | +---------------------------------------------------------------+ Figure 9 (Part 1 of 2). Example of building from SCLM or TeamConnection 68 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | Using the examples in this paper these structures look l|ke: | | | SCLM: ----------------------- | | | INCL APPL1 ARCHDEF | Architec|ure Definition | | INCL TCBUILD ARCHDEF | Member B|ILDALL | ----------------------- | | | | | Member ------------------------------------------|Member | APPL1 | ||TCBUILD | --------------------------- --------------|------------ | | SINC PROGRAM1 SOURCE | | SINC TCBUIL| SOURCE | | --------------------------- --------------|------------ | | | | | --------------------------------------------------------|---------------- | | | | | TEAMCONNECTION: ----------------------- | | | appl.col | TeamConn|ction | ----------------------- collecto| part | | | | ------------------------------------------| | (I) | (I) || | --------------------------- --------------|------------ | | testpart.exe | | sclmbi|d.dmy | | --------------------------- --------------|------------ | (I) | (I) || | --------------------------- --------------|------------ | | testpart.obj | | sclmbi|d.prm | | --------------------------- --------------|------------ | (I) | | | --------------------------- | | | testpart.c | | | | with dependency testcopy.h| | | --------------------------- | | | | When an SCLM BUILD command is issued for member BUILDALL|both | SCLM and TeamConnection builds will occur. The SCLM BUIL| is for APPL1 | and TCBUILD. The BUILD of architecture member TCBUILD ca|ses a | TeamConnection BUILD for part testpart.exe. TeamConnecti|n part | sclmbild.dmy will not be built and the build status of t|is part will | not change. | | | | When a TeamConnection BUILD command is issued for part a|pl.col both | SCLM and TeamConnection builds will occur. Build events |or testpart.exe | and sclmbild.dmy are created. The BUILD of part sclmbild|dmy causes an | SCLM BUILD for architecture definition member APPL1. SCL| member TCBUILD | will not be built and the build status of this member wi|l not change. | | +---------------------------------------------------------------+ Figure 9 (Part 2 of 2). Example of building from SCLM or TeamConnection Coordinated TeamConnection and SCLM BUILD 69 70 TeamConnection and MVS/SCLM SCLM ARCHITECTURE DEFINITION PARAMETERS FOR TEAMCONNECTION COMMANDS ADDITIONAL PARAMETERS RECOGNIZED BY THE EXTENDED FLMLTWST The TeamConnection command, action flags, option lists, attribute flags, and arguments are hard coded in the ACTINFO file (Figure 21 on page 125) used in the previous examples. This is extremely restrictive for general use but is necessary due to the design of FLMLTWST as found in ISPF 4.2. The design of FLMLTWST also causes transfer of the SCLM input members from MVS to the workstation and transfer of the output files from the workstation to MVS. These file transfers are not always required for TeamConnection commands. For example, a TeamConnection part checkout command does not require an input member to be transferred to the workstation and a TeamConnection part checkin command does not require an output file to be trans- ferred to MVS. The SCLM PARM and PARMx architecture definition statements can be used to add parameters to the FLMLTWST parameter string at run time. FLMLTWST can be extended to examine these parameters and to run any TeamConnection command based upon these parameter values and the use of a general purpose ACTION statement in the ACTINFO file. Parameters can also be added to avoid an unneces- sary transfer of files to and from the workstation. The file flmltwst.rex provided with the demonstration materials (see Appendix A, "TeamConnection Parts and Scripts" on page 79) is the SCLM FLMLTWST from ISPF 4.2 extended through code changes to recognize the following parameters in an SCLM architecture definition PARM or PARMx statement: o SENDINPUT - YES - send inputs from MVS to the workstation - NO - do not send inputs to the workstation - DEFAULT = YES o GETOUTPUT - YES - send outputs from the workstation to MVS - NO - do not send outputs to MVS - DEFAULT = YES o TCACTFLAG SCLM Architecture Definition Parameters for TeamConnecmandsCo71 - the value 'TCACTFLAG' in a 'CPARM TCACTFLAG' statement from an ACTINFO file (Figure 21 on page 125) is replaced with the value of the TCACTFLAG keyword parameter - this parameter is intended to be a TeamConnection command action flag but can be used for any CPARM statement - DEFAULT = -build o PARTNAME - the value 'PARTNAME' in a 'CPARM PARTNAME' statement from an ACTINFO file (Figure 21 on page 125) is replaced with the value of the PARTNAME keyword parameter - this parameter is intended to be a TeamConnection command action flag option list but can be used for any CPARM statement - DEFAULT = PARTNAME There is nothing special about the names, values, and defaults of these parameters. FLMLTWST is provided by SCLM as an example to be extended for other purposes such as this. The extensions found in file flmltwst.rex provided with the demonstration mate- rials (see Appendix A, "TeamConnection Parts and Scripts" on page 79) can be used as examples for other extensions to provide values through parameters on the PARM and PARMx architecture definition statements. The code changes for these extensions are described in Appendix F, "SCLM FLMLTWST Extensions for Parame- ters" on page 149. The character strings following the PARM and PARMx in architec- ture definition statements are concatenated to the OPTIONS keyword parameter value of the FLMTRNSL macro in the SCLM lan- guage definition at run time. Leading and trailing blanks are removed and a leading comma for the string from the first PARM statement and the string from each PARMx statement is added to the concatenation. The character strings could also be part of the OPTIONS keyword value coded in the language definition if they are to be applied to all SCLM BUILDs. The PARM and PARMx architecture definition statements provide a means of changing the FLMLTWST parameter string at run time based upon the member being built. The following sections describe the techniques in more detail: o "Parameters to Avoid File Transfers" on page 73 describes the use of SENDINPUT and GETOUTPUT o "General Purpose ACTION in the ACTINFO File" on page 74 describes the use of TCACTFLAG and PARTNAME 72 TeamConnection and MVS/SCLM PARAMETERS TO AVOID FILE TRANSFERS The transfer of SCLM input members to the workstation can be avoided by adding this PARM statement to the architecture defi- nition that is built for running a TeamConnection command: PARM SENDINPUT=NO The transfer of workstation output files to MVS can be avoided by adding this PARM statement to the architecture definition that is built for running a TeamConnection command: PARM GETOUTPUT=NO The transfer of both SCLM input members to the workstation and workstation output files to MVS can be avoided by adding this PARM statement to the architecture definition that is built for running a TeamConnection command: PARM SENDINPUT=NO,GETOUTPUT=NO For example, building the architecture definition in "Step 3 - TeamConnection CHECKOUT issued from SCLM BUILD" on page 27 results in an unnecessary transfer of the SCLM input part to the workstation. You can avoid this input member transfer with the extended FLMLTWST program and a PARM statement. The architecture definition would look like this: SINC CHECKOUT SOURCE OUT1 TESTPART SRC PARM SENDINPUT=NO SCLM Architecture Definition Parameters for TeamConnecmandsCo73 GENERAL PURPOSE ACTION IN THE ACTINFO FILE The ACTINFO file (Figure 21 on page 125) used in the previous examples has a specific ACTION statement for each TeamConnection command with hard-coded parameter values. The CPARM values that are used to construct the TeamConnection commands can be replaced by values of parameters found in the OPTIONS keyword parameter of the FLMTRNSL macro in a language definition or on PARM and PARMx architecture definition statements. The following is an example of a general purpose ACTION that uses the TCACTFLAG and PARTNAME keyword parameters recognized by the extended FLMLTWST program in the demonstration materials. TeamConnection commands that do not use the following command format need a different ACTION. You can use additional keyword parameters and general purpose ACTION formats to handle other TeamConnection commands. +---------------------------------------------------------------+ | | | * | | * ACTION that uses the TeamConnection teamc part -build |ormat | * | | * TCACTFLAG and PARTNAME are replaced by the keyword par|meter | * values during a BUILD when using the extended FLMLTWST| | * | | ACTION TCOMMAND | | COMMAND teamc | | CPARM part | | CPARM TCACTFLAG | | CPARM PARTNAME | | CPARM -type | | CPARM TCPart | | CPARM -release | | CPARM release1 | | CPARM -workarea | | CPARM mvstcwa | | CPARM -pool | | CPARM pool1 | | CPARM -normal | | | +---------------------------------------------------------------+ Figure 10. ACTINFO - general purpose ACTION The general purpose ACTION for TCOMMAND shown in Figure 10 can be used with the extended FLMLTWST by different methods: o The ACTION value in the OPTIONS keyword parameter for the FLMTRNSL macro in the language definition of the member being 74 TeamConnection and MVS/SCLM built can be set to TCOMMAND. This is described in "Using the ACTION value in FLMTRNSL" on page 75. Advantage - the same ACTION is used by all members with the same language definition. Disadvantage - additional language definitions are needed for using different ACTION statements in the ACTINFO file. o The ACTION value can be specified in a PARM or PARMx archi- tecture definition statement and not in the OPTIONS keyword parameter for the FLMTRNSL macro of the member being built. Advantage - the ACTION value used can be changed in the architecture definitions without the need for additional lan- guage definitions. Disadvantage - the ACTION keyword parameter must be specified on all architecture definitions for parts with language defi- nitions that use FLMLTWST and do not specify the ACTION value in the OPTIONS keyword parameter. There is no single combination of language definitions, keyword parameters, and ACTINFO ACTIONs that meets the needs of all application development environments. USING THE ACTION VALUE IN FLMTRNSL This example uses the ACTION in Figure 10 on page 74 and the extended FLMLTWST. The ACTION TCOMMAND is referenced in a lan- guage definition by specifying ACTION=TCOMMAND in the OPTIONS keyword parameter of the FLMTRNSL macro. Part of the language definition is in Figure 11 on page 76. (See Figure 25 on page 135 for a complete example of a language definition.) SCLM Architecture Definition Parameters for TeamConnecmandsCo75 +---------------------------------------------------------------+ | | | TCOMMAND FLMLANGL LANG=TCCOMMAND, | C | VERSION=1,CHKSYSLB=IGNORE | | * | | * EXECUTE TEAMCONNECTION TEAMC PART COMMAND WITH ACTION |LAG FOUND | * IN TCACTFLAG PARAMETER AND ACTION FLAG OPTION LIST FOU|D | * IN PARTNAME PARAMETER. THE EXTENDED FLMLTWST MUST BE U|ED. | * | | FLMTRNSL CALLNAM='TCOMMAND', | C | FUNCTN=BUILD, | C | CALLMETH=ISPLNK, | C | COMPILE=SELECT, | C | VERSION=1, | C | GOODRC=0, | C | PORDER=1, | C | OPTIONS='CMD(FLMLTWST ACTION=TCOMMAND,BMA|INFO=@@FLM$MP,C | SCLMINFO=@@FLMINF,BLDINFO=@@FLMBIO,PARMS=| | | +---------------------------------------------------------------+ Figure 11. FLMLANGL and FLMTRNSL for General Purpose ACTION In a previous example ("Step 6 - TeamConnection BUILD issued from SCLM BUILD" on page 37), a TeamConnection BUILD was run from SCLM using ACTION BUILD and a hard-coded TeamConnection command (Figure 21 on page 125) to build testpart.exe. The architecture definition in this previous example has one statement: SINC TCBUILD SOURCE In order to use ACTION TCOMMAND to run a TeamConnection BUILD for any part you can: 1. add a language definition for TCOMMAND (Figure 11) to your SCLM project definition (do not forget to assemble and relink your SCLM project definition) 2. change the language of TSOUSER.DEVELOP.SOURCE(TCBUILD) from TCBUILD to TCOMMAND 3. use the PARTNAME keyword parameter in the architecture defi- nition (TCACTFLAG defaults to -build in the extended FLMLTWST code so it does not need to be set) After making these changes, the architecture definition to run a TeamConnection build of part appl.col looks like this: SINC TCBUILD SOURCE PARM PARTNAME=APPL.COL Another technique for using ACTION TCOMMAND to run a TeamConnection BUILD for any part you can: 76 TeamConnection and MVS/SCLM 1. remove ACTION=TCOMMAND from the OPTIONS value in the TCOMMAND language definition (Figure 11) (do not forget to assemble and relink your SCLM project definition) 2. change the language of TSOUSER.DEVELOP.SOURCE(TCBUILD) from TCBUILD to TCOMMAND 3. After making these changes, the architecture definition to run a TeamConnection build of part appl.col looks like this (TCACTFLAG defaults to -build in the extended FLMLTWST code so it does not need to be set): SINC TCBUILD SOURCE PARM ACTION=TCOMMAND,PARTNAME=APPL.COL USING THE EXTENDED FLMLTWST WITH ISPF In order to use a different FLMLTWST from the one delivered with SCLM you can: 1. put the FLMLTWST program in a private partitioned data set such as 'TSOUSER.FLMLTWST.REXX' 2. execute a CLIST prior to bringing up ISPF that will concat- enate the private library to SYSEXEC (Figure 27 on page 139) It is a good idea to design changes for an extended FLMLTWST that result in FLMLTWST running as it did before when you are not using parameters. If this is not possible, you can rename the extended FLMLTWST and add it and the original FLMLTWST to your private library. SCLM Architecture Definition Parameters for TeamConnecmandsCo77 78 TeamConnection and MVS/SCLM APPENDIX A. TEAMCONNECTION PARTS AND SCRIPTS To use the materials, you must do the following: o Unzip tcdemo.zip using the following command: pkunzip2 -d -o e:\mvssclm.zip e:\ where the first e: is where the zip file is located the second e: is where you want to place the parts and commands for the demo o Create the following directory: e:\mytemp o Determine the family name, port, and super user ID that you want to use for the demo. The values used in the demo are: TC_FAMILY mvssclm TC_DBPATH e:\family\mvssclm TCP/IP ADDRESS 9.37.195.43 PORT 9808 SUPER USER ID SuprUser in the demo script. o Determine the TCP/IP addresses and sockets that you want to use for builds. The values used in the demo are: TCP/IP ADDRESS 9.37.195.43 HOST NAME FamHost OS/2 SOCKET NAME bldsock OS/2 SOCKET NUMBER 9997 MVS SOCKET NAME tsosock MVS SOCKET NUMBER 32911 Appendix A. TeamConnection Parts and Scripts 79 DEMONSTRATION MATERIALS The following materials are required for running the demon- strations. 1. C++ source parts (e:\tcdemo\mvssclm\parts). a. testpart.c (Figure 12 on page 82) b. testcopy.h (Figure 13 on page 82) 2. SCLM command parts (e:\tcdemo\mvssclm\parts). a. sclmbild.prm - FLMCMD parameters (Figure 14 on page 82) 3. Build scripts (e:\tcdemo\mvssclm\scripts) a. fhbocomp.cmd - C++ compile (Figure 15 on page 83) b. fhbolink.cmd - Linkage Edit (Figure 16 on page 86) c. sclmcmd.jcl - IRXJCL for running MVS REXX programs (Figure 28 on page 141) 4. MVS REXX programs (e:\tcdemo\mvssclm\rexx) - must be uploaded to MVS a. tcbuild.rex - TeamConnection BUILD command (Figure 4 on page 12) b. tcchkin.rex - TeamConnection CHECKIN command (Figure 3 on page 10) c. tcchkout.rex - TeamConnection CHECKOUT command (Figure 2 on page 7) d. sclmcmd.rex - construct FLMCMD parameter string (Figure 29 on page 142) e. exflmcmd.rex - run FLMCMD service interface to SCLM (Figure 30 on page 146) f. flmltwst.rex - extended FLMLTWST for use with architec- ture definition PARM satements 5. SCLM project definition parts (e:\tcdemo\mvssclm\sclm) - must be uploaded to MVS a. sclmtc.prj - project definition (Figure 26 on page 138) b. dummy.lng - dummy language definition (Figure 22 on page 128) 80 TeamConnection and MVS/SCLM c. checkout.lng - TeamConnection CHECKOUT language defi- nition (Figure 23 on page 129) d. checkin.lng - TeamConnection CHECKIN language definition (Figure 24 on page 132) e. tcbuild.lng - TeamConnection BUILD language definition (Figure 25 on page 135) f. vsamallc.jcl - batch job to allocate VSAM account file (Figure 19 on page 123) g. actinfo.txt - ACTINFO file for workstation commands (Figure 21 on page 125) h. userinfo.txt - USERINFO file for workstation directories (Figure 20 on page 124) Appendix A. TeamConnection Parts and Scripts 81 SIMPLE C++ PROGRAMS +---------------------------------------------------------------+ | | | /* testpart.c */ | | | | #include | | #include "testcopy.h" | | | | int main() | | { | | printf("I am testpart.c\n"); | | printf("I was built by the Team Connection\n"); | | printf("integrated Build Tool!!!\n"); | | return 0; | | } | | | +---------------------------------------------------------------+ Figure 12. testpart.c C++ Program SIMPLE C++ PROGRAM INCLUDE +---------------------------------------------------------------+ | | | /* testcopy.h */ | | | +---------------------------------------------------------------+ Figure 13. testcopy.h C++ Include SCLM BUILD COMMAND PARAMETERS +---------------------------------------------------------------+ | | | BUILD | | DEVELOP | | ARCHDEF | | APPL1 | | | +---------------------------------------------------------------+ Figure 14. sclmbild.prm SCLM BUILD command parameters 82 TeamConnection and MVS/SCLM C++ BUILD SCRIPT +---------------------------------------------------------------+ | | | /*------------------------------------------------------|/ | /* PROGRAM: FHBOCOMP.CMD |/ | /* IBM C Set++ Sample Build Script TeamConnection |/ | /* ICC C++ Compile Only |/ | /* |/ | /*------------------------------------------------------|/ | /* IBM TeamConnection for OS/2 |/ | /* Version 1 Release 0 |/ | /* 5622-717 |/ | /* |/ | /* (C) Copyright, IBM Corp., 1995. All Rights Reserved. |/ | /* Licensed Materials - Property of IBM |/ | /* US Government Users Restricted Rights |/ | /* - Use, duplication or disclosure restricted by |/ | /* GSA ADP Schedule Contract with IBM Corp. |/ | /* |/ | /* IBM is a registered trademark of |/ | /* International Business Machines Corporation |/ | /* |/ | /* DISCLAIMER OF WARRANTIES: |/ | /* The following enclosed code is sample code created |/ | /* by IBM Corporation. This sample code is not part of|/ | /* any standard product and is provided to you solely |/ | /* for the purpose of assisting you in the development |/ | /* of your applications. The code is provide "AS IS", |/ | /* without warranty of any kind. IBM shall not be |/ | /* liable for any damages arising out of your use |/ | /* of the sample code |/ | /*------------------------------------------------------|/ | /* Inputs from the environment |/ | /* TC_INPUT |/ | /* TC_OUTPUT |/ | /* |/ | /* Inputs from the argument list |/ | /* PARMS |/ | /* |/ | /* TC_INPUT contains inputs stored in the library that |/ | /* are input to the translator build step. |/ | /* TC_OUTPUT contains outputs that are to be built by |/ | /* translator and that will be stored in the library |/ | /* PARMS are translator options that are specified |/ | /* on the TeamConnection builder definition. |/ | /* |/ | | +---------------------------------------------------------------+ Figure 15 (Part 1 of 2). fhbocomp.cmd C++ Build Script Appendix A. TeamConnection Parts and Scripts 83 +---------------------------------------------------------------+ | | | /* Outputs: |/ | /* files generated by the translator |/ | /* |/ | /* Returns: |/ | /* return code from the translator execution |/ | /*------------------------------------------------------|/ | parse arg parms | | | | environ = 'OS2ENVIRONMENT' | | input = VALUE('TC_INPUT',,environ) | | output = VALUE('TC_OUTPUT',,environ) | | | | translator = 'icc' /* specify the translator to b| invoked */ | default_parms = '/C+' /* specify any default parms t| be used */ | /* for the compile | */ | | | if parms = '' then parms = default_parms | | | | call invokeTranslator | | | | exit result /* exit with the rc return by the translator|*/ | | | /*------------------------------------------------------|/ | /* Routine: invokeTranslator |/ | /* |/ | /* Function: |/ | /* This function invokes the translator defined by |/ | /* the translator variable. The default_parms define |/ | /* translator options that are used for all translator |/ | /* executions. The parm variable contains options |/ | /* specified by the user to override the build script |/ | /* default_parms. |/ | /* |/ | /* Variables used: |/ | /* translator, default_parms |/ | /* input, output, parms location, bomfile |/ | /* |/ | /* Returns: |/ | /* return code from the translator execution |/ | /*------------------------------------------------------|/ | invokeTranslator: | | | | /* This build script assumes only one input and */ | | /* one output are passed in. */ | | | | translator parms '/Fo'||output input | | | | return rc | | | +---------------------------------------------------------------+ Figure 15 (Part 2 of 2). fhbocomp.cmd C++ Build Script 84 TeamConnection and MVS/SCLM LINKAGE EDIT BUILD SCRIPT Appendix A. TeamConnection Parts and Scripts 85 +---------------------------------------------------------------+ | | | /*------------------------------------------------------|/ | /* PROGRAM: FHBOLINK.CMD |/ | /* IBM ILINK Sample Build Script TeamConnection |/ | /* VisualAge C++ for OS/2 ILINK, Link Only |/ | /* |/ | /*------------------------------------------------------|/ | /* IBM TeamConnection for OS/2 |/ | /* Version 1 Release 0 |/ | /* 5622-717 |/ | /* |/ | /* (C) Copyright, IBM Corp., 1995. All Rights Reserved. |/ | /* Licensed Materials - Property of IBM |/ | /* US Government Users Restricted Rights |/ | /* - Use, duplication or disclosure restricted by |/ | /* GSA ADP Schedule Contract with IBM Corp. |/ | /* |/ | /* IBM is a registered trademark of |/ | /* International Business Machines Corporation |/ | /* |/ | /* The following enclosed code is sample code created |/ | /* by IBM Corporation. This sample code is not part of|/ | /* any standard product and is provided to you solely |/ | /* for the purpose of assisting you in the development |/ | /* of your applications. The code is provide "AS IS", |/ | /* without warranty of any kind. IBM shall not be |/ | /* liable for any damages arising out of your use |/ | /* of the sample code |/ | /*------------------------------------------------------|/ | /* Inputs from the environment |/ | /* TC_INPUT |/ | /* TC_OUTPUT |/ | /* |/ | /* Inputs from the argument list |/ | /* PARMS |/ | /* |/ | /* TC_INPUT contains inputs stored in the library that |/ | /* are input to the translator build step. |/ | /* TC_OUTPUT contains outputs that are to be built by |/ | /* translator and that will be stored in the library |/ | /* PARMS are translator options that are specified |/ | /* on the TeamConnection builder definition. |/ | /* |/ | /* Outputs: |/ | /* files generated by the translator |/ | /* |/ | | +---------------------------------------------------------------+ Figure 16 (Part 1 of 3). fhbolink.cmd Linkage Edit Build Script 86 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | /* Returns: |/ | /* return code from the translator execution |/ | /*------------------------------------------------------|/ | | | parse arg parms | | | | environ = 'OS2ENVIRONMENT' | | input = VALUE('TC_INPUT',,environ) | | output = VALUE('TC_OUTPUT',,environ) | | | | translator = 'ILINK' /* specify the translator to|be invoked */ | default_parms = '/NOFREE' /* specify any default parms|to be used */ | /* for the compile | */ | libraries = '' /* specify libraries to be s|arched */ | | | call invokeTranslator | | | | exit result /* exit with the rc return by the translator|*/ | /*------------------------------------------------------|/ | /* Routine: invokeTranslator |/ | /* |/ | /* Function: |/ | /* This function invokes the translator defined by |/ | /* the translator variable. The default_parms define |/ | /* translator options that are used for all translator |/ | /* executions. The parm variable contains options |/ | /* specified by the user to override the build script |/ | /* default_parms. |/ | /* |/ | /* Variables used: |/ | /* translator, default_parms |/ | /* input, output, parms location, bomfile |/ | /* |/ | /* Returns: |/ | /* return code from the translator execution |/ | /*------------------------------------------------------|/ | invokeTranslator: | | | | /* This build script assumes only multiple inputs an| */ | /* multiple inputs are passed in. | */ | | | call parseForFile '.DEF' input | | call parseForFile '.MAP' output | | if mapfile <> '' then | | parms = parms '/MAP' | | translator default_parms parms objfiles ',' exefile '|' mapfile ',' | libraries deffile ';' | | return rc | | | +---------------------------------------------------------------+ Figure 16 (Part 2 of 3). fhbolink.cmd Linkage Edit Build Script Appendix A. TeamConnection Parts and Scripts 87 +---------------------------------------------------------------+ | | | | | /*------------------------------------------------------|/ | /* Routine: parseForFile |/ | /* |/ | /* Function: |/ | /* This function parses the string looking for the |/ | /* file with the extension passed in. |/ | /* That file is removed from the input string if |/ | /* it is found. |/ | /* If the type is '.def' (an input) then it sets the |/ | /* deffile and objfiles variables. |/ | /* |/ | /* If the type is '.map' (an output) then it sets the |/ | /* mapfile and exefile variables. |/ | /* |/ | /* Variables used: |/ | /* inString type deffile objfiles mapfile exefile |/ | /* |/ | /* Variables changed: |/ | /* deffile objfiles mapfile exefile |/ | /*------------------------------------------------------|/ | parseForFile: | | | | parse arg type inString | | | | file = '' | | | | typepos = pos(type,translate(inString)) | | if typepos > 0 then do | | wordnum = words(substr(inString,1,typepos)) | | file = word(inString,wordnum) | | /* remove the file from the string */ | | outfile = subword(inString,1,wordnum-1) subword(in|tring,wordnum+1) | end | | Else | | outfile = inString | | | | Select | | when type = '.DEF' then do | | deffile = ',' file | | objfiles = outfile | | end | | when type = '.MAP' then do | | mapfile = file | | exefile = outfile | | end | | Otherwise NOP | | end /* select */ | | return | | | +---------------------------------------------------------------+ Figure 16 (Part 3 of 3). fhbolink.cmd Linkage Edit Build Script 88 TeamConnection and MVS/SCLM APPENDIX B. TEAMCONNECTION FAMILY SETUP The family is simple so as not to detract from the techniques used for interaction with MVS and SCLM. A TeamConnection client is used on the TeamConnection family server so that only one workstation is required. Assumptions: o OS/2 is installed on the C: drive. o TeamConnection is installed on the D: drive. The family setup includes these main activities: 1. create a new family 2. normal administration o create components o create a release with the no_track process o create builders for OS/2 application development 3. initial load activities o create builders o create a parser o create a new work area for the initial load of the parts o create a part for a small C "include" source program o create a part for a small C source program o create parts for object and link o create a build tree o start TeamConnection build agents and build processors o use TeamConnection to BUILD an application o integrate the work area into the release 4. create a new work area for use with MVS and SCLM Appendix B. TeamConnection Family Setup 89 ADMINISTRATION The following steps exercise the administrative TeamConnection functions that are needed to establish a new family and to do the initial creation of parts in a TeamConnection family. Preliminary Activities ______________________ The following activities must take place before creating the family and parts. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | The OS/2 build scripts must be | | | ready. This demonstration assumes | | | the build scripts are located in the | | | directory e:\tcdemo\mvssclm\scripts. | | +--------------------------------------+------------------------+ | The C source program and "include" | | | must be available on the | | | TeamConnection client. This demon- | | | stration assumes the source programs | | | are located in the directory | | | e:\tcdemo\mvssclm\parts. | | +--------------------------------------+------------------------+ | The following environment variables | Do not forget to | | should be set in CONFIG.SYS in the | reboot your machine if | | machines that run the build agents: | you change these | | | values and are relying | | o TC_FAMILY=MVSSCLM | on them to be set from | | | "config.sys". | | o TC_USER=SUPRUSER | | | | | | o TC_BECOME=SUPRUSER | | | | | | o TC_DBPATH=E:\FAMILY\MVSSCLM | | +--------------------------------------+------------------------+ | Create E:\FAMILY as the path for the | | | family information. | | +--------------------------------------+------------------------+ | Create E:\FAMSAVE\MVSSCLM as a place | | | to save copies of the family. | | +--------------------------------------+------------------------+ 90 TeamConnection and MVS/SCLM Create a New Family ___________________ This section shows how to create a new family, update the hosts and services files, and start the family. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Make sure the following are running: | | | | | | o TCP/IP | | | | | | o ObjectStore | | +--------------------------------------+------------------------+ | Open the TeamConnection group folder | The "TeamConnection | | | Group - Icon View" | | | window appears. | +--------------------------------------+------------------------+ | Double-click on the TeamConnection | The "TeamConnection | | Family Administrator icon. | Family Administrator" | | | window appears. | +--------------------------------------+------------------------+ | Select FAMILY, then NEW, and then | An "Untitled-Settings" | | DEFAULT. | notebook appears, with | | | the "Family Informa- | | | tion" page displayed. | +--------------------------------------+------------------------+ | Enter the following: | | | | | | o Family Information: | | | | | | NAME mvssclm | | | PATH e:\family | | | PORT 9808 or some | | | other unused port | | | MAILER mailexit or | | | null.cmd | | | | | | o Initial Superuser: | | | | | | LOGIN SuprUser | | | NAME Super User | | | HOST FamHost | | +--------------------------------------+------------------------+ | Once set, you cannot alter these | Below the notebook, | | values through TeamConnection admin- | press the CREATE push | | istration. | button. | +--------------------------------------+------------------------+ | The "Create Family" window appears | | | and runs the commands to create the | | | family and the super user. This | | | takes about 5 minutes. The return | | | code at the end should be 0. | | +--------------------------------------+------------------------+ Appendix B. TeamConnection Family Setup 91 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Press the OK push button. | The "TeamConnection | | | Family Administrator" | | | window appears with an | | | icon for mvssclm in | | | the window. | +--------------------------------------+------------------------+ | From an OS/2 window, enter: | The current value of | | | the ETC environment | | echo %ETC% | variable appears. | | | This value is the name | | | of the directory to | | | use in the next few | | | steps. The | | | instructions below | | | assume that the direc- | | | tory is C:\MPTN\ETC. | +--------------------------------------+------------------------+ | Change the directory and drive to | | | C:\MPTN\ETC. | | +--------------------------------------+------------------------+ | Add mvssclm, bldsock, and tsosock to | | | C:\MPTN\ETC\hosts. Also make sure | | | that there is a carriage return | | | after each line. The hosts listed | | | in Table 3 on page 93 should be in | | | the hosts file. | | +--------------------------------------+------------------------+ | Add mvssclm, bldsock, and tsosock to | | | C:\MPTN\ETC\services. The services | | | listed in Table 4 on page 93 should | | | be in the services file. | | +--------------------------------------+------------------------+ | From the "TeamConnection Family | The "mvssclm- Family | | Administrator" window, double-click | Servers" window | | on the mvssclm icon. | appears. | +--------------------------------------+------------------------+ | Press the START push button in the | The family server is | | "Family Server" section of the | started. When the | | window. | message to "Press | | | CTRL-C to stop" | | | appears, minimize the | | | "mvssclm - Family | | | Servers" window and | | | the "TeamConnection | | | Family Administrator" | | | window. | +--------------------------------------+------------------------+ 92 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | Table 3. Hosts File | +---------------+-------------------------------+---------------+ | IP ADDRESS | HOST NAME | FAMILY / | | | | SOCKET | +---------------+-------------------------------+---------------+ | 9.37.195.43 | FamHost | mvssclm | +---------------+-------------------------------+---------------+ | 9.37.195.43 | FamHost | bldsock | +---------------+-------------------------------+---------------+ | 9.67.43.25 | carmvs1.raleigh.ibm.com | tsosock | +---------------+-------------------------------+---------------+ +---------------------------------------------------------------+ | Table 4. Services File | +---------------+---------------+-------------------------------+ | FAMILY / | PORT NUMBER | COMMENT | | SOCKET | | | +---------------+---------------+-------------------------------+ | mvssclm | 9808/tcp | #port address for mvssclm | +---------------+---------------+-------------------------------+ | bldsock | 9997/tcp | #port address for OS/2 build | | | | processor | +---------------+---------------+-------------------------------+ | tsosock | 32911/tcp | #port address for MVS build | | | | processor | +---------------+---------------+-------------------------------+ Appendix B. TeamConnection Family Setup 93 Start the TeamConnection Client _______________________________ This section shows how to start the TeamConnection client and change the SETTINGS. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | On the TeamConnection server | | | machine, create a working directory | | | called E:\WORK\mvssclm | | +--------------------------------------+------------------------+ | Open the TeamConnection Group | | | folder. | | +--------------------------------------+------------------------+ | Right mouse click on the | A list of options | | TeamConnection client icon. | appears. | +--------------------------------------+------------------------+ | Click on SETTINGS. | The "TeamConnection | | | Client - Settings" | | | notebook appears. | +--------------------------------------+------------------------+ | On the "Program" page, change the | | | working directory to E:\WORK\mvssclm | | +--------------------------------------+------------------------+ | Close the "TeamConnection Client - | | | Settings" notebook. | | +--------------------------------------+------------------------+ | Double-click on the TeamConnection | The "TeamConnection - | | client icon. | Tasks" window appears. | +--------------------------------------+------------------------+ | Select WINDOWS and then SETTINGS. | The "Settings" note- | | | book appears, with the | | | "Environment" page | | | showing. | +--------------------------------------+------------------------+ | Select the GUI tab in the "Settings" | "Verbose commands" | | notebook. | checked on will result | | | in additional informa- | | Be sure that the VERBOSE COMMANDS is | tion windows in which | | not checked. | you must press the | | | "OK" push button. | +--------------------------------------+------------------------+ 94 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select the ENVIRONMENT tab in the | | | "Settings" notebook. | | | | | | Enter the following on the "Environ- | | | ment" page: | | | | | | FAMILY mvssclm | | | RELEASE release1 | | | BECOME USER SuprUser | | | USER ID SuprUser | | | RELATIVE DIRECTORY e:\mytemp | | | | | | Then press the APPLY push button. | | +--------------------------------------+------------------------+ | Press the TEST CONNECTION TO SERVER | The "Settings" infor- | | push button. | mation window should | | | appear and indicate | | | that you connected to | | | the server. There | | | should be no error | | | messages. | +--------------------------------------+------------------------+ | Press OK to close the information | | | window | | +--------------------------------------+------------------------+ | Select the POOL tab in the "Set- | All build activity in | | tings" notebook. | the basic demon- | | | stration uses "pool1". | | Enter POOL1 for the POOL value. | This value is the | | | default and is auto- | | Then press the APPLY push button. | matically entered into | | | the "Pool" field of | | | the build windows. | +--------------------------------------+------------------------+ | Select the GUI tab in the "Settings" | Deselecting "Verbose | | notebook. | commands" reduces the | | | number of messages you | | Make sure that the check box for | receive. | | VERBOSE COMMANDS is deselected. | | | | | | Press the APPLY push button. | | +--------------------------------------+------------------------+ | Double-click on the upper left | The "TeamConnection - | | corner of the "Settings" window. | Tasks" window appears. | | | The user ID and | | | mvssclm should be in | | | the lower left corner | | | of the tasks window. | +--------------------------------------+------------------------+ Appendix B. TeamConnection Family Setup 95 Create Components _________________ This section creates the component structure for the demon- stration. The demonstration uses the overall controlling compo- nent projname. The other components can be used for modifications of the demonstration to show activities related to components. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select ACTIONS, then COMPONENTS, and | The "Create Compo- | | then CREATE. | nents" window appears. | +--------------------------------------+------------------------+ | Enter the components shown in | | | Table 5, pressing the APPLY push | | | button after each entry. | | +--------------------------------------+------------------------+ | Press the CANCEL push button. | The "TeamConnection - | | | Tasks" window appears. | +--------------------------------------+------------------------+ +---------------------------------------------------------------+ | Table 5. Components | +---------+----------+----------+----------+--------------------+ | COMPO- | PARENT | PROCESS | OWNER | DESCRIPTION | | NENTS | | | | | +---------+----------+----------+----------+--------------------+ | projname| root | proto- | SuprUser | overall control- | | | | type | | ling component | +---------+----------+----------+----------+--------------------+ | subsys1 | projname | proto- | SuprUser | subsystem 1 | | | | type | | | +---------+----------+----------+----------+--------------------+ | subsys2 | projname | proto- | SuprUser | subsystem 2 | | | | type | | | +---------+----------+----------+----------+--------------------+ Create a Release ________________ This section shows how to create a release. Parts, work areas, and builders cannot be created without first specifying a release. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select ACTIONS, then RELEASES, and | The "Create Releases" | | then CREATE. | window appears. | +--------------------------------------+------------------------+ 96 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Enter the following information: | The "TeamConnection - | | | Tasks" window appears. | | RELEASES release1 | The release has been | | COMPONENT projname | created. | | PROCESS no_track | | | OWNER SuprUser | | | DESCRIPTION projname release 1 | | | | | | Also select AUTOMATIC VERSION | | | PRUNING. | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ Create Builders _______________ This section creates the os2 builders that are used throughout the demonstration. All os2 builders should be created at this time so that you do not need to return to this activity later. The tso builder for use in "TeamConnection to SCLM - BUILD" on page 43 is created in the example for that section. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select ACTIONS, then BUILDERS, and | The "Create Builders" | | then CREATE on client workstation. | window appears. | +--------------------------------------+------------------------+ | Enter the builder information shown | A NULL builder is | | in Figure 17 on page 99, pressing | required for a col- | | the APPLY push button after each | lector part later in | | entry. | the demonstration. | +--------------------------------------+------------------------+ | Press the CANCEL push button to | The "TeamConnection - | | return to the Tasks list. | Tasks" window appears. | +--------------------------------------+------------------------+ | Select OBJECTS and then BUILDERS. | The "Builder Filter" | | | window appears. | +--------------------------------------+------------------------+ | In the "History" section, select | | | SHOW ALL BUILDERS. | | +--------------------------------------+------------------------+ | Press the SAVE TO TASK LIST push | The "Edit Task List" | | button. | window appears. | +--------------------------------------+------------------------+ | Enter BUILDERS in the description | An icon for the | | field and press the ADD/CHANGE push | builders is added to | | button. | the "TeamConnection - | | | Tasks" window. | +--------------------------------------+------------------------+ Appendix B. TeamConnection Family Setup 97 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Press the CANCEL push button to | The "TeamConnection - | | return to the Tasks list. | Tasks" window appears. | +--------------------------------------+------------------------+ | Double-click on the BUILDERS icon to | The "TeamConnection - | | run the report. | Builders" window | | | appears. | +--------------------------------------+------------------------+ | Close the "TeamConnection - | The "TeamConnection - | | Builders" window. | Tasks" window appears. | +--------------------------------------+------------------------+ 98 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | Builder Ccompile | | Release release1 | | Script compC.cmd | | Environment os2 | | Comp. oper. <= | | RC value 4 | | File type text | | Source file e:\tcdemo\mvssclm\scripts\fhbocomp.cmd | | Parameters /C+ /O+ | | Timeout 10 | | | | Builder Clink | | Release release1 | | Script linkC.cmd | | Environment os2 | | Comp. oper. <= | | RC value 4 | | File type text | | Source file e:\tcdemo\mvssclm\scripts\fhbolink.cmd | | Parameters | | Timeout 10 | | | | Builder os2null | | Release release1 | | Script NULL | | Environment os2 | | Comp. oper. == | | RC value 0 | | File type none | | Source file | | Parameters | | Timeout 1 | | | +---------------------------------------------------------------+ Figure 17. OS2 builder information for mvssclm family Appendix B. TeamConnection Family Setup 99 Create Parsers ______________ This section creates parsers. The term "create a parser" involves telling TeamConnection which command to run for parsing a part. Programs that actually get control to do the parsing must be written just like any other tool. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select ACTIONS, then PARSERS, and | The "Create Parser" | | then CREATE. | window appears. | +--------------------------------------+------------------------+ | Set the following fields: | | | | | | PARSER see Table 6 | | | RELEASE release1 | | | COMMAND see Table 6 | | | | | | Enter the parser name and command | | | shown in Table 6, pressing the APPLY | | | push button after each entry. | | +--------------------------------------+------------------------+ | Press the CANCEL to return to the | The "TeamConnection - | | Tasks list. | Tasks" window appears. | +--------------------------------------+------------------------+ +---------------------------------------------------------------+ | Table 6. release1 Parser Create Information | +--------------------+---------------------+--------------------+ | PARSER | RELEASE | COMMAND | +--------------------+---------------------+--------------------+ | Cparser | release1 | fhbopars.cmd | +--------------------+---------------------+--------------------+ Optional - Save the Family Database ___________________________________ Saving the family database allows you to restart from this point in the demo. Save the family by doing the following steps. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | From the TeamConnection Family | The family and notifi- | | Server, in the "mvssclm - Family | cation servers are | | Servers" window, press the STOP push | stopped. | | button for the family server. Also | | | press the STOP push button for the | | | notification server if it has been | | | started. | | +--------------------------------------+------------------------+ 100 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | From an OS/2 window, enter the fol- | You might have to stop | | lowing: | the build agents | | | and/or build | | cd e:\famsave\mvssclm | processors to be able | | copy e:\family\mvssclm\mvssclm.tc| toscopy1thedfamily | | | database. | +--------------------------------------+------------------------+ | From the TeamConnection Family | The family server and, | | Server, in the "mvssclm - Family | optionally, the | | Servers" window, press the START | notification server | | push button for the family server. | are started. | | Also press the START push button for | | | the notification server if you want | If you had to stop any | | it to be started. | build agents and/or | | | build processors, | | | restart them now. | +--------------------------------------+------------------------+ Appendix B. TeamConnection Family Setup 101 Open a Feature and Create a Work Area _____________________________________ This section creates a work area for the initial load of the parts. This would be a typical activity for migrating existing parts (source code, tables) into TeamConnection. A feature is not needed with the no_track release process. However, it is a good practice to open a feature when initializing a family. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select ACTIONS, then FEATURES, and | The "Open Feature" | | then OPEN. | window appears. | +--------------------------------------+------------------------+ | Enter the following information: | The "Open Feature" | | | information window | | COMPONENT projname | appears with a message | | REMARKS initial load of the | that the new feature | | family | was opened success- | | NAME initialize | fully. | | PREFIX f | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ | Press the OK push button again to | | | return to the "TeamConnection - | | | Tasks" window. | | +--------------------------------------+------------------------+ | Select ACTIONS, then FEATURES, and | The "Accept Feature" | | then ACCEPT. | window appears. | +--------------------------------------+------------------------+ | Enter the following information: | The "TeamConnection - | | | Tasks" window appears. | | FEATURES initialize | The feature has been | | REMARKS accepting initial | accepted. | | load of the family | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ | Select ACTIONS, then WORK AREAS, and | The "Create Work | | then CREATE. | Areas" window appears. | +--------------------------------------+------------------------+ | Enter the following information: | The "TeamConnection - | | | Tasks" window appears. | | WORK AREAS initwa | The work area has been | | RELEASES release1 | created. | | OWNER SuprUser | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ 102 TeamConnection and MVS/SCLM Create Parts ____________ This section creates the parts for the initial load of the data- base as well as the output parts that will be created from builds. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select ACTIONS, then PARTS, and then | The "Create Parts" | | CREATE. | window appears. | +--------------------------------------+------------------------+ | Set the following fields for each | NOTE: Builders and | | part: | parsers do not need to | | | be assigned when a | | PART NAMES see Table 7 on | part is created. They | | page 104 | may be created and | | RELEASE release1 | changed at any time. | | WORK AREA initwa | Assignment to a part | | COMPONENT projname | can be done using | | FILE TYPE see Table 7 on | Actions -> Parts -> | | page 104 | Modify -> Properties. | | SOURCE see Table 7 on | | | page 104 | | | SOURCE FILE see Table 7 on | | | page 104 | | | BUILDER see Table 7 on | | | page 104 | | | PARSER see Table 7 on | | | page 104 | | | | | | Enter the parts shown in Table 7 on | | | page 104, pressing the APPLY push | | | button after each entry. | | +--------------------------------------+------------------------+ | Press the CANCEL push button to | The "TeamConnection - | | return to the Tasks list. | Tasks" window appears. | +--------------------------------------+------------------------+ Appendix B. TeamConnection Family Setup 103 +---------------------------------------------------------------+ | Table 7. projname Create Part Information | +------------+-----+------+------------------+------------+-----+ | PART NAME | FILE| SOURC| SOURCE FILE | BUILDER | PARS|R | | TYPE| | | | | +------------+-----+------+------------------+------------+-----+ | testcopy.h | Text| Copy | e:\tcdemo\mvssclm| | Cpar|er | | | from | \parts\testcopy.h| | | +------------+-----+------+------------------+------------+-----+ | testpart.c | Text| Copy | e:\tcdemo\mvssclm| | Cpar|er | | | from | \parts\testpart.c| | | +------------+-----+------+------------------+------------+-----+ | testpart.ob| Bina|yNo | | Ccompile | | | | | sourc| | | | +------------+-----+------+------------------+------------+-----+ | testpart.ex| Bina|yNo | | Clink | | | | | sourc| | | | +------------+-----+------+------------------+------------+-----+ 104 TeamConnection and MVS/SCLM Create Build Tree _________________ This section shows how to create a build tree. A build tree shows the configuration of the application. TeamConnection uses the build tree to determine what parts need to be built. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select OBJECTS, then PARTS, and then | The "Part Filter" | | PARTS. | window appears. | +--------------------------------------+------------------------+ | Set the following fields: | The "TeamConnection - | | | Parts" window appears. | | RELEASE release1 | | | WORK AREA initwa | | | | | | In the "History" section, select | | | SHOW ALL PARTS. | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ | For each icon in Table 8 on | The fields "Path | | page 106: | names", "Type", | | | "Release", and "Work | | o click on the ICON in the | area" should already | | "TeamConnection - Parts" window | have the correct | | | values. | | o click on the second mouse button | | | | | | o click on CONNECT from the pop up | | | | | | o Set the following fields and | | | radio buttons in the "Connect | | | Parts" window: | | | | | | PARENT see Table 8 | | | on page 106 | | | RELATION TO PARENT see Table 8 | | | on page 106 | | | | | | o Press the OK push button. | | +--------------------------------------+------------------------+ | Close the "TeamConnection - Parts" | The "TeamConnection - | | window. | Tasks" window appears. | +--------------------------------------+------------------------+ | Select OBJECTS, then PARTS, and then | The "BuildView Filter" | | BUILDVIEW. | window appears. | +--------------------------------------+------------------------+ Appendix B. TeamConnection Family Setup 105 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Set the following fields: | The "TeamConnection - | | | BuildView" window | | RELEASE release1 | appears. | | WORK AREA initwa | | | | | | In the "History" section, select | | | SHOW ALL BUILDVIEW. | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ | Expand the TESTPART.EXE icon to show | Examine the tree for | | the entire tree. | proper structure (see | | | Figure 18 on | | | page 107). | +--------------------------------------+------------------------+ +---------------------------------------------------------------+ | Table 8. release1 Build Tree Information | +-------------------------+-------------------------+-----------+ | ICON | PARENT | RELATION | +-------------------------+-------------------------+-----------+ | testpart.c | testpart.obj | input | +-------------------------+-------------------------+-----------+ | testpart.obj | testpart.exe | input | +-------------------------+-------------------------+-----------+ 106 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | -------------- | | | | | | | testpart.exe | | | | | | | -------------- | | | | | | -------------- | | | | | | | -----------| testpart.obj | | | | (I) | | | -------------- | | | | | | --------------| | | | | | -------------| testpart.c | | | (I) | | --------------| | | | NOTE: the dependency testco|y.h | appears in the build |ree | after the first parse|of | testpart.c | | | +---------------------------------------------------------------+ Figure 18. Build Tree for testpart.exe Appendix B. TeamConnection Family Setup 107 Start the OS/2 Build Agent and Build Processor ______________________________________________ This section shows how to start an OS/2 build agent and build processor. Together this pair is called a build server. Build events wait in the job queue for a build agent to start. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Go to an OS/2 window (recommended on | | | the machine that is running the | | | TeamConnection family server). | | +--------------------------------------+------------------------+ | Make sure the TC_DBPATH environment | | | variable is set to the proper value | | | (e:\family\mvssclm for example). | | | | | | You must also have PATH set to | | | e:\family\mvssclm if that is where | | | teamagnt.exe and teamproc.exe are | | | located. Otherwise you could get a | | | SYS1041 error from OS/2. | | +--------------------------------------+------------------------+ | From an OS/2 window issue the | The build agent starts | | command | in the OS/2 window. | | | | | TEAMAGNT -F MVSSCLM -E OS2 -P POO|1 -S BLDSOCK | +--------------------------------------+------------------------+ | Minimize the OS/2 window - DO NOT | | | CLOSE. | | +--------------------------------------+------------------------+ | From an OS/2 window issue the | The build processor | | command | starts in the OS/2 | | | window. | | TEAMPROC -S BLDSOCK | | +--------------------------------------+------------------------+ | Minimize the OS/2 window - DO NOT | | | CLOSE. | | +--------------------------------------+------------------------+ 108 TeamConnection and MVS/SCLM Build the OS/2 Application __________________________ This section builds the OS/2 application. BUILD puts build events on the job queue and the build agent removes them. The build agent sends the build script (from the builder) and the inputs to the build processor. The build processor runs the build script. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | From the "TeamConnection - | | | BuildView" window, select | | | TESTPART.EXE. | | +--------------------------------------+------------------------+ | Select RIGHT MOUSE button, and then | The "Build Parts" | | select BUILD. | window appears. | +--------------------------------------+------------------------+ | Set the following fields and radio | | | buttons: | | | | | | PATH NAME testpart.exe | | | TYPE TCPart | | | RELEASE release1 | | | WORK AREA initwa | | | POOL pool1 | | | BUILD MODE normal | | | PARAMETERS | | | DETAIL FILE | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ | Monitor the "Build Progress" window, | The "TeamConnection - | | press the OK push button when the | BuildView" window | | build is complete, and close the | appears. | | "TeamConnection - BuildView" window. | | +--------------------------------------+------------------------+ | Press the F5 function key to refresh | The "TeamConnection - | | the "TeamConnection - BuildView" | BuildView" window | | window. | reappears. | | | | | | If the build was suc- | | | cessful, testpart.exe | | | should have a green | | | checkmark. | +--------------------------------------+------------------------+ | Close the "TeamConnection - | The "TeamConnection - | | BuildView" window. | Tasks" window appears. | +--------------------------------------+------------------------+ Appendix B. TeamConnection Family Setup 109 Test the OS/2 Application _________________________ This section extracts the executable part TESTPART.EXE and runs it for the test. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select ACTIONS, then PARTS, and then | The "Extract Parts" | | EXTRACT. | window appears. | +--------------------------------------+------------------------+ | Set the following fields: | | | | | | PATH NAMES testpart.exe| | | RELEASE release1 | | | WORK AREA initwa | | | DESTINATION DIRECTORY e:\mytemp | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ | Go to an OS/2 window. | The messages from | | | testpart.exe should | | Run the command E:\MYTEMP\TESTPART. | appear: | | | | | Minimize or close the OS/2 window. | I am testpart.c | | | I was built by the | | | Team Connection | | | integrated Build | | | Tool!!! | +--------------------------------------+------------------------+ Integrate the Work Area to the Release ______________________________________ This section integrates the parts in the work area with parts in the release (there are no parts in the release for the initial load). +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select ACTIONS, then WORK AREAS, and | The "Integrate Work | | then INTEGRATE. | Areas" window appears. | +--------------------------------------+------------------------+ | Enter the following: | The "TeamConnection - | | | Tasks" window appears. | | WORK AREAS initwa | | | RELEASES release1 | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ 110 TeamConnection and MVS/SCLM Create a Work Area for Application Development ______________________________________________ This section creates a work area for application development work. A defect or feature is not needed with the no_track release process. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select ACTIONS, then WORK AREAS, and | The "Create Work | | then CREATE. | Areas" window appears. | +--------------------------------------+------------------------+ | Enter the following information: | The "TeamConnection - | | | Tasks" window appears. | | WORK AREAS mvstcwa | The work area has been | | DEFECTS/FEATURES | created. | | RELEASES release1 | | | OWNER SuprUser | | | | | | Press the OK push button. | | +--------------------------------------+------------------------+ Optional - Save the Family Database ___________________________________ Saving the family database at this point allows you to restart the demonstration from this point. Save the family by doing the following steps. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | From the TeamConnection Family | The family and notifi- | | Server, in the "mvssclm - Family | cation servers are | | Servers" window, press the STOP push | stopped. | | button for the family server. Also | | | press the STOP push button for the | | | notification server if it has been | | | started. | | +--------------------------------------+------------------------+ | From an OS/2 window, enter the fol- | You might have to stop | | lowing: | the build agents | | | and/or build | | cd e:\famsave\mvssclm | processors to be able | | copy e:\family\mvssclm\mvssclm.tc| toscopy2thedfamily | | | database. | +--------------------------------------+------------------------+ Appendix B. TeamConnection Family Setup 111 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | From the TeamConnection Family | The family server and, | | Server, in the "mvssclm - Family | optionally, the | | Servers" window, press the START | notification server | | push button for the family server. | are started. | | Also press the START push button for | | | the notification server if you want | If you had to stop any | | it to be started. | build agents and/or | | | build processors, | | | restart them now. | +--------------------------------------+------------------------+ 112 TeamConnection and MVS/SCLM APPENDIX C. ISPF C/S WORKSTATION INSTALLATION USING TCP/IP The connection between MVS and the TeamConnection client or family server machine is through the ISPF 4.2 Client/Server func- tion. The ISPF Client/Server software must be installed on the workstation in order for MVS to communicate with the workstation. The following instructions will help you install the ISPF Client/Server software using TCP/IP. WORKSTATION PREPARATIONS +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Make a directory called E:\ISPFCS. | This directory will | | | contain the ISPF | | | Client/Server files. | +--------------------------------------+------------------------+ | Verify that you are able to ftp | The TRUSERS file is of | | (transfer files using the file | the form: | | transfer program) to the OS/2 | user: userid password | | machine. | rd: e:\ispfcs | | | wr: e:\ispfcs | | 1. echo %etc% to see where the | | | TCP/IP information is located | "userid" and "pass- | | | word" have nothing to | | 2. go to that directory | do with other userids | | | and passwords in | | 3. find, or create, the TRUSERS | TeamConnection They | | file | are unique to the | | | TRUSERS file. | | | | | | "rd" identifies direc- | | | tories for read access | | | and "wr" identifies | | | directories for write | | | access. | | | | | | When you are finished | | | with the ISPF | | | Client/Server instal- | | | lation you can delete | | | the TRUSERS file to | | | prevent other ftp | | | activity to your work- | | | station. | +--------------------------------------+------------------------+ Appendix C. ISPF C/S Workstation Installation Using TCP/IP 113 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Go to an OS/2 window and start ftp | | | by entering FTPD. | | +--------------------------------------+------------------------+ MVS +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Logon to TSO and go into ISPF. | The "ISPF Primary | | | Options Menu" appears. | +--------------------------------------+------------------------+ | Select UTILITIES from the "ISPF | The "Utility Selection | | Primary Options Menu". This is | Panel" appears. | | usually option 3 on the menu. | | +--------------------------------------+------------------------+ | Select ISPF C/S from the "Utility | The "ISPF | | Selection Panel". This is usually | Client/Server Compo- | | option 7 on the menu. | nent" box appears. | | | | | Press the ENTER key. | | +--------------------------------------+------------------------+ | Select the proper "Operating System | The "ISPF | | - Network" for the ISPF Client | Client/Server Compo- | | Server machine. (For this example | nent Install with | | assume OS/2 - TCP/IP is selected.) | TCP/IP on OS/2" box | | | appears. Note that | | | this box will tell you | | | that the following | | | products must be | | | installed and/or | | | running: | | | | | | o OS/2 - Operating | | | System/2 | | | | | | o Transmission | | | Control | | | Protocol/Internet | | | Protocol | | | | | | o File Transfer Pro- | | | tocol | | | | | | o File Transfer Pro- | | | tocol Server | +--------------------------------------+------------------------+ | Press the ENTER key. | | +--------------------------------------+------------------------+ 114 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Enter the following in the box that | "userid" and "pass- | | appears for information regarding | word" are those values | | the selection of OS/2 - TCP/IP: | found in the TRUSERS | | | file on the work- | | IP ADDRESS OR HOST NAME TO OPEN: | station. | | 9.37.195.43 | | | USER TO LOGIN: (CASE SENSITIVE): | The product data set | | userid | 'SYS1.ISP.SISPGUI' | | PASSWORD FOR LOGIN: (CASE SENSITIVE) | might have a different | | password | name on your MVS | | DIRECTORY TO COPY FILE TO: | system. | | e:\ispfcs | | | DATA SET TO COPY FILE FROM: | "English" and "Browse" | | 'SYS1.ISP.SISPGUI' | options are selected | | LANGUAGE | for this example. | | English | | | | | | Under ENTER "/" TO SELECT OPTION put | | | / beside: | | | BROWSE FTP OUTPUT ONLY IF AN ERROR | | | OCCURS. | | +--------------------------------------+------------------------+ | Press the ENTER key. | The "e:\ispfcs" direc- | | | tory on the work- | | You will see the messages indicating | station will contain | | the commands were successful and the | the ISPF Client/Server | | file transfer is complete. | self extracting ".exe" | | | file. | +--------------------------------------+------------------------+ | Run ISPFINST from the e:\ispfcs | The ISPF Client/Server | | directory. | files are now in | | | e:\ispfcs. | | Press the INSTALL key. | | | | | | Press the NO key for the DBCS trans- | | | lation tables. | | | | | | Press the OK key for adding | | | e:\ispfcs to LIBPATH in config.sys. | | | | | | Press the QUIT key. | | +--------------------------------------+------------------------+ | Start the ISPF C/S on the work- | The "ISPF C/S" window | | station by entering ISPFCS from the | appears on the work- | | "e:\ispfcs" directory. | station. | | | | | | Do not close the | | | window. | +--------------------------------------+------------------------+ Appendix C. ISPF C/S Workstation Installation Using TCP/IP 115 116 TeamConnection and MVS/SCLM APPENDIX D. SCLM PROJECT DEFINITION SETUP Some knowledge of SCLM will be helpful in running the examples. There should be sufficient detail in these instructions for the novice. See Appendix A, "TeamConnection Parts and Scripts" on page 79 for information about obtaining the files, language defi- nitions, and project definition used in these examples. The SCLM setup involves: 1. creating a USERINFO file for TeamConnection command language definitions 2. creating an ACTINFO file for TeamConnection command language definitions 3. creating TeamConnection command language definitions 4. creating a project definition that includes TeamConnection command language definitions 5. assembling and linking the project definition 6. allocating the data sets controlled by the SCLM project defi- nition 7. creating the VSAM cluster for the SCLM accounting records The following detailed instructions are for establishing a new SCLM project definition for demonstrating a TeamConnection BUILD as part of an SCLM BUILD. This project definition is very simple so that the focus is on the TeamConnection BUILD. An experienced SCLM user could modify existing SCLM project defi- nitions and the related USERINFO and ACTINFO files. This would provide a more complex example of a coordinated SCLM and TeamConnection BUILD and would be typical of what an existing SCLM project definition would need in order to incorporate a TeamConnection BUILD. CREATE USERINFO AND ACTINFO FILES For demonstration purposes it is usually easiest to use your own TSO user id as the high level qualifier for these data sets. Appendix D. SCLM Project Definition Setup 117 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Allocate the sequential data set | This data set name is | | 'TSOUSER.SCLM.USERINFO'. | consistent with other | | | documentation. Be | | Use RECFM=FB and 80 byte records. | sure the data set name | | | in the language defi- | | Copy the USERINFO file in Figure 20 | nitions matches the | | on page 124 with appropriate changes | one you use. | | for the directories to be used on | | | your workstation. | See Appendix A, | | | "TeamConnection Parts | | | and Scripts" on | | | page 79 for informa- | | | tion on a softcopy of | | | this file. | +--------------------------------------+------------------------+ | Allocate the sequential data set | This data set name is | | 'TSOUSER.PROJDEFS.ACTINFO'. | consistent with other | | | documentation. Be | | Use RECFM=FB and 80 byte records. | sure the data set name | | | in the language defi- | | Copy the ACTINFO file in Figure 21 | nitions matches the | | on page 125 with appropriate changes | one you use. | | for the directories to be used on | | | your workstation. | See Appendix A, | | | "TeamConnection Parts | | | and Scripts" on | | | page 79 for informa- | | | tion on a softcopy of | | | this file. | +--------------------------------------+------------------------+ CREATE SCLM LANGUAGE DEFINITIONS AND PROJECT DEFINITION DATA SETS For demonstration purposes it is usually easiest to use your own TSO user id as the high level qualifier of the project definition data sets. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Allocate the partitioned data set | This data set will | | 'TSOUSER.PROJDEFS.SOURCE'. | contain the SCLM lan- | | | guage definitions and | | Use RECFM=FB, 80 byte records, and | project definition. | | 10 directory blocks. | | +--------------------------------------+------------------------+ 118 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Allocate the partitioned data set | This data set will | | 'TSOUSER.PROJDEFS.OBJ'. | contain the SCLM | | | project definition | | Use RECFM=FB, 80 byte records, and | object code. | | 10 directory blocks. | | +--------------------------------------+------------------------+ | Allocate the partitioned data set | This data set will | | 'TSOUSER.PROJDEFS.LOAD'. | contain the SCLM | | | project definition | | Use RECFM=U, block size of 6144, and | load module. The | | 10 directory blocks. | block size may be set | | | to a value typically | | | in use on your MVS | | | system. | +--------------------------------------+------------------------+ | Create the following members in | See Appendix A, | | 'TSOUSER.PROJDEFS.SOURCE' (make sure | "TeamConnection Parts | | that references to "TSOUSER" in | and Scripts" on | | these members are changed to the | page 79 for informa- | | high level data set qualifier of | tion on softcopies of | | your choice): | these files. | | | | | DUMMY (see Figure 22 on page 128) | Be sure that the | | | USERINFO and ACTINFO | | CHECKOUT (see Figure 23 on page 129) | data set names in the | | | language definitions | | CHECKIN (see Figure 24 on page 132) | match the names you | | | are using. | | TCBUILD (see Figure 25 on page 135) | | +--------------------------------------+------------------------+ CREATE THE SCLM PROJECT DEFINITION MEMBER +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Create member SCLMTC (see Figure 26 | See Appendix A, | | on page 138) in | "TeamConnection Parts | | 'TSOUSER.PROJDEFS.SOURCE'. | and Scripts" on | | | page 79 for informa- | | | tion on a softcopy of | | | this member. | +--------------------------------------+------------------------+ | Edit | | | 'TSOUSER.PROJDEFS.SOURCE(SCLMTC)' to | | | change all occurrences of TSOUSER to | | | your user id. | | +--------------------------------------+------------------------+ Appendix D. SCLM Project Definition Setup 119 ASSEMBLE AND LINK THE PROJECT DEFINITION +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Select FOREGROUND from the "ISPF | The "Foreground | | Primary Option Menu". This is | Selection Panel" | | usually option 4. | appears. | +--------------------------------------+------------------------+ | Select HIGH LEVEL ASM/ASM H from the | The "Foreground High | | "Foreground Selection Panel". | Level Assembler / | | | Assembler H" panel | | This is usually option 1. | appears. | +--------------------------------------+------------------------+ | Enter the following on the "Fore- | The listing from the | | ground High level Assembler / Assem- | assembly of the | | bler H" panel: | project definition | | | will appear. | | PROJECT TSOUSER | | | GROUP | The project definition | | PROJDEFS | could also be assem- | | TYPE SOURCE | bled and linked from a | | MEMBER SCLMTC | batch job. | | ASSEMBLER LEVEL HASM | | | ADDITIONAL INPUT LIBRARIES | The data set | | 'SYS1.ISP.SI|P'SYS1.ISP.SISPMACS' | | | might have a different | | Press the ENTER key. | name on your MVS | | | system. This is the | | | data set that contains | | | the SCLM project defi- | | | nition macros. | +--------------------------------------+------------------------+ | Go to the bottom of the assembler | Correct all assembly | | listing and look for the message "NO | errors before pro- | | STATEMENTS FLAGGED IN THIS | ceeding to the next | | ASSEMBLY". | step. | +--------------------------------------+------------------------+ | Return to the "Foreground Selection | | | Panel". | | +--------------------------------------+------------------------+ | Select BINDER/LINK EDITOR from the | The "Foreground | | "Foreground Selection Panel". This | Binder/Linkage Editor" | | is usually option 7. | panel appears. | +--------------------------------------+------------------------+ 120 TeamConnection and MVS/SCLM +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Enter the following on the "Fore- | The listing from the | | ground Binder/Linkage Editor" panel: | linkage editor will | | | appear. | | PROJECT TSOUSER | | | GROUP | The project definition | | PROJDEFS | could also be linked | | TYPE OBJ | from a batch job. | | MEMBER SCLMTC | | | BINDER BINDER | The project definition | | OTHER | will be the member | | LET,LIST,MAP| SCLMTC in the data set | | | 'TSOUSER.PROJDEFS.LOAD'| | Press the ENTER key. | | +--------------------------------------+------------------------+ | Look for the message "IEW2008I PROC- | Correct all linkage | | ESSING COMPLETED. RETURN CODE = 0." | errors before pro- | | in the linkage editor listing. | ceeding. | +--------------------------------------+------------------------+ ALLOCATE THE DATA SETS CONTROLLED BY THE SCLM PROJECT DEFINITION For demonstration purposes it is usually easiest to use your own TSO user id as the high level qualifier. +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Allocate these partitioned data sets | 'TSOUSER.DEVELOP.BIN' | | with RECFM=FB and record length of | is not used in the | | 80. | demonstration but | | | might be useful for | | 'TSOUSER.DEVELOP.ARCHDEF' | extending the demon- | | | stration to include | | 'TSOUSER.DEVELOP.SOURCE' | binary parts. | | | | | 'TSOUSER.DEVELOP.SRC' | | | | | | 'TSOUSER.DEVELOP.BIN' | | +--------------------------------------+------------------------+ CREATE THE VSAM CLUSTER FOR THE SCLM ACCOUNTING FILE For demonstration purposes it is usually easiest to use your own TSO user id as the high level qualifier of the VSAM cluster. Appendix D. SCLM Project Definition Setup 121 +--------------------------------------+------------------------+ | ACTION | DESCRIPTION | +--------------------------------------+------------------------+ | Modify the job in Figure 19 on | | | page 123 to have the proper VOL | | | value and the proper cluster name | | | for your MVS system. | | +--------------------------------------+------------------------+ | Submit the job to first delete the | Note: The first time | | cluster and then create the cluster. | this job runs it will | | | end with a nonzero | | | return code if the | | | cluster does not | | | exist. This job is | | | useful for creating a | | | fresh SCLM account | | | file for the project | | | definitions that use | | | it. | | | | | | See Appendix A, | | | "TeamConnection Parts | | | and Scripts" on | | | page 79 for informa- | | | tion on a softcopy of | | | this job. | +--------------------------------------+------------------------+ | The SCLM project definition SCLMTC | | | is now ready for use. | | +--------------------------------------+------------------------+ 122 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | // YOUR JOB CARD | | //* | | //* MODIFICATIONS - USE YOUR JOB CARD | | //* USE YOUR CLUSTER NAME FOR TSOUSER.AC|OUNT.FILE | //* USE YOUR VOL VALUE | | //* USE YOUR INDEX NAME FOR TSOUSER.ACCO|NT.FILE.INDEX | //* USE YOUR DATA NAME FOR TSOUSER.ACCO|NT.FILE.DATA | //* | | //STEP1 EXEC PGM=IDCAMS | | //SYSPRINT DD SYSOUT=* | | //SYSIN DD * | | DELETE 'TSOUSER.ACCOUNT.FILE' CLUSTER | | DEFINE CLUSTER (NAME('TSOUSER.ACCOUNT.FILE') - | | CYL(1 1) - | | VOL(XXXXXX) - | | KEYS(26 0) - | | RECORDSIZE(264 32000) - | | SHAREOPTIONS(4,3) - | | IMBED SPEED UNIQUE SPANNED) - | | INDEX (NAME('TSOUSER.ACCOUNT.FILE.INDEX')) | | DATA (NAME('TSOUSER.ACCOUNT.FILE.DATA') - | | CISZ(2024) - | | FREESPACE(50 50)) | | /* | | //STEP2 EXEC PGM=IDCAMS | | //INPUT DD * | | VSAM DATABASE INITIALIZATION RECORD | | /* | | //SYSPRINT DD SYSOUT=* | | //SYSIN DD * | | REPRO INFILE(INPUT) OUTDATASET('TSOUSER.ACCOUNT.FILE'| | /* | | // | | | +---------------------------------------------------------------+ Figure 19. vsamallc.jcl SCLM VSAM account file allocation Appendix D. SCLM Project Definition Setup 123 +---------------------------------------------------------------+ | | | * | | * Directory info - DATA_DIR and WSDIR must point to the |ame directory | * | | DATA_DIR e:\mytemp | | WSDIR e:\mytemp | | * | | * Response file - not used in this Technical Report | | * | | RESPONSE_FILE e:\tcdemo2\mvssclm\response.fil | | * | | * Mode. Workstation build default is minimized. This wil| override any | * value set in the ACTINFO file. | | * This is the mode for the workstation command. Valid va|ues are: | * MAXimized, MINimized, VISible and INVISible. See the W|CMDV section | * of the ISPF SELECT service for additional information.| | * | | mode max | | * | | * Del_cmd. Default is 'del'. | | * This keyword specifies the delete command to be used t| remove the | * message file(s) from previous builds or build steps fr|m the | * workstation before executing the workstation command. | | * | | del_cmd erase | | | +---------------------------------------------------------------+ Figure 20. userinfo.txt SCLM TeamConnection USERINFO file 124 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | ********************************************************|************** | * ACTINFO FILE FOR TEAMCONNECTION COMMANDS | * | * | * | ********************** GENERAL NOTES *****************|************** | * | * | * THIS FILE IS AN EXAMPLE THAT CAN SERVE AS A REFERENCE|IN THE * | * CONSTRUCTION AND CUSTOMIZATION OF ACTIONS FOR A PARTI|ULAR * | * WORKSTATION TOOL AND ENVIRONMENT. | * | * | * | ********************* CUSTOMIZATION NOTES **************|************** | * | * | * THIS IS AN EXAMPLE OF AN ACTINFO FILE THAT MIGHT BE US|D WITH * | * TEAMCONNECTION. IT CONTAINS SAMPLE ACTIONS TO INVOKE T|AMCONNECTION * | * COMMANDS. | * | * | * | * MODIFY THE TYPE INFORMATION AT THE TOP OF THIS FILE AN| THE * | * INFORMATION FOR EACH ACTION TO MATCH THE CONVENTIONS U|ED IN YOUR * | * PROJECT AND ON YOUR WORKSTATION. | * | * | * | * CPARM PARAMETERS WILL APPEAR ON THE WORKSTATION COMMAN| LINE. RPARM * | * PARAMETERS WILL BE WRITTEN TO A RESPONSE FILE. THE DEF|ULT MESSAGE_ * | * FILE IS C:\SCLM.MSG. | * | * | * | ******************** NLS CONSIDERATIONS **************|************** | * | * | * THIS FILE WAS WRITTEN FOR USE WITH THE ENGLISH CODE P|GE. THE * | * CHARACTERS IN THIS FILE MAY NOT HAVE THE SAME HEX VAL|E IN ALL * | * LANGUAGES. WHEN USING THIS FILE WITH A CODE PAGE OTH|R THAN * | * ENGLISH, UPDATE THE CHARACTERS IN THIS FILE TO MATCH |HE CODE PAGE * | * IN USE. AS AN EXAMPLE, THE BACKSLASH CHARARCTER IS X|E0' IN THE * | * ENGLISH CODE PAGE. THIS VALUE WOULD HAVE TO BE CHANG|D TO X'EC' * | * FOR GERMAN OR X'B2' FOR KANJI. THE AT SIGN CHARACTER|WOULD HAVE * | * TO BE CHANGED FROM THE ENGLISH X'7C' TO 'B5' FOR GERM|N. THE * | * CHARACTERS REQUIRING TRANSLATION WILL DEPEND ON THE C|DE PAGE IN * | * USE. | * | * | * | ********************************************************|************** | * | * | * SCLM type to workstation file name mapping | * | * | * | * The following statements define the mapping between SC|M type names * | * and workstation file extensions as well as the transfe| format * | * for the data. The statements are processed in order. |If the * | * member being processed does not match the first TYPE c|iteria, then * | * it will be compared to the next TYPE criteria and so o| until a * | * match is found. | * | * | * | ********************************************************|************** | | +---------------------------------------------------------------+ Figure 21 (Part 1 of 3). actinfo.txt SCLM TeamConnection ACTINFO file Appendix D. SCLM Project Definition Setup 125 +---------------------------------------------------------------+ | | | * | * | ********************************************************|************** | * Types containing BINARY data (numbers are referenced i| the text and* | * are not part of the stat|ments) * | * | * | * This mapping indicates that the host SCLM type BIN wil| be the * | * workstation file extensions of BIN. The BIN in the typ| name will * | * be used to indicate that members in this type contains|binary data. * | * As an example, the workstation file 'member.BIN' will |e transferred* | * as binary (no ASCII-to-EBCIDIC conversion) and stored |n the SCLM * | * library 'BIN(member)'. | * | * | * | ********************************************************|************** | TYPE BIN | (1) | EXTENSION .BIN | (1) | TRANSFER_FORMAT BINARY | (2) | SUBDIRECTORY \ | (3) | ********************************************************|************** | * | * | ********************************************************|************** | * Types containing ASCII data (numbers are referenced in|the text and * | * are not part of the state|ents) * | * | * | * This mapping indicates that the host SCLM type SRC wil| be the * | * workstation file extension of C. As an example, the wo|kstation file* | * 'member.C' will be stored in the SCLM library 'SRC(mem|er)'. * | * | * | ********************************************************|************** | TYPE SRC | (1) | EXTENSION .C | (1) | TRANSFER_FORMAT ASCII | (2) | SUBDIRECTORY \ | (3) | ********************************************************|************** | * Types containing ASCII data (numbers are referenced in|the text and * | * are not part of the state|ents) * | * | * | * This mapping indicates that any members whose type doe| not match * | * the previous criteria (TYPE * will always match), will|be processed * | * as ascii/text files. The workstation file extension w|ll be the * | * same as the SCLM type. As an example, a member in the|CPP type in * | * SCLM will have the workstation file name 'member.CPP'.| * | * | * | ********************************************************|************** | TYPE * | (1) | EXTENSION .* | (1) | TRANSFER_FORMAT ASCII | (2) | SUBDIRECTORY \ | (3) | | +---------------------------------------------------------------+ Figure 21 (Part 2 of 3). actinfo.txt SCLM TeamConnection ACTINFO file 126 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | ********************************************************|************** | * Workstation Commands (numbers are referenced in |he text and * | * are not part of the statem|nts) * | * | * | * The following statements define the actions/commands t| be run * | * on the workstation. | * | * | * | ********************************************************|************** | * | | * checkout | | * | | ACTION CHECKOUT | (4) | COMMAND teamc | | CPARM part | | CPARM -checkout | | CPARM testpart.c | | CPARM -release | | CPARM release1 | | CPARM -workarea | | CPARM mvstcwa | | * | | * checkin | | * | | ACTION CHECKIN | (4) | COMMAND teamc | | CPARM part | | CPARM -checkin | | CPARM testpart.c | | CPARM -release | | CPARM release1 | | CPARM -workarea | | CPARM mvstcwa | | * | | * build | | * | | ACTION BUILD | (4) | COMMAND teamc | | CPARM part | | CPARM -build | | CPARM testpart.exe | | CPARM -type | | CPARM TCPart | | CPARM -release | | CPARM release1 | | CPARM -workarea | | CPARM mvstcwa | | CPARM -pool | | CPARM pool1 | | CPARM -normal | | | +---------------------------------------------------------------+ Figure 21 (Part 3 of 3). actinfo.txt SCLM TeamConnection ACTINFO Appendix D. SCLM Project Definition Setup 127 file +---------------------------------------------------------------+ | | | ********************************************************|************** | * SCLM LANGUAGE DEFINITION FOR TEAMCONNECTION DEMONS|RATION * | * DUMMY LANGUAGE | * | * | * | * THIS LANGUAGE IS USEFUL FOR SIMULATING COMPILES, L|NKS, * | * AND OTHER ACTIVITIES FOR MEMBERS THAT ARE NOT INVO|VED IN * | * TEAMCONNECTION COMMANDS. A MORE SOPHISTICATED EXER|ISE WOULD * | * INVOLVE THE ACTUAL USE OF COMPILES, LINKERS, AND O|HER MVS * | * TRANSLATORS. | * | * | * | DUMMY FLMLANGL LANG=DUMMY, | C | VERSION=1,CHKSYSLB=IGNORE | | * | | * EXECUTE TEAMCONNECTION COMMAND - DUMMY | | * | | FLMTRNSL CALLNAM='TC DUMMY', | C | FUNCTN=BUILD, | C | CALLMETH=ATTACH, | C | COMPILE=IEFBR14, | C | VERSION=1, | C | GOODRC=0, | C | PORDER=0 | | | +---------------------------------------------------------------+ Figure 22. dummy.lng SCLM DUMMY Language Definition 128 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | * SCLM LANGUAGE DEFINITION FOR TEAMCONNECTION CHECKO|T * | * | * | * THIS LANGUAGE DEFINITION IS AN EXAMPLE THAT CAN SERVE|AS A * | * REFERENCE IN THE CONSTRUCTION AND CUSTOMIZATION OF LA|GUAGE * | * DEFINITIONS FOR EXECUTING TEAMCONNECTION COMMANDS. | * | * | | * THE NUMBERS IN PARENTHESIS ARE USED FOR REFERENCE IN |HE EXPLANATION | * THAT FOLLOWS AND ARE NOT PART OF THE LANGUAGE DEFINIT|ON | * | | CHECKOUT FLMLANGL LANG=CHECKOUT, | (1) C | VERSION=1,CHKSYSLB=IGNORE | | * | | * EXECUTE TEAMCONNECTION COMMAND - CHECKOUT | | * ACTION is defined in TSOUSER.PROJDEFS.ACTINFO | | FLMTRNSL CALLNAM='TC CHECKOUT', | (2) C | FUNCTN=BUILD, | C | CALLMETH=ISPLNK, | C | COMPILE=SELECT, | C | VERSION=1, | C | GOODRC=0, | C | PORDER=1, | C | OPTIONS='CMD(FLMLTWST ACTION=CHECKOUT,BMA|INFO=@@FLM$MP,C | SCLMINFO=@@FLMINF,BLDINFO=@@FLMBIO,PARMS=| | * (* OUT1 *) | | FLMALLOC IOTYPE=O,RECFM=VB,LRECL=256, | C | RECNUM=4000,DDNAME=OUT1,CATLG=Y, | C | KEYREF=OUT1,DFLTTYP=SRC | | * (* USERINFO *) | | FLMALLOC IOTYPE=A,DDNAME=USERINFO | (3) | FLMCPYLB @@FLMUID.SCLM.USERINFO | | * (* ACTINFO *) | | FLMALLOC IOTYPE=A,DDNAME=ACTINFO | (4) | FLMCPYLB @@FLMUID.PROJDEFS.ACTINFO | | * (* MESSAGE *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256,DISP=MO|, C | RECNUM=4000,DDNAME=MESSAGE,PRINT=I | | * (* MSGXFER *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256,CATLG=Y| C | RECNUM=4000,DDNAME=MSGXFER | | * (* BMAP *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256, | C | RECNUM=4000,DDNAME=BMAP,PRINT=I | | * (* FILES *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256, | C | RECNUM=4000,DDNAME=FILES,PRINT=I | | * (* RESPONSE *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256, | C | RECNUM=4000,DDNAME=RESPONSE,PRINT=I,CATLG|Y | | +---------------------------------------------------------------+ Figure 23 (Part 1 of 3). checkout.lng SCLM TeamConnection CHECKOUT Language Definition Appendix D. SCLM Project Definition Setup 129 +---------------------------------------------------------------+ | | | The FLMLANG macro at statement (1) identifies the name o| the language | definition with the LANG keyword value. "CHECKOUT" is us|d so that it is | easy to remember that this language definition is used f|r the | TeamConnection CHECKOUT command. | | | | The FLMTRNSL macro at statement (2) tells SCLM to pass c|ntrol to | ISPF SELECT (CALLMETH=ISPLNK and COMPILE=SELECT) when a |ember with | this language is built (FUNCTN=BUILD). | | | | The SELECT function receives the parameter string identi|ied by the | FLMTRNSL OPTIONS keyword parameter value. This parameter|string tells | SELECT to run the program FLMLTWST with the parameters | | ACTION=CHECKOUT,BMAPINFO=@@FLM$MP,... and so on. FLMLTWS| looks at this | parameter string and reads through the ACTINFO file (Fig|re 21 on page 125) | looking for "ACTION CHECKOUT". The COMMAND and CPARM val|es that follow | "ACTION CHECKOUT" along with directory information from |he USERINFO file | (Figure 20 on page 124) are used to construct the workst|tion command. | | | "ACTION CHECKOUT" is used so that it is easy to remember|that this | is used for the TeamConnection CHECKOUT command. | | The LANG keyword value does not have to match the ACTION|value. | | | The FLMALLOC macro at statement (3) allocates the file U|ERINFO to the | MVS data set @@FLMUID.SCLM.USERINFO (where @@FLMUID is r|placed by | the TSO user id) at run time. This data set can have any|other name and | must exist at run time. The name used here is consistent|with the | USERINFO data set name used in "TR 29.2034 Using ISPF's |oftware | Configuration and Library Manager (SCLM) to Manage Works|ation and | Cooperative Applications". | | | | The FLMALLOC macro at statement (4) allocates the file A|TINFO to the | MVS data set @@FLMUID.PROJDEFS.ACTINFO (where @@FLMUID i| replaced by | the TSO user id) at run time. This data set can have any|other name and | must exist at run time. The name used here is consistent|with the ACTINFO | data set name used in "TR 29.2034 Using ISPF's Software | | Configuration and Library Manager (SCLM) to Manage Works|ation and | Cooperative Applications". | | | | The other five FLMALLOC macros are for work data sets (I|TYPE=W). | | | FLMLTWST also looks at the build map to determine what m|mbers to send | to the workstation and what files to bring back from the|workstation. | The ACTINFO file is used to map the SCLM type (low level|qualifier of | the SCLM controlled library) to the workstation file ext|nsion. As an | added bonus FLMLTWST erases the message files before run|ing the | workstation command so that messages from a previous com|and are not | mistaken for messages from the current command. | | | +---------------------------------------------------------------+ Figure 23 (Part 2 of 3). checkout.lng SCLM TeamConnection CHECKOUT Language Definition 130 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | | | FLMLTWST is provided as a sample with ISPF and can be fo|nd in a system | data set such as 'SYS1.ISP.SISPSAMP'. You can use FMLTWS| "as is" or | modify it to meet other needs. The techniques described |n this paper | use FLMLTWST as delivered in ISPF 4.2. | | | +---------------------------------------------------------------+ Figure 23 (Part 3 of 3). checkout.lng SCLM TeamConnection CHECKOUT Language Definition Appendix D. SCLM Project Definition Setup 131 +---------------------------------------------------------------+ | | | ********************************************************|************** | * SCLM LANGUAGE DEFINITION FOR TEAMCONNECTION CHECKI| * | * | * | * THIS LANGUAGE DEFINITION IS AN EXAMPLE THAT CAN SERVE|AS A * | * REFERENCE IN THE CONSTRUCTION AND CUSTOMIZATION OF LA|GUAGE * | * DEFINITIONS FOR EXECUTING TEAMCONNECTION COMMANDS. | * | * | | * THE NUMBERS IN PARENTHESIS ARE USED FOR REFERENCE IN |HE EXPLANATION | * THAT FOLLOWS AND ARE NOT PART OF THE LANGUAGE DEFINIT|ON | * | | CHECKIN FLMLANGL LANG=CHECKIN, | (1) C | VERSION=1,CHKSYSLB=IGNORE | | * | | * EXECUTE TEAMCONNECTION COMMAND - CHECKIN | | * ACTION is defined in TSOUSER.PROJDEFS.ACTINFO | | FLMTRNSL CALLNAM='TC CHECKIN', | (2) C | FUNCTN=BUILD, | C | CALLMETH=ISPLNK, | C | COMPILE=SELECT, | C | VERSION=1, | C | GOODRC=0, | C | PORDER=1, | C | OPTIONS='CMD(FLMLTWST ACTION=CHECKIN,BMAP|NFO=@@FLM$MP,SC | CLMINFO=@@FLMINF,BLDINFO=@@FLMBIO,PARMS='| | * (* USERINFO *) | | FLMALLOC IOTYPE=A,DDNAME=USERINFO | (3) | FLMCPYLB @@FLMUID.SCLM.USERINFO | | * (* ACTINFO *) | | FLMALLOC IOTYPE=A,DDNAME=ACTINFO | (4) | FLMCPYLB @@FLMUID.PROJDEFS.ACTINFO | | * (* MESSAGE *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256,DISP=MO|, C | RECNUM=4000,DDNAME=MESSAGE,PRINT=I | | * (* MSGXFER *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256,CATLG=Y| C | RECNUM=4000,DDNAME=MSGXFER | | * (* BMAP *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256, | C | RECNUM=4000,DDNAME=BMAP,PRINT=I | | * (* FILES *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256, | C | RECNUM=4000,DDNAME=FILES,PRINT=I | | * (* RESPONSE *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256, | C | RECNUM=4000,DDNAME=RESPONSE,PRINT=I,CATLG|Y | | +---------------------------------------------------------------+ Figure 24 (Part 1 of 3). checkin.lng SCLM TeamConnection CHECKIN Language Definition 132 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | The FLMLANG macro at statement (1) identifies the name o| the language | definition with the LANG keyword value. "CHECKIN" is use| so that it is | easy to remember that this language definition is used f|r the | TeamConnection CHECKIN command. | | | | The FLMTRNSL macro at statement (2) tells SCLM to pass c|ntrol to | ISPF SELECT (CALLMETH=ISPLNK and COMPILE=SELECT) when a |ember with | this language is built (FUNCTN=BUILD). | | | | The SELECT function receives the parameter string identi|ied by the | FLMTRNSL OPTIONS keyword parameter value. This parameter|string tells | SELECT to run the program FLMLTWST with the parameters | | ACTION=CHECKIN,BMAPINFO=@@FLM$MP,... and so on. FLMLTWST|looks at this | parameter string and reads through the ACTINFO file (Fig|re 21 on page 125) | looking for "ACTION CHECKIN". The COMMAND and CPARM valu|s that follow | "ACTION CHECKIN" along with directory information from t|e USERINFO file | (Figure 20 on page 124) are used to construct the workst|tion command. | | | "ACTION CHECKIN" is used so that it is easy to remember |hat this | is used for the TeamConnection CHECKIN command. | | The LANG keyword value does not have to match the ACTION|value. | | | The FLMALLOC macro at statement (3) allocates the file U|ERINFO to the | MVS data set @@FLMUID.SCLM.USERINFO (where @@FLMUID is r|placed by | the TSO user id) at run time. This data set can have any|other name and | must exist at run time. The name used here is consistent|with the | USERINFO data set name used in "TR 29.2034 Using ISPF's |oftware | Configuration and Library Manager (SCLM) to Manage Works|ation and | Cooperative Applications". | | | | The FLMALLOC macro at statement (4) allocates the file A|TINFO to the | MVS data set @@FLMUID.PROJDEFS.ACTINFO (where @@FLMUID i| replaced by | the TSO user id) at run time. This data set can have any|other name and | must exist at run time. The name used here is consistent|with the ACTINFO | data set name used in "TR 29.2034 Using ISPF's Software |onfiguration and | Library Manager(SCLM) to Manage Workstation and Cooperat|ve | Applications". | | | | The other five FLMALLOC macros are for work data sets (I|TYPE=W). | | | FLMLTWST also looks at the build map to determine what m|mbers to send | to the workstation and what files to bring back from the|workstation. | The ACTINFO file is used to map the SCLM type (low level|qualifier of | the SCLM controlled library) to the workstation file ext|nsion. As an | added bonus FLMLTWST erases the message files before run|ing the | workstation command so that messages from a previous com|and are not | mistaken for messages from the current command. | | | +---------------------------------------------------------------+ Figure 24 (Part 2 of 3). checkin.lng SCLM TeamConnection CHECKIN Language Definition Appendix D. SCLM Project Definition Setup 133 +---------------------------------------------------------------+ | | | | | FLMLTWST is provided as a sample with ISPF and can be fo|nd in a system | data set such as 'SYS1.ISP.SISPSAMP'. You can use FMLTWS| "as is" or | modify it to meet other needs. The techniques described |n this paper use | FLMLTWST as delivered in ISPF 4.2. | | | +---------------------------------------------------------------+ Figure 24 (Part 3 of 3). checkin.lng SCLM TeamConnection CHECKIN Language Definition 134 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | ********************************************************|************** | * SCLM LANGUAGE DEFINITION FOR TEAMCONNECTION BUILD | * | * | * | * THIS LANGUAGE DEFINITION IS AN EXAMPLE THAT CAN SERVE|AS A * | * REFERENCE IN THE CONSTRUCTION AND CUSTOMIZATION OF LA|GUAGE * | * DEFINITIONS FOR EXECUTING TEAMCONNECTION COMMANDS. | * | * | | * THE NUMBERS IN PARENTHESIS ARE USED FOR REFERENCE IN |HE EXPLANATION | * THAT FOLLOWS AND ARE NOT PART OF THE LANGUAGE DEFINIT|ON | * | | TCBUILD FLMLANGL LANG=TCBUILD, | (1) C | VERSION=1,CHKSYSLB=IGNORE | | * | | * EXECUTE TEAMCONNECTION COMMAND - BUILD | | * ACTION is defined in TSOUSER.PROJDEFS.ACTINFO | | FLMTRNSL CALLNAM='TC BUILD', | (2) C | FUNCTN=BUILD, | C | CALLMETH=ISPLNK, | C | COMPILE=SELECT, | C | VERSION=1, | C | GOODRC=0, | C | PORDER=1, | C | OPTIONS='CMD(FLMLTWST ACTION=BUILD,BMAPIN|O=@@FLM$MP,SCLC | MINFO=@@FLMINF,BLDINFO=@@FLMBIO,PARMS=' | | * (* USERINFO *) | | FLMALLOC IOTYPE=A,DDNAME=USERINFO | (3) | FLMCPYLB @@FLMUID.SCLM.USERINFO | | * (* ACTINFO *) | | FLMALLOC IOTYPE=A,DDNAME=ACTINFO | (4) | FLMCPYLB @@FLMUID.PROJDEFS.ACTINFO | | * (* MESSAGE *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256,DISP=MO|, C | RECNUM=4000,DDNAME=MESSAGE,PRINT=I | | * (* MSGXFER *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256,CATLG=Y| C | RECNUM=4000,DDNAME=MSGXFER | | * (* BMAP *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256, | C | RECNUM=4000,DDNAME=BMAP,PRINT=I | | * (* FILES *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256, | C | RECNUM=4000,DDNAME=FILES,PRINT=I | | * (* RESPONSE *) | | FLMALLOC IOTYPE=W,RECFM=VB,LRECL=256, | C | RECNUM=4000,DDNAME=RESPONSE,PRINT=I,CATLG|Y | | +---------------------------------------------------------------+ Figure 25 (Part 1 of 3). tcbuild.lng SCLM TeamConnection TCBUILD Language Definition Appendix D. SCLM Project Definition Setup 135 +---------------------------------------------------------------+ | | | The FLMLANG macro at statement (1) identifies the name o| the language | definition with the LANG keyword value. "TCBUILD" is use| so that it is | easy to remember that this language definition is used f|r the | TeamConnection BUILD command. | | | | The FLMTRNSL macro at statement (2) tells SCLM to pass c|ntrol to | ISPF SELECT (CALLMETH=ISPLNK and COMPILE=SELECT) when a |ember with | this language is built (FUNCTN=BUILD). | | | | The SELECT function receives the parameter string identi|ied by the | FLMTRNSL OPTIONS keyword parameter value. This parameter|string tells | SELECT to run the program FLMLTWST with the parameters | | ACTION=BUILD,BMAPINFO=@@FLM$MP,... and so on. FLMLTWST l|oks at this | parameter string and reads through the ACTINFO file (Fig|re 21 on page 125) | looking for "ACTION BUILD". The COMMAND and CPARM values|that follow | "ACTION BUILD" along with directory information from the|USERINFO file | (Figure 20 on page 124) are used to construct the workst|tion command. | | | "ACTION BUILD" is used so that it is easy to remember th|t this | is used for the TeamConnection BUILD command. | | The LANG keyword value does not have to match the ACTION|value. | | | The FLMALLOC macro at statement (3) allocates the file U|ERINFO to the | MVS data set @@FLMUID.SCLM.USERINFO (where @@FLMUID is r|placed by the | TSO user id) at run time. This data set can have any oth|r name and must | exist at run time. The name used here is consistent with|the USERINFO | data set name used in "TR 29.2034 Using ISPF's Software |onfiguration and | Library Manager (SCLM) to Manage Workstation and Coopera|ive | Applications". | | | | The FLMALLOC macro at statement (4) allocates the file A|TINFO to the | MVS data set @@FLMUID.PROJDEFS.ACTINFO (where @@FLMUID i| replaced by | the TSO user id) at run time. This data set can have any|other name and | must exist at run time. The name used here is consistent|with the ACTINFO | data set name used in "TR 29.2034 Using ISPF's Software |onfiguration and | Library Manager (SCLM) to Manage Workstation and Coopera|ive | Applications". | | | | The other five FLMALLOC macros are for work data sets (I|TYPE=W). | | | FLMLTWST also looks at the build map to determine what m|mbers to send | to the workstation and what files to bring back from the|workstation. | The ACTINFO file is used to map the SCLM type (low level|qualifier of | the SCLM controlled library) to the workstation file ext|nsion. As an | added bonus FLMLTWST erases the message files before run|ing the | workstation command so that messages from a previous com|and are not | mistaken for messages from the current command. | | | +---------------------------------------------------------------+ Figure 25 (Part 2 of 3). tcbuild.lng SCLM TeamConnection TCBUILD Language Definition 136 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | | | FLMLTWST is provided as a sample with ISPF and can be fo|nd in a system | data set such as 'SYS1.ISP.SISPSAMP'. You can use FMLTWS| "as is" or | modify it to meet other needs. The techniques described |n this paper | use FLMLTWST as delivered in ISPF 4.2. | | | +---------------------------------------------------------------+ Figure 25 (Part 3 of 3). tcbuild.lng SCLM TeamConnection TCBUILD Language Definition Appendix D. SCLM Project Definition Setup 137 +---------------------------------------------------------------+ | | | ********************************************************|************* | ** THIS PROJECT DEFINITION IS DESIGNED TO TEST EXECUTIO| OF * | ** TEAMCONNECTION COMMANDS ON A WORKSTATION. | * | ** | * | ** DO NOT FORGET TO CHANGE TSOUSER TO YOUR TSO ID. | * | ** DO NOT FORGET TO ASSEMBLE and LINK AFTER ANY CHANGE.| * | ********************************************************|************* | TITLE '*** PROJECT DEFINITION FOR TEAM CONNECTI|N ***' | TSOUSER FLMABEG | | * | | * ***********************************************|************* | * * DEFINE THE TYPES (DEFINE THE LOW LEVEL QUALI|IERS) | * ***********************************************|************* | ARCHDEF FLMTYPE | | SOURCE FLMTYPE | | * | | * WORKSTATION TYPES | | * | | SRC FLMTYPE TSXFER='SEND:ASCII CRLF LRECL(80) RECFM|F) C | RECEIVE:ASCII' | | BIN FLMTYPE TSXFER='SEND: RECEIVE:' | | * | | * ***********************************************|************** | * * DEFINE THE GROUPS (DEFINES MIDDLE QUALIFIER| * | * ***********************************************|************** | DEVELOP FLMGROUP KEY=Y,AC=P | | * | | ********************************************************|************* | * PROJECT CONTROLS (VSAM) | | ********************************************************|************* | FLMCNTRL ACCT=TSOUSER.ACCOUNT.FILE | | * | | ********************************************************|************* | * LANGUAGE DEFINITION TABLES | | ********************************************************|************* | COPY CHECKOUT -- TEAM CONNECTION CHE|KOUT -- | * FOR FLMLTWST LANG.D|F. | COPY CHECKIN -- TEAM CONNECTION CHE|KIN -- | * FOR FLMLTWST LANG.D|F. | COPY TCBUILD -- TEAM CONNECTION BUI|D -- | * FOR FLMLTWST LANG.D|F. | COPY DUMMY -- DUMMY LANGUAGE FOR |ESTING -- | * | | ********************************************************|************* | * NON-COMPILERS (STANDARD, NO MODIF NEEDED) | | ********************************************************|************* | COPY FLM@ARCD -- ARCHITECTURE DEF. L|NGUAGE -- | * | | FLMAEND | | | +---------------------------------------------------------------+ Figure 26. sclmtc.prj SCLM Project Definition 138 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | PROC 0 | | ALLOC FI(SYSEXEC) DA('sys1.isp.sispsamp') shr reu | | | +---------------------------------------------------------------+ Figure 27. CLIST to concatenate a library containing FLMLTWST to SYSEXEC Appendix D. SCLM Project Definition Setup 139 140 TeamConnection and MVS/SCLM APPENDIX E. TEAMCONNECTION BUILD SCRIPTS AND PARTS FOR SCLM +---------------------------------------------------------------+ | | | //REXX EXEC PGM=IRXJCL,PARM=&TCPARM | | //* | | //* BUILD SCRIPT FOR EXECUTING A REXX PROGRAM | | //* | | //* TEAMPROC MUST RUN IN A TSO ADDRESS SPACE | | //* | | //* IRXJCL WILL EXECUTE THE FIRST PARAMETER IN &TCPARM | | //* AS A REXX PROGRAM AND PASS THE REMAINING PARAMETERS | | //* | | //* IRXJCL WILL LOOK INTO SYSEXEC FOR THE REXX PROGRAM | | //* BE SURE TO CHANGE TSOUSER TO YOUR TSO USER ID | | //* | | //* SCLMPRM WILL CONTAIN 4 RECORDS FOR THE SCLM COMMAND:| | //* COMMAND, GROUP, TYPE, AND MEMBER | | //* | | //SYSEXEC DD DSN=TSOUSER.TEAMC.REXX,DISP=SHR | | //SCLMPRM DD TCEXT=PRM,DISP=(NEW,DELETE), | | // UNIT=VIO,SPACE=(32000,(30,10)), | | // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200) | | //ERRLIST TCEXT=TCOUT,DISP=(NEW,DELETE), | | // UNIT=SYSDA,SPACE=(13300,(30,30)), | | // DCB=(RECFM=FB,LRECL=133,BLKSIZE=1330) | | //ISPTLIB DD DSN=SYS1.ISP.SISPTENU,DISP=SHR | | //ISPSLIB DD DSN=SYS1.ISP.SISPSENU,DISP=SHR | | //ISPMLIB DD DSN=SYS1.ISP.SISPMENU,DISP=SHR | | //ISPPLIB DD DSN=SYS1.ISP.SISPPENU,DISP=SHR | | //ISPLOG DD DUMMY | | // | | | +---------------------------------------------------------------+ Figure 28. sclmcmd.jcl - build script to run MVS REXX programs Appendix E. TeamConnection Build Scripts and Parts for SCLM 141 +---------------------------------------------------------------+ | | | /* REXX */ | | parse arg templib parms | | /*******************************************************|*************/ | /* BUILD SCLM COMMAND FROM FILE SCLMPRM RECEIVED FROM T|AMCONNECTION*/ | /*******************************************************|*************/ | dsinfo = getdsn_last('ISPTLIB') | | if dsinfo > 0 then | | call errorhndlr GETISPTLIB,dsinfo | | isptlib = SYSDSNAME | | | | dsinfo = getdsn_last('ISPMLIB') | | if dsinfo > 0 then | | call errorhndlr GETISPMLIB,dsinfo | | ispmlib = SYSDSNAME | | | | dsinfo = getdsn_last('ISPSLIB') | | if dsinfo > 0 then | | call errorhndlr GETISPSLIB,dsinfo | | ispslib = SYSDSNAME | | | | dsinfo = getdsn_last('ISPPLIB') | | if dsinfo > 0 then | | call errorhndlr GETISPPLIB,dsinfo | | ispplib = SYSDSNAME | | | | "ALLOC FI(SYSTERM) BLOCK(800) SPACE(500,500) UNIT(SYSDA)|REUSE" | "ALLOC FI(ISPPROF) BLOCK(800) SPACE(500,500) DIR(10) UNI|(SYSDA), | REUSE,DSORG(PO)" | | "ALLOC FI(ISPSLIB) DA('"ispslib"') SHR REUSE" | | "ALLOC FI(ISPMLIB) DA('"ispmlib"') SHR REUSE" | | "ALLOC FI(ISPPLIB) DA('"ispplib"') SHR REUSE" | | /*******************************************************|***/ | /* | */ | /* To avoid ENQ errors on the ISPTENU system data set a | */ | /* cataloged data set (templib) must be concatenated in | */ | /* front of ISPTLIB. | */ | /* | */ | /* if data set specified then | */ | /* concatenate data set in front of ISPTLIB | */ | /* else | */ | /* point directly to ISPTLIB and risk enq error | */ | /* | */ | /*******************************************************|***/ | "FREE FI(ISPTLIB)" | | if templib <> '' then | | "ALLOC FI(ISPTLIB) DA('"templib"','"isptlib"') SHR|REUSE" | else | | "ALLOC FI(ISPTLIB) DA('"isptlib"') SHR REUSE" | | | | | +---------------------------------------------------------------+ Figure 29 (Part 1 of 4). sclmcmd.rex - MVS REXX program to issue 142 TeamConnection and MVS/SCLM SCLM BUILD +---------------------------------------------------------------+ | | | /*******************************************************|***/ | /* | */ | /* CONSTRUCT THE FLMCMD PARAMETER STRING FROM FILE SCLMP|M */ | /* BE SURE TO CHANGE TSOUSER TO YOUR TSO USER ID | */ | /* | */ | /*******************************************************|***/ | | | call getsclmprm | | | | buildcmd = sclmcmd ||, | | ',tsouser,sclmtc,' ||, | | sclmgrp ||, | | ',' ||, | | sclmtyp ||, | | ',' ||, | | sclmmem ||, | | ',,,c,,y' | | | | say 'starting sclm build' | | | | /*******************************************************|***/ | /* | */ | /* ISPSTART RETURN CODE WILL BE ZISPFRC IN THE SHARED PO|L.*/ | /* EXFLMCMD WILL PUT THE RETURN CODE FROM FLMCMD IN ZISP|RC*/ | /* IN THE SHARED POOL. | */ | /* | */ | /*******************************************************|***/ | | | "ispstart cmd(exflmcmd "buildcmd")" | | | | flmcmd_rc = rc | | | | if flmcmd_rc < 0 | flmcmd_rc > 0 then | | call errorhndlr FLMCMD,flmcmd_rc,SYSTERM | | else | | "FREE FI(SYSTERM)" | | | | say 'finishing sclm build' | | | | exit 0 | | /*******************************************************|*************/ | | +---------------------------------------------------------------+ Figure 29 (Part 2 of 4). sclmcmd.rex - MVS REXX program to issue SCLM BUILD Appendix E. TeamConnection Build Scripts and Parts for SCLM 143 +---------------------------------------------------------------+ | | | | | getsclmprm: procedure expose sclmcmd sclmgrp sclmtyp scl|mem | /*******************************************************|*************/ | /* GET SCLM PARAMETERS FROM SCLMPRM DATA DEFINITION | */ | /*******************************************************|*************/ | | | dsinfo = getdsn_last('SCLMPRM') | | if dsinfo > 0 then | | call errorhndlr GETSCLMPRM,dsinfo | | | | sclmprm. = '' | | "ALLOC FI(SCLMPRMX) DA('"SYSDSNAME"') SHR REUSE" | | "execio * diskr SCLMPRMX (stem sclmprm. open finis)" | | | | /* SCLMPRM contains one line for each SCLM command para|eter. */ | /* The parameters are: | */ | /* SCLM command | */ | /* SCLM group | */ | /* SCLM type | */ | /* SCLM member | */ | | | sclmcmd = word(sclmprm.1,1) | | sclmgrp = word(sclmprm.2,1) | | sclmtyp = word(sclmprm.3,1) | | sclmmem = word(sclmprm.4,1) | | | | return | | | | /*******************************************************|*************/ | | +---------------------------------------------------------------+ Figure 29 (Part 3 of 4). sclmcmd.rex - MVS REXX program to issue SCLM BUILD 144 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | | | errorhndlr: procedure expose sysmsglvl1 sysmsglvl2 | | /*******************************************************|*************/ | /* ISSUE ERROR MESSAGE FOR FUNCTION, ERROR CODE, AND DA|A SET */ | /*******************************************************|*************/ | parse arg function, return_code, copyddname | | dsinfo = getdsn_last('ERRLIST') | | "ALLOC FI(ERROUT) DA('"SYSDSNAME"') MOD REUSE" | | if copyddname <> '' then | | do | | "execio * diskr "copyddname" (stem errvar. open fini|)" | "execio * diskw errout (STEM errvar. open finis)" | | "FREE FI("copyddname")" | | end | | else | | 'EXECIO 2 DISKW ERROUT (STEM sysmsglvl OPEN FINIS)' | | "FREE FI(ERROUT)" | | exit(return_code) | | | | getdsn_last: procedure expose sysdsname sysmsglvl1 sysms|lvl2 | parse arg ddname parm_rest | | getdsn ddname | | getdsn_rc = rc | | if getdsn_rc < 0 | getdsn_rc > 0 then | | sysdsname = '' | | else | | do | | last_dsn = sysdsname.0 | | sysdsname = sysdsname.last_dsn | | end | | return getdsn_rc | | | +---------------------------------------------------------------+ Figure 29 (Part 4 of 4). sclmcmd.rex - MVS REXX program to issue SCLM BUILD Appendix E. TeamConnection Build Scripts and Parts for SCLM 145 +---------------------------------------------------------------+ | | | /* REXX */ | | parse arg cmdparm | | | | /******************************************************|******/ | /* | */ | /* receive the flmcmd parameter string | */ | /* run the flmcmd | */ | /* save the return code in ZISPFRC | */ | /* put the return code in a shared pool for ISPSTART | */ | /* | */ | /******************************************************|******/ | | | 'flmcmd ' cmdparm | | ZISPFRC = rc | | ADDRESS ISPEXEC 'VPUT (ZISPFRC) SHARED' | | exit 0 | | | +---------------------------------------------------------------+ Figure 30. exflmcmd.rex - MVS REXX program to issue SCLM flmcmd 146 TeamConnection and MVS/SCLM +---------------------------------------------------------------+ | | | //your job card | | //******************************************************|***/ | //* PROGRAM: RUNPGMT | */ | //* JCL to start TeamConnection MVS Build Server under | */ | //* a TSO environment. Primary use is intended for | */ | //* VisualGen support. | */ | //******************************************************|***/ | //* Some dataset names might need to be modified | */ | //* according to your system's customization | */ | //******************************************************|***/ | //* | | //RUNPGMT EXEC PGM=IKJEFT01,REGION=6M,DYNAMNBR=30 | | //STEPLIB DD DSN=DSNA.DSNLOAD,DISP=SHR | | // DD DSN=userid.TEAMC.LOADLIB,DISP=SHR | | // DD DSN=SYS1.CEE.SCEERUN,DISP=SHR | | // DD DSN=SYS1.COB2COMP,DISP=SHR | | //* DD DSN=SYS1.CEE.SCEELKED,DISP=SHR | | //* userid.TEAMC.TEST.JCL must be allocated as a PDS wit| lrecl=80, | //* and recfm=FB | | //TEAMPROC DD DSN=userid.TEAMC.TEST.JCL,DISP=SHR | | //EDCENV DD DSN=userid.TEAMC.ENVVAR,DISP=SHR | | //STDOUT DD SYSOUT=* | | //STDERR DD SYSOUT=* | | //SYSUDUMP DD SYSOUT=* | | //CEEDUMP DD SYSOUT=* | | //SYSTSPRT DD SYSOUT=* | | //SYSTSIN DD * | | CALL 'userid.TEAMC.LOADLIB(TEAMPROC)' + | | 'ENVAR("_CEE_ENVFILE=DD:EDCENV")/-S @32911 -U SYSDA|-K IBM-1047' | // | | | +---------------------------------------------------------------+ Figure 31. Sample JCL Using LE/370 for RUNPGMT Appendix E. TeamConnection Build Scripts and Parts for SCLM 147 148 TeamConnection and MVS/SCLM APPENDIX F. SCLM FLMLTWST EXTENSIONS FOR PARAMETERS This section describes the extensions to FLMLTWST found in flmltwst.rex in the demonstration materials (Appendix A, "TeamConnection Parts and Scripts" on page 79). These extensions were made to FLMLTWST as found in ISPF 4.2. FLMLTWST is written in REXX. FLMLTWST in flmltwst.rex is extended through code changes to rec- ognize the following parameters. These keyword parameters can be specified in the OPTIONS keyword parameter value of the FLMTRNSL macro in an SCLM language definition or specified in the PARM or PARMx statements of an SCLM architecture definition. o SENDINPUT - YES - send inputs from MVS to the workstation - NO - do not send inputs to the workstation - DEFAULT = YES o GETOUTPUT - YES - send outputs from the workstation to MVS - NO - do not send outputs to MVS - DEFAULT = YES o TCACTFLAG - the value 'TCACTFLAG' in a 'CPARM TCACTFLAG' statement from an ACTINFO file (Figure 21 on page 125) is replaced with the value of the TCACTFLAG keyword parameter - this parameter is intended to be a TeamConnection command action flag but can be used for any CPARM statement - DEFAULT = -build o PARTNAME - the value 'PARTNAME' in a 'CPARM PARTNAME' statement from an ACTINFO file (Figure 21 on page 125) is replaced with the value of the PARTNAME keyword parameter - this parameter is intended to be the name of a TeamConnection part but can be used for any CPARM state- ment - DEFAULT = PARTNAME Appendix F. SCLM FLMLTWST Extensions for Parameters 149 See "SCLM Architecture Definition Parameters for TeamConnection Commands" on page 71 for a complete discussion of how to use these extensions. All extensions in flmltwst.rex are surrounded by comments. Altered code is preserved in its original state as part of the comments. In the following figures a few lines of code sometimes appear before and/or after the extensions to assist in locating the changes in flmltwst.rex. ADDITIONAL KEYWORD PARAMETERS FLMLTWST puts keyword parameters in the stem variable parm_list. No changes are required to add additional keyword parameter values to this stem variable because they are picked up by a parse of the parameter string passed to FLMLTWST. Default values for keyword parameters are assigned following the comment /* INITIALIZE PARM DEFAULTS */ in the INITIALIZATION sub- routine. The code added for assigning defaults to the additional keyword parameters is in Figure 32. +---------------------------------------------------------------+ | | | /* initialize parm defaults | */ | | | /***************************** ADDED FOR TeamConnection |****** START */ | parm_name = 'SENDINPUT' | | parm_list.parm_name = 'YES' | | | | parm_name = 'GETOUTPUT' | | parm_list.parm_name = 'YES' | | | | parm_name = 'TCACTFLAG' | | parm_list.parm_name = '-build' | | | | parm_name = 'PARTNAME' | | parm_list.parm_name = 'PARTNAME' | | /***************************** ADDED FOR TeamConnection |****** END */ | | | parm_name = 'ACTION' | | parm_list.parm_name = 'COMPILE' | | | +---------------------------------------------------------------+ Figure 32. FLMLTWST - adding keyword parameter defaults 150 TeamConnection and MVS/SCLM AVOIDING TRANSFER OF FILES FLMLTWST is designed to transfer input files to the workstation and output files from the workstation. The code added to the procedure to avoid transfers based upon the value of SENDINPUT and GETOUTPUT keyword parameters is in Figure 33 and Figure 34. An additional test is made for the value of the keyword parameter to avoid the transfer of files. +---------------------------------------------------------------+ | | | /* Send the inputs, and 1st response file */ | | /***************************** ADDED FOR TeamConnection |****** START */ | /* | */ | /* IF ret_code = 0 THEN */ | | /* CALL send_inputs */ | | parm_name = 'SENDINPUT' | | IF (ret_code = 0) & (parm_list.parm_name = 'YES') T|EN | CALL send_inputs | | /* | */ | /***************************** ADDED FOR TeamConnection |****** END */ | | +---------------------------------------------------------------+ Figure 33. FLMLTWST - avoiding transfer of input files +---------------------------------------------------------------+ | | | /* Retreive the outputs from the workstation */ | | /***************************** ADDED FOR TeamConnection |****** START */ | /* | */ | /* IF (ret_code = 0) & (xfer_output.0 > 0) THEN */ | | /* CALL get_outputs */ | | parm_name = 'GETOUTPUT' | | IF (ret_code = 0) & (xfer_output.0 > 0) &, | | (parm_list.parm_name = 'YES') THEN | | CALL get_outputs | | /* | */ | /***************************** ADDED FOR TeamConnection |****** END */ | | | EXIT ret_code | | | +---------------------------------------------------------------+ Figure 34. FLMLTWST - avoiding transfer of output files Appendix F. SCLM FLMLTWST Extensions for Parameters 151 PARAMETER FOR A CPARM VALUE The CPARM values in the ACTINFO file (Figure 21 on page 125) are used by FLMLTWST to create the workstation command. The GET_ACTINFO subroutine reads the ACTINFO file for the CPARM values. Code was added to recognize TCACTFLAG and PARTNAME as CPARM values and replace these values with the respective values of the TCACTFLAG and PARTNAME keyword parameters. The use of stem variables simplifies the code as seen in Figure 35. +---------------------------------------------------------------+ | | | WHEN var_name = 'CPARM' THEN | | DO | | /***************************** ADDED FOR TeamConnection |****** START */ | IF (var_value = 'TCACTFLAG') |, | | (var_value = 'PARTNAME') THEN | | var_value = parm_list.var_value | | /***************************** ADDED FOR TeamConnection |****** END */ | cnt = action_parms.action + 1 | | action_parms.action = cnt | | | +---------------------------------------------------------------+ Figure 35. FLMLTWST - CPARM value replaced by parameter value 152 TeamConnection and MVS/SCLM