Skip to Content

Recently I was assigned to a prototype development which needs to consume ILM framework in ABAP on-Premise system. I have summarized the whole ILM topic into two separate blogs. The first one which we are going to discuss in this blog is to demonstrae the ability to automatically detect and destruct destroyable data (and its related component). Destroyable data could be defined as per customer or business scenario, its customizable. one such business scenario is data that are expired for more than one year could be defined as destroyable .

 

What?

ILM stands for “Information Lifecycle Management”. ILM framework helps to manage data life cycle through a very simple configurable steps and minimal amount of coding and highly flexible for customer. This is very useful as well for GDPR where the purpose could be to delete personal data/information after the user has left the organisation.

 

Why?

one simple answer would be to remove the unnecessary data and lessen the load on our application and DB.

It’s important to mention it could be achieved without ILM framework, however advantage of using ILM framework can’t be ignored more so where time and less complexity is directly related to Total cost of Development.

Advantages:

  1. Auto-enabled Application logging
  2. Least amount of coding
  3. Customizable business scenarios for deciding the destroyable data

 

How?

Pre-requisite

  1. ILM business function must be switched on :  First thing first, you need to ensure ILM business function is switched on. For various reason is some organization it is not switched on. Check with system administrator first.

 

  1. Check ILM Business Function : To check if ILM is switched on or off. Go to transaction SFW5. Find ILM and you can see if its witched on or off.

 

Implementation Steps

Following are the main points that we will be covering in detail

  1. ILM Configuration
  2. Create a custom delete API that perform data and its component
  3. Embed the API into ILM based destruction program

 

 

 

 

Implementation Details

ILM Configuation is to be done at two ends as shown in above figure, one being IRM_CUST which a developer has to do in order to enable the ILM framework, and second being IRMPOL and ILMARA which is at customer end. For latter  developer has to provide consulting note to their respective customer where they can customize the destroyable data definition, this will be explained in part 2 of this blog. we have here explained customization that is to be done by developer for ILM to be operational.

Customization at Developer end:

1 Create a destruction program in SE38 namely SAM_ILM_DES. no coding yet just we need to create a program. you can name anything starting with z or y or your namespace.

2. Configuration for Destruction Object:

DOBJ configuration: Enter transaction DOBJ in command box. Create a new entry. Give any destruction object name associate your destruction program name (created above) with this destruction object.

3. Configuration for ILM Object

Transaction: IRM_CUST Here we create one ILM object and link the above created destruction object to this ILM object.

 

Double click on ILM Objects

 

press “NEW ENTRIES” and here enter you ILM Object Name

 

Define Available Time Reference fields which can be mapped to any time reference fields of    your application table to be used for calculation of retention logic.

 

 

 

 

 

 

  1. ILM Program: Coding Embedding delete API into ILM framework backed program as shown below

  • Add INCLUDE destroy_prg_standard before INITIALIZATION
  • Under INTIALIZATION add PERFORM standard_texts_init.
  • In START OF SELECTION event, a subroutine PERFORM main.
  • Inside main, we need to add four subroutines that are mentioned below.
  • All above steps can be seen in above screenshot of the program

 

Inside routine “main”, we will have following sub routines.

  • PREPROCESSING

  • FILL_WORKLIST – Here we can retrieve the data from main table from which is to be scope of data destruction. Let’s say GT_WORK_LIST

 

  • PROCESSING

 

 

 

  1. You can now run this program in foreground
  2. Or you can schedule this program in background and it will check the data everyday which all data has expired and will delete it
To report this post you need to login first.

11 Comments

You must be Logged on to comment or reply to a post.

  1. Jelena Perfiljeva

    Possibly a stupid question but what is this “ILM framework”?

    Not sure if the frequent visitors to the PLM tag are already in the loop on this but considering this was shared with wider ABAP audience it’d make sense to start with a brief introduction.

    Thank you.

     

    (0) 
    1. Avinash Jha Post author

      Hi Jelena,

      Thanks for your question and suggestion.

      << Question>> – what is “ILM framework”?                                                                                              <<Answer>> –   ILM stands for Information Lifecycle Management. ILM framework deals with managing  the life cycle of given information(or we can say any data object). It gives a simplified way of processing a data to either archive and delete.

      Regarding your Suggestion

      Thanks a lot, I will definitely incorporate your suggestion . My vision was to enable user who had basic information about ILM but had not implemented it before, it was meant to help them to navigate smoothly as otherwise the configuration steps are very complicated for first time developer. But you are right, it will help larger audience if  ILM is explained at first. I will definitely do so. Thanks again

       

      (0) 
        1. Avinash Jha Post author

          It’s not stupid question, there is no primary tag for ILM and the closest i could find which relates to lifecyle of data is PLM. If you know a better primary please let me know.

          Appreciate your help.

          (0) 
            1. Avinash Jha Post author

              yes Jelena I absolutely agree with you, NW Information Lifecycle Management would mark it better. but there is no primary tag by this, this is only available in secondary. even standalone NW is also not there for taking 🙁

              (0) 
              1. Jelena Perfiljeva

                Hm, that’s odd. I just tested new blog post and it’s possible to select NW ILM tag as primary. I just started typing “Netweaver Info…” and it came up:

                If it doesn’t allow you to update primary tag then a moderator should be able to do that. I’ve just looked it up and it seems PLM is something completely different.

                Thank you!

                (0) 
                1. Avinash Jha Post author

                  Yes i am able to, reason i wasn’t getting the NW ILM tag in Primary tag was because it was already included in secondary tag. i deleted the secondary tag and then re-added.

                  Thanks !

                  (1) 
  2. Hemendra Sabharwal

    Hi Avinash,

    Thanks a lot for this nice explanation and beautiful blog, but I would also recommend like Jelena to provide little introduction to the novice users like me. I really appreciate the effort you put in blog…eager to see the part-2.

    Thanks,

    Hemendra

    (0) 
  3. Petrica Avdei-Mina

    Hello Avinash,

    Thank you for your blog regarding ILM. There are so little info about this topic…so any info is priceless. 🙂

    We are trying also to configure ILM, but we are stuck in File System Connections.

    The text from guide sound like this:

    “You need custom connection types to define how ILM Store connects to the file system.Custom Connection Types
    A database used for storing the Archive Development Kit (ADK) content can be connected to the ILM Store through a data base connection using the transaction DBCON. The database connection is always connected to the type of the database or the database type (DBSYS) value. You use the database type value to search in the class factory (TILMSTOR_CF) for a matching interface IF_ILM_STOR_DB_OPERATOR and IF_ILM_STOR_DB_INFO implementation that implements the physical access to the storage media. In the ILM Store the key pair of DBCON/DBSYS points to the required IF_ILM_STOR_DB_OPERATOR| IF_ILM_STOR_DB_INFO pair for accessing any storage media. The assignment for the ILM Store is as follows:●
    DBCON is the connection ID●
    DBSYS is the connection type●
    Customizing for TILM_STOR_BLOB points to a Connection ID.●
    The connection ID entry is used to determine the connection type value from the following:○
    DBCON○
    If it is not a DBCON entry, then from Customizing using the CONSYS.<connection.ID> value in namespace DB●
    The connection type value, in turn, is used to determine the implementation in the class factory for interface implementations IF_ILM_STOR_DB_OPERATOR and IF_ILM_STOR_DB_INFO.”

    Can you please give us a practical example on how it should look like IF_ILM_STOR_DB_INFO?

    I understand that it should be maintained in TILMSTOR_CF, but how? API, parameter, implementing class?

    Or it is a different way to do it?

    Please help us define this connection in order that

    Thank you in advance!

    Best regards,

    Peter

    (0) 

Leave a Reply