Working With zFS In ZMF
ChangeMan ZMF includes support for Java applications, providing:
-
Secure, rules based management of Java application artifacts in ChangeMan package life cycle.
-
Stability, reliability, and security of the mainframe platform ZMF for Eclipse and RDz user interfaces.
Working with Long Fields in ISPF
Component names in USS file systems can be 256 characters long, and path names can be 1024 characters long.
In the ChangeMan ZMF ISPF interface, there are three ways users can see a long component or path name on a panel whose total width is limited to 80 characters.
-
Scroll in the panel field
-
Zoom in on the field with EXPAND
-
Display an alternate panel
In this section, example package ACTP000052 contains these components:
Staging Library (Path) Name | Component Name |
---|---|
/cmntp/s6/ACTP/#000052/d/JVS | hellow.java |
/cmntp/s6/ACTP/#000052/d/JCT | hellow.jct |
/cmntp/s6/ACTP/#000052/d/JVS | org/dom/xpath/jhfhth30long.java |
/cmntp/s6/ACTP/#000052/d/HTH | org/jdom/xpath/jhfhth30long.hth |
/cmntp/s6/ACTP/#000052/d/HTH | testfile.hth |
Important
In USS file systems, a "component name" may include a partial directory path because the actual name of the file is unique only within a hierarchy that includes it.
When line command S2 is entered by package ACTP000052 on the Change Package List panel, the Stage: package Components panel (CMNSTG01) is displayed in this format.
CMNSTG01 STAGE: ACTP000052 Components Row 1 to 5 of 5
Command ===> Scroll ===> CSR
Name + Type Status Changed Procname User Request
__ hellow.java JVS ACTIVE 20150305 145828 CMNJAVA USER015
__ hellow.jct JCT ACTIVE 20150309 184115 CMNJAR USER015
__ org/dom/xpath/jhfh JVS ACTIVE 20150309 200446 CMNJAVA USER015
__ org/jdom/xpath/jhf HTH ACTIVE 20150309 192827 USER015
__ testfile.hth HTH ACTIVE 20150309 192103 USER015
******************************* Bottom of data ********************************
...
When a data field is longer than the panel field used to display it, a + (plus) is shown to the right of the panel field. If the panel field is in a list, the + is shown over the panel field column, in the heading, as shown in the example above.
Notice that the names of the first two components and the last component fit in the Name column field. However, the names of the third and fourth components appear to overflow the Name field.
Scrolling LEFT and RIGHT
To see more of a long name that is truncated by a short panel field, you can scroll to the right, and then scroll back to the left.
-
To scroll to the right in a field, place your cursor in the field and press PF11. (You can also type RIGHT in the Command line, place your cursor in the field, and press ENTER.)
-
To scroll to the left in a field, place your cursor in the field and press PF10. (You can also type LEFT in the Command line, place your cursor in the field, and press ENTER.)
This panel shows the Name field after scrolling right one time.
CMNSTG01 STAGE: ACTP000052 Components Row 1 to 5 of 5
Command ===> Scroll ===> CSR
Name -+ Type Status Changed Procname User Request
__ JVS ACTIVE 20150305 145828 CMNJAVA USER015
__ JCT ACTIVE 20150309 184115 CMNJAR USER015
__ fhth30long.java JVS ACTIVE 20150309 200446 CMNJAVA USER015
__ hfhth30long.hth HTH ACTIVE 20150309 192827 USER015
__ HTH ACTIVE 20150309 192103 USER015
******************************* Bottom of data ********************************
...
Rules for scrolling in long panel fields:
-
The SCROLL amount at the upper right of the panel determines the scroll amount for long panel fields.
-
You might have to scroll right more than once to see the end of a long field.
-
When you have scrolled to right end of a long field, a - (minus) replaces the + (plus) to indicate that you can only scroll left from that point
-
Both -+ (minus plus) are displayed when you can scroll both right and left from your current position in a long field.
-
If you type M (MAXIMUM) on the Command line before you position your cursor in a long field, when you press PF11 or PF10 the field scrolls all the way to the end or the beginning respectively.
Long Field Zoom - EXPAND
Rather than pressing PF11 or PF10 multiple times to scroll through a long field, you can zoom in on the field by placing your cursor over the field and pressing PF4 to execute the ISPF EXPAND command. EXPAND displays the entire field in a pop-up panel.
If you place the cursor on the NAME field of the fourth component listed on the STAGE: package COMPONENTS panel above and you press PF4, the pop-up CMPNAME+0 panel (ISPEXPND) is displayed.
+--------------------------------- CMPNAME+0 ---------------------------------+
| ISPEXPND Line 1 of 4 |
| Command ===> Scroll ===> PAGE |
| |
| org/jdom/xpath/jhfhth30long.hth |
| |
...
| |
| |
+-----------------------------------------------------------------------------+
Zoom panel rules:
-
The pop-up panel has the same attributes as the original panel field. If the original panel field is display-only, then the pop-up panel is also display-only. If the original panel field is available for input, you can type on the pop-up panel.
-
If the original panel field is available for input, you can type up to 256 characters on multiple pop-up panel lines for a component name, or 1024 characters on multiple lines for a path name.
-
Press PF3 to exit the pop-up long name panel and return to the original panel.
Note
Most ZMF panels in the ISPF interface follow this rule: "Press ENTER to process; Enter END or CANCEL command to exit." However, the pop-up panel for expanded long name fields requires END or PF3 to save data entered or changed on the panel.
Clearing Long Names From Panel Input Fields
If a long name extends beyond the visible end of an input field on a ChangeMan ZMF panel, you must take care to:
-
Clear the entire long name before pressing ENTER to display a selection list.
-
Clear any parts of the old name that extend beyond a shorter name that you type over the original name.
If you only clear the visible part of a long name input field, the rest of the name remains in the ISPF variable, and it will interfere with the processing of subsequence input until you exit the panel. (This is an ISPF behavior, not a ZMF shortcoming.)
Tip
The quickest way to ensure that you have cleared a long name input field is to press PF4 to display the entire long name in a pop-up panel, erase all lines that contain parts of the long name, and press PF3 to return to the original panel.
Alternate Panel - LONG and XLONG
In many ChangeMan ZMF functions that display a list of components, you can invoke an alternate panel that displays the component name on a separate line so there is room to show more characters of a long component name.
For example, if you have zFS library types in a package, then the STAGE: package Components panel (CMNSTG01) is displayed to show the components in the package.
CMNSTG01 STAGE: ACTP000057 Components Row 1 to 3 of 3
Command ===> Scroll ===> CSR
Name + Type Status Changed Procname User Request
__ averylongnamegoesh JVS ACTIVE 20150315 161850 CMNJAVA USER015
__ hw001.java JVS ACTIVE 20150315 152357 CMNJAVA USER015
__ org/jdom/xpath/jhf JVS ACTIVE 20150315 165512 CMNJAVA USER015
******************************* Bottom of data ********************************
...
This panel CMNSTG01 shows only 18 characters of each component name. The panel permits scrolling left and right via PF10 and PF 11, and Expand (PF4) in the Name field so you can see the rest of the component name.
However, if you type LONG on the Command line and press ENTER, a different STAGE: package Components panel (CMNSTG14) is displayed, which shows each component zFS path, up to 44 characters, on a line below the rest of the component information.
CMNSTG14 STAGE: ACTP000057 Components Row 1 to 3 of 3
Command ===> Scroll ===> CSR
Name + Type Status Changed Procname User Request
Org Input dataset name + Target lib
__ averylongnamegoesh JVS ACTIVE 20150315 161850 CMNJAVA USER015
zFS /cmntp/s6/ACTP/#000057/d/JVS JVL
__ hw001.java JVS ACTIVE 20150315 152357 CMNJAVA USER015
zFS /cmntp/s6/ACTP/#000057/d/JVS JVL
__ org/jdom/xpath/jhf JVS ACTIVE 20150315 165512 CMNJAVA USER015
zFS /cmntp/s6/ACTP/#000057/d/JVS JVL
******************************* Bottom of data ********************************
...
This panel still only shows up to 18 characters of a long component name. This panel also offers scrolling and zoom in the Name field if you still cannot see the entire component name.
To return to the original component list panel, type SHORT on the Command line and press ENTER.
Prior to the release of ChangeMan ZMF 7.1 with long names, some panels already responded to the LONG command by displaying a panel with additional information. In some of these cases, you can type XLONG in the Command line and press ENTER to display a special panel for long names.
If you type XLONG on the Command line and press ENTER, a further STAGE: package Components panel (CMNSTG24) is displayed. This panel shows each component name on a line above the component information, with the staging directory path on a third line.
CMNSTG14 STAGE: ACTP000057 Components Row 1 to 3 of 3
Command ===> Scroll ===> CSR
Name + Type Status Changed Procname User Request
Org Input dataset name + Target lib
__ averylongnamegoesh JVS ACTIVE 20150315 161850 CMNJAVA USER015
zFS /cmntp/s6/ACTP/#000057/d/JVS JVL
__ hw001.java JVS ACTIVE 20150315 152357 CMNJAVA USER015
zFS /cmntp/s6/ACTP/#000057/d/JVS JVL
__ org/jdom/xpath/jhf JVS ACTIVE 20150315 165512 CMNJAVA USER015
zFS /cmntp/s6/ACTP/#000057/d/JVS JVL
******************************* Bottom of data ********************************
...
This panel shows up to 75 characters of a long component name. This panel also offers scrolling and zoom in the Name field if you still cannot see the entire component name. You can scroll and zoom on the staging directory path.
On this panel you can use the LONG command to display the CMNSTG14 panel or SHORT to display the CMNSTG01 panel.
Tip
If you want to see the component name on a separate line, try XLONG first. If short message INVALID SELECTION CODE is displayed, try command LONG.
Right Justified Long Names in ERO
ERO uses dynamic ISPF panels to make lists of components for functions like checkin, retrieve, query component, test area, test release, and promotion. ISPF does not support scroll RIGHT and LEFT on dynamic panels.
To display as much meaningful information in the long name column as possible where scroll is not supported, ERO right justifies long names on dynamic panels, truncating any extension on the file name.
In this example, release package JZFS00023 contains the following files with names that include a partial path:
/org/jdom/adapters/package.html
/org/jdom/filter/package.html /org/jdom/input/package.html
/org/jdom/output/package.html
/org/jdom/package.html
/org/jdom/transform/package.html
See how these component names are displayed on ERO panel CMNCKI02, right justified with the extension html stripped off.
CMNCKI02 RELEASE CHECKIN JZFS000023 COMPONENTS ------- Row 000001 Of 000006
COMMAND ===> SCROLL ===> HALF
COMPONENT NAME TYPE STATUS CHANGED PROCNAME ID AREA ID
Line Command: S-Select ( SETALL Select all, SETOFF De-select all )
_ adapters/package HTH ACTIVE 20101124 141227 USER240 ACCTPAY
_ m/filter/package HTH ACTIVE 20101124 141231 USER240 ACCTPAY
_ om/input/package HTH ACTIVE 20101124 141232 USER240 ACCTPAY
_ m/output/package HTH ACTIVE 20101124 141234 USER240 ACCTPAY
_ org/jdom/package HTH ACTIVE 20101124 141235 USER240 ACCTPAY
_ ransform/package HTH ACTIVE 20101124 141237 USER240 ACCTPAY
******************************* Bottom of Data ********************************
...
Note
Long names on ERO dynamic panels may be displayed using the PF4 zoom function to display the entire name in a pop-up window.
Case Sensitive Fields
By default, all ISPF panel input fields are folded to upper case, regardless of the case you type. However, zFS path names and file names are case sensitive. For example, these are three different files:
-
FirstJavaComponent.java
-
firstjavacomponent.java
-
FIRSTJAVACOMPONENT.java
ChangeMan ZMF uses two methods to control the case sensitivity of input fields on ISPF panels.
-
Data Set Type in library type definitions
-
Mixed Case parameter on component list
Data Set Type
The global and application Library Types Part 2 of 2 panel includes the Data Set Type field, with valid values of LIBRARY for PDSE, PDS or blank for PDS or zFS. When you type a component name or directory path for a data set type zFS, case is preserved and stored in ZMF repositories. When component name or directory path are displayed for data set type zFS, the case that is stored in ZMF repositories is displayed unchanged on ISPF panels.
For example, when you type information on the application/site - Promotion Libraries panel in application administration, ChangeMan ZMF uses the library type to determine whether the data should default to upper case or be processed exactly as you enter it.
In this example, the library names and directory paths for promotion are all entered in lower case (panel shows one JCL and one zFS libraries - JCL is uppercase).
CMNLRPM3 ACTP/SERT6 - Promotion Libraries Row 2 to 8 of 8
Command ===> Scroll ===> CSR
Promotion name: S6P1UT Level: 10
Syslib
Lib exclude Target libraries
___ JCL Y CMNTP.S6.V810.PROM.S6P1UT.JCL + Shadow
CMNTP.S6.V810.PROM.S6P1UT.JCL + Library 1
+ Library 2
+ Library 3
___ JVS N /cmntp/s6/actp/prom10/jvs + Shadow
/cmntp/s6/actp/prom10/jvs + Library 1
+ Library 2
+ Library 3
...
When you press ENTER, the data set names for library type JCL are changed to upper case and stored that way on the package master. However, the zFS path names for library type JVS (Java) are left exactly as you entered them, and they are stored in mixed case on the package master.
Mixed Case
On list parameter panels where you specify filter criteria for building a component list, you can control how case is used in component name selection by setting the Mixed Case field.
/ Mixed case
By default, the text you enter in a component name field is folded to upper case before it is matched against component names. However, if you select the Mixed Case field, then the value you enter is compared exactly to the component name in whatever file or directory is being searched.
For example, package ACTP000054 contains these two components:
CMNSTG01 STAGE: ACTP000050 Components Row 1 to 2 of 2
Command ===> Scroll ===> CSR
Name + Type Status Changed Procname User Request
acpdoc60 HTH ACTIVE 20150315 212025 USER015
ACPDOC60 DOC ACTIVE 20150315 211855 USER015
******************************* Bottom of data ********************************
You can filter the components displayed on the Stage: package Components panel by first setting selection criteria on the Component List Parameters panel (CMNSTG12). If you type the Component Name field in lower case on the Component List Parameters panel and select the Mixed case field, then the filter is case sensitive, and only the HTH component is listed.
Selection criteria:
CMNSTG12 Component List Parameters
Command ===>
Package: ACTP000071 Status: DEV Install date: 20200707
Work request: 1907D92 Department: IDD
Component name . . . . . . acpdoc60 +
Component type . . . . . .
Language . . . . . . . . .
Enter "/" to select:
Component status . . . . __ Active __ Checkout __ Frozen __ Inactive
__ Incomp __ Unfrozen
Changed from date . . . . . ________ (yyyymmdd)
time . . . . . ________ (hhmmss)
Changed to date . . . . . ________ (yyyymmdd)
time . . . . . ________ (hhmmss)
Compile procedure . . . . . ________
User . . . . . . . . . . . ________
Display mode . . . . . . . S (S-short, L-long, X-extra long)
Data Encoding . . . . . . . (1-ASCII, 2-UTF-8)
Enter "/" to select option
/ Confirm component delete / Confirm other requests
_ Display component user options / Mixed case
/ Comparison report for edit _ Text type . . . . $.
_ Ignore recompiled components
Result:
CMNSTG01 STAGE: ACTP000071 Components Row 1 to 1 of 1
Command ===> Scroll ===> CSR
Name + Type Status Changed Procname User Request
__ acpdoc60 HTH ACTIVE 20200517 212025 USER015
******************************* Bottom of data ********************************
...
If you type the Component Name field in lower case and do not select the Mixed Case field, then the component name you typed is folded to upper case, and only the DOC component is listed.
Selection criteria:
CMNSTG12 Component List Parameters
Command ===>
Package: ACTP000071 Status: DEV Install date: 20200707
Work request: 1907D92 Department: IDD
Component name . . . . . . apcdoc60 +
Component type . . . . . .
Language . . . . . . . . .
Enter "/" to select:
Component status . . . . Active Checkout Frozen Inactive
Incomp Unfrozen
Changed from date . . . . . (yyyymmdd)
time . . . . . (hhmmss)
Changed to date . . . . . (yyyymmdd)
time . . . . . (hhmmss)
Compile procedure . . . . .
User . . . . . . . . . . .
Display mode . . . . . . . S (S-short, L-long, X-extra long)
Data Encoding . . . . . . . (1-ASCII, 2-UTF-8)
Enter "/" to select option
/ Confirm component delete / Confirm other requests
Display component user options Mixed case
/ Comparison report for edit Text type . . . . $.
Ignore recompiled components
...
Result:
CMNSTG01 STAGE: ACTP000071 Components Row 1 to 1 of 1
Command ===> Scroll ===> CSR
Name + Type Status Changed Procname User Request
__ acpdoc60 DOC ACTIVE 20200707 211855 USER015
******************************* Bottom of data ********************************
...
Component Names That Contain A Path
In USS file systems, a "component name" may include a partial directory path because the actual name of the file is unique only within a hierarchy that includes it.
ChangeMan ZMF automatically handles component names that include a directory path. However, when you stage an zFS component from development, you must indicate whether you want to choose a file name from the specified directory or a path name and file name from that directory.
On the Stage: From Development panel, the Expand field controls what is displayed on a component selection list. When you set the Expand field to Yes, all files and paths below the subdirectory you specify in the DSN field are displayed on the component selection panel.
Here is the stage panel.
CMNSTG02 Stage from Development
Command ===>
Package: ACTP000050 Status: DEV Install date: 20150318
ISPF Library:
Project . . . . USER015
Group . . . . . JAVA
Type . . . . . SRC
Member . . . . _____________ (Blank/pattern for list; * for all members)
Other partitioned, sequential or zFS dataset:
DSN . . . . . . /cmntp/s4/v710/base/jzfs/jav/lvl-0/ +
Org . . . . . . _____ (PDS, Seq, PAN, LIB, Oth, zFS)
Library type . . . . . JVS (Blank for list)
Stage name . . . . . . __________________________ +
Stage mode . . . . . . 1 (1-Online, 2-Batch)
Enter "/" to select option
/ Expand zFS subdirectories
/ Confirm request
_ Lock component
_ Display component user options
...
Here is the resulting component selection list.
CMNSTG23 Stage from zFS file Row 1 to 6 of 6
Command ===> Scroll ===> CSR
Input filename
/cmntp/s4/v710/base/jzfs/jav/lvl-0/ +
Name + Function Created Changed Size User
jhfjav40.java 2010/07/20 2010/11/05 16:30 00126 SERT
jhfjav50.java 2010/11/05 2010/11/05 16:49 00126 SERT
jhfjav60.java 2010/11/05 2010/11/05 17:23 00126 SERT
org/jdom/xpath/jhfj 2010/07/20 2010/07/01 18:53 00151 SERT
org/jdom/xpath/jhfj 2010/07/20 2010/07/01 18:54 00155 SERT
org/jdom/xpath/jhfj 2010/07/20 2010/07/01 18:54 00154 SERT
******************************* Bottom of data ********************************
...
Notice that after the first three files, three more components are listed that are in a path of subdirectories below the directory you specified on the Stage: From Development panel. If you select one of the files with path names to stage into your package, the component name in the package master and in the component master will include the subdirectories as well as the file name.
Here, Expand zFS subdirectories is not selected.
CMNSTG02 Stage from Development
Command ===>
Package: ACTP000050 Status: DEV Install date: 20150318
ISPF Library:
Project . . . . USER015
Group . . . . . JAVA
Type . . . . . SRC
Member . . . . ______________ (Blank/pattern for list; * for all members)
Other partitioned, sequential or zFS dataset:
DSN . . . . . . /cmntp/s4/v710/base/jzfs/jav/lvl-0/ +
Org . . . . . . _______________ (PDS, Seq, PAN, LIB, Oth, zFS)
Library type . . . . . JVS (Blank for list)
Stage name . . . . . . ____________________________________________________ +
Stage mode . . . . . . 1 (1-Online, 2-Batch)
Enter "/" to select option
_ Expand zFS subdirectories
/ Confirm request
_ Lock component
_ Display component user options
...
The resulting component selection panel displays only the three components that are contained as files in the directory you specified on the Stage: From Development panel.
CMNSTG23 Stage from zFS file Row 1 to 3 of 3
Command ===> Scroll ===> CSR
Input filename
/cmntp/s4/v710/base/jzfs/jav/lvl-0/ +
Name + Function Created Changed Size User
jhfjav40.java 2010/07/20 2010/11/05 16:30 00126 SERT
jhfjav50.java 2010/11/05 2010/11/05 16:49 00126 SERT
jhfjav60.java 2010/11/05 2010/11/05 17:23 00126 SERT
******************************* Bottom of data ********************************
...
Note
On the Stage: From Development panel (CMNSTG02), you cannot provide a STAGE NAME when the EXPAND field is selected.