Solving problem with IBase search in ChaRM Request for Change
The IBase (Installed Base) provides a unique identification for any system and/or client. It’s one of the most important information in ChaRM and Incident Management since it’s a way to identify and document the targeted system within their processes.
The IBase will automatically be updated once a system is maintained in SMSY if the parameter IB_GEN_AUTO is left in blank (no value) in transaction DNO_CUST04. SMSY is updated by the LMDB, so that the IBase should always contain updated information about all managed systems. If the parameter for automatic generation is not set, or if it is necessary to generate an IBase component for an specific system, you can execute transaction IB_GEN.
If you are using Solution Manager 7.1 ChaRM you may have faced a problem when trying to assign an Installed Base component in the change request scope of your Request for Change. No IBase component is found as a result, even if the search has no filter, which means, looking at all IBase components available. It does not matter if you include the Project Id in the request of change, or leave it empty, no IBase component is shown. When the IBase is big, with many different system and clients, from different installation numbers, it is a little bit hard to know by heart the number of the component or the identification (also known as Device ID) assigned to the system/client you want to use, so it’s important to have the search working.
You check your IBase in transaction IB52 and all the systems are correctly included there, with the correct identification, and your ChaRM project is correctly set up with the systems in the correct system roles in the logical component. Maintenance cycle is also correct. So, what could be the problem? I show this situation in the pictures below, and how to solve it
In the change request scope of the Request for Change (transaction type SMCR or, as in my case, ZMCR), I try to search for the Installed Base component for my change document, representing the productive system which is the target of the change.
No result found for the system I am searching for. Same message if I leave the search criteria in blank.
The reason for the issue is that the IB_GUID_16 field is not filled in the IBIB table. IBIB table is the header of the IBase. For some reason that I could not find out yet, field IB_GUID_16 was filled with zeros when the IBase was automatically generated. That makes the query routine delete the entries correctly found and show no results. You can see that checking method IF_IBASE_IL_SEARCH~SEARCH_DYNAMIC of class CL_IBCOMPTOCOMPADV_IL.
In order to solve the problem, you need to correct the entry related to your IBase in table IBIB. But first, confirm that the entry really has zeros in this field. You may have other problems causing this error. If you see that field IB_GUID_16 has only zeros, please run the report RIB_FILL_IBIB_FIELDS. This report will convert the field IB_GUID into IB_GUID_16 and it will solve the problem.
It is also possible that the problem with IBase tables is not related to the IBase header itself, but to the IBase components (table IBIN). In this case you can run report RIB_FILL_IBIN_FIELDS and it will correct the entries in IBIN table.
This blog was created based on Solution Manager 7.1 SP4. For SP5 and later, you may need to also read SAP Note 1741109 related to missing customizing of product hierarchy and number ranges for LMDB/CMDB (Thanks Jean Clappier for adding this info in your comment)
If none of these reports or SAP Note correct your problem, please open a message for SAP Support.