控制ERP物料主数据通过Middleware传往CRM
先说一下优化过滤的必要性。
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的更多相关文章
- SAP物料主数据的屏幕字段控制,必输,隐藏
http://www.cnblogs.com/275147378abc/p/5699077.html 1.事务码MM01,把物料组设为选填字段. 2.找到物料组的屏幕字段. 3.在后台根据屏幕字段找到 ...
- 物料主数据批导bapi
创建物料主数据,根据模板不同批导原材料,半成品,成品.可根据实际需求对字段进行增删. report zmmr_bapi_mm01 no standard page HEADING. type-POOL ...
- SAP MM 物料主数据采购视图中的字段'Var. OUn'的作用?
SAP MM 物料主数据采购视图中的字段'Var. OUn'的作用? 物料主数据采购视图里有一个字段,叫做'Var. OUn'的, 如下图: 这个字段,笔者之前所参与的项目里,从来没有用过.所以,笔者 ...
- SAP MM01 创建物料主数据 [关注公众号后回复MM01获取更多资料]
操作内容 物料主数据,适用于所有有物料编码物料相关信息的系统维护 业务流程 新项目设计冻结后—M公司 PD用-物料编码申请表D-BOM Material Number Application部门内部 ...
- PP主数据-物料主数据
一.PP物料主数据:PP的物料主数据,是对应到系统的组织架构的,不同的组织层次,都有各自的主数据需要创建. (1),一般数据:一般数据是在集团层面的主数据,主要包括:物料编码.物料描述.辅助计量单位以 ...
- SAP MM 物料主数据MRP2 视图Rounding Value字段
SAP MM 物料主数据MRP2 视图Rounding Value字段 如下物料号,MRP2视图中,维护了rounding value字段值为50. MRP type :PD Lot size:EX ...
- SAP MM 物料主数据MRP2 视图’Minimum Lot Size’字段
SAP MM 物料主数据MRP2 视图’Minimum Lot Size’字段 如下物料号,MRP2视图中,维护了最小采购量为500. MRP type : PD Lot size: EX Minim ...
- SAP MM MM17里不能修改物料主数据'Purchasing Value Key'字段值?
SAP MM MM17里不能修改物料主数据'Purchasing Value Key'字段值? 记得在D项目上线之前数据导入系统之后,业务提出一些物料采购视图里的’Purchasing value k ...
- 「SAP 技术」SAP MM 物料主数据利润中心字段之修改
SAP MM 物料主数据利润中心字段之修改 近日,收到业务部门报的一个问题,说是MM02去修改物料的利润中心字段值,系统报错说物料库存存在,不让修改. 笔者查询了该物料的库存,当期库存并不存在.MMB ...
- 【MM系列】SAP MM-模块物料主数据简介
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM-模块物料主数据简介 ...
随机推荐
- Linux 实现OpenSSL 服务器端客户端通信
1.OpenSSL安装 详情参考博文:https://blog.csdn.net/qq_39521181/article/details/96457673 2.SSL 在学习openssl编程之前,先 ...
- linux 查看jdk安装路径
[root@iz2ze9ufq5ehrayz6j88saz bin]# java -version java version "1.8.0_191" Java(TM) SE Run ...
- Delphi 判断当前系统是否64位
uses Winapi.Windows; function IsWin64: Boolean; var IsWow64Process: function(Handle: THandle; var Re ...
- 基于AST实现国际化文本提取
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:霜序 前言 在阅读本文之前,需要读者有一些 babel 的 ...
- Vue的前端项目开发环境搭建
一.本机window端:安装Node.js,其实质性功能相当于,java的maven https://nodejs.org/en/download/ 二.本机window端:检查Node.js的版本 ...
- python调用QQ机器人向指定QQ发消息
暂时没想到这个能用来干什么,只是刚好看到相关文章,学习一下,就拿获取基金信息来做试验把 爬取基金的信息就不介绍了,请参考https://www.cnblogs.com/becks/p/14500495 ...
- C#访问注册表
注册表 .wiz-editor-body .wiz-code-container { position: relative; padding: 8px 0; margin: 5px 0; text-i ...
- 记一次 .NET某工控任务调度系统 卡死分析
一:背景 1. 讲故事 前段时间有位朋友加我微信,来了就要进我的训练营,并且附带着纠结了他几个月的一个疑难杂症,让我帮忙看下怎么回事,问题描述截图如下: 由于这个定时任务是 furion 写的,刚好这 ...
- dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
进行框架依赖发布的时候,应用程序需要有 dotnet runtime 运行时才能跑起来.在 dotnet 9 之前,通常都是需要安装到系统的 Program File 文件夹下的全局 dotnet 运 ...
- 基于Java Swing开发好看的皮肤
先介绍几款开源及商业的皮肤. Weblaf:非常赞的套件,界面现代.简约.依赖包较少. 有开源也有商业协议,个人最喜欢的皮肤.https://github.com/mgarin/weblaf PgsL ...