-
Non-Product Related Assistance
Request for existing cases, user IDs, Portal navigation support and more
Request for existing cases, user IDs, Portal navigation support and more
Starting with SAP Focused Run FP01 BADI “BADI_TEMPLATE_ASSIGNMENT” is foreseen to be executed whenever a MAI configuration is done. In case an implementation is provided, it will be executed after all potential template candidates have been identified. This BADI Interface considers:
The method to be implemented contains the following parameters as follows:
Structure of the LMDB objects looks like this:
Structure of list of products has following structure:
Use the class cl_lmdb_mai_hier_tree_element to access the technical system or attributes which are related to the LMDB object.
CL_LMDB_MAI_HIER_TREE_ELEMENT=> IF_LMDB_MAI_HIER_TREE_ELEMENT~GET_PARENT
(Host -> Logical Host -> Technical Instance -> Technical system)
(Database Instance -> Database)
CL_LMDB_MAI_HIER_TREE_ELEMENT=> IF_LMDB_MAI_HIER_TREE_ELEMENT~GET_GENERIC_CIM_PROPERTY_VALUE
Importing CIM_CLASS_NAME 'SAP_ApplicationSystem'
PROPERTY_NAME 'itadministrationrole'
Returning RESULT
Example of CIM Instance Properties values reading: “ITAdministrationRole”.
DATA:
iv_template_id TYPE ac_guid,
lr_context TYPE REF TO cl_alrt_cfg_mai_api_enquiry=>passed_tree_element,
lr_product TYPE REF TO acpid_to_cid_dir,
lr_template TYPE REF TO acs_template_assignment,
iv_searchstring TYPE string VALUE '<my special Template>',
template_assignment TYPE REF TO acs_tmpl_assignment_to_mo
.
…
* multiple products can be assigned to a single LMDB object
LOOP AT it_product_mapping REFERENCE INTO lr_product WHERE context_id EQ lr_context->context_id.
cl_mai_rep_initializer=>initialize( EXPORTING iv_technical_scenario = lr_product->tech_scenario "pass the technical scenario/monitoring use case (eg: T_SYS_MON for Technical system monitoring)"
IMPORTING eo_assignment_factory = DATA(lo_assignment_factory)
eo_template_factory = DATA(lo_template_factory) ).
TRY.
DATA(lo_context_store) = cl_alrt_cfg_store_contextdir=>get_instance( ).
DATA(lo_managed_object) = lo_context_store->get_context_model( iv_context_id = lr_context->context_id ). "Pass the context id"
DATA(li_assignment) = lo_assignment_factory->get_assignment( ii_managed_object = lo_managed_object io_template_factory = lo_template_factory ).
DATA(lt_fitting_templates) = li_assignment->get_fitting_templates( iv_technical_scenario = lr_product->tech_scenario ). "pass the technical scenario/monitoring use case" ).
CATCH cx_alrt_cfg_directory_root.
* do error handling here…
ENDTRY.
CHECK lt_fitting_templates IS NOT INITIAL.
Choose one template that meet special requirement, for example, the template with name start with Z_< ITAdministrationRole >, modify the template ID from CT_TEMPLATE_ASSIGNMENT_TO_MO.
LOOP AT lt_fitting_templates REFERENCE INTO lr_template.
IF lr_template->template_ref->get_name( ) CS iv_searchstring.
iv_template_id = lr_template->template_id.
READ TABLE ct_template_assignment_to_mo
WITH TABLE KEY
context_id = lr_context->context_id product_id = lr_product->product_id REFERENCE INTO template_assignment.
IF sy-subrc EQ 0.
template_assignment->template_id = iv_template_id.
ENDIF.
ENDIF.
ENDLOOP.