自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 S/4HANA for Customer Management里的搜索分页处理

这篇文章的英文版我发在了SAP Community上:Paging Implementation in S/4HANA for Customer Management https://blogs.sap.com/2018/03/28/paging-implementation-in-s4hana...

2018-03-31 09:54:13 311 0

原创 SAP Fiori里的List是如何做到懒加载Lazy load的

今天一同事问我这个问题:S/4HANA Fiori应用里的列表,一旦Scroll到底部就会自动向后台发起新的请求把更多的数据读取到前台显示。 以Product Master这个应用为例,我点击搜索之后,结果区域显示当前系统一共有140个product,但是只有前25个返回并显示在浏览器里。 ...

2018-03-31 09:53:11 320 0

原创 S/4HANA和CRM Fiori应用的搜索分页实现

在我的博客Paging Implementation in S/4HANA for Customer Management 我介绍了S/4HANA for Customer Management里采用WebClient UI技术实现的UI上的搜索分页实现。 那么S/4HANA和CRM里原生的Fi...

2018-03-31 09:52:08 149 0

原创 SAP S4CRM和C4C的技术比较

如果您对SAP S/4HANA for Customer Management(以下简称S4CRM)和SAP Cloud for Customer(以下简称C4C)不甚熟悉,那我建议您可以先浏览我之前写的这两篇微信公众号文章。 SAP的这三款CRM解决方案,您能区分清楚么 Hello Worl...

2018-03-31 09:51:12 1455 0

原创 那些年我用过的SAP IDE

在Google上根据关键字”程序员鄙视链”搜索,会得到68多万条结果。 玲琅满目的搜索结果里是众多不同维度划分的鄙视链。 其中有一个维度,就是编程工具的鄙视链,比如: 而我在SAP做的所有开发都用的是IDE而不是text editor,看来我也免不了处于鄙视链末端的结局了。 这篇文...

2018-03-24 17:03:03 836 1

原创 会说话的ABAP report

report z. INCLUDE ole2incl. DATA: ole TYPE ole2_object, voice TYPE ole2_object, text TYPE string. text = 'With the advent o...

2018-03-24 16:39:15 385 0

原创 如何使用ABSL代码调用Web service

需求:在C4C UI里创建web service(maintain ticket),然后通过ABSL代码消费。 1. 创建一个新的Communication Arrangement 基于Manage Tickets这个标准的Communication Scenario创建一个Communi...

2018-03-24 16:37:56 881 0

原创 CRM, C4C和Hybris的工作流简介

CRM的例子 Step by Step to debug IC inbox workflow WS14000164 C4C Custom recipient determination in workflow rule done on Account BO Automaticall...

2018-03-17 12:35:58 1263 0

原创 ABAP的语法高亮是如何在浏览器里显示的

这篇文章的原文我发表在SAP官方社区上:https://blogs.sap.com/2018/03/09/how-abap-syntax-highlight-is-implemented-in-webide-launched-via-browser/ 在S/4HANA里,我们现在能在浏览器里写A...

2018-03-17 12:35:08 205 0

原创 如何给VirtualBox虚拟机的ubuntu LVM分区扩容

我在VirtualBox安装的ubuntu里安装Cloud Foundry时遇到错误信息,磁盘空间不够了: 使用这三个命令做了清理之后,结果依然不够理想: (1) sudo apt-get autoclean(已卸载软件的安装包) (2) sudo apt-get clean(未卸载...

2018-03-17 12:34:35 235 0

原创 如何使用Putty登录安装在VirtualBox里的ubuntu

我是在Windows操作系统里用VirtualBox安装了ubuntu操作系统。 在VirtualBox里操作ubuntu的终端不是很方便,比如我想在Windows里复制一些命令到ubuntu的终端执行。而Putty默认即可支持这个跨系统的复制粘贴操作。VirtualBox无法调整conso...

2018-03-17 12:19:12 448 0

原创 ABAP宏的调试

我们都知道高级语言宏一般是无法调试的。但是ABAP的宏例外。 比如我写了下面一段宏,名为insert_table. 执行这段代码,调试器会在第23行停下来。 ABAP调试器里有个工具可以用于宏的调试,如下图: 双击之后,可看到如下调试界面: 按F5即可开始单步调试。 ...

2018-03-15 21:26:56 323 1

原创 如何将iso文件安装到VirtualBox里的ubuntu去

我在Window的virtualbox里安装了一个ubuntu: 默认情况下IDE Secondary Master是空的。 方法1:Devices->Insert Guest Additions CD Image: 成功之后IDE Secondary Master刷新如...

2018-03-14 16:58:53 659 0

原创 如何在ubuntu上安装virtualbox的driver module vboxdrv

干净的ubuntu安装完毕之后是没有vboxdrv这个driver module的。 新建一个folder jerry_virtualbox: 使用wget下载virtualbox安装包:https://download.virtualbox.org/virtualbox/5.2.8/...

2018-03-14 16:58:17 1240 0

原创 如何使用腾讯云提供的云主机

腾讯云网址:https://cloud.tencent.com/ 点击立即前往: 操作系统选择Ubuntu: 选择重置密码: 用户名默认是ubuntu: 下载PuTTY这个远程登录软件,host name输入腾讯云自动分配的IP地址,端口号22: 使用重置之...

2018-03-14 16:56:21 8253 1

原创 SAPGUI里实现自定义的语法检查

需求:在SAPGUI里点击这个语法检查的小图标或者直接按快捷键Ctrl+F2可以执行ABAP标准的语法检查。 如果需要实现SAPGUI里自定义的语法检查,比如,某团队强制要求应用程序类的每个方法的实现代码不能超过100行。如果超过,报下列的警告信息。 具体实现参考我的博客:https:...

2018-03-13 20:49:24 194 0

原创 ABAP git客户端

Jerry习惯把自己写的小程序放到自己的github上:https://github.com/i042416 对于写的ABAP程序,需要先把SAPGUI里的代码手动拷贝到本地,然后用git客户端push到github上。 但是其实可以直接在SAPGUI里通过一个ABAP实现的git客户端将...

2018-03-11 12:53:43 909 1

原创 ABAP和Java里关于DEFAULT(默认)机制的一些语言特性

ABAP 740的新语法: 上图的代码相当于: DATA: ls_data LIKE LINE OF it_data. READ TABLE it_data INTO ls_data WITH KEY object_ext = cl_crm_prodil_bo_names=&g...

2018-03-11 11:53:29 128 0

原创 如何在Chrome development tool里查看C4C前台发送的请求细节

我们可以在Chrome development tool的network tab里观察到从前台UI发送到后台的HTTP请求: 更多Chrome Development Tool的使用工具请查看我的博客Chrome Development Tool tips used in my daily wo...

2018-03-10 20:53:28 177 0

原创 在浏览器里使用SAPGUI里的SE80

效果如图:点击Fiori launchpad的SE80对应的tile: 即可在浏览器里打开SE80 具体步骤 (1). 在后台找到Fiori catalog page ID: SAP_FIORI_EXTENSIBILITY (2). 打开Open Fiori Launchp...

2018-03-10 20:52:42 594 0

原创 CRM订单状态的Open, In process和Completed这些条目是从哪里来的

Service Order的状态字段里的这些字段从哪里带出来的?我们可能会想当然的认为是从后台配的Status profile里带出来的。事实并非如此。 这个transaction type根本没有分配任何Status profile,但是仍然可以在UI上看到三个可选的状态值。 Sta...

2018-03-07 18:44:23 511 0

原创 如何证明CRM WebClient UI上的应用是有状态(Stateful)的

随便找一个在CRM WebClient UI里会被频繁调用到的函数,在函数里创建一个隐式增强,打印当前的会话ID。 不关闭浏览器,在浏览器里不断做操作,可以观察到不管做任何操作,每次断点出发后,打印出来的会话ID都相同。 每次触发打印出的会话ID都相同: 00015255FA163EE...

2018-03-07 18:43:44 101 0

原创 观察者模式在One Order回调函数中的应用

例如需求是搞清楚function module CRM_PRODUCT_I_A_CHANGE_ORGM_EC在什么样的场景下会被调用。当然最费时间的做法是设一个断点,然后跑对应的场景,观察断点何时被触发。也有另一种不通过调试的分析方法: 使用事务码CRMV_EVENT, 输入函数名称CRM_PR...

2018-03-07 18:43:06 87 0

原创 如何使用代码获得一个function module的Where Used List

如果要获得一个function module的Where Used List,我们通常用的办法是使用ABAP workbench里提供的功能。 where used list显示结果如下: 但我接到一个任务,在结果列表里还需要显示出使用了指定的function module的代码所属的...

2018-03-07 18:42:29 206 0

原创 如何用ABAP代码读取CDS view association的数据

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

2018-03-07 18:41:42 1065 0

原创 如何检查某个用户是否具有某个权限对象上定义的某种权限

比如下图这个ABAP development studi里创建的角色是为了实现CDS view DEMO_CDS_AUTH_LIT_PFCG的权限控制,里面使用到了权限对象S_CARRID. 假设现在我有一个需求:我想知道用户名WANGJER是否具有该权限对象的字段s_carrid的显示(03)...

2018-03-07 09:29:16 942 0

原创 如何从ERP下载Sales BOM到CRM

在ERP使用事务码CS01创建一个BOM,类型选择5 - Sales BOM: BOM的抬头维护material 1419,在BOM的component部分维护另外两个material 1421和1422。 保存BOM,会自动生成ID 2974,可以通过表MAST的字段STLAN查询。...

2018-03-07 09:28:34 227 0

原创 CRM product UI里assignment block的显示隐藏逻辑

我们在product overview page里能看到很多的assignment block。但是runtime的时候真正显示出来的内容只是configuration里面看到内容的一个子集。 Product category能够assign很多settype和relationship,...

2018-03-07 09:27:56 193 0

原创 ABAP OPEN SQL里OPEN CURSOR和SELECT的比较

OPEN CURSOR After the OPEN CURSOR statement, the database cursor is positioned in front of the first line of the result set. FETCH This statemen...

2018-03-07 09:27:07 677 0

原创 One Order行项目里Item Category是怎么计算出来的

One Order的行项目里有个字段叫Item Category,我们在行项目里加入一个product后,就会自动带出Item Category来。这个值是怎么计算出来的? 检查CRMD_ORDERADM_I,能发现后台OBJECT_TYPE字段存储的值为BUS2000130. Ite...

2018-03-06 11:16:25 281 0

原创 如何从ERP将Material的Batch信息下载到CRM

前提条件:必须先确保三个对象ATTRIBUTE, CLASS和OBJCL成功下载。可以到事物码R3AM1里查看,确保状态全部为Done。 (1) 在事物码MM02里,切换到视图classification,将class 023_03分配给Material: 在warehouse m...

2018-03-06 11:15:44 126 0

原创 CRM中间件里的发布-订阅者模式

从事务码SMW01里能观察到一个BDOC可能被发送往不止一个目的site去,比如下图所示的5个site都会收到该site,而高亮显示的SMOF_ERPSITE代表ERP系统QI3的client 504会接收到这个BDOC。 所以上图列表里的site是从哪里读取出来的? 以BDOCPRODU...

2018-03-06 11:14:33 126 0

原创 利用CRM中间件Middleware从ERP下载Customer Material的常见错误

使用事务码VD51和VD52创建和修改Customer Material。 下图是我在ERP创建的Material,为其维护了一个Customer Material AOP。 当下载到CRM后,在WebClient UI上显示如下: 下载Customer Material的主要配...

2018-03-04 21:51:21 186 0

原创 为什么使用中间件下载时总是收到警告消息Object is in status Wait

在使用中间件从ERP下载对象时,正常情况下应该看到如下提示消息: 然而有时遇到的是黄色的警告消息:Object is in status Wait. 如何自己排错呢?在函数SMOF0_INIT_DNL_START里设置断点。 使用SMOF0_READ_SMOFPARSFA查询系统参数MA...

2018-03-04 11:32:27 94 0

原创 CRM和ERP的Sales Organization的映射关系

在如下的配置里可以维护CRM和ERP的Sales Organization的映射关系。 例如,ERP的编号为0001的销售组织映射到CRM的编号为O 50040102的销售组织: 这种映射关系存储在表HRV1222A里,可以通过字段R3_SA_ORG查询: 其中CRM的Sales...

2018-03-04 11:30:49 175 0

原创 面试问题 - 只用位操作在ABAP里实现a+b

用ABAP实现下图的第五种整数相加算法: 实现代码: REPORT zint. PARAMETERS: a TYPE int4 OBLIGATORY DEFAULT 100, b TYPE int4 OBLIGATORY DEFAULT 100. DATA:...

2018-03-03 11:54:52 202 0

原创 Hello World, S/4HANA for Customer Management 1.0

SAP CRM的前世今生 在我之前的微信公众号文章 SAP的这三款CRM解决方案,您能区分清楚么我曾经提到过我作为成都SAP研究院CRM产品开发团队的一员工作过一段时间。 我向在SAP德国总部工作的德国老前辈们请教SAP CRM最早的版本是何时问世的,得到的答复是上世纪末本世纪初。 作为一个...

2018-03-02 22:17:49 226 0

提示
确定要删除当前文章?
取消 删除