Chinaunix首页 | 黑桃棋牌官方网下载 | 博客
  • 博客访问: 270975
  • 博文数量: 931
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 10178
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-08 12:28
  • 文章分类

    全部博文(931)

  • Kubernetes(26)
  • 微信(12)
  • Web(11)
  • 数据库(11)
  • JavaScript(48)
  • Linux(39)
  • Chrome(13)
  • SAP(769)
  • 未分配的博文(2)
  • 文章存档

    2020年(134)

    2019年(792)

    2018年(5)

    我的朋友

    分类: 架构设计与优化

    2020-02-05 12:42:20

    下面是我今天研究的后台OData数据的model以及如何在IE里面consume:

    SPRO里面:

    这个model provider class定义了LWM_CUSTOMER_BRIEFING这个model的所有structure,以及structure之间的相互关系。

    现在没有一个图形化界面的tool来做modelling,我们只能在CL_LWM_CB_ADAPTER_MDP的DEFINE里面定义model的structure。具体做法是预先定义好后台要使用的entity的data type,

    Customer briefing 所有使用到的DDIC object全部放在这个package里面:LWM_CRM_CUSTOMER_BRIEFING

    在DEFINE里面,通过ABAP 代码创建一个个entity,给它们绑上DDIC object,同时建立相互关系,如association.

    通过ldcigm2.herr.corp:50018 我们可以拿到customer briefing的service document。

    Service document里面只定义了哪些entity暴露了哪些操作,真正metadata的full definition xml用这个URL down:

    http://ldcigm2.jerry.corp:50018/sap/opu/sdata/sap/customer_briefing/$metadata?sap-client=001&$format=xml

    service document也能通过SICF进去之后,从sap node出发,点test拿到。

    比如这部分就说明CustomerCollection这个节点能够执行“search”的action:

    然后我们在IE里面测试:

    http://ldcigm2.jerry.corp:50018/sap/opu/sdata/sap/CUSTOMER_BRIEFING/CustomerCollection?sap-client=001&$format=xml&search

    返回所有的Customer信息,Customer node的property就是在figure1里面看到的那些。

    Search 所有name property中包含“UT_Customer” 的Customer

    http://ldcigm2.jerry.corp:50018/sap/opu/sdata/sap/CUSTOMER_BRIEFING/CustomerCollection?sap-client=001&$format=xml&search=UT_Customer

    返回Partner ID = 133的customer的detail 信息

    http://ldcigm2.jerry.corp:50018/sap/opu/sdata/sap/CUSTOMER_BRIEFING/CustomerCollection(133)?sap-client=001&$format=xml

    所有这些操作都在service provider class CL_LWM_CB_ADAPTER_RDP里面实现,

    如果我们直接在IE里面通过ldcigm2.jerry.corp:50018?sap-client=001&$format=xml

    的URL consume OData service:

    Gateway 系统上首先会根据OData service expose出来的external name找到internal使用的service ID:

    然后根据service ID找到对应的CRM 系统的destination:

    通过RFC直接call CRM系统上的一个remote function module:


    在CRM的这个FM上设个断点,发现断点已经被触发了。

    阅读(5988) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~
    评论热议
    请登录后评论。

    登录 注册