Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
Showing results for 
Search instead for 
Did you mean: 
In recent times with countries enforcing GDPR rules and regulations, organizations need to be more and more legally compliant. ILM legal holds is an additional feature from ILM framework for ensuring that the data is legally compliant.

ILM Legal Hold Management feature enables you to apply legal holds on data that needs to remain available for legal compliance. Conventionally legal case is a container for syntactically related objects. These objects correspond to the data of the current system and client on which the legal holds are to be created.

Before we go further into the details of ILM legal holds, it is important that we are well acquainted with the following terminologies :

  • Data object - Corresponds to records or a tuple of records in the database or in an archive files.

  • Origin - Origin here refers to data source which defines the place where the BOR object key was found. It can be an archive file or a record in database.

  • BOR key - Derived from the key fields of the BOR object, these are used to identify an individual single instance of the SAP business object type.

  • Legal case - A semantic collection for a set of BOR objects and their respective keys on which legal hold is created.

  • Legal hold - An unique identifier that marks a given BOR object key to be part of a legal case. It refers to the BOR object key added as part of the legal case.

  • Legal Holds Propagation - Propagating the holds to archived BOR objects or ArchiveLink references (in the ILM store)

In a live application system, you can apply legal holds to the following data categories:

  • BOR objects from the database and archive files at ILM store

  • ArchiveLink documents

  • Attachments that are linked to BOR objects (automatic hold using BOR objects)

  • PrintLists


Pre-requisites :

  1. The user responsible for creation and maintenance of legal case has the following roles assigned.


Expert is able to:

    • Display a legal case

    • Display object details

Expert is not able to:

    • Create, Delete, Update a legal case

    • Perform E-discovery operations.



Administrator is able to:

    • Create, read, update, delete a legal case

    • Perform E-discovery operations (in defined logical systems)

Administrator is not able to:

    • Display object details

2.Basic understanding of SAP BOR object(s), SAP archiving write, delete and store.

3.To enable access to stored documents with E-Discovery, you have ensured that the archive info structures of the ILM objects to be locked have been activated.

For more information, see: Providing Archive Infostructures for Data Access

At the end of this blog you will be able to

  1. Configure an ILM object to an already existing /newly created BOR object. For details on how to create and configure a new BOR object refer the link here.

  2. Create a legal case and add BOR objects to the legal case.

The entire process of creation and propagation of legal holds to ILM store can be divided into two categories :

  1. Setup phase - Mapping an ILM object to BOR object and setup modes of adding BOR objects to legal case.

  2. Execution phase - Which involves creation and propagation of legal holds.


Process Overview

  1. Creation of a legal case -We use transaction ILM_LHM to create a legal case. Conventionally, a legal case is a container for syntactically similar objects (BOR objects). These objects are referred to as legal hold(s).

Once the legal case is created it would require to add object(s) in a legal case. This object                  referred to as legal hold corresponds to a given BOR object and can be added to a legal                    case either via origin determination function module or E-Discovery report.

In the below figure the upper section corresponds to a legal case and the lower section with                objects added under BOR objects corresponds to legal holds.

  1. Propagation of legal case - Apply legal holds to data objects present in store. For this the user must propagate the legal holds create under each legal case to the data at store.

3. Deletion of legal case - Delete the legal holds created in the past if they are no longer                      relevant for legal requirements.


1.1 Configure an ILM object to an already existing /newly created BOR object.

1.1.1 Mapping ILM object to BOR object .

Use transaction IRM_CUST_BS to map an ILM object with a BOR object as in the below figure. Enter the name of the BOR objects that is to be assigned to the ILM object.

As an example, the sample object BC_SFIGHT is mapped to BOR object SFLIGHT.


To find the key fields of BOR object SFLIGHT use transaction SWO1 and enter object as SLFIGHT.

To display the key fields for SFLIGHT press ‘Display’ button and expand Key Fields as shown below :


Note :  Any number of business objects in the BOR (Business object repository) can be assigned to an ILM object. A business object can also be assigned to more than one ILM object.


1.1.2 Determination of Object Instance Key for BOR Object.

This configuration is needed to identify a data object on which the legal hold has to be                        created from the ILM framework

Maintain the source table, source field and positions that are to be used to determine                          values for the instance key. These fields should ideally be the same as key fields in SWO1                  transaction as in the below figure. However this can vary based on the business                                  scenario(s).

              In this dialog enter the source tables and source fields whose values would be needed to                    determine the BOR key of an object.

              The position number here should be the order/sequence of the field in order of their                            appearance in the SE11 dictionary (ignore the MANDT field position as its assumed to be                  zero).

For instance, the field MANDT is present in the table SFLIGHT, and CARRID occurs after                   this field in the SE11 dictionary, hence the position of CARRID needs to be entered as 10.                   We also maintain CONNID and FLDATE as these are required to identify the BOR object                   instance key for BC_SFLIGHT object.

2 Mode of adding BOR objects to a legal case

2.1 Manual Addition of BOR objects.

The manual addition of BOR objects to a legal case is done via origin determination function module. The origin determination function modules are developed and delivered by SAP applications to enable ILM legal holds for their application data.

The add objects button in a legal case can be used to add objects to a legal case as shown in below figure .

The result set of origin determination function module contains the following:

·       Details of the BOR object key(s), BOR object type(s) and origin.

·       If the BOR object key occurs in any archive file, then it contains the archive key and offset of occurrence of this object in that archive file.

You can check in transaction SM30 for the view LHM_METHODS if a given BOR object is enabled for manual addition of BOR objects to a legal case.

If an entry against the relevant BOR object and the corresponding origin determination function module is not available then you would need to contact SAP for enabling the same, if applicable.

2.2 E-discovery reports.

The E-Discovery report is developed by the customer in collaboration with the respective                   applications based on the requirement. You need E-Discovery report to determine documents,           for example, those on which you want to put legal holds.

You can register an E-Discovery report under SAP Netweaver >  Application Server           >  Basis Services  > Information Lifecycle Management  > Retention Management > Register E-Discovery Selection Programs. Only the programs that are registered here can be selected for executing an E-Discovery operation in ILM_LHM transaction.

Alternatively, you can check in transaction SM30 for the view LHM_EDIS_REPORTS if an entry exists here for the given report to be executed as an E-Discovery report in ILM_LHM transaction.

  • In Retention Warehouse systems only the E-Discovery report can be used to add objects to the legal case. In such a case the checkbox RW-enabled needs to be checked.

SAP supplies sample implementations of E-Discovery selection programs: The following sample implementation are intended for use in a live application system:

  • REDIS_FI11 (accounting documents)

  • REDIS_SD11 (sales documents)

  • REDIS_SD12 (deliveries)

  • REDIS_MM12 (purchase orders)


Note  :

  • You can select only the reports that are registered here for executing an E-Discovery operation on a legal case.

  • Use the CL_EDISC_REF_COLLECTOR class to implement your own E-Discovery selection programs. The method ADD_OBJECTS of this class copies the object references found by the E-Discovery program to the corresponding legal case.


The examples defined do not cover all the cases you may encounter in production. You would need to create implementations of E-Discovery report(s) for your specific scenarios.

The return parameter for the CL_EDISC_REF_COLLECTOR=>ADD_OBJECTS is a table type of structure SLCM_S_OBJECT_IDENTIFIER having the following components :

Component Description
OBJKEY Object Key
OBJTYPE Object Type
LOGSYS Logical System
ORIGIN Origin of Data for Object
ARCHIVE_KEY Key for Archive File
ARCHIVE_OFFSET Archive file data object offset
OBJTYPE_TEXT Description
LH_GUID UUID in character form


The E-Discovery report must fill each record of table (say lt_objects of type table of SLCM_S_OBJECT_IDENTIFIER) before calling CL_EDISC_REF_COLLECTOR=>ADD_OBJECTS( ).

The below snippet shows the mandatory parameters to be supplied by the E-Discovery report :
ls_slcm_object_identifier TYPE SLCM_S_OBJECT_IDENTIFIER.

ls_slcm_object_identifier-objtype = <BOR_OBJECT>. "application BOR object name
ls_slcm_object_identifier-objkey = <BOR_OBJECT_KEY>. " application BOR key

"The origin must be set as 'DB' if the record exists in database.
"The origin must be set as AR if the record exists in an archive file.

ls_slcm_object_identifier-origin = 'AR'.

"If the origin is set as AR then archive key and archive offset must mandatorily be supplied by the E-"Discovery report. If not provided then the ILM framework discards these records.
ls_slcm_object_identifier-archive_key = <ARCHIVE_KEY>.
ls_slcm_object_identifier-archive_offset = <ARCHIVE_OFFSET>.

APPEND ls_slcm_object_identifier TO lt_objects.


"The call to this method is a must in order to make these objects be available as legal holds for ILM "framework.

With this, we have now configured an ILM object with a BOR object, defined the BOR object instance key. Also we learnt on modes of adding BOR objects to a legal case and the steps for customizing the same.

If the E-Discovery report is not existing yet, customers have the flexibility to formulate their own E-Discovery report for their custom requirements.

With this we have completed all the configurations needed for creating a legal case.

In this blog post we have learnt :

  • Pre-requisites for adding BOR objects to a legal case.

  • Configuring an ILM object with a BOR object.

  • Modes of adding BOR objects to a legal case.

In the next section of this blog post we will see a sample implementation on how to add objects to a legal case using E-Discovery report and propagate the legal case to the ILM store.

Please feel free to provide feedback and your thoughts in the comment section. For any further queries follow the Q&A community here.