IBM Support

IBM Rational Change: Listbox dependencies and/or attributes are not updated after modifying a package

Troubleshooting


Problem

Some changes made in the Listbox dependencies of an IBM Rational Change package (made using Change's ListBox manager) are not always taken in account -- even after re-creating a template and re-loading change's configuration using the admin interface. This is caused by Change's internal mechanisms that aim at protecting Listboxes' data (see details in the "Cause" section below). This Technote explains how to fix the issue manually.

Symptom

The symptoms slightly differ from previous generations of Change (See Technote 1324357 ), but the scenario remains the same.

A simple scenario is :


    1. Create from the dev_process, a CR package with the dev_template: By design, there will be no "pt_listbox.cfg" in the package template wsconfig directory.

    2. Install the CR Package.

    3. Go in the listbox manager: click on save => The file "pt_listbox.cfg" is created.

    4. Edit the dev_process lifecycle.

    5. Add a new listbox attribute 'toto' without dependencies.

    6. Click on update/save and create a new CR package with dev_template.

    7. Uninstall the current CR package

    8. Install the new CR package

    9. Go in the listbox manager: The new listbox "toto" is there.

    10. Add some values for it and validate + save.

    11. Go in the lifecycle editor and edit the dev_process lifecycle.

    12. Create a new listbox attribute 'titi' and make it dependant on "toto".

    13. Check that the new dependencies are correctly defined in the lifecycle editor, using the View Dependencies button.

    14. Update, save the lifecycle, and create a new CR Package still using the dev_template without pt_listbox.cfg

    15. Uninstall the current CR package

    16. Install the new CR Package

    17. Go in the listbox manager and select the new listbox 'titi' => 'titi' appears as a single listbox with NO dependencies. (No error returned by the Validate listbox.)


This shows that the dependencies appear to be broken, despite the changes made in the Listbox Manager.

The additional steps below show that the issue is still present even if you copy the file "pt_listbox.cfg" :


    18. Copy the pt_listbox.cfg in the dev_template/wsconfig/ directory

    19. Uninstall the CR package

    20. Edit the lifecycle and create a new CR Package using the dev_template, which now contain the pt_listbox.cfg

    21. Install the new CR package.

    22. Go in the Listbox Manager and select the attribute 'titi'

    => 'titi' is still a single Listbox which has no parent.

    => The 'View Listbox Dependencies' button does not show the new dependencies between toto and titi.

    Checking the file "pt_listbox.cfg" manually shows:

    ##


      [CCM_LISTBOX][NAME]toto[/NAME][TYPE]ATTRIBUTE[/TYPE][VALUES]Any|toto0|toto1[/VALUES][DATABASE_SPECIFIC]NOT_DATABASE_SPECIFIC[/DATABASE_SPECIFIC][/CCM_LISTBOX]

      [CCM_LISTBOX][NAME]titi[/NAME][TYPE]ATTRIBUTE[/TYPE][VALUES]Any[/VALUES][SUBLISTBOX]TITI_ANY[/SUBLISTBOX][DATABASE_SPECIFIC]NOT_DATABASE_SPECIFIC[/DATABASE_SPECIFIC][/CCM_LISTBOX]


    ##

Cause

This has been identified as a product defect under APAR PM33120.

The root cause was already present in previous generations of Change, even though the symptoms are less visible now. See Technote 1324357 ( https://www-304.ibm.com/support/docview.wss?uid=swg21324357 ).

When the Listboxes hierarchy in your process (XML file) is modified AFTER the listboxes have been populated with values (in "pt_listbox.cfg"), by design Change protects the data from pt_listbox.cfg. Hence it doesn't take in account your changes in the process.

Resolving The Problem

This was already explained in Technote 1324357 for previous versions of Rational Change. It is explained step-by-step in this Technote.

This is done in 2 steps, A and B below :


    A. Re-create a "clean" file pt_listbox.cfg, on which Change will be able to build consistent dependencies.

      Please note that step A can be accomplished in 2 different fashions:

      A (option 1). By deleting entirely the file "pt_listbox.cfg" and having Change re-create it

      Pros: You're sure that the structure of your file is correct

      Cons: You'll have to re-enter many more Listbox values (all of them!)

      ...or...

      A (option 2). By editing "pt_listbox.cfg", and deleting only the listboxes (and their children) which dependencies you've modified. Change will then re-create these entries.

      Pros: Much fewer values need to be re-entered in the file, compared to A.1.

      Cons: You might do a human mistake while editing the file.


    B. Re-populate (manually) this file with the values you wish to see in your listboxes.


Here are the details of A (option 1) and A (option 2) :

A (option 1): How to delete entirely the file "pt_listbox.cfg" and have Change re-create it?

1. Uninstall your CR package

2. Go to the following Rational Change folder :


    (in future steps, always replace "change" with your Change installation folder)

    /jetty/webapps/change/WEB-INF/wsconfig/


3. Delete or rename the file "pt_listbox.cfg"

4. Go to the following folder :


    (note: in this step and future steps, always replace the folder name "toto" with the name of your own CR package)

    /jetty/webapps/change/WEB-INF/crpackages/toto/wsconfig


5. Backup the "pt_listbox.cfg" file (copy it somewhere), then delete it.

6. Reinstall your CR package


    You should observe that no file "pt_listbox.cfg" has been re-created in the folder below. This is normal.

    /jetty/webapps/change/WEB-INF/wsconfig/


7. Go to the "Administration" / "Listbox Manager" tabs

8. Click on Save (without changing anything else)


    You should observe that a file "pt_listbox.cfg" has now been re-created in the folder below.

    /jetty/webapps/change/WEB-INF/wsconfig/

    This file should now contain all dependencies consistent with your lifecycle.


9. You must now follow step B and re-populate the entries of every Listbox!

A (option 2): How to edit "pt_listbox.cfg", and delete only the modified listboxes (and their children)?

1. Uninstall your CR package

2. Go to the following Rational Change folder :


    (in future steps, always replace "change" with your Change installation folder)

    /jetty/webapps/change/WEB-INF/wsconfig/


3. Rename the file "pt_listbox.cfg", in order to keep a backup of it.

4. Go to the following folder :


    (note: in this step and future steps, always replace the folder name "toto" with the name of your own CR package)

    /jetty/webapps/change/WEB-INF/crpackages/toto/wsconfig


5. Delete the file "pt_listbox.cfg", if any.

6. If you use a Package Template to generate your lifecycle, then go to the following folder :


    (note: in this step and future steps, always replace the folder name "dev_template" with the name of your own CR template)

    /jetty/webapps/change/WEB-INF/package_templates/dev_template/wsconfig/


7. Copy here the backup of the file "pt_listbox.cfg" that you did in step 3.

8. Edit this file "pt_listbox.cfg".

9. Delete:

- All entries corresponding to the attributes which dependencies you've modified.

- All entries corresponding to "children" Listboxes (that is, the Listboxes that are dependant on the Listboxes you delete).


    Example :

    If, in the process "dev_process", you modified the dependencies of attribute "product_name", then you must delete :


      - the entry corresponding to "product_name" in "pt_listbox.cfg" (see code sample below)

      ...and...

      - every entry corresponding to listboxes dependant on "product_name".


    [CCM_LISTBOX][NAME]product_name[/NAME][TYPE]ATTRIBUTE[/TYPE][DEPENDENT_A

    TTR]product_version|final_version[/DEPENDENT_ATTR][VALUES]Any[/VALUES][S

    UBLISTBOX]PRODUCT_NAME_ANY|PRODUCT_NAME_DOMAIN00[/SUBLISTBOX][DATABASE_SPECIFIC]NOT_DATABASE_SPECIFIC[/DATABASE_SPECIFIC][/CCM_LISTBOX]


10. Regenerate this package

11. Reinstall your CR package


    You should observe that a file "pt_listbox.cfg" has been re-created in the folder below. This is normal. However you'll also observe that the deleted entries are still missing.

    /jetty/webapps/change/WEB-INF/wsconfig/


12. Go to the "Administration" / "Listbox Manager" tabs

13. Click on Save (without changing anything else)


    You should observe that a file "pt_listbox.cfg" now contains all dependencies consistent with your lifecycle.

    /jetty/webapps/change/WEB-INF/wsconfig/


14. You must now follow step B and re-populate the entries of every Listbox!

[{"Product":{"code":"SSYQQ2","label":"Rational Change"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"General Information","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"PF033","label":"Windows"},{"code":"PF027","label":"Solaris"}],"Version":"5.3;5.2.0.5;5.2.0.4;5.2.0.3;5.2.0.2;5.2.0.1;5.2;5.1;5.0;5.3.0.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
13 November 2019

UID

swg21514546