- 浏览: 1079285 次
- 性别:
- 来自: 成都
-
最新评论
-
cs6641468:
检查每个Java版本特有的class是一种思路,你这个例子是, ...
如何通过Java代码判断当前的环境是否支持JRE 9 -
JerryWang_SAP:
aa00aa00 写道看见了我的影子哈哈,厉害
SAP成都研究院的体育故事 -
aa00aa00:
看见了我的影子
SAP成都研究院的体育故事 -
柳絮飞祭奠:
666111
让SAP云平台上的Web应用使用destination服务 -
JerryWang_SAP:
masuweng 写道这是java代码吗?您好,都是JavaS ...
CRM WebClient UI的浏览器打印实现
文章列表
UI5
UI5使用Association和Aggregation描述控件之间的关系。
Aggregation:parent和子控件在lifecycle上存在依赖关系:
When a ManagedObject is destroyed, all aggregated objects are destroyed as well and the object itself is removed from its parent. That is, aggregations won't contain destroyed objects or null/undefined.
比如UI5 ...
UI5
例如我需要在controller的onShowHello里通过MessageToast弹一个消息显示在UI上,
我需要先定义我自己的controller,该controller extend自UI5标准的controller module,路径为sap/ui/core/mvc/Controller, 而为了调用MessageToast的show方法,也必须先拿到MessageToast的实例。所以UI5里使用sap.ui.define去加载这两个依赖的module,加载完成后,会调用应用开发人员传入的回调函数,加载的两个module的内容作为两个输入 ...
我们在product overview page里能看到很多的assignment block。但是runtime的时候真正显示出来的内容只是configuration里面看到内容的一个子集。
Product category能够assign很多settype和relationship,每个settype和relationship都对应一个UI view.
runtime的时候,我们会根据product category找到上面assign的settype和relationship,再把对应的UI以assignm ...
OPEN CURSOR
After the OPEN CURSOR statement, the database cursor is positioned in front of the first line of the result set.
FETCH
This statement extracts the requested rows (using the addition INTO or APPENDING) from the results set of the database cursor from the current cursor position and ass ...
One Order的行项目里有个字段叫Item Category,我们在行项目里加入一个product后,就会自动带出Item Category来。这个值是怎么计算出来的?
检查CRMD_ORDERADM_I,能发现后台OBJECT_TYPE字段存储的值为BUS2000130.
Item Category Determination的配置:
前提条件:必须先确保三个对象ATTRIBUTE, CLASS和OBJCL成功下载。可以到事物码R3AM1里查看,确保状态全部为Done。
(1) 在事物码MM02里,切换到视图classification,将class 023_03分配给Material:
在warehouse management视图中,确保Batch management处于选中状态。
从事务码SMW01里能观察到一个BDOC可能被发送往不止一个目的site去,比如下图所示的5个site都会收到该site,而高亮显示的SMOF_ERPSITE代表ERP系统QI3的client 504会接收到这个BDOC。
所以上图列表里的site是从哪里读取出来的?
以BDOCPRODUCT_MAT为例,在视图SMW3FDBDOC里维护回调函数:
第一个回调SMOH_REPLICATION_WRAPPER_MSG负责决定需要从CRM将该BDOC发送到哪些site去。
这个回调是自动生成的:
使用事务码VD51和VD52创建和修改Customer Material。下图是我在ERP创建的Material,为其维护了一个Customer Material AOP。
当下载到CRM后,在WebClient UI上显示如下:
下载Customer Material的主要配置:
通过表KNMT的字段KUNNR指定待下载的Customer ID:
在我的博客Paging Implementation in S/4HANA for Customer Management 我介绍了S/4HANA for Customer Management里采用WebClient UI技术实现的UI上的搜索分页实现。
那么S/4HANA和CRM里原生的Fiori应用,其搜索分页又是如何实现的?
这篇博客分别选取S/4HANA里的Product Master,以及CRM里的My Opportunities这两个应用为例来介绍。
S/4HANA Fiori应用的搜索分页实现
点击搜索按钮之后,默认返回前25个命中的product,同时显示总共命中的p ...
今天一同事问我这个问题:S/4HANA Fiori应用里的列表,一旦Scroll到底部就会自动向后台发起新的请求把更多的数据读取到前台显示。
以Product Master这个应用为例,我点击搜索之后,结果区域显示当前系统一共有140个product,但是只有前25个返回并显示在浏览器里。
这个分页效果是UI5 OData的参数实现的:$skip=0&top=25。
而总数140,是通过参数$inlinecount实现,其原理和ABAP Open SQL的SELECT COUNT(*)类似。
从Chrome开发者工具能观察到头 ...
在使用中间件从ERP下载对象时,正常情况下应该看到如下提示消息:
然而有时遇到的是黄色的警告消息:Object is in status Wait.
如何自己排错呢?在函数SMOF0_INIT_DNL_START里设置断点。
使用SMOF0_READ_SMOFPARSFA查询系统参数MAX_PARALLEL_PROCESSES,在我使用的系统上配置为5,意味着最大只允许有5个工作进程用于中间件下载。
下列代码107到115行负责计算还剩余多少可用的工作进程用于中间件下载。计算结果存储于第115行的变量gv_open_processes ...
在如下的配置里可以维护CRM和ERP的Sales Organization的映射关系。
例如,ERP的编号为0001的销售组织映射到CRM的编号为O 50040102的销售组织:
这种映射关系存储在表HRV1222A里,可以通过字段R3_SA_ORG查询:
其中CRM的Sales Organization的编号存储在字段OBJID里:
这个表存放的内容是CRM产品同名settype COM_TA_R3_ID对应的业务数据。
表里的数据从来源上分两类:
1. 直接创建自CRM系统的相关数据
2. 从ERP下载的相关数据,如设备(equipment)
第一类的例子如下图:
字段R3SER_NO存储的序列号内容。
这个序列号在WebClient UI的ERP Identification处维护:
在中间件事务码R3AC1可以为一个中间件的适配器对象维护Block size的大小。
以上图的尺寸为50为例,假设在ERP系统里有110个设备(equipment)需要下载,那么CRM中间件会自动生成3个inbound队列执行下载任务,其中2个队列各下载50 ...
我们有时候会在中间件的事务码SMQ2即Inbound队列查看器里观察到以CSA开头的队列:
这些队列的作用是什么呢?在SAP community上已经有很多朋友提出了相同的问题,也有专家在下列两个连接里给予了解答:
http://scn.sap.com/thread/2056716
http://scn.sap.com/thread/2079157
简单地说,每次CRM系统里的object发生修改后,如果该object在后台配置里被设置为需要将其修改同步到其他的接收方,则会自动生成这些CSA队列,通过这些队列把修改同步到其他接收方。
...