Jerry在公众号文章C4C和微信集成系列教程里曾经使用nodejs去消费C4C提供的标准webservice. 看一个具体例子:C4C里Individual Customers可以维护Social User Profile,在Jerry上面的公众号文章里,正是把微信用户的open ID维护到Social User Profile的SocialMediaAccountUserID字段去,如下图所示. 那么已知一个Social Profile ID,如何用nodejs通过Web Service的方…
关于机器学习这个话题,我相信我这个公众号1500多位关注者里,一定有很多朋友的水平比Jerry高得多.如果您看过我以前两篇文章,您就会发现,我对机器学习仅仅停留在会使用API的层面上. 使用Java程序消费SAP Leonardo的机器学习API 使用Recast.AI创建具有人工智能的聊天机器人 关于机器学习在SAP标准产品中的应用,Jerry只知道一个例子,就是机器学习在SAP Cloud for Customer(以下简称C4C)中的应用.今天Jerry就把这个例子分享给大家.如果除了C4…
SAP Cloud for Customer的销售订单创建页面里,我们可以给一个订单维护External Note,当这个订单同步到S/4HANA生成对应的生产订单后,这个note可以作为备注提示生产工人. 它的建模逻辑是: 首先进入调试模式,查看到这个字段绑定到UI模型的TextCollection/CustomerInformation上 然后进入Cloud Application Studio,找到UI模型这个字段,查看发现它又绑定到了BO的TextByTextTypeCodeAndLan…
SAP Cloud for Customer的Sales工作中心里有Sales Quote和Sales Order两个视图,一个用于销售报价单,另一个用于销售订单. 流程上是先有报价单 ,报价单是一份OFFER,并不具备法律效力,只有在生成销售订单后,即买卖双方都对报价单上的内容进行一些协商后,达成一致生成的最终订单,才具有法律效力. 现在我需要搞清楚Sales Order这个视图的UI是基于哪个Business object创建的. SAP C4C的UI都是基于MVC pattern设计的,首…
今天的文章来自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(本文以下简称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…
在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…
有一些朋友询问我如何在SAP官网上找到和SAP Cloud for Customer相关的标准培训信息,我这里把步骤写出来: 登录SAP官网https://training.sap.com 输入和Cloud for Customer相关的培训课程代码C4C: 搜索结果: 点"生成PDF文档",可以把结果保存下来,便于离线查看: 每门课程的名称和价格如下: 要获取更多Jerry的原创文章,请关注公众号"汪子熙":…
首先进入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: 维护…
大家好,今天的文章来自我的同事,Yang Joey. 2017年7月,SAP成都研究院C4C开发团队刚刚建立.某个周一早晨的Scrum meeting,新出现一位眉清目秀的小伙子,向大家自我介绍:"大家好,我叫杨xiao". 我一听,哇塞,和明教光明左使杨逍同名.对于八零后武侠爱好者来说,94版倚天屠龙记中孙兴饰演的杨左使潇洒飘逸,孤傲自负且颜值爆表.连金庸看了之后都评价"孙兴的杨逍源于原著,但胜于原著".相信杨逍是很多少女的梦中情人. 杨逍年轻时的武功,金庸通过灭…
来自Jerry的同事,Yang Joey. 相信大部分C4C的UI developer包括我刚开始的时候都会比较好奇我们平时写的javascript代码是如何运行在移动设备上的,同样的,我也对这个问题十分感兴趣.于是,以安卓为例子,我把我们发布到安卓应用市场的app解压出来研究了一下. 上图是一个cordova的总体框架的描述,可以看到cordova主要由两部分构成. 第一部分:Cordova Application是Cordova框架独立于不同手机操作系统的一个封装层.具体包括 1)Web a…
文章作者: Yi 已获得Yi的转载许可. 访问控制方式和使用注意事项 1. C4C中的访问控制有两种方式 RelevantForAccessControl AccessControlContext 2. 要使用访问控制,必须满足下面条件 每一个业务对象(BO),只能存在唯一一个访问控制. 与之关联的源节点必需是业务对象(BO)的根(Root)节点 对于RelevantForAccessControl,它所关联的节点也必须是根节点(Root). 对于RelevantForAccessControl…
SAP C4C的客户主数据创建时的重复检查,基于底层HANA数据库的模糊查找功能,根据扫描数据库中已有的数据检测出当前正在创建的客户主数据是否和数据库中记录有重复. 在系统里开启重复检查的配置: 在此处配置主数据模型上每个字段对重复性检查结果共享的权值: 要理解权值的作用,就必须先理解C4C客户主数据重复性检查的算法Levenshtein algorithm.这个算法以开发者Vladimir Levenshtein命名,通过计算Levenshtein(莱文斯坦)距离来衡量两个字符串的相似度. 看…
登录SAP CPI控制台,点击这个铅笔图标进入工作区域: 选择一个已经存在的content package: 在这个content package里创建一个新的iFlow: 默认生成的iFlow模型如下.删除Sender,因为在这个最简单的iFlow里,我们采用timer方式触发: 删除Sender后如下图所示: 选择一个Timer作为iFlow触发器: 将tinmer拖拽到integration process区域,选择Scheduler属性,设置成Run Once-运行一次. 再拖拽一个Co…
这个系列主要从技术层面阐述了如何实现end user在微信app里发送的message能够投递到C4C系统,以及在C4C系统基于微信发送过来的message回复之后,如何将这些回复再push回微信app. 基于这种最简单的一发一收的场景,partner可以自行开发更复杂的集成场景. 场景示例 微信用户关注服务公众号之后,直接和这个公众号交谈,能够在C4C系统基于交谈内容直接生成Service Request 下图是基于微信用户和公众号交谈之后,在C4C系统自动生成的service request…
点击这个按钮可以通过地图的方式查看C4C客户在地图上的地理位置: 只需要在这个客户的地址栏里维护上天府软件园的经度和维度: 就能够在C4C的客户列表页面里显示该客户在地图上的位置: 要获取更多Jerry的原创文章,请关注公众号"汪子熙":…
我们在创建Sales order销售订单时,需要指定一个RequestedDate: 这个字段绑定到了BO字段:CustomerQuote.RequestedFulfillmentPeriod.TimePointPeriod.StartTimePoint.DateTime 这是一个0-1的BO内部的association: 为什么Requested Date总是比创建日期晚两天呢? 是在这里配置的:2 Days意思就是比创建日期晚2天 抬头的Requested Date的值会通过C4C BO后台…
第一次启动App,设置一个初始化的pin code: 输入C4C tenant的url,用户名和密码: 登录进系统后,找到Sales Order工作中心: 可以看到系统里很多已有的销售订单了.点击屏幕左下角的创建按钮: Account是必填字段: 可以从Account字段的F4帮助里选择一个合适的Account: 如果C4C系统里选中的Account事先维护好了Partner determination配置的话,对应的Sales Unit和Sales Organization,Distribut…
Account Team标签页里点击Add按钮: 这些下拉菜单里的role在哪里配置? 在business configuration工作中心:Implementation projects->Open Activity List: 以Party为关键字进行过滤,就能找到配置点了: 添加一条新记录: 然后就能出现在下拉菜单里了: 要获取更多Jerry的原创文章,请关注公众号"汪子熙":…
如果用平板电脑的话,推荐的设备列表: Android Samsung Galaxy Tab S2○ Processor: 2 x quad-core CPU -- 1.9 and 1.3 gigahertz (GHz)○ Memory: 3 gigabytes (GB)○ Storage: 32 gigabyte (GB) internal flash memory●iOS iPad Air 2○ Processor: 1.5 gigahertz (GHz) tri-core, 64-bit C…
选中一个需要进行测试的Leonardo机器学习服务,点击Configure Environments: 因为我不想使用sandbox环境,所以我选择了eu10这个region: 维护clientid和secret: 在SAP Cloud Platform cockpit里创建了service key后,会得到这个client id和secret. 要消费机器学习api,先要获得Access Token: 把postman里得到的Access Token填到API测试控制台的Authorizati…
选中一个需要进行测试的Leonardo机器学习服务,点击Configure Environments: 因为我不想使用sandbox环境,所以我选择了eu10这个region: 维护clientid和secret: 在SAP Cloud Platform cockpit里创建了service key后,会得到这个client id和secret. 要消费机器学习api,先要获得Access Token: 把postman里得到的Access Token填到API测试控制台的Authorizati…
最近Jerry在做一个微信和SAP Commerce Cloud集成的项目,需要在微信里调用后者的Restful API进行订单创建和读取.以前Jerry对SAP Commerce Cloud知之甚少,这次趁机学习了一下,过程中得到了SAP成都研究院Commerce开发团队的Jonathan,Kevin和Kate等几位同学的大力帮助,这里表示感谢. 在SAP官网help.sap.com上根据关键字commerce搜索,结果列表里会显示出好几个产品,这难免会让像Jerry这种刚接触commerce…
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云平台上的destination我们可以消费Internet上的OData service或者其他通过HTTP方式暴露出来的服务. 创建一个新的destination: 维护如下属性: 点击Check Connection确保该destination正常工作: 在WebIDE里新建一个Fiori Worklist Application: 从Service url选择之前创建好的destination: 在Object Collection里选择Alphabetical_list_of…
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…
今天工作发现,SAP Cloud Platform上创建Destination维护的WebIDEUsage属性很有讲究: 帮助文档:https://help.sap.com/viewer/825270ffffe74d9f988a0f0066ad59f0/CF/en-US/5c3debce758a470e8342161457fd6f70.html 这个属性的枚举值: 看个例子. 我维护的是odata_gen: 根据标准文档描述,拥有odata_abap属性的Destination指向的是一个gat…
登录SAP Cloud Platform integration tenant,点击Edit图标: 创建一个新的Content package: 保存content package后,点击artifacts标签页,此处创建integration flow: 点击Add,选择integration flow: 保存: 然后就可以进行iFlow的编辑了: 创建sender channel:把integration flow切换成编辑模式,点击这个箭头,把它拖到Start图片位置: Adapter类型…
最近Jerry接到一个原型开发的任务,需要在微信里调用ABAP On Premise系统(SAP CRM On-Premise)里的某些函数.具体场景和我之前的公众号文章 Cloud for Customer和微信集成系列教程 描述的场景类似. 区别之处在于Cloud for Customer(C4C)是一个云解决方案,其OData Service/Web Service能够直接被Internet网络上的其他应用消费.而我最近要做的原型开发,需要消费的函数位于部署在Corporate Netwo…