利用CRM中间件Middleware从ERP下载Customer Material的常见错误
使用事务码VD51和VD52创建和修改Customer Material。
下图是我在ERP创建的Material,为其维护了一个Customer Material AOP。
当下载到CRM后,在WebClient UI上显示如下:
下载Customer Material的主要配置:
- 通过表KNMT的字段KUNNR指定待下载的Customer ID:
- 将ERP的Material 1427先下载到CRM
常见错误
- 错误消息Number not in interval XXX - XXX when downloading a customer from ERP
- 错误消息Number not in interval XXX - XXX when downloading a customer from ERP
这个错误是试图从ERP下载上图编号为3471的Customer。
错误消息:
为什么错误消息里提到的interval是0000300000 - 0000399999?
当ERP的Customer被下载到CRM时,会创建一个对应的Business Partner的实例。
在这个例子里,通过调试方式得知CRM创建Business Partner时使用的Partner group为0002:
查看0002对应的number range设置为07:
而07对应的interval即为错误消息里提到的范围:
解决方案:把0002对应的number range改为03
- 错误消息Form of address 0001 not designated for organization
- 错误消息Form of address 0001 not designated for organization
通过调试CRM_BUPA_MAIN_VAL,发现错误消息在第34行抛出:
虽然这个Customer实例被判定成一个Organization(因为category字段为2),但是PERSON的字段被置位,而不是ORGANIZATN字段,因此出现这个错误消息。
解决方案:
在ERP事务码SM30里,打开view V_TSAD3,把0003标记为Organization:
然后把Customer 3471的title从Ms改成Company:
之后即可成功下载。
- Customer classification 06 does not exist
通过调试发现该错误信息是下图第22行抛出的,因为在表crmc_classif里找不到对应的配置项:
- Customer classification 06 does not exist
可以在Define Customer Class里维护这个配置表:
在我的系统里,没有06这个classification对应的配置项。
首先要搞清楚代码里的这个06从哪里来的?
在BAPI_CRM_SAVE里设置断点,在调试器里把变量BAPISTRUCTURES的内容下载到本地,用excel打开,搜索关键字06,发现06出现在结构BSS_S040:
然后对这个结构使用"where used list",发现classification的数据来自KUKLA.
classification是在ERP Customer维护界面的Marketing项维护的:
在Define Customer Classification维护:
解决方案:要么像上图所示在CRM里维护06对应的classification,要么将ERP里对应的字段设置为空。
- Tax number category does not exist
- Tax number category does not exist
错误消息由于表tfktaxnumtype中没有查到US5对应的配置项,所以在第32行报了错误消息:
下一步需要搞清楚为什么US5会被查询到。通过调试,发现US5和JERRY都是从ERP传过来的:
解决方案:要么在CRM里为US5维护对应的Tax category,要么清掉ERP的Tax number 5这个字段.
- Distribution channel is not allowed for sales organization
通过调试发现错误消息在CRM_PR_SALES_CHECK_DISTR_CHAIN里抛出,原因是因为CRM Sales organization O 50040102和distribution chain 01没有找到对应的ERP端的匹配项.
- Distribution channel is not allowed for sales organization
错误消息在第71行抛出:
当我查看内表st_distr_chains时,发现O 50040102只有Channel 10的组合,而缺少01的组合。
解决方案:使用事务码PPOMA_CRM添加缺少的distribution channel 01组合以及所有的division 00, 01和07:
然后执行HRBCI_ATTRIBUTES_BUFFER_UPDATE来更新表CRMD_ORGMAN_TEMP:
确保缓存表里能看到期望的O 50040102拥有的distribution channel和division的组合。错误消息得以解决。
- Parent not O.K.: BUPA_MAIN
- Parent not O.K.: BUPA_MAIN
原因: CUST_MAT_INFO这个下载对象有三个父下载对象。
如果这三个对象有一个下载失败,则无法进行CUST_MAT_INFO的下载。技术上说,就是这三个parent对象在表SMOFDSTAT的对应记录的列DNL_STATUS必须为内容D-done。
在我的例子里,Material对象的状态为A-aborted.因此必须先修复Material下载的错误。
- sales area is not assigned for the header product
错误在CRM的COM_IL_PRDSCP_CHECK抛出:
因为这个product是从ERP下载的,我们不能在CRM端手动为其维护Distribution Chain:
回到ERP,检查表MVKE,发现其实Sales Organization 0001和渠道01已经正确地维护到了这个product上。
再回到CRM,检查ERP的Sales organization和渠道的组合0001-01是否在CRM端维护有对应的映射关系。 当我使用事务码PPOMA_CRM维护了缺失的映射关系后,
重新进行一次下载,此时能观察到Sales Area这一次被成功下载了:
之后也能在CRM UI上看到成功下载的Sales Area相关内容。
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙":
利用CRM中间件Middleware从ERP下载Customer Material的常见错误相关推荐
- 使用SAP CRM中间件从ERP下载Customer的错误消息:Customer classification does not exist
After I create a customer in ERP via tcode VD01 and try to download it into CRM via request download ...
- 如何使用SAP CRM中间件下载customer material数据
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
- python通过url下载文件不可读_python-selenium实现的简易下载器,并常见错误解决
简易下载器的实现 支持代理.失败重试.确保包含指定ID元素(可根据需求自定义修改) # coding: utf-8 from Utils import logging from bs4 import ...
- Jerry Wang的CRM中间件培训 Middleware
第一讲 - CRM中间件Middleware结构设计 第二讲 - 如何在CRM系统进行Customizing download 第三讲 - CRM系统的initial download 第四讲 - P ...
- 三十八、Scrapy 下载中间件Middleware
@Author:Runsen 文章目录 1. Spider 下载中间件(Middleware) 2. 激活一个下载DOWNLOADER_MIDDLEWARES 3. 编写你自己的下载中间件 4 使用代 ...
- 如何从ERP下载Sales BOM到CRM
在ERP使用事务码CS01创建一个BOM,类型选择5 - Sales BOM: BOM的抬头维护material 1419,在BOM的component部分维护另外两个material 1421和14 ...
- 框架下载_25. Scrapy 框架-下载中间件Middleware
1. Spider 下载中间件(Middleware) Spider 中间件(Middleware) 下载器中间件是介入到 Scrapy 的 spider 处理机制的钩子框架,您可以添加代码来处理发送 ...
- python middleware模块_详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击...
一.在django后台处理 1.将django的setting中的加入django.contrib.messages.middleware.MessageMiddleware,一般新建的django项 ...
- 给用过SAP CRM中间件的老哥老姐们讲讲SAP CPI
最近Jerry由于项目需要,又得学习一个新工具:SAP Cloud Platform Integration,简称CPI,以前又叫做HCI - HANA Cloud Platform Integrat ...
最新文章
- 机器学习系列16:机器学习系统设计
- 80网口打印机ip固定工具_网络打印机端口用名称好是还是IP好?
- linux常用命令(1)帮助命令man使用
- OpenCV方向梯度直方图HOG的实例(附完整代码)
- 开发中关于Fragment异常的两个问题
- swift加密_如何使用Swift和Laravel创建加密跟踪应用程序的后端
- [HDU 4842]--过河(dp+状态压缩)
- [剑指offer] 66. 机器人的运动范围
- Python考试题库(含答案)
- ARKit之路-射线检测
- eclipse SWT 中实现工程图标最小化到托盘,并只能右键托盘图标选择关闭
- 超级电脑可下载人类思想 究竟是福是祸?(
- 用Chrome浏览器模拟手机,android,iphone,ipad访问网站
- 暗组免杀php,那些强悍的PHP一句话后门
- js 截取指定字符后面/前面的所有字符串
- 线程的 run() 和 start() 有什么区别?
- 如何依靠副业赚钱,应对人到中年的职场危机
- 站长必懂!什么是CPM、CPC、CPA、CPR?
- 能力成长模型(转自阿里梁飞老师博客)
- 算法工程师 -常见面试题
热门文章
- 文献记录(part61)--基于不完备数据聚类的缺失数据填补方法
- 机器学习中的不平衡分类方法(part6)--支持向量机
- python观察日志(part11)--管道及MD5文件比较
- MYSQL必知必会学习笔记(二)
- webrtc java api_WEBRTC--简单入门实例
- 云原生应用程序运行时 Kyma 的主要特性介绍
- SAP 电商云 Spartacus UI 点了 Shipping Method 之后的执行逻辑
- RxJs fromEvent 工作原理分析
- ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别
- SAP Spartacus里的登录token处理