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.