cancel
Showing results for 
Search instead for 
Did you mean: 

Question about Retrieve Filter in SPI Framework

felix0315
Explorer
0 Kudos

Hello Experts,

I'm facing an issue about retrieve filter in SPI Framework, when I call retrieve method of SPI twice with same ID, the 2nd call will get nothing, I resaerch a lot and found the reason from wiki page SPI, the reason is

  1. The Application Model will always evaluate the side-effect and the node invalidation of the called Service Provider (SP) operations and clear the buffer of already retrieved node IDs accordingly.
    After a CLEAN_UP call all buffers of already retrieved node IDs will be cleared.
    This means that after a node got invalidated via one of those mechanisms, the RETRIEVE will reach the SP again to fetch the up to date data.
    Example:
    You call the RETRIEVE with ID '1' of node A twice, the first time the call will reach the SP, the second time the SP will not get called. Now you call an ACTION which invalidates node A and afterwards you call again the RETRIEVE with ID '1' of node A. Now the RETRIEVE will reach the SP again.

My question is how to make a node invalidated or how to clear the buffer of already retrieved node IDs by abap code?

thank you in advanced,

best regards,

felix

Accepted Solutions (1)

Accepted Solutions (1)

felix0315
Explorer

Solved by myself,

MP(add action defination):
INSERT INITIAL LINE INTO TABLE <fs_r_node>-actions ASSIGNING <fs_r_action>.
 <fs_r_action>-name = 'PPE_NODE_INVALIDATION'.
 <fs_r_action>-sideeffect = /plmb/if_mdp_c=>gc_c_sideeffect-myself.

SP:
None.

Call Action:
go_appl_model->/plmu/if_frw_basic_appl_model~action(
 iv_node_name = lv_node_name
 iv_action_name = 'PPE_NODE_INVALIDATION'
 it_node_id = lt_node_id[] ).

Answers (0)