Multi-Valued Attributes Multi-valued attributes allow the application writer to store complex data within a single attribute. This complex data takes on the form #id=value#...#, where id is a string, and value can contain single or a comma separated list of values.

It is the application writer's responsibility to parse and manage the data contained in a multi-valued attribute. There is also no support within wsetusr and wcrtusr to modify a partial value of a multi-valued attribute. Instead the total value of the multi-valued attribute must be used. This will potentially restrict the usage of scripts and the CLI limiting manipulation to the DSL GUI.

In order to handle multivalued attributes the DSL GUI code within TUA has been modified to understand that any gadget whose name ends in an underscore "_" is potentially a multivalued attribute. This causes special behavior on the part of the GUI code in loading and retrieving the value from the gadget. The name of the attribute being loaded does NOT contain a trailing underscore. When the value of the attribute is loaded into the gadget it is not loaded into the gadget as a value, but instead attached to the gadget in a way that makes the value invisible to the user.

Special DSL callback routines have been coded that allow the application writer to manipulate the multi-valued attribute in all the ways needed. These callbacks allow the creation of complex gadget panels and rules to create the attributes as required to support the application.

For example, there might be a multivalued attribute called my_roles. This attribute requires that role have a start and end date attached. A sample value of this multi-valued attribute might be:

#role1=1/1/2001,12/31/2002#role2=1/1/2001,12/31/2002#

In order to support this in the GUI you would need a minimum of six gadgets: my_roles_, roles, availroles, startdate, enddate, and addrole. The my_roles_ would store the multi-valued data from the my_roles AEF attribute, while roles would display the data. availroles would be a list showing the available roles to select from while the startdate and enddate would be text fields to enter the start and end dates. addrole would be a button that would take the availroles, startdate, enddate gadgets and add them to the multi-valued attribute in the my_roles_ gadget. It would then update the display in the roles gadget.

Supported AEF DSL Callbacks 160 Tivoli®  SecureWay Application Management Toolkit Guide