SAP CRM WebClient UI和Fiori UI混搭并存】的更多相关文章

环境:SAP CRM WebClient UI 需求:在WebClient UI里不通过用户手动点击,而是使用JavaScript代码自动触发ABAP后台的代码. 解决方案: 1. 定义一个hidden button, 其onClick事件处理函数(event handler)设置成SAP ABAP后台的event Refresh: 2. 通过document.getElementByID拿到该button的实例,再调用其方法click()触发ABAP backend事件: var button…
SAP CRM里有个功能可以创建HANA live report,消费HANA Studio里创建的模型. 最后创建好的report长这个样子: 具体创建步骤可以参考我的博客Step by Step to create HANA live report in Webclient UI 这些report肉眼上看去显示在WebClient UI里,而WebClient UI似乎不能这么灵活的显示这些风格特异的图标.这是怎么实现的呢? 红色方框里的UI区域实际上是一个UI5应用: Webclient…
CRM WebClient和Hybris backoffice的UI开发都不需要开发人员手写原生的html代码. CRM WebClient UI 在CRM WebUI workbench里,开发人员需要写下图这些SAP封装的tag: 这些Tag能在事物码SE80里找到: Hybris backoffice UI 比如我通过backoffice左边倒L形的工作中心列表查看优惠券列表,这个列表实际上是一棵树,根节点是Marketing. 上图界面是通过在XML文件里定义Hybris封装的tag来实…
1. 使用业务角色ANALYTICSPRO登录WebClient UI: 2. 点击新建按钮: 为新建的报表分配一个HANA Live Query: 指定Query的参数: 上图WebClient UI选择的参数都定义在HANA studio里: 给报表添加属性: 添加measure: 之后报表即可在WebClient UI里成功渲染: 并且也能在CRM Fiori的Customer Report应用里看到该report. 如果想获得更多关于上图提到的Fiori应用,请查看我的公众号文章 SAP…
1. 使用业务角色ANALYTICSPRO登录SAP CRM WebClient UI: 点击新建按钮创建一个新的HANA live report: 类型选择SHL: 弹出窗口,维护report的名称,描述信息,和底层使用哪个SAP HANA Live Query: 可以使用F4 help来选择系统里标准的HANA live query: 这篇文章里我使用的是:OpportunityQuery. 2. 这个ID OpportunityQuery是在ABAP后台系统事务码SPRO里配置的. 路径:…
网络上可以找到一些使用BOL查询.维护数据的DEMO,但几乎都是单纯的代码,缺乏说明,难以理解.本文除了代码外,还给出了详细的注释,有助于理解BOL编程中的一些基本概念. 这是一篇翻译的文章,你可能会发现部分内容不是很明确,这时可以直接阅读原文. 原文所在的sapcrmwebui.com是一个不错的博客,里面有较为完整的Web UI入门教程,然而网站不是很稳定,偶尔会连接不上,建议使用Internet Archive访问. 如果你访问不了Internet Archive,说明你需要一点过墙的手段…
i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是"国际化"的简称.对程序来说,在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面. SAP CRM WebClient UI上显示的文本不会硬编码,而是维护在OTR(Online Text Repository)里,代码里通过如下API取出. 所有支持语言列表: SAP UI5 UI5思路和WebClient UI类似,多语言的文本维护在i18n properties文…
随便找一个在CRM WebClient UI里会被频繁调用到的函数,在函数里创建一个隐式增强,打印当前的会话ID. 不关闭浏览器,在浏览器里不断做操作,可以观察到不管做任何操作,每次断点出发后,打印出来的会话ID都相同. 每次触发打印出的会话ID都相同: 00015255FA163EE40FA21ED6A898F0FA67B01B77 要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:…
CRM WebClient UI 把Work center的navigation target在client side不可见:在Chrome development tool里看不到,而是点击了Work center之后,在后台ABAP端计算出navigation target. Hybris 这个Catalog的下拉menu里每个item都对应一个url,在html里用 tag实现.这个url在客户端可见. https://localhost:9002/yacceleratorstorefro…
使用Chrome开发者工具调试CRM WebClient UI里附件上传的功能: 从本地选择一个文件,断点触发: 前端取得用户选中上传的文件名: Jerry.txt 点Attach按钮后,触发ABAP后台的事件处理函数: 从Chrome开发者工具的network标签能观察到,UI向ABAP后台发送了一个http post请求: 后台依次处理所有的form parts: 从对应的form part里取出文件名称和文件类型: 以及实际的文件内容(由于security原因,该form part的内容无…
Product settype acts as a very important role in CRM WebClient UI architecture. The GenIL layer knows nothing about attributes modeled in settype. Instead, it only knows product BOL model attributes. The API knows nothing about attributes modeled in…
今天微信群里有朋友问到这个问题. 如果是SAPGUI里的事务码,比如MM01,对于开发者来说这个任务非常容易完成. 比如我想知道下图"Sales Unit"这个字段的值到底保存在哪张表的哪个字段里,只需要选中这个字段,按F1,在弹出窗口里即可得知表名是MVKE,字段名是VRKME. 在S/4 Fiori UI里,因为UI是由SAP UI5开发的,所以F1这个功能键无法继续使用.我们需要Chrome Development Tool的帮助. 还是看个具体例子: 我希望知道S/4HANA的…
导言 本页面打算收集SAP CRM实施中可以用于避免性能问题的注意事项,重要的事项会由图标标识. 如果你有其他的技巧想要说出来,别犹豫! 性能注意事项 通用 缓存读取类访问,特别是在性能关键的地方,比如字段检查,这时要避免数据库查询. 尝试把所有的东西放在同一个CRM_ORDER_MAINTAIN调用当中,以避免不必要的开销.编辑多文档的时候也是一样,需要被替换为一个调用. 不要无限制地使用SAP内部API,比如,只读取需要的数据就可以,而不是整个业务. 总是把性能放在心上,特别是在实现经常被调…
SAP成都研究院的一个部门领导让我给他的团队做一个SAP CRM One Order框架的培训,这是我准备的培训内容. 在Jerry之前的文章 基于SAP Kyma的订单编排增强介绍,我表达了自己对SAP应用的理解:模型以及基于模型的增删改查.只是同我们大学专业课学习时完成的家庭作业相比,SAP模型的复杂程度增加了好几个数量级. 和传统的增删改查相比,以订单编排领域为例,SAP订单模型的"增",还需要考虑实际业务流程中各种类型的前置和后序订单,即SAP使用的术语 文档流(Documen…
树视图可以用于表示数据的层次. 例如:SAP CRM中的组织结构数据可以表示为树视图. 在SAP CRM Web UI的术语当中,没有像表视图(table view)或者表单视图(form view)那种专门的树视图类型.我们可以认为树视图是表视图的一种特例.因此,没有可以用于创建树视图的向导,需要按以下特定的步骤手动改造已存在的视图. 首先,这个看起来挺难的,但是随着实践次数的增多,你会很容易理解它.在本文,我将创建一个如下模样的树视图. 如你所见,它有两级结构.第一级展示LEAD ID,下一…
向用户展示消息,在任何软件中都是十分重要的. 在SAP CRM WEB UI中展示消息,不是一项很难的任务,只需要创建消息并在之后调用方法来显示它 消息类和消息号: 我在SE91中创建了如下的消息类和消息号. 我们需要在合适的地方写代码以在Web UI中显示消息.这里我就在DO PREPARE OUTPUT方法放置代码了. cl_bsp_wd_message_service用于在Web UI中显示消息.在上面的代码中,我们获取了一个消息服务的实例,接着调用它的ADD_MESSAGE方法并传入消息…
调试,是程序开发中的基本技巧.快速定位错误消息在源代码中的位置,对发现和解决程序中的问题有着重要的意义.在SAP CRM中,错误消息通常在前台的Web Client页面中展示,应该怎样定位相关代码的位置呢? 我在SAP的网站上面找到了一篇不错的相关文章,翻译在这里. 英文原文:How to quickly locate the code where the error message is raised for Business Transaction Application 本文链接:http…
本文链接:http://www.cnblogs.com/hhelibeb/p/6276929.html 首先是SAP网站上面的相关内容 SAP Customer Relationship Management:SAP的帮助中心,里面的内容比较全面 CRM Books:相关书籍,我没有看过,因为看起来全都价格不菲 https://wiki.scn.sap.com/wiki/display/CRM:CRM WIKI,有很多现成的解决问题的办法 https://wiki.scn.sap.com/wik…
SAP CRM 点了Edit List之后,可以直接修改产品主数据的Price信息: C4C 在C4C的product administration工作中心里: 点击Edit按钮进入编辑模式,Price List区域里的内容也不能编辑: 那么上图红色高亮的数据从哪里来? 首先从Chrome开发者工具里找到C4C产品主数据明细页面的UI模型名称: /sap/ap/ui/json?app.component=/BYD_COD/SalesOnDemand/Product/UI/COD_Material…
SAP CRM可以在开发工具中用右键直接创建一个新的事件处理器: 这些事件处理器实际上就是UI控制器(Controller)上具有特定接口类型的方法. C4C UI的event handler 在C4C UI Designer的Controller标签页里创建,一个例子如下: 这些Event属于整个UI component源代码的一部分,可以通过Chrome开发者工具的Network标签页里观察.路径为UXComponent->Implementation->EventHandler: 在运行…
SAP CRM里我们使用事务码CRM_SURVEY_SUITE创建一个调查问卷(Survey): 其中调查问卷的问题和答案均可分配权值(Rate),最后该问卷总的分数等于每个问题的权值乘以客户选择答案的权值再求和. 例如我如下的问卷模型,第一个问题:"您最后一次是何时购买了我们的产品"我设置的权值为0, 第二个问题"服务人员服务态度友好.工作尽职尽责"的权值为2,五个答案的权值依次为: 非常满意:5 满意:4 一般:3 不太满意:1 非常不满意:0 第三到第六个问题…
SAP CRM内容管理 SAP CRM使用Attachments这个UI给用户提供内容管理的功能.通过新建按钮可以上传本地文档到CRM系统: 该内容管理支持简单的版本管理功能,用户可点击Check Out将一个文档导出到本地,编辑结束之后通过Check In按钮将修改版本导入至CRM. 每次Check Out / Check In会生成一个新的版本. 从技术上来说,每一个文件上传到CRM后,会自动生成一个Logical Info Object(LOIO)和Physical Info Object…
业务对象层(BOL)和通用交互层(GenIL)属于业务层. 业务对象层:   在CRM WebClient会话运行期间,业务对象层存储业务对象的数据以及它们属性和关系的定义. 通用交互层 通用交互层将BOL和下层的业务逻辑.数据库连接起来. BOL内使用不同对象类型,主要有三种对象: 根对象  一个上级对象和一组对象通过层次结构互相关联.根对象也是一个访问对象,这意味着它有一个ID,可以用于决定访问对象本身的属性以及那些它的从属对象的属性. 从属对象 从属对象是一种特殊的业务对象,其属性不能单独…
当用户从视图离开时,视图将失去它的数据.解决这个问题,需要引入客户控制器(Custom Controller)(译者注:SAP CRM客户端中,不同地方的Custom Controller会翻译为“客户控制器”.“自定义控制器”.“海关控制器”三种结果.这当中显然存在问题.下文如提到“自定义控制器”.“海关控制器”云云,均是按SAP客户端中相应位置的汉化为准,读者可视为同一词). 我们将相同类型的上下文节点添加给客户控制器,并且对客户控制器上下文节点和需要的视图的上下文节点进行数据绑定. 在我们…
iPhone/iPad/Android UI尺寸规范 UI尺寸规范,UI图标尺寸,UI界面尺寸,iPhone6尺寸,iPhone6 Plus尺寸,安卓尺寸,iOS尺寸 iPhone界面尺寸 设备 分辨率 PPI 状态栏高度 导航栏高度 标签栏高度 iPhone6 plus设计版 1242×2208 px 401PPI 60px 132px 146px iPhone6 plus放大版 1125×2001 px 401PPI 54px 132px 146px iPhone6 plus物理版 1080…
[Android线程机制] 出于性能考虑,Android的UI操作并不是线程安全的,这就意味着如果有多个线程并发操作UI组件,可能导致线程安全问题.为了解决这个问题,Android制定了一条简单的规则:只允许UI线程修改Activity里的UI组件 当一个程序第一次启动时,Android会同时启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件,如用户的按键事件,用户接触屏幕的事件及屏幕绘图事件,并把相关的事件分发到对应的组件进行处理.所以主线程通常又被叫做UI线程 [H…
在前面的文章<HTML5 UI框架Kendo UI Web自定义组件(一)>中,对在Kendo UI Web中如何创建自定义组件作出了一些基础讲解,下面将继续前面的内容. 使用一个数据源 现在如果想要实现一个数据源组件或是MVVM aware模式,需要再执行一些其他的步骤. 在下面将会创建一个DataSource aware组件,要使DataSource aware有数据源,首先需要在DataSource基础对象上使用create convenience方法. 创建或初始化数据源: that.…
iframeWin For Easy UI. 为 Easy UI 扩展的支持IFrame插件 在一个项目中用了Easy UI,但是发现里面的 Dialog .Window.Messager 弹窗都不支持IFrame的方式, 于是自己动手基于Easy UI实现了一个插件. 目前Easy UI仍然使用GPL开源协议. JS引用: <script type="text/javascript" src="jquery.min.js"></script>…
Android应用的开发过程中需要把繁重的任务(IO,网络连接等)放到其他线程中异步执行,达到不阻塞UI的效果. 下面将由浅入深介绍Android进行异步处理的实现方法和系统底层的实现原理. 本文介绍Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面: 即如何使用Thread+Handler的方式从非UI线程发送界面更新消息到UI线程. 概述:每个Android应用程序都运行在一个dalvik虚拟机进程中,进程开始的时候会启动一个主线程(MainThread),…
前记 前两天在搜索资料时,看到一个网友在博客里面记录下了自己参于项目中的所有笔记.我觉得这个想法很不错,所以决定开笔记录下SAP CRM整个项目的实施和开发过程. 之前参加集团的SAP ERP(FI/CO MM PP  SD)共二期项目开发,角色是担当开发小组组长,我方投入了4个ABAP开发人员(完全新手)和二个OA流程开发人员(与SAP做集成对接),项目实施开发都顺利完成,很可惜的是没留下什么笔记. 今年集团实施SAP HR(2013.4-2013.9),这个项目实施进行了大量的外围系统的开发…