ABAP和Java里的单例模式攻击
面向对象编程世界里的单例模式(Singleton)可能是设计模式里最简单的一种,大多数开发人员都觉得可以很容易掌握它的用法。单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。然而在某些场景下,这种设计模式的单例特性会被破坏,看下面这个例子:代码的第三行,这个ABAP类实现了接口if_serializable_object,这意味着它可以被关键字CALL TRANSFORMATION进行
介绍一种在ABAP内核态进行内表高效拷贝的方法,和对应的Java和JavaScript版本的伪实现
内表操作是ABAP开发人员几乎在每个ABAP程序里都会遇到的。看一个例子:有两个行结构不一样的内表,每个内表的行结构有三列,除了name这一列名字一致外,其他两列的名称都不同,下图用红色和蓝色标注出来。如果要把内表developer_list里的两位开发人员Jerry和Tom的信息按照下图的映射关系拷贝到内表presale_list里:常规做法当然是用一个LOOP循环,引入两个临时变量,先把内表1
我与SAP成都研究院吴院长的二三事
这几天Jerry没怎么看手机,今天才注意到,昨天SAP中国研究院公众号上发布了一篇文章:SAP高管说: 体验经济时代下的SAP客户体验。仔细一看,这不是咱SAP成都研究院的吴院长么。在今年没有发生部门架构变化的很长一段时间里,吴院长都是Jerry的直接领导,因此本文想和大家聊一聊吴院长的另外一面。在SAP中国研究院的文章里,有一个视频,大家可以从中获取吴院长(也是吴博士,好像是火箭飞行器制造专业的
CRM, C4C和SAP Hybris的数据库层设计
SAP的product都是DB provider无关的。CRM大家都很熟悉了,application developer最多用Open SQL直接操作表。Netweaver里支持的DB provider在这张表的DBMS里能看到:C4C的application developer 在ABAP后台的workbench里指定BO node的persistence table。HybrisHybris里
SAP开源的持续集成-持续交付的解决方案
SAP开源的持续集成/持续交付的解决方案:(1) 一个叫做piper的github项目,包含一个针对Jenkins的共享库和一个方便大家快速搭建CI/CD环境的Docker镜像;(2) 一套SAP CI/CD最佳实践指南;实际使用场景中具体选择哪种方案?参考图四表格piper地址:https://sap.github.io/jenkins-library/SAP CI/CD最佳实践地址:https
SAP ABAP的CI/CD解决方案
如今国外很多partners已经在尝试Jenkins + abapGit + 公有云搭建ABAP CI/CD环境了。ABAP系统的改动通过abapGit提交,触发Jenkins上部署的命令行脚本,脚本调用restful API远程执行ABAP系统的ATC检查并以报表形式显示结果。本来ABAP Netweaver系统同Jenkins服务器是割裂开的,通过ABAP系统上安装的abapGit和公网上的g
昨日万圣节ABAP怪兽级代码谜团,公布答案啦
首先非常感谢大家在周末还抽出宝贵的时间耗在Jerry昨天发布的文章 一段让人瑟瑟发抖的ABAP代码 上面。虽然Jerry在文末开玩笑的声称,只有文章阅读量上千或者评论数超过50,才公布答案。其实这只是Jerry的玩笑,因为正如Jerry在之前一篇文章 5000粉丝数达成,感谢大家一如既往的支持 里提到,在微信自媒体泛滥的今天,大家能够在众多公众号中关注汪子熙公众号,并抽出时间来阅读Jerry或一本
一段让人瑟瑟发抖的ABAP代码
昨天11月1日是万圣节,Jerry在继续忙着调研SAP Commerce Cloud里的产品主数据管理。晚上回家到SAP国外的社交媒体上一看,好热闹啊。国外的SAP从业者们纷纷以各种各样的方式庆祝万圣节。西方的万圣节也是一个历史悠久的节日了:早在两千多年前,欧洲基督教会就把每年的11月1日定为“天下圣徒之日”(All Hallows' Day)。这一天被看作是夏天正式结束之日,也就是新年伊
"Oracle要对Java收费了,SAP基于Java技术栈的那些产品的客户怎么办"
今年年初的时候,所谓“Oracle要对Java收费”的新闻,在网上传得沸沸扬扬。这个新闻被专业人士视为标题党,而国内众多技术论坛,比如知乎社区上,有很多大神对“Java收费”这个说法做出了非常专业的解读,Jerry这里就不班门弄斧了,Bing搜索引擎根据“Oracle Java收费”的关键字搜索,第一条搜索结果就值得阅读。Jerry本文想扫盲的重点,是介绍JDK,Oracle JDK, Open
如何通过Restful API的方式读取SAP Commerce Cloud的Product图片
需求:我在SAP Commerce Cloud的backoffice里给某product维护了一些图片:分别位于Normal,Thumbnails和Others等字段:现在我想通过Restful API的方式,给定一个product code,读出这个product维护的image数据。api endpoint: https://<host>/rest/v2/electronics/p
如何通过Restful API的方式读取SAP Commerce Cloud的Product Reference
从SAP官网上找到api的说明:https://api.sap.com/api/commerce_services/resourceapi endpoint: /rest/v2/electronics/products/I042416/references其中referenceType参数的值从枚举类ProductReferenceTypeEnum里获得:下图是Hybris commerce On
grant_type为client_credentials和password二者的区别
最近工作中需要使用到oauth,注意到oauth客户端的grant_type值可以指定为client_credentials和password两种,很好奇所以网上搜索了一下,发现stackoverflow上一个帖子:https://stackoverflow.com/questions/34842895/difference-between-grant-type-client-credential
利用ABAP 740的新关键字REDUCE完成一个实际工作任务
ABAP 740从2013年发布至今已经过去很长的时间了,下面这张图来自SAP社区博客:ABAP News for Release 7.40 – What is ABAP 7.40?图中的ABAP 8.0, 即现在的SAP Cloud for Customer和Business By Design后台使用的ABAP版本NGAP - Next Generation ABAP Platform,里面存
使用代码列出金庸小说中使用过的所有成语
去年的今天,金庸与世长辞,当时Jerry在成都地铁一号线下班的路上得知了这个消息,回到家立即写了一篇文章来悼念:金庸的武侠世界和SAP的江湖。一年的时间转瞬即逝,大家都忙碌于各自的生活,很多人对金老的离世已经淡忘了,不过Jerry这种金庸的死忠粉,对于这个一周年忌日还是记得很清楚的。因为Jerry手上事情很多,没时间在这个特殊的日子写文章纪念了,就发一小段代码吧。需求:列出金庸任意一本小说里出现的
如何在backoffice里创建Hybris image container以及分配给product
登录backoffice,在media container视图点击新建按钮:Catalog选择Product Catalog:在Properties界面,可以选择media实例放入该container:同步到online catalog:同步之后,就可以把这个media container分配给product了:在product的Administration标签页,Gallery images字段
Hybris做增强的两种方式:In App Extension和Side by Side Extension
传统的扩展方式,即In-App增强方式,Hybris开发顾问通过Extensions的方式进行二次开发,生成的Custom Extensions同Hybris标准的Extensions一起参加构建,构建结束后新功能方可使用。在构架过程中,Hybris实例暂时无法访问(down time)。这种方式允许Hybris顾问以较高的灵活度在Custom Extensions里编写代码来实现增强需求。借助S
如何在Hybris commerce里创建一个media对象
进入backoffice的Media中心,首先新建一个文件夹,用于存放即将创建的media对象:取名为jerryimage:然后创建一个新的media对象,取名jerryproductimage:上传图片:选择这个media对象存放的文件夹:从staged catalog同步到online catalog:同步成功:要获取更多Jerry的原创文章,请关注公众号"汪子熙":
hybris backoffice创建product遇到的synchronization问题和解答
我从product DSC-H20_MD clone了一个新的product,code为DSC-H20_MD1因为它的状态有个红灯:所以我点了这个sync按钮:结果报这个错:之后这个clone出来的product就无法从backoffice里搜索到了。请教一下这种情况该如何解决呢?后台这个clone出来的product也无法从product表里读取出来了:Jerry请教了兄弟团队的Hybris专家
hybris commerce storefront的产品搜索功能
在Hybris Commerce Cloud的storefront的搜索栏键入一些字母,每次键入,会触发一个发送到后台的http请求实现live search的功能:http url如下:https://<host>/electronics/en/search/autocomplete/SearchBox?term=DSC-H20_MD注意我们键入的是产品名称,而非产品code,后者只
那些年伴我一起成长的SAP装备
今天这篇文章无关技术,我们来聊聊SAP装备,即打上了SAP logo的那些物品。但凡在SAP圈子工作过一段时间的从业者们,手上或多或少都拥有一些此类装备。Jerry当然也不例外,这些装备无论物品本身实际价值的高低,我都会把它们当成是对我在某个领域持续努力或者某个阶段取得了一些小成果的肯定,都会倍加珍惜。如果要让Jerry在拥有的众多SAP装备里挑选出一件对我的成长帮助最大的,那Jerry毫无疑问会