什么是ABAP的STATE_READ_ACCESS
2020-02-01 本文已影响0人
_扫地僧_
我们做POC的时候,也经常见到STATE_READ_ACCESS, or STATE_WRITE_ACCESS in class CL_SEND_REQUEST_BCS, CL_CRM_PML_OS_HEAD(Mail form), 以CL_CRM_PML_OS_HEAD为例,这个CLASS主要是获取MAIL FORM TEMPLATE创建时的相关信息,例如CHANGED_AT, MAIL_USAGE等等,
那么这些信息又是存储在哪个表呢? 点击”Persistence” 按钮,可以看到如下的界面:
通过上面的截图可以看出这些数据是存储在CRMD_PML_HEAD.
其实这个地方是使用了Persistent Class,如果对这个TOPIC感兴趣,可以看看一个小的DEMO(http://scn.sap.com/docs/DOC-27055).
每一个Persistent Class都会对应一个Agent Class:
对表CRMD_PML_HEAD的INSERT, UPDATE, DELETE都是通过这个Agent Class实现的,这个CLASS是SAP自动生成的。
以STATE_READ_ACCESS为例:
STATE_READ_ACCESS实际上是一段MACRO, 那么这个EVENT 又是在什么地方HANDLE的呢?
TCODE: SE24查看IF_OS_STATE,执行如下的操作:
然后SEARCH关键字”section”:
单击其中的任何一个,就可以找到哪个METHOD在监听这个EVENT:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":