Categories: SAP GW

SAP Gateway Cache – “Soft State”

SAP Gateway Cache is new option to handle access to big amount of data. Because RFC call can take a long time to execute the different Operation CRUD ( Create, Read, Update and Delete). This new Caching functionality so-called Soft-State?enable caching the RFC returns and avoid a new call. A typical use for SAP Gateway Cache is Pricing calculation.?

SAP Gateway Cache – “Soft State”

The so-called ?soft state? mode enables the SAP NetWeaver Gateway runtime to process several requests in one ABAP application server session, similar to stateful behavior. The only difference is the behavior of the application server after the session times out: Instead of breaking the request processing with a time-out exception the server creates a new session and processes the request as usual. For the consumer the change of the application server sessions is transparent and no data is lost on the client session.

The session that is held by the ICF framework results in session held in the backend system via RFC where the data provider class can cache data in member variables. The Data Provider Cache is highlighted in green in the following figure.

Architecture of SAP Gateway Caching

The following diagram explains how the Soft Caching works

 

SAP Gateway Cache Implementation Steps

The list of steps to do in your Gateway Service to enable the HTTP Caching ( Soft-Cache)

  1. Redefine the DEFINE method of the model provider extension call
  2. Create an instance attribute MV_IS_SOFTSTATE for the DPC_EXT class that stores? the status whether soft state is activated
  3. Redefine the method /IWBEP/IF_MGW_SOST_SRV_RUNTIME~OPERATION_START to set this variable

Implementation in the Model Provider Class

  1. Redefine the DEFINE Method of the Model Provider Class. ( in _EXT Classn so it is not regenerated each time, the service is updated )
method DEFINE.
  super->define( ).
  model->set_soft_state_enabled( abap_true ).
endmethod.

Implementation in the Data?Provider Class

1. ?Add new?attribute with the following settings

  • Attribute:?MV_IS_SOFTSTATE
  • Level:?Instance Attribute
  • Visibility:?Private
  • Typing:?Type
  • Associated Type:?ABAP_BOOL
  • Description:TRUE if we are running in softstate mode

2. Refine the Method?/IWBEP/IF_MGW_SOST_SRV_RUNTIME~OPERATION_START

  • Set the previously added attribute?MV_IS_SOFTSTATE to abap_true to activate the Soft-Cache.
method /IWBEP/IF_MGW_SOST_SRV_RUNTIME~OPERATION_START.
  mv_is_softstate = abap_true.
endmethod.

3. Refine the Method?/IWBEP/IF_MGW_SOST_SRV_RUNTIME~OPERATION_END

Without adding any code. Actually, once the OPERATION_START method is defined, you have to define the OPERATION_END, else you will get an exeption.

Note, that /IWBEP/IF_MGW_SOST_SRV_RUNTIME~OPERATION_END?is where you can perform?action for example to handle persistance state of exchanged data.

4. Define a new Static Attribute GV_COUNT

  • Attribute:?GV_COUNT
  • Level:?Static Attribute
  • Visibility:?Protected
  • Typing:?Type
  • Associated Type:?I
  • Description:?Store counter

5. Activate all the Changes

Related Post

Implementation on Gateway Hub

1. Launch the SAP Gateway Maintenance Service Transaction /IWFND/MAINT_SERVICE and confirm the Hub redirection warning if you got one

2. Click on Soft-State button.?You will probably get an error ( just confirm the error popup).

The service is shown as not Soft-State enable.

3. Load the metadata in order to retrieve the new information.

You will see that the service is Soft-State enable but the Soft-State is not active yet.

If the Soft-state stills not yet actived, try empty the Gateway cache:

  • in BackEnd,?/IWBEP/CACHE_CLEANUP?and check?Cleanup Cache for all Models.
  • in Gateway hub, /IWFND/CACHE_CLEANUP?with?box Cleanup Cache for all Models checked

4. Change the session time out

In the ICC node, go to?ICF Node –> Configure (SICF).
Navigate to your service and set a Session Timeout a value > than 0.

5. Now, you can active the Soft-State by clicking on the button on /IWFND/MAIN_SERVICE

Confirm the warning and your service is Soft-State Active !!!

Example of SAP Gateway Cache

In order to implement the SAP Gateway Cache, you have to modify the DPC Method XXX_GET_ENTITYSET where you retrieve data.

Here a sample example, for SAP Gateway cache of PRODUCT

METHOD PRODUCTSET_GET_ENTITYSET.
 
 DATA lv_count_requested TYPE abap_bool.
 
 " Check if Count $Count is set to the Odata Call
 lv_count_requested = io_tech_request_context->has_count( ).
 
 IF lv_count_requested EQ abap_true.
  " Check if SAP Gateway Cache or Soft-State is active 
  
  IF  mv_is_softstate = abap_false.
   " if no, Calculate a new count
   SELECT COUNT( * ) INTO gv_count FROM SNWD_PD.
  ELSE.
   " If count is initial, calculate it 
   IF gv_count is INITIAL.
    SELECT COUNT( * ) INTO gv_count FROM SNWD_PD.
   ELSE.
    " Else, increment the count
    gv_count = gv_count + 1.
   ENDIF.
  ENDIF.
  
  " Return The counter 
  es_response_context-count = gv_count.

 ELSE.
  
  " Else, retrieve the whole data 
  CALL FUNCTION 'BAPI_EPM_PRODUCT_GET_LIST'
   TABLES
    HEADERDATA = et_entityset. 
 ENDIF.
 
ENDMETHOD.

 

*Reference:?How to use Soft-State support for OData services

Share
Published by
John
Tags: Optimization

Recent Posts

The Most Important SAP ISU Tables

SAP ISU Tables for Technical master data, for Billing Master Data, Billing and invoicing Tables?…

December 22, 2020

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd Lecture

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd…

November 18, 2020

The Main SAP Dunning Transaction Codes

Dunning is the business practice of informing a customer of past due payment. Dunning letters…

November 28, 2019

SAP Accounts Payable Tcodes & Accounts Receivable Tcodes ( SAP AP Tcodes & SAP AR Tcodes)

SAP AP Tcodes & SAP AR Tcodes: House Banks Tcodes, Advance Payments or Down Payments,…

August 1, 2019

The Most Important SAP Payment Terms Tables (ZTERM, Text…)

What are the main SAP Payment Terms Tables ? What are the related Tables in…

October 21, 2018

The most Important SAP Work Center Tables in SAP PP

Work center consists of master data related to routing of products. It contains data related…

October 21, 2018