SOAP API AttributeMap

The AttributeMap class is a Java map that contains only attributes. The attribute <Name> is the map entry key, and the attribute <values> array (note plural) is the map entry value.

The AttributeMap class includes the following fields.

  • <Name>: the programmatic name of the attribute. This name serves as a unique key for accessing the attribute within the component instance in which it occurs.
    Note: <Name> is not necessarily the display name that is presented to a user in the GUI. For components that are created from templates (such as projects or workflow tasks), the attribute name is specified by the template element definition. The attribute name must be unique. For other components, the attribute name typically is derived programmatically from the server-side component instance (for example, through Java introspection).
    Note: By convention, custom attributes include the name of the form in which the editable version is defined: <form_name>.<attribute_name>.
  • Values: a Java object array, containing zero or more attribute values. The type of each value must be the same and agree with the type of the attribute as it is defined in Unica Plan. Only the following Java wrapper and Unica Plan types are supported:
    • AssetLibraryStateEnum: a AssetLibraryStateEnum enumerated type value.
    • AssetStateEnum: a AssetStateEnum enumerated type value.
    • AttachmentTypeEnum: a AttachmentTypeEnum enumerated type value.
    • AttributeMap: a map that holds attributes.
    • BudgetPeriodEnum: a BudgetPeriodEnum enumerated type value.
    • BudgetTypeEnum: a BudgetTypeEnum enumerated type value.
    • Handle: a reference to a component instance, grid row, attribute, and so on.
    • InvoiceStateEnum: an InvoiceStateEnum enumerated type value.
    • java.io.File: representation of a file.
    • java.lang.Boolean: a Boolean value, either True or False
    • java.lang.Double: a double-precision decimal number value.
    • java.lang.Float: a single-precision decimal number value
    • java.lang.Integer: a 32-bit integer value
    • java.lang.Long: a 64-bit integer value
    • java.lang.Object: Generic Java object
    • java.lang.String: a string of zero or more Unicode characters
    • java.math.BigDecimal: arbitrary-precision signed decimal number value. Suitable for currency; the interpretation of the value depends on the currency locale for the client.
    • java.math.BigInteger: arbitrary-precision integer value.
    • java.net.URL: a Universal Resource Locator (URL) object.
    • java.util.ArrayList: List of objects.
    • java.util.Calendar: a date-time value for a particular locale.
    • java.util.Date: a date-time value. This type is deprecated. Use java.util.Calendar or java.util.GregorianCalendar instead.
      Note: To implement date, users can select either java.util.Calendar or java.util.GregorianCalendar.
    • java.util.GregorianCalendar: GregorianCalendar is a concrete subclass of java.util.Calendar and provides the standard calendar system in use by most of the world.
    • MonthEnum: a MonthEnum enumerated type value.
    • ProjectStateEnum: a ProjectStateEnum enumerated type value.
    • QuarterEnum: a QuarterEnum enumerated type value.
    • TaskStateEnum: a TaskStateEnum enumerated type value.
    • WeekEnum: a WeekEnum enumerated type value.

The metadata of an attribute (such as translated display name and description) is defined by the template that is associated with the attribute and its parent object instance. Attributes provide a simple yet extensible mechanism for showing both required and optional object instance attributes, such as project name, code, and start date.