Typed attribute resolver

Rule types – Abstract

Purpose: In the context of a reference object (the entity type must be an attribute owner), a 'Typed attribute' determined by the 'Subtype' is returned, which can be accessed in read and write mode.

images/download/attachments/83165511/image2021-10-6_11-16-44-version-1-modificationdate-1633511806137-api-v2.png

The Typed attribute resolver value resolver provides access to a (singular) typed attribute of an entity. It expects an entity as a reference object, which is considered an 'attribute owner' according to its type (see Attribut (Wertauflöser)) and whose data model provides at least one typed attribute type. The return value of the value resolver can be used for read and write access to the specific data structure for the respective attribute type. A write access implies the creation of the attribute if it does not already exist.

The Typed attribute parameter specifies the type of typed attribute to be returned. The selected type defines the data structure of the attribute. Each attribute type (flag attribute, text attribute, date attribute, etc.) uses a specific field (flagType, textType, dateType, etc.), for the Subtype. Specific Enumerations per type (Flag type, Text type, Date type, etc.) define the values that can be selected as a Subtype in each case (see Business objects and attributes).

IMPORTANT◄ Writing and reading the attribute usually affects one or more field values within the specific data structure for the attribute type. The corresponding fields must – as demonstrated by the examples below – usually be addressed explicitly, so that a value assignment is successful and/or the return value corresponds to the desired result. This can be achieved either by concatenation (see Chained resolver) or, for example, in the context of an Execute with event action that defines the attribute as an alternative reference object.

Configuration

The Typed attribute resolver expects a reference object whose data model contains at least one typed attribute type.

The Typed attribute parameter provides a static single selection for the attribute type to be accessed. As long as the context of the configuration does not refer to a specific entity type as a reference object, all types of typed attributes that the system supports will appear for selection.

The Combobox element offers a search function that takes into account the internal class names of the attributes as well as associated localizations from the language management.

images/download/attachments/83165511/image2021-10-6_11-17-42-version-1-modificationdate-1633511864033-api-v2.png

If, on the other hand, the context of the configuration refers to a specific entity type for the reference object, then only the attribute types that are explicitly implemented in the relevant data model appear for selection.

On the right, a Check type (not in the image) points to a Routing table entry, so that only the four attribute types provided for this entity type appear in the dropdown.

images/download/attachments/83165511/image2021-10-6_11-18-38-version-1-modificationdate-1633511919875-api-v2.png

The dropdown for the Subtype offers the values of the respective dynamic enumeration (e.g. Text type) for selection only when an attribute type is selected in the Typed attribute parameter.

IMPORTANT◄ If Enumeration filters are applicable in the context of a session for the enumeration in question, these also restrict the selection for the Subtype in the course of configuration. On the other hand, Enumeration filters have no influence on the evaluation of the value resolver at runtime.

images/download/attachments/83165511/image2021-10-6_11-19-58-version-1-modificationdate-1633512000077-api-v2.png

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/warning.svg CAUTIONimages/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/warning.svg The selection for the Subtype also offers attribute subtypes that are explicitly marked as 'plural' in the dynamic enumeration definition. If a 'plural' Subtype is selected, the Typed attribute resolver returns only the first singular value (if any) for that Subtype at runtime. In contrast, a list of all instances for a Subtype is returned by the Plural typed attribute resolver value resolver.

If no Typed attribute is selected, then the return value of the value resolver is always 'no value' (null).

If a selected Typed attribute is not supported by the type of reference object present at runtime, the return value is also 'no value' (null).

If the reference object present at runtime supports a selected Typed attribute, but no relevant data is contained in the reference object, 'no value' (null) is also returned.

Examples

Example of 'write access'

When a Common business object is assigned the working state 'Update', a time interval should be assigned in the date attribute with the Date type 'Delivery date fix', starting at 12:00 (UTC) on Monday of the following week and ending at 20:00 (UTC).

Configuration:

An event handler that reacts to the assignment of the working state 'Update' (see Working state (Events)) as a Triggering event is configured as shown on the right:

  • The Validating rule uses a Check type to ensure that the reference object is a Common business object.

  • As an Action on passed rule, a Set value event action is executed, which defines (on the left) the target for assignment by Typed attribute resolver. The type 'Date attribute' is selected as the Typed attribute and then the Subtype 'Delivery date fix'. The concatenated Object property value resolver below, defines the target field date within the data structure of the date attribute. This defines a 'Date range with time'.

  • On the right, a value resolver of the Relative date range with time type is used. This starts – in the absence of an input value – from the current system date, relative to which the desired start value and end value are calculated with reference to the Time zone 'UTC'. The combination of start value, end value and time zone, results in a 'Date range with time', which can be assigned to the date field of the date attribute.

images/download/attachments/83165511/image2021-10-6_11-25-46-version-1-modificationdate-1633512348141-api-v2.png

Example of 'read access'

As an extension to the above configuration, the user should receive a confirmation message reflecting the time window for the 'Delivery date fix'.

The date values for 'From' and 'To' from the date range should use the default date format defined in the Localization. The UTC time is output as 'military' (as in 'Zulu time' in the format 'HHmmX') regardless of the Current locale.

Runtime example:

images/download/attachments/83165511/image2021-10-6_11-26-53-version-1-modificationdate-1633512415504-api-v2.png

Configuration:

Below the Set value event action (see above), an Execute with event action is added and configured as shown on the right:

  • The Object resolver is intended to simplify multiple read access to the same date attribute. For this purpose, a Typed attribute resolver is selected and parameterized as in the example above so that it returns the date attribute 'Delivery date fix' (if available). The date attribute is the alternative reference object for the subsequent event actions and value resolvers.

  • The user should be notified by a Show alert (Popup) event action of the Type 'Info' if the transaction is successfully completed. Therefore, the Execute on commit option is selected.

  • The localized name for the Date type of the date attribute ('Delivery date fix') should appear in the Title of the message. This is done by the Value from localization value resolver:

    • The localization is looked up in the Bundle for the Date type. The name for the Bundle is derived here directly from the return value of a class value resolver (see Static values).

    • The name of the Resource can be taken directly from the dateType field, which identifies the Date type of the date attribute by its internal name.

    • The same assignment is also stored as a Default value, so that the internal name is output if there is no localization for the Date type.

    • Parameter is not used.

    • The Static option is not used. Since no language is dynamically assigned here, the localization for the Current locale is used (if available).

images/download/attachments/83165511/image2021-10-6_11-28-56-version-1-modificationdate-1633512538548-api-v2.png images/download/attachments/83165511/image2021-10-6_11-30-12-version-1-modificationdate-1633512613698-api-v2.png

  • The Message of the Show alert (Popup) event action aims to reflect the date range and accesses the date field of the date attribute for this purpose, which is still considered an alternative reference object.

  • By concatenation, the value of the attribute of type 'Date range with time' is passed to a Format date value resolver whose Format is applied to both date components ('From' and 'To'). The pattern for the format is constructed here by Concat strings:

    • The pattern for the date value is obtained from the Localization. The Value from localization value resolver accesses the system default entry for the default date format (lobsterui/dateFormat) via static text values here.

    • Within the Concat strings, the specific 'military' time format (HHmmX) is added to the default date format separated by a space. The symbol X refers to the time zone. For the time zone 'UTC' the indicator Z (for 'Zulu time') appears at runtime.

images/download/attachments/83165511/image2021-10-6_11-31-36-version-1-modificationdate-1633512697705-api-v2.png