刚刚过去的SAP TechEd上,SAP CTO Juergen Mueller向外界传递了一个重要的信息:身处云时代大环境下的SAP从业者,在SAP云平台上该如何选择适合自己的开发方式? Juergen Mueller用了一棵决策树来向大家介绍,对于拥有不同开发技能水平的SAP从业者,可以按照这棵树,根据自身情况和项目需要来选择不同层次和组合的开发工具以及编程模型. 上图右边的分支表明,如果不想抛弃已经习得的ABAP开发技能,可以选择SAP云平台上的ABAP编程环境:反之,如果青睐nodejs…
Jerry之前的文章30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用 发布之后,有朋友问我,"没错, 我是在你的文章里看到了Fiori应用的界面,可是这个Fiori应用的源代码我在SAP云平台上什么地方能看到呢?这个Fiori应用部署之后的状态,我在哪里能够查看呢?" 这位朋友的发问非常有力,实际上,Jerry前一篇文章,离Fiori应用的开发和部署这个目标还有一半的距离.我们回忆下当时是如何基于开发完成的Restful ABAP Pr…
2016年时,Jerry曾经写过一系列关于SAP Fiori Smart Template(现在更名为Fiori Elements了)的博客,介绍了所谓的MDD开发方法论 - Metadata Driven Development,即通过开发维护了对应annotation(注解)的CDS view,结合SAP WebIDE,能够花费最少的编程代价,就能够在短时间内获得一个支持增删改查的Fiori应用. 这个系列的博客集可以在Jerry这篇公众号文章里获得:Jerry的通过CDS view + S…
用ABAP Development Tool登录SAP Cloud Platform ABAP编程环境后,对ABAP项目点击右键,选择属性,从而找到该环境的web访问的url: https://325df18f-0b6b-4d85-a127-ee6ad7437a7c.abap.eu10.hana.ondemand.com 登录web界面,实际上是一个Fiori UI,点击tile Maintain employee: 新建一个employee: 维护email地址: 给其维护业务角色: 要获取更…
Stefan Hagen在博文SAP Cloud Application Studio Performance Best Practices里介绍了在C4C里使用Cloud Application Studio进行ABSL编程的一些性能方面的最佳实践. 文章里提纲挈领地给出了一些guideline.这里提供一些具体的例子. 如何批量调用BO action 不好的例子: 第一行和第四行有两个循环,然后在第二次循环里调用一个比较耗时的ServiceRequest BO的item 节点上定义的标准ac…
相信通过Jerry的前一篇文章 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用,想必大家对Restful ABAP Programming模型已经有了一个最基本的了解吧? 简单回忆一下,我们在前一篇文章里,在SAP云平台ABAP编程环境里创建了一个Z表,然后基于这张自定义数据库表创建了CDS view,基于该view创建Service Definition,把view暴露成服务,然后通过Behavior Definition实现对Z表的增删改查…
Jerry的Restful ABAP Programming模型介绍系列的前两篇文章: 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用 Jerry带您了解Restful ABAP Programming模型系列之二:Action和Validation的实现 今天咱们来聊聊SAP云平台ABAP环境上的调试问题. Jerry在SAP社区上写了600多篇博客,阅读量最高的大概要算下面这篇写于2013年的文章:Six kinds of debuggin…
Jerry从2018年底至今,已经写了一系列关于SAP Kyma的文章,您可以移步到本文末尾获得这些文章的列表.Kyma是SAP开源的一个基于Kubernetes的云原生应用开发平台,能够允许SAP的partners以简捷而现代的方式,对SAP的云解决方案和传统On Premises产品进行连接,集成和扩展.所谓"现代",即partners在进行二次开发时,可以充分利用近些年来企业级开发领域不断涌现出的新技术,比如Serverless计算,微服务架构等等. Kyma是完全开源和免费的,…
出于工作需要,Jerry写了这篇文章,给某些Partner做参考. 以前Jerry曾经介绍过SAP C/4HANA的五朵云到底包含哪些具体产品,其实在SAP官网上有更权威的中文解释: https://www.sap.com/china/products/crm-commerce/c4-hana-cx-suite.html 其中明确提到销售云包含SAP Cloud for Customer(C4C),SAP Revenue Cloud和Callidus Cloud. 有Partner询问有没有更详…
登录SAP Cloud Platform integration tenant,点击Edit图标: 创建一个新的Content package: 保存content package后,点击artifacts标签页,此处创建integration flow: 点击Add,选择integration flow: 保存: 然后就可以进行iFlow的编辑了: 创建sender channel:把integration flow切换成编辑模式,点击这个箭头,把它拖到Start图片位置: Adapter类型…
SAP成都研究院的一个部门领导让我给他的团队做一个SAP CRM One Order框架的培训,这是我准备的培训内容. 在Jerry之前的文章 基于SAP Kyma的订单编排增强介绍,我表达了自己对SAP应用的理解:模型以及基于模型的增删改查.只是同我们大学专业课学习时完成的家庭作业相比,SAP模型的复杂程度增加了好几个数量级. 和传统的增删改查相比,以订单编排领域为例,SAP订单模型的"增",还需要考虑实际业务流程中各种类型的前置和后序订单,即SAP使用的术语 文档流(Documen…
SAP Cloud for Customer的销售订单创建页面里,我们可以给一个订单维护External Note,当这个订单同步到S/4HANA生成对应的生产订单后,这个note可以作为备注提示生产工人. 它的建模逻辑是: 首先进入调试模式,查看到这个字段绑定到UI模型的TextCollection/CustomerInformation上 然后进入Cloud Application Studio,找到UI模型这个字段,查看发现它又绑定到了BO的TextByTextTypeCodeAndLan…
今天的文章来自Jerry的同事,SAP成都研究院C4C开发团队的开发人员徐欢(Xu Boris).徐欢就坐我左手边的位置,因此我工作中但凡遇到C4C的技术问题,一扭头就可以请教他了,非常方便.下图是他办公室的桌面. Jerry前一篇文章 SAP产品的Field Extensibility 以SAP CRM和SAP S/4HANA为例,介绍了SAP产品Field Extensibility的设计原理与实现.现在由徐欢继续Extensibility这个话题,向您介绍SAP Cloud for Cus…
首先进入SAP Cloud for Customer的Administration的工作中心,打开General Settings视图,进入Event Notification配置UI: 新建一个C4C OData事件和API的消费者: 类型选择SAP Cloud Platform Extension Factory,即Kyma: 这个Remote Environment URL从哪里来呢?就是SAP Kyma应用里的Application Connector对应的url: 即这个url: 维护…
SAP Cloud for Customer的Sales工作中心里有Sales Quote和Sales Order两个视图,一个用于销售报价单,另一个用于销售订单. 流程上是先有报价单 ,报价单是一份OFFER,并不具备法律效力,只有在生成销售订单后,即买卖双方都对报价单上的内容进行一些协商后,达成一致生成的最终订单,才具有法律效力. 现在我需要搞清楚Sales Order这个视图的UI是基于哪个Business object创建的. SAP C4C的UI都是基于MVC pattern设计的,首…
大家好,今天的文章来自我的同事,Yang Joey. 2017年7月,SAP成都研究院C4C开发团队刚刚建立.某个周一早晨的Scrum meeting,新出现一位眉清目秀的小伙子,向大家自我介绍:"大家好,我叫杨xiao". 我一听,哇塞,和明教光明左使杨逍同名.对于八零后武侠爱好者来说,94版倚天屠龙记中孙兴饰演的杨左使潇洒飘逸,孤傲自负且颜值爆表.连金庸看了之后都评价"孙兴的杨逍源于原著,但胜于原著".相信杨逍是很多少女的梦中情人. 杨逍年轻时的武功,金庸通过灭…
最近Jerry接到一个原型开发的任务,需要在微信里调用ABAP On Premise系统(SAP CRM On-Premise)里的某些函数.具体场景和我之前的公众号文章 Cloud for Customer和微信集成系列教程 描述的场景类似. 区别之处在于Cloud for Customer(C4C)是一个云解决方案,其OData Service/Web Service能够直接被Internet网络上的其他应用消费.而我最近要做的原型开发,需要消费的函数位于部署在Corporate Netwo…
今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva了,SAP成都C4C开发团队中其他同事评价她为:"美腻与智慧的化身","云时代女王","是大家前沿技术的引路人".因为Jerry和Aviva就在一个组,所以我的看法是,这些评价都实至名归. 比如Jerry了解到的Javascript 3D渲染,增强现…
一.需求背景: 公司内部老项目微服务技术栈使用Dubbo, 新项目技术栈使用主流的Spring Cloud相关组件开发,新旧项目涉及交互调用,无法直接通信数据传递. 老项目基于Dubbo,重构代码升级使用Spring Cloud,改造升级要求成本最低,不影响现有系统运行. 二.Dubbo和Spring Cloud 的比较 首先Dubbo是一个分布式服务框架,以及SOA治理方案.它的功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等,它是著名的阿里服…
在SAP Cloud for Customer的Customers工作中心里,有三个视图:Accounts,Contacts和Individual Customers. 这三种主数据的区别是什么?我们可以从它们后台的BO模型开始分析. Account视图的UI模型: /BYD_COD/SalesOnDemand/Account/UI/COD_Account_TI.TI.uicomponent 后台BO为Customers: 再看Contact视图: Contact: 后台BO:BusinessP…
什么是GCM? Google Cloud  Messaging (GCM) 是Google提供的一个服务,用来从服务端向安卓设备发送推送通知. GCM分为客户端和服务端开发. 这里我们只介绍服务端开发.其实过程非常简单,只需利用PHP发送POST数据. 有两个关键地方需要获得一个是API Key 一个是Device ID 这个可以从安卓客户端开发者获得. class GCM { public $api_key = "AIzaSyAU3wZs9raik-mHQ"; function __…
BAPI (Business Application Programming Interface) 原文:http://www.cnblogs.com/qiangsheng/archive/2007/12/22/1010333.html Business Application Programming Interfaces or BAPIs are interfaces within the business framework to link SA´Ps components to one a…
使用Meshlab软件将点云(Point Cloud)转换为模型(Mesh) 启动Meshlab软件: 导入.ply点云文件: 接着点击: 弹出一个右侧边栏: 接着,计算每个点的法线: 输入100,点击Apply,运行完成,点击Close 现在,进行曲面重建: 不用管第一个文本框,第2个文本框里面,调为1.0.点击Apply,运行之后点击Close,关闭这个对话框. 现在你可以看到,右边栏中的Faces项的值已经不是0了: 但是现在还没有出现效果.怎样做能看到曲面重建后的模型的效果呢: 点击这里…
SAP Cloud for Customer(本文以下简称C4C)作为SAP新一代的CRM云产品,其Price功能实现虽不如以前的SAP ERP那么复杂,但是也能满足企业运作中各种Price需求. C4C的price分为内部计费和外部计费两种,即Internal Pricing和External Pricing. Internal Pricing涉及到的工作中心:主要有下图中蓝色高亮的Price Lists和Discount Lists两个. C4C计算一个Sales Order / Sales…
经常有顾问朋友们问我想自学C4C,有什么好的资料. SAP内部确实有一些C4C培训材料,但是不能散布到公司外部. 想学习C4C,还是得到SAP官网网站上查找资料. 1. 登录https://help.sap.com, 搜索栏里输入cloud for customer: 在搜索结果里选择"SAP Cloud for Customer"即可. 进入明细页面,即可点击对应的链接开始学习. 比如上图的SAP Cloud for Sales和SAP Cloud for Services,就是SA…
关于机器学习这个话题,我相信我这个公众号1500多位关注者里,一定有很多朋友的水平比Jerry高得多.如果您看过我以前两篇文章,您就会发现,我对机器学习仅仅停留在会使用API的层面上. 使用Java程序消费SAP Leonardo的机器学习API 使用Recast.AI创建具有人工智能的聊天机器人 关于机器学习在SAP标准产品中的应用,Jerry只知道一个例子,就是机器学习在SAP Cloud for Customer(以下简称C4C)中的应用.今天Jerry就把这个例子分享给大家.如果除了C4…
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节. 基于互联网的应用正变得越来越普及,在这个过程中,有更多的站点将自身的资源开放给开发者来调用.对外提供的API 调用使得站点之间的内容关联性更强,同时这些开放的平台也为用户.开发者和中小网站带来了更大的价值. 开放是目前的发展趋势,越来越多的产品走向开放.目前的网站不能靠…
SAP Cloud Platform上的CPI tenant,如果没有正确的初始化,试图使用时会遇到如下错误消息: Insufficient scope for this resourceinsufficient_scope 具体的配置方法: (1) Security->Role Collections: 点击New Role Collection: 创建新的role,取名Tenant_Administrator: 进入这个空的Role collection,创建具体的role: Applica…
Jerry的前一篇文章 如何在Web应用里消费SAP Leonardo的机器学习API 里介绍的例子是Neo测试环境的Web应用消费sandbox版本的机器学习API,url如下: https://sandbox.api.sap.com/ml 本文介绍一个部署在SAP Cloud Platform CloudFoundry环境下的应用,如何消费SAP Leonardo上的机器学习API. 登录SAP Cloud Platform Cockpit,进入CloudFoundry环境的Service…
今天工作发现,SAP Cloud Platform上创建Destination维护的WebIDEUsage属性很有讲究: 帮助文档:https://help.sap.com/viewer/825270ffffe74d9f988a0f0066ad59f0/CF/en-US/5c3debce758a470e8342161457fd6f70.html 这个属性的枚举值: 看个例子. 我维护的是odata_gen: 根据标准文档描述,拥有odata_abap属性的Destination指向的是一个gat…