Lookups

Lookups define a distinguished set of allowed values for a certain data field. They are similar to enumerations but have the advantage that they can be changed during runtime (with limitations). They have been initially developed for characteristics but can be also used for other data fields. It is possible to extract and integrate lookups and their values from/to the system via environment transfer. Using Service API WRITE command it's possible to create and modify lookups and their values. Lookup values can also be imported and exported using Product 360 import and export functionality.

Usage as Dynamic Enumeration

It is possible to use lookups as enumeration for fields outside of the characteristic and characteristic value entities.

You have to create a new enumeration in the custom area of the repository provided with the enum param "lookupIdentifier" and add it to the desired field as usual. Then you have to create the enum entries respectively lookup values in the UI and you're good to go. The order in which you do these two steps doesn't matter.

For a more detailed explanation see "Lookups aka Dynamic Enumerations" in the Customization Guide which is also part of the SDK

Maintenance in Desktop UI

Lookups and their values can be created, edited and deleted in the Product 360 Desktop UI.

Lookups are maintained in the Lookups perspective.

images/download/attachments/126588883/image2017-11-24_17_25_30.png

Lookups have a

  • unique identifier

  • label

  • description

  • label pattern

The label pattern will influence the representation of lookup values when used in a drop down list. Options are:

  • Name

  • Code

  • Code - Name

  • Name (Code)

Lookup values have a

  • unique code (in the lookup)

  • label

  • description

  • external code
    The external code is system specific and allows to reference the lookup value with different names. This comes in handy when you have multiple different external systems (like GDSN) that have their own names for something in your system.

  • order

  • state (active or inactive)
    The active state defines the visibility of the lookup value when used as value list on a field.

Referential Integrity

The deletion of lookups is prohibited when the lookup is used as enumeration outside the characteristics or when it is referenced from the characteristics.

Lookup values can not be deleted if their corresponding lookup is used as enumeration in the repository outside the characteristics, or when the lookup value is referenced by either the characteristic model or a characteristic record.

The code of a lookup value can not be modified when the lookup is used as an enumeration in the repository with String as key class.
In this case the code of a lookup value is actually stored inside of another entity and you no longer can change this code. You would need to deactivate and lookup value and create a new one.

Maintenance in Web UI

Lookups themselves can only be maintained in the Desktop UI. Lookup values can be maintained in the context of the selected lookup also in the Web UI.

images/download/attachments/126588883/image2017-11-24_17_33_17.png

They can be created and deleted by means of the Action menu of the Table View. Editing and activation/deactivation can be performed in the Lookup value details view of the selected lookup value.

Access rights

Lookups and lookup values are protected by the following set of access rights:

images/download/attachments/126588883/Lookup_Action_Rights.PNG

Initialization of repository based lookups

There are some enumerations with a new enum param named "lookupIdentifier". One of these is the Enum.CharacteristicPurposes

images/download/attachments/126588883/Enum_CharacteristicPurposes.PNG

As you can see, it is defined as any other enum with some enum entries.

During the server start, the server checks if there is already a lookup with the defined "lookupIdentifier" in the system. If it is already existent no further action will be done. In case it is not existent, a new lookup with the given identifier will be created and all active enum entries will become (active) lookup values in this lookup.

You can add the enum param to your own enumerations as well.

After the initial creation of a lookup, there is no synchronization between the lookup and the enumeration defined in the repository.

Data model

Lookup

Types Area

images/download/attachments/126588883/LookupType.PNG images/download/attachments/126588883/LookupLangType.PNG

Custom area

images/download/attachments/126588883/LookupCustom.PNG

LookupValue

Types area

images/download/attachments/126588883/LookupValueType.PNG images/download/attachments/126588883/LookupValueLangType.PNG

Custom area

images/download/attachments/126588883/LookupValueCustom.PNG

Reserved fields

Both entities and all their sub entities have a set of reserved fields which can be used in customer situations. Please be aware that those fields are available for all lookups and lookup values!