|XML services in CMN/ZMF|

Printer-friendly version PDF version

Mass update sequence numbers of like CPY library types

Summary: Create a basket of all like CPY library types (or a subset of them) for all application IDs (or a subset of them). Then use ASC's basket processing to assign a sequence number to each of the selected library types (in A.A.2).

Notes:

Scenario: 

Step 0: Find the XML service available for updating the sequence number of a library type, using ASC's XML search facilities (similar to the search described in Find the XML service to update the appl in use flag). The result of this should be that XML service LIBTYPE/APL/UPDATE can be used for it, i.e. via XML input tag librarySequenceNo.

Step 1: Create a basket of all impacted application IDs, using XML service APPL/PARMS/LIST. This basket should only contain these (output) tags:

  • applName (application ID)
  • isApplLocked (application locked flag)
  • isApplBusy (application in use flag)

Review the content of the basket to ensure that there is no application that is locked or in use (if needed unlock such applications or reset their in use flag, and recreate the same basket until there are no more applications that are in use or locked).

Step 2: Add all (new) sequence numbers for the selected library types in global administration (option A.G.2). The fastest way to do so is probably just using ISPF option A.G.2. However if there are dozens of like CPY library types to be updated, it might be a good idea to create a basket using XML service LIBTYPE/GBL/LIST and then update the sequence numbers in A.G.2 by launching a basket to execute XML service LIBTYPE/GBL/UPDATE (similar to steps 4 to 7 below, though without tag applName).

Step 3: Create a basket of all impacted application IDs (only application ID is needed), using XML service APPL/PARMS/LIST. This basket should only contain (output) tag applName (application mnemonics).

Step 4: Use the basket from step 3 as input to create a new basket containing all impacted library types in A.A.2, using XML service LIBTYPE/APL/LIST. This basket should only contain these (output) tags:

  • applName (application ID)
  • libType (library type)
  • likeType (like attribute)
  • librarySequenceNo (current SEQ NO, which may be blank)

Step 5: Edit the basket from step 4 to only retain basket records of library types that are like CPY, i.e. the basket records with likeType=1 (about 3 ISPF edit commands should be sufficient to find those records and eliminate all records that are not like CPY). If needed (to simplify the ISPF edit commands), temporary transform the basket format from variable length columns to fixed width columns.

Step 6: For the remaining records in the basket from step 5, issue appropriate ISPF commands to assign the desired SEQ NO value for each library type (about 3 ISPF edit commands for each libtype should be sufficient to do so). If in step 3 the basket format was temporary transformed from variable length columns to fixed width columns, then transform it back from fixed width columns to variable length columns.

Step 7: Launch the (edited) basket from step 6 to execute XML service LIBTYPE/APL/UPDATE for all impacted like CPY libtypes in all impacted applications, which will actually update the SEQ NO for each library type. Using basket processing option "stop on error" the processing will be interrupted in case an application ID is encountered that is locked or in use again (since step 1). In that case reset the lock or in use flag for such application, and restart the basket processing from the fa

Subject:
AbM SCM Solutions:
Taxonomy upgrade extras:

Remove dead checkout requests

Summary: Create a basket of dead checkout requests (using ASR's built-in report DEADCKOS). Then use ASC's basket processing to delete all such components from their packages.

Scenario: 

Step 01: Create a basket with all dead checkout requests (using DEADCKOS)
Remove dead checkout requests - output (XML basket)
Step 02: Launch a basket - Required input tags for CMPONENT/PKG_COMP/DELETE
Launch a basket - Check required input tags for CMPONENT/PKG_COMP/DELETE
Step 03: Launch a basket - Edit the basket header
Launch a basket - Edit the basket header
Step 04: Launch a basket - Filter the basket
Launch a basket - Filter the basket
Step 05: Launch a basket - Select a basket compliant XML
Launch a basket - Select a basket compliant XML
Step 06: Execute the basket - Request tags
Execute the basket - Request tags

Step 07: Execute the basket – Execution options
Execute the basket – Execution options

Subject:
AbM SCM Solutions:
Taxonomy upgrade extras:

Find the XML service to update the appl in use flag

Summary: How to search (or find) the XML service that is available for updating the "application in use" indicator.

Scenario: 

Step 01: Limit the XML universe to A.A services starting with P*
Limit the XML universe to A.A services starting with P*
Step 02: View the output tags (without running the XML) and locate tag isApplBusy
View the output tags (without running the XML) and locate tag isApplBusy
Step 03: Search all XML services by request tags (for tag isApplBusy)
Search all XML services by request tags (for tag isApplBusy)
Step 04: Locate PARMS / APPL / UPDATE within the XML services search results
Review the XML services search results

Subject:
AbM SCM Solutions:

Generate REXX with an XML to update the appl in use flag

Summary: Develop a REXX procedure using appropriate XML service(s) for updating the "application in use" indicator (e.g. in a batch job during ChangeMan ZMF housekeeping).

Scenario: 

Step 01: Initiate SERXMLRC REXX code generation for XML service PARMS / APPL / UPDATE
Initiate SERXMLRC REXX code generation for XML service PARMS / APPL / UPDATE
Step 02: SERXMLRC REXX code generation - Specify REXX vars for request tags (1/2)
SERXMLRC REXX code generation - Specify REXX vars for request tags (1/2)
Step 03: SERXMLRC REXX code generation - Specify REXX vars for request tags (2/2)
SERXMLRC REXX code generation - Specify REXX vars for request tags (2/2)
Step 04: SERXMLRC REXX code generation - Specify execution parms
SERXMLRC REXX code generation - Specify execution parms
Step 05: SERXMLRC REXX code generation - Review generated REXX code (1/2)
SERXMLRC REXX code generation - Review generated REXX code (1/2
Step 06: SERXMLRC REXX code generation - Review generated REXX code (2/2)
SERXMLRC REXX code generation - Review generated REXX code (2/2

Subject:
AbM SCM Solutions:

Basket processing applied to ASR report PCORPHN

Summary: Create a basket of orphan component promotion history records (using ASR's built-in report PCORPHN). Then use ASC's basket processing to remove all these orphan component promotion history entries.

Scenario: 

Step 01: Create a basket with orphan component promotion history (using PCORPHN)
Orphan component promotion history - output (XML basket)
Step 02: Launch a basket - Filter the basket
Launch a basket - Filter the basket
Step 03: Launch a basket - Select a basket compliant XML
Launch a basket - Select a basket compliant XML
Step 04: Execute the basket - Request tags
Execute the basket - Request tags

Step 05: Execute the basket – Execution options
Execute the basket – Execution options

Subject:
AbM SCM Solutions:

Basket processing

Using XML services in ChangeMan ZMF (CMN/ZMF) is great. It has allowed many CMN/ZMF users to create all sorts of customizations and applications that interface with CMN/ZMF, all based on the XML services that are delivered with CMN/ZMF.However, many of these CMN/ZMF users also want to automate various tasks that are typically repeated for a “list” of:

Subject:
AbM SCM Solutions:

AbitMORE SCM Commander - Features

Using an intuitive user interface, AbitMORE SCM Commander (ASC) unleashes the power of ChangeMan ZMF's XML services to ChangeMan ZMF administrators and authorized ChangeMan ZMF users. ASC allows for searching for XML services and execute these services quickly and easily, either online or in batch.

Subject:
AbM SCM Solutions:

Verify/alloc/delete of BAS- PROM- or PROD DSNs

Summary: Create a set of baskets for a single application (alternative: for all applications). Each basket contains all DSNs defined in application administration as production DSNs, baseline DSNs or promotion DSNs.

The set of baskets created are:

Solution ID: 
ASCZ0202
Solution Variables: 

Verify/alloc/delete of BAS- PROM- or PROD DSNs - variables

The above screen (via Appl id within Target selection) shows that this solution can be used for just 1 application, or for all (dozens? hundreds?) applications in 1 shot.

Also note that this solution (via Site within Target selection) can be used to process "ALL" sites together, or to process just 1 site (e.g. a new promotion or production target added in various applications) and eventually to be repeated for a 2nd site.

To understand how the output of this solution looks like, and how to further process that output, checkout the various steps in the scenario below.

Scenario: 

Step 01: List the baskets created by ASCZ0202

Verify/alloc/delete of BAS- PROM- or PROD DSNs - List the baskets created by ASCZ0202

Step 02: View the baskets content (1/2)

Verify/alloc/delete of BAS- PROM- or PROD DSNs - View the baskets content (1/2)
This is a perfect illustration of how "real" baskets look like (= CSV-kind of files).

The various data included in each record, is what gets created by using a Process option (within Execution options) with value 1 (Allocate), because all these data are required as input tags for the XML service to actually allocate these DSNs (shown in step 04 below).

By using value 1 (Info) or 3 (Delete), each record will only contain the mvslib value, because only a DSN is required as input tag for the XML service to either report about the DSN info (with data similar to ISPF option 3.2) or to actually delete these DSNs.

Step 02: View the baskets content (2/2)

Verify/alloc/delete of BAS- PROM- or PROD DSNs - View the baskets content (1/2)

Step 03: Launch the baskets

Verify/alloc/delete of BAS- PROM- or PROD DSNs - Launch the baskets

Step 04: Select XML

Verify/alloc/delete of BAS- PROM- or PROD DSNs - Select XML

Above is an illustration of how ASC helps an XML newbee to take advantage of the extreme power of XML services. I.e. ASC "guides" you to picking (= finding !) the appropriate XML service (in this case DSS/SERVICE/ALLOCATE), and gives you all sorts of extra XML execution features (step 05, part 2/2 below) to get the job done.

Step 05: Execute XML (1/2)

Verify/alloc/delete of BAS- PROM- or PROD DSNs -  Execute XML (1/2)

Step 05: Execute XML (2/2)

Verify/alloc/delete of BAS- PROM- or PROD DSNs -  Execute XML (2/2)
So in this specific scenario the basket processing will trigger about 100 to 200 XML requests for each application, 1 for each record in each of the 3 basket DSNs in this scenario. Do the math if you'd have hundreds of applications (and then think of how long it would take to achieve the same result if you have to do this without using XML services ... hours, days or weeks?).

What is even (Abit)MORE: executing all these XML services can be done without "disturbing" the CMN/ZMF STC too much. This because of the input basket options shown above: turning on the options Split in units, Nr req/unit and Next unit after will facilitate a kind of work load balancing to actually execute all those services. That will avoid that regular ZMF users would experience bad response times from the CMN/ZMF started task while all those XML services are being processed (like compile jobs or promotion jobs that would take extremely long ...). Because of this, the scenario above can be executed also during CMN/ZMF primetime hours (instead of during none business hours at night or during weekends).

AbM SCM Solutions:

Synchronize DEV staging library list with catalog

Summary: Verify and correct discrepancies between the zOS catalog and the staging DSNs registered in CMNPMAST as allocated.

To better illustrate this discrepancy, consider this example: using CMN/ZMF’s function “query package”, and then asking for “development staging libraries”, you get a list with, say, 14 entries of staging DSNs that, according to CMN/ZMF, have been allocated already (defer = N).

Solution ID: 
ASCZ0103
Solution Variables: 

Synchronize development staging library list with the catalog - variables

Scenario: 

 

AbM SCM Solutions:
ASC Category:

Recreate xNode DSNs for selected frozen pkgs

Summary: Submit a request to recreate the X-node DSNs for all frozen packages, optionally limited to only those packages that contain components of a specific library type.

Limiting the scope of all package to be processed by library type is possible for library types displayed within the package content (S2) or displayed via a source-to-load relationship.

Solution ID: 
ASCZ0051
Solution Variables: 

Recreate xNode DSNs for selected FRZ pkgs - variables

Scenario: 

 

AbM SCM Solutions:

Pages

Subscribe to |XML services in CMN/ZMF|