先说一下优化过滤的必要性。

CRM物料主数据一百多万。

感谢MDM或者相关的系统,每天通过接口更新的不知道什么东西,每天数百万的物料更新队列进入CRM。

CRM系统被搞死了好几次。

然后各种优化报表,程序。。。

最后有几个链接缓慢的自开发接口,背锅了。。。

好吧,先不管那些了。现在在ERP做一个过滤设置,只有某些修改的物料主数据才允许传到CRM。

1,查看SM30(TBE24找对增强ID,TPS34找到增强函数或自己写)

2,做配置表,表+字段,控制哪些表检查哪些字段

3,增强

  "物料数据库同步过滤MARA,MAKT,MARM,MVKE "CRM抽数不需要走此逻辑,否则会堵住队列
IF I_OBJ_NAME = C_MATERIAL AND sy-uname <> 'RFC_CRM'."物料bdoc
DATA:GW_MARA TYPE MARA,
GW_MAKT TYPE MAKT,
GW_MARM TYPE MARM,
GW_MLAN TYPE MLAN,
GW_MVKE TYPE MVKE,
GT_006 TYPE TABLE OF ZCRMT0006,
GW_006 LIKE LINE OF GT_006.
FIELD-SYMBOLS:<OLD> TYPE ANY,
<NEW> TYPE ANY,
<MAKT> TYPE MAKT,
<MVKE> TYPE MVKE,
<MLAN> TYPE MLAN,
<MARM> TYPE MARM.
E_DO_NOT_SEND = 'X'."清除发送标记
SELECT * INTO TABLE GT_006 FROM ZCRMT0006.
LOOP AT T_INT_TABLES INTO LS_INT_TABLES.
CHECK E_DO_NOT_SEND IS NOT INITIAL.
CASE LS_INT_TABLES-TABNAME.
WHEN 'MARA'.
ASSIGN LS_INT_TABLES-DATA TO <FS_MARA> CASTING.
SELECT SINGLE * INTO GW_MARA FROM MARA WHERE MATNR = <FS_MARA>-MATNR.
IF SY-SUBRC = 0.
LOOP AT GT_006 INTO GW_006 WHERE TABNAME = LS_INT_TABLES-TABNAME.
IF E_DO_NOT_SEND IS NOT INITIAL.
ASSIGN COMPONENT GW_006-FIELDNAME OF STRUCTURE <FS_MARA> TO <NEW>.
ASSIGN COMPONENT GW_006-FIELDNAME OF STRUCTURE GW_MARA TO <OLD>.
IF <NEW> <> <OLD>.
E_DO_NOT_SEND = ''.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
E_DO_NOT_SEND = ''.
ENDIF.
CLEAR:GW_MARA.
WHEN 'MARC'.
WHEN 'MAKT'.
ASSIGN LS_INT_TABLES-DATA TO <MAKT> CASTING.
SELECT SINGLE * INTO GW_MAKT FROM MAKT WHERE MATNR = <MAKT>-MATNR AND SPRAS = <MAKT>-SPRAS.
IF SY-SUBRC = 0.
LOOP AT GT_006 INTO GW_006 WHERE TABNAME = LS_INT_TABLES-TABNAME.
IF E_DO_NOT_SEND IS NOT INITIAL.
ASSIGN COMPONENT GW_006-FIELDNAME OF STRUCTURE <MAKT> TO <NEW>.
ASSIGN COMPONENT GW_006-FIELDNAME OF STRUCTURE GW_MAKT TO <OLD>.
IF <NEW> <> <OLD>.
E_DO_NOT_SEND = ''.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
E_DO_NOT_SEND = ''.
ENDIF.
CLEAR:GW_MAKT.
WHEN 'MARM'.
ASSIGN LS_INT_TABLES-DATA TO <MARM> CASTING.
SELECT SINGLE * INTO GW_MARM FROM MARM WHERE MATNR = <MARM>-MATNR AND MEINH = <MARM>-MEINH.
IF SY-SUBRC = 0.
LOOP AT GT_006 INTO GW_006 WHERE TABNAME = LS_INT_TABLES-TABNAME.
IF E_DO_NOT_SEND IS NOT INITIAL.
ASSIGN COMPONENT GW_006-FIELDNAME OF STRUCTURE <MARM> TO <NEW>.
ASSIGN COMPONENT GW_006-FIELDNAME OF STRUCTURE GW_MARM TO <OLD>.
IF <NEW> <> <OLD>.
E_DO_NOT_SEND = ''.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
E_DO_NOT_SEND = ''.
ENDIF.
CLEAR:GW_MARM.
WHEN 'MVKE'.
ASSIGN LS_INT_TABLES-DATA TO <MVKE> CASTING.
SELECT SINGLE * INTO GW_MVKE FROM MVKE WHERE MATNR = <MVKE>-MATNR AND VKORG = <MVKE>-VKORG AND VTWEG = <MVKE>-VTWEG.
IF SY-SUBRC = 0.
LOOP AT GT_006 INTO GW_006 WHERE TABNAME = LS_INT_TABLES-TABNAME.
IF E_DO_NOT_SEND IS NOT INITIAL.
ASSIGN COMPONENT GW_006-FIELDNAME OF STRUCTURE <MVKE> TO <NEW>.
ASSIGN COMPONENT GW_006-FIELDNAME OF STRUCTURE GW_MVKE TO <OLD>.
IF <NEW> <> <OLD>.
E_DO_NOT_SEND = ''.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
E_DO_NOT_SEND = ''.
ENDIF.
CLEAR:GW_MVKE.
WHEN 'MLAN'.
ASSIGN LS_INT_TABLES-DATA TO <MLAN> CASTING.
SELECT SINGLE * INTO GW_MLAN FROM MLAN WHERE MATNR = <MLAN>-MATNR AND ALAND = <MLAN>-ALAND.
IF SY-SUBRC = 0.
LOOP AT GT_006 INTO GW_006 WHERE TABNAME = LS_INT_TABLES-TABNAME.
IF E_DO_NOT_SEND IS NOT INITIAL.
ASSIGN COMPONENT GW_006-FIELDNAME OF STRUCTURE <MLAN> TO <NEW>.
ASSIGN COMPONENT GW_006-FIELDNAME OF STRUCTURE GW_MLAN TO <OLD>.
IF <NEW> <> <OLD>.
E_DO_NOT_SEND = ''.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
E_DO_NOT_SEND = ''.
ENDIF.
CLEAR:GW_MLAN.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
ENDIF.

控制ERP物料主数据通过Middleware传往CRM的更多相关文章

  1. SAP物料主数据的屏幕字段控制,必输,隐藏

    http://www.cnblogs.com/275147378abc/p/5699077.html 1.事务码MM01,把物料组设为选填字段. 2.找到物料组的屏幕字段. 3.在后台根据屏幕字段找到 ...

  2. 物料主数据批导bapi

    创建物料主数据,根据模板不同批导原材料,半成品,成品.可根据实际需求对字段进行增删. report zmmr_bapi_mm01 no standard page HEADING. type-POOL ...

  3. SAP MM 物料主数据采购视图中的字段'Var. OUn'的作用?

    SAP MM 物料主数据采购视图中的字段'Var. OUn'的作用? 物料主数据采购视图里有一个字段,叫做'Var. OUn'的, 如下图: 这个字段,笔者之前所参与的项目里,从来没有用过.所以,笔者 ...

  4. SAP MM01 创建物料主数据 [关注公众号后回复MM01获取更多资料]

    操作内容 物料主数据,适用于所有有物料编码物料相关信息的系统维护 业务流程 新项目设计冻结后—M公司 PD用-物料编码申请表D-BOM Material Number  Application部门内部 ...

  5. PP主数据-物料主数据

    一.PP物料主数据:PP的物料主数据,是对应到系统的组织架构的,不同的组织层次,都有各自的主数据需要创建. (1),一般数据:一般数据是在集团层面的主数据,主要包括:物料编码.物料描述.辅助计量单位以 ...

  6. SAP MM 物料主数据MRP2 视图Rounding Value字段

    SAP MM 物料主数据MRP2 视图Rounding Value字段 如下物料号,MRP2视图中,维护了rounding value字段值为50. MRP type :PD Lot size:EX ...

  7. SAP MM 物料主数据MRP2 视图’Minimum Lot Size’字段

    SAP MM 物料主数据MRP2 视图’Minimum Lot Size’字段 如下物料号,MRP2视图中,维护了最小采购量为500. MRP type : PD Lot size: EX Minim ...

  8. SAP MM MM17里不能修改物料主数据'Purchasing Value Key'字段值?

    SAP MM MM17里不能修改物料主数据'Purchasing Value Key'字段值? 记得在D项目上线之前数据导入系统之后,业务提出一些物料采购视图里的’Purchasing value k ...

  9. 「SAP 技术」SAP MM 物料主数据利润中心字段之修改

    SAP MM 物料主数据利润中心字段之修改 近日,收到业务部门报的一个问题,说是MM02去修改物料的利润中心字段值,系统报错说物料库存存在,不让修改. 笔者查询了该物料的库存,当期库存并不存在.MMB ...

  10. 【MM系列】SAP MM-模块物料主数据简介

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM-模块物料主数据简介   ...

随机推荐

  1. [源码系列:手写spring] IOC第五节:Bean注入Bean

    主要内容 添加BeanReference类,包装一个bean对另一个bean的引用.如beanA引用beanB,那么在实例化beanA时,如果propertyValue.value是BeanRefer ...

  2. 【SpringCloud】Zookeeper服务注册与发现

    Zookeeper服务注册与发现 Eureka停止更新了,你怎么办 https://github.com/Netflix/eureka/wiki SpringCloud整合Zookeeper替代Eur ...

  3. 【Ubuntu】在Ubuntu上安装IDEA

    [Ubuntu]在Ubuntu上安装IDEA 零.前言 最近换了Ubuntu系统,但是还得是要写代码,这样就不可避免地用到IDEA,接下来介绍一下如何在Ubuntu上安装IDEA. 壹.下载 这一步应 ...

  4. while(bug)

    while(bug) { // 加了班也不一定写的完代码 // 写完了代码也不一定编译的过 // 编译过了也不一定没bug // 有了bug也不一定找的到 // 找到bug也不一定改的了 // 改了这 ...

  5. 一个Bug让人类科技倒退几十年?

    大家好,我是良许. 前几天在直播的时候,问了直播间的小伙伴有没人知道「千年虫」这种神奇的「生物」的,居然没有一人能够答得上来的. 所以,今天就跟大家科普一下这个人类历史上最大的 Bug . 1. 全世 ...

  6. Spring底层AOP代码实现

    一. AOP功能测试 ①. pom.xml 依赖导入 ②. 目标类 ③. 切面类 ④. 配置类 ⑤. 测试类 二. AOP原理-@EnableAspectJAutoProxy AOP原理:[看给容器中 ...

  7. 创建bean对象的三种方式

    一.使用无参构造方法创建 二.使用静态工厂创建 三.使用实例工厂创建

  8. 关于symfony报错: Oops An Error Occurred ,The server returned a “500 Internal Server Error“

    symfony3.4 开发环境正常,生产环境访问任何路由都报错: Oops! An Error Occurred The server returned a "500 Internal Se ...

  9. Windows上,10分钟构建一个本地知识库

    这篇文章是我约新书<RAG应用实战>的一个样章,基于阿里云代码构建的一个本地RAG服务. 本地模型看代码注释,需要替换几行代码. 阅读本章时,已默认安装你的个人电脑上安装了Python 3 ...

  10. 【记录】Truenas scale|Truenas 的 SSH 服务连不上 VScode,终端能连上

    一般 Truenas连不上 就只有两种情况: 第一种:用户没对应用户目录.需要去用户管理里面对每个用户设置目录. 第二种情况,服务有个选项没勾选.这时会发现能输入密码但是一点反应都没有,打开detai ...