Extend ELM for Custom fields
Business Scenario : Business wants to extend ELM functionality to upload Business partners on the basis of a custom field
Assuming the custom field to be External Identification number (ID_EXT) for BP.
Steps:
- Extend the Standard Extension structures to include the custom fields using Append Structures.
Structure for Person: CRMT_MKTLIST_PER
Structure for Organization: CRMT_MKTLIST_ORG_EXT
- Implement the BADI Implementation for BADI CRM_MKTLIST_BADI.
Add the logic to influence the standard update of BP using custom fields based on Custom Business process.
Methods to be used: CREATE_BUSINESS_PARTNERS, UPDATE_ORGANIZATION, UPDATE_PERSON.
- We can further influence the behavior such that the custom field is a mandatory field by deriving messaging around this field.
- For ex, Custom field can be determined as a key field by influencing Web UI Behavior
Web UI Component/View – ELMMAPOE/VSEditHeaderAndFields
We can include logic in Event ‘DONE’ to read the individual field value header values and determine if the custom field is included in the uploaded data or not.
| Logic |
|---|
|
lr_cuco_mapping ?= me->get_custom_controller( controller_id = ‘ELMMAPOE/CUCOOverviewAndEdit’ ). lr_col ?= lr_cuco_mapping->typed_context->format->collection_wrapper. CHECK lr_col IS BOUND. lr_entity ?= lr_col->get_current(). CHECK lr_entity IS BOUND. lr_col_fields ?= lr_entity->get_related_entities( iv_relation_name = ‘ELMMAPFormatFieldRel’ ). CHECK lr_col_fields IS BOUND. lr_bol ?= lr_col_fields->get_current(). WHILE lr_bol IS BOUND. lv_field = lr_bol->get_property_as_string( ‘FIELD_NAME’ ).
< Implement Custom Business logic here > lr_bol ?= lr_col_fields->get_next(). ENDWHILE. |
By this way we can include Custom fields and associated custom behavior around ELM.