Scope: This document provides a solution to the requirement “ending the existing installation facts time slice to a specific date via ABAP program”.

Background: We implemented the solution for the above requirement in my current assignment. Before sharing it as a document here, I searched in SCN to see if the solution is already available however could not find any. Below are few unanswered threads on this topic.


http://scn.sap.com/thread/1165065

http://scn.sap.com/thread/10754

http://scn.sap.com/thread/3305647


So I hope this piece of information will be useful to the SAP IS-U developers out there!

Solution: The BAPI BAPI_UTILINSTALLATION_CHANFACT can be used to achieve this task. Say suppose, there exists a time slice starting 1st January 2016 till 31st December 9999 for an operand XYZ ( assume the operand category as USERDEF ) with a value 123. Now we need to end the time slice to a date 31st March 2016, then the code for this would be as below.


************************************************************************************************************

*—-Data Declaration

************************************************************************************************************

DATA : 

  lit_instln_facts_upd      TYPE STANDARD TABLE OF bapi_instln_userdef,

  lwa_instln_facts_upd    TYPE  bapi_instln_userdef,  

  lwa_bapi_return_value  TYPE  bapireturn1,              

  l_installation                TYPE anlage.  

************************************************************************************************************

*—-Populate the internal table

************************************************************************************************************

      lwa_instln_facts_upd-operand  = ‘XYZ’.

      lwa_instln_facts_upd-fromdate =  ‘20160401’.    “time slice starting 1st April 2016               

      lwa_instln_facts_upd-duedate  = ‘99991231’.     “time slice ending 31st December 9999

      lwa_instln_facts_upd-udefval1  =  ‘123’.                             

     APPEND lwa_instln_facts_upd TO lit_instln_facts_upd.

************************************************************************************************************

*—-Call the BAPI for the update.

************************************************************************************************************

      CALL FUNCTION ‘BAPI_UTILINSTALLATION_CHANFACT’

        EXPORTING

          number               = l_installation  “Pass the installation number to this variable

          updforce             = ‘X’

          auto_delete       = ‘X’     “This is the important parameter performing the deletion operation

        IMPORTING

          return                  = lwa_bapi_return_value

        TABLES

          userdeftable        = lit_instln_facts_upd.

     IF lwa_bapi_return_valuetype NE ‘E’.

          COMMIT WORK.

     ENDIF.


The trick here is to delete the time slice starting from 1st April 2016 till 31st December 9999, so that what gets left is the time slice starting 1st January 2016 till 31st March 2016.


Summary: We have learnt the idea / solution to end the installation facts time slice to a specific date using the BAPI BAPI_UTILINSTALLATION_CHANFACT.

To report this post you need to login first.

Be the first to leave a comment

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

Leave a Reply