如何使用中间件将 Sales BOM 数据从 ERP 系统同步到 CRM 系统

举报
Jerry Wang 发表于 2021/10/13 22:59:12 2021/10/13
【摘要】 在ERP使用事务码CS01创建一个BOM,类型选择5 - Sales BOM:BOM的抬头维护material 1419,在BOM的component部分维护另外两个material 1421和1422。保存BOM,会自动生成ID 2974,可以通过表MAST的字段STLAN查询。在CRM创建一个下载请求:成功下载到CRM之后,在CRM UI里打开ERP BOM抬头的product1419,...

在ERP使用事务码CS01创建一个BOM,类型选择5 - Sales BOM:

BOM的抬头维护material 1419,在BOM的component部分维护另外两个material 1421和1422。

保存BOM,会自动生成ID 2974,可以通过表MAST的字段STLAN查询。

在CRM创建一个下载请求:

成功下载到CRM之后,在CRM UI里打开ERP BOM抬头的product1419,能在assignment block"Set Components"里看到ERP里BOM的包含的另外两个material:

通过事务码SMW01能通过查看BDOC DNL_MAT_BOMS观察到具体下载到CRM的三个product的ID。

BOM下载的更多细节参考帮助文档.

我有如下一个CDS view, 这个view的数据来自CRMD_ORDERADM_H, 定义了一个名称为_statushelp的association, 指向了另一个CDS view Z_C_Status_Valuehelp.该view暴露了两个字段STATUS_KEY和STATUS_TEXT.

现在我的需求是:在ABAP代码里只需要一次读操作,既能读出主view里的guid字段,又能读出association view Z_C_Status_Valuehelp暴露出的两个字段STATUS_KEY和STATUS_TEXT。

解决方案

(1) 创建一个新的数据类型,里面包含了两个view的总共3个待读取字段。

(2) 使用如下代码读取数据:


DATA: lt_data TYPE tt_Data. SELECT guid, \_STATUSHELP-STATUS_KEY AS STATUS_KEY , \_STATUSHELP-STATUS_TEXT AS STATUS_TEXT FROM ZORDER_SYS_STATUS WHERE ZORDER_SYS_STATUS~GUID = 'FA163E8EAB031EE6A99F824537D112A4' AND ZORDER_SYS_STATUS~STAT = 'I1002' AND \_STATUSHELP-STATUS_KEY IS NOT NULL  INTO TABLE @lt_data.

如果要获得一个function module的Where Used List,我们通常用的办法是使用ABAP workbench里提供的功能。

where used list显示结果如下:

但我接到一个任务,在结果列表里还需要显示出使用了指定的function module的代码所属的Package, Application Component和Software Component。

如下图所示:

因此我只能自己开发一个工具ZCL_CRM_PROD_API_WHERE_USED。执行class的run方法:

输入要查询的function module名称,执行即得结果。

工具类的源代码在我github上。

比如下图这个ABAP development studi里创建的角色是为了实现CDS view DEMO_CDS_AUTH_LIT_PFCG的权限控制,里面使用到了权限对象S_CARRID.

假设现在我有一个需求:我想知道用户名WANGJER是否具有该权限对象的字段s_carrid的显示(03)权限?

在事务码SU01里,我只能查看WANGJER这个用户到底被赋予了哪些PFCG角色。权限对象不是直接分配给用户的,而是通过PFCG角色作为一个中间层。

可以通过查表AGR_USERS得到一个指定的用户分配了哪些PFCG角色。

所以题目开头的需求就转化为这个问题:哪个PFCG角色分配了权限对象S_CARRID?

使用事务码SUIM根据权限对象查询PFCG角色:

下列14个PFCG角色都分配了权限对象S_CARRID:

选择其中一个双击,比如SAP_QAP_DEVELOPER:

上图意味着如果一个用户被分配了PFCG角色SAP_QAP_DEVELOPER,这个用户就拥有了权限对象S_CARRID上定义的Create,Change和Display的权限:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。