Interface IF_UKM_ID_DICTIONARY

Meaning

As part of the Unified Key Mapping Service (UKMS), interface IF_UKM_ID_DICTIONARY provides methods that permit you to read and change ID mapping. This includes both grouped positive and grouped negative mapping.

Use

Class CL_UKM_FACTORY provides context-dependent instances of the interface.

Example

DATA: lr_dictionary TYPE REF TO if_ukm_id_dictionary.
DATA: ls_messages  TYPE ukm_s_messages.
CALL METHOD cl_ukm_factory=>get_instance_id_dictionary
  EXPORTING
    iv_main_context_id           = 'MyContext'
    iv_direct_db_insert          = abap_false
    iv_runtime_generated_context = abap_true
  IMPORTING
    er_if_ukm_id_dictionary      = lr_dictionary
    es_message                   = ls_messages-general_message.
IF ls_messages-general_message-message_type_indicator-type_error = abap_true OR
   ls_messages-general_message-message_type_indicator-type_abort = abap_true.
* Error handling.
ENDIF.
************************************************************************
* Add 2 objects each with 2 object keys
************************************************************************
DATA: lt_groups_add TYPE ukm_t_groups_external.
DATA: ls_group_add LIKE LINE OF lt_groups_add.
DATA: ls_object_add LIKE LINE OF ls_group_add-objects.
DATA: ls_key_add LIKE LINE OF ls_object_add-object-keys.
* Object 1 key 1
ls_key_add-leading_key  = abap_true.
ls_key_add-internal_key = abap_true.
ls_key_add-scheme_id                      = 'ProductGUID'.
ls_key_add-scheme_version_id              = ''.
ls_key_add-scheme_agency_id               = 'AE1_000'.
ls_key_add-scheme_agency_scheme_id        = ''.
ls_key_add-scheme_agency_scheme_agency_id = 'ZZZ'.
ls_key_add-value                  = '57186408AB006541AF3761F4FDCD97BA'.
APPEND ls_key_add TO ls_object_add-object-keys.
* Object 1 key 2
ls_key_add-leading_key  = abap_false.
ls_key_add-internal_key = abap_false.
ls_key_add-scheme_id                      = 'ProductID'.
ls_key_add-scheme_version_id              = ''.
ls_key_add-scheme_agency_id               = 'AE1_000'.
ls_key_add-scheme_agency_scheme_id        = ''.
ls_key_add-scheme_agency_scheme_agency_id = 'ZZZ'.
ls_key_add-value                          = 'FK20060601'.
APPEND ls_key_add TO ls_object_add-object-keys.
APPEND ls_object_add TO ls_group_add-objects.
CLEAR: ls_object_add, ls_key_add.
* Object 2 key 1
ls_key_add-leading_key  = abap_true.
ls_key_add-internal_key = abap_true.
ls_key_add-scheme_id                      = 'ProductGUID'.
ls_key_add-scheme_version_id              = ''.
ls_key_add-scheme_agency_id               = 'BCE_000'.
ls_key_add-scheme_agency_scheme_id        = ''.
ls_key_add-scheme_agency_scheme_agency_id = 'ZZZ'.
ls_key_add-value                  = '77186408AB006541AF3761F4FDCD97BB'.
APPEND ls_key_add TO ls_object_add-object-keys.
* Object 2 key 2
ls_key_add-leading_key  = abap_false.
ls_key_add-internal_key = abap_false.
ls_key_add-scheme_id                      = 'ProductID'.
ls_key_add-scheme_version_id              = ''.
ls_key_add-scheme_agency_id               = 'BCE_000'.
ls_key_add-scheme_agency_scheme_id        = ''.
ls_key_add-scheme_agency_scheme_agency_id = 'ZZZ'.
ls_key_add-value                          = 'FK20060601b'.
APPEND ls_key_add TO ls_object_add-object-keys.
APPEND ls_object_add TO ls_group_add-objects.
APPEND ls_group_add TO lt_groups_add.
CALL METHOD lr_dictionary->add
  EXPORTING
    it_groups   = lt_groups_add
  IMPORTING
    es_messages = ls_messages.
* ATTENTION: The ADD does not include SAVE. This has to be done explicitly!
IF ls_messages-general_message-message_type_indicator-type_error = abap_true OR
   ls_messages-general_message-message_type_indicator-type_abort = abap_true.
* Error handling.
ENDIF.
************************************************************************
* Get the objects and keys mapped to a specific key
************************************************************************
DATA: lt_groups_get TYPE ukm_t_groups_external_get.
DATA: ls_group_get LIKE LINE OF lt_groups_get.
DATA: ls_object_get LIKE LINE OF ls_group_get-objects.
DATA: ls_key_get LIKE LINE OF ls_object_get-object-keys.
* Search with key 2 of object 1
ls_group_get-search_key-scheme_id                      = 'ProductID'.
ls_group_get-search_key-scheme_version_id              = ''.
ls_group_get-search_key-scheme_agency_id               = 'AE1_000'.
ls_group_get-search_key-scheme_agency_scheme_id        = ''.
ls_group_get-search_key-scheme_agency_scheme_agency_id = 'ZZZ'.
ls_group_get-search_key-value                          = 'FK20060601'.
APPEND ls_group_get TO lt_groups_get.
 
CALL METHOD lr_dictionary->get
  EXPORTING
    iv_read_buffer   = abap_true
    iv_update_buffer = abap_true
  IMPORTING
    es_messages      = ls_messages
  CHANGING
    ct_groups        = lt_groups_get.
 
IF ls_messages-general_message-message_type_indicator-type_error = abap_true OR
   ls_messages-general_message-message_type_indicator-type_abort = abap_true.
* Error handling.
ENDIF.
 
READ TABLE lt_groups_get INDEX 1 INTO ls_group_get.
 
LOOP AT ls_group_get-objects INTO ls_object_get.
* Each object of the mapping group.
  LOOP AT ls_object_get-object-keys INTO ls_key_get.
*   Each key of the object.
  ENDLOOP.
ENDLOOP.

 

Additional Information

For details about the functions of interface IF_UKM_ID_DICTIONARY, see the relevant method documentation.

UKMS provides additional interfaces that can be instantiated with class CL_UKM_FACTORY. These are also documented. You can find an overview of the interfaces in the documentation for class CL_UKM_FACTORY.