Hybris ECP里Customer对应的数据库表

2018-04-16
阅读 2 分钟
2k
SAP CRM里Account明细页面: SAP C4C里Account明细页面: 在Hybris storefront注册一个帐号: 注册成功之后能在backoffice里看到成功生成的customer,里面的Customer ID是自动生成的,类似ABAP里的uuid. 在Hybris Administration console里使用flexible search试图去查询该customer: 查询到一条记录: 该记录的uuid和ba...

ABAP下载的病毒扫描Virus Scan

2018-04-16
阅读 1 分钟
2.6k
错误原因是数据从网络下载到Netweaver服务器上之后,在服务器上针对实例ldai2ag3_AG3_56找不到对应的病毒扫描Profile。配置表名:vscan_server

Jerry和您聊聊Chrome开发者工具

2018-04-16
阅读 1 分钟
5.9k
Python 中的 class 体内定义方法时,如果没有显式地包含 self 参数,有时候依然可以被调用。这是一个非常有趣的话题,因为它涉及到对 Python 中类与对象之间关系的更深理解。要理解为什么这种情况下方法依然能够被调用,我们需要逐步拆解 Python 类的构造方式以及方法绑定的原理。

Internationalization(i18n) support in SAP CRM,UI5 and Hybris

2018-04-14
阅读 1 分钟
2.4k
i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。对程序来说,在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面。

使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库

2018-04-14
阅读 4 分钟
4.3k
在表DBCON里维护一条记录,指向HANA数据库。con_ENV里填入HANA数据库的主机名和端口号。如vmXXXX:30015 {代码...} Java实现类似: {代码...} console打印结果:数据能够成功通过JDBC从HANA数据库读取出来。

JavaScript and Ruby in ABAP

2018-04-14
阅读 1 分钟
1.9k
Netweaver里有个mini JavaScript engine CL_JAVA_SCRIPT, 对于Js code的编译和执行都是用system call完成。

SAP CRM WebClient UI和Fiori UI混搭并存

2018-04-14
阅读 1 分钟
1.7k
SAP CRM里有个功能可以创建HANA live report,消费HANA Studio里创建的模型。 最后创建好的report长这个样子: 具体创建步骤可以参考我的博客Step by Step to create HANA live report in Webclient UI 这些report肉眼上看去显示在WebClient UI里,而WebClient UI似乎不能这么灵活的显示这些风格特异的图标。这是怎么实...

还在用SELECT COUNT统计数据库表的行数?Out了

2018-04-14
阅读 1 分钟
3k
如果您使用的是HANA数据库,现在有一种新的办法可以达到同样的目的。HANA数据库里有一张名为m_tables的系统视图,里面存放了数据库表的元数据。

Hybris UI的Route(路由)实现

2018-04-14
阅读 2 分钟
1.9k
登录Hybris前台,在product catalog里选择Digital camera: 点击某个产品进入明细页面: 注意产品明细这个url: 这个明细页面的路由和SAP UI5的路由思路很像。 在SAP UI5应用里,每个页面都会有一个对应的路由配置信息。该信息的结构如下图所示,包含一个页面的逻辑名称,路由的target url和页面的实际名称。我们在浏览器...

help.hybris.com和help.sap.com网站的搜索实现

2018-04-14
阅读 1 分钟
2k
我使用help.hybris.com时,发现每次在搜索栏输入文字时,没有发出任何HTTP请求,那么这个自动完成的下拉框里的记录从哪里来的?我看了下实现,发现所有自动完成下拉框里的记录都是硬编码在searchsuggestion.js里:

ABAP和Hybris的源代码生成工具

2018-04-14
阅读 1 分钟
2.2k
或者用另一种土办法,直接把待生成的类或者报表的源代码准备好,填入一个内表(下图例子中的mt_source)里,然后用关键字GENERATE生成:

如何查看CRM WebUI,C4C和Hybris里的页面技术信息

2018-04-14
阅读 2 分钟
2.1k
在浏览器url里添加debugMode=true,然后按住Ctrl加上鼠标右键,即可弹出同上图CRM WebClient UI作用类似的技术明细页面:

C4C和Outlook的集成

2018-04-14
阅读 3 分钟
2.2k
从C4C系统下载Outlook的Addin, 安装之后,会在Outlook里看见一个新的面板: 点击Log On登录: 如果需要的话,在Settings里设置proxy。 登录之后,即可立即在outlook里直接看到该User WANGJERRY1164在C4C里的notification: 上图outlook里看到的notification来自C4C系统: 1. 直接将outlook的邮件添加到C4C的业务文档里 ...

BSP和JSP里的UI元素ID生成逻辑

2018-04-14
阅读 1 分钟
1.8k
既然是JSP,和同样基于服务器端渲染的BSP的套路一样。Hybris的应用开发人员不用重复造轮子,直接在JSP页面里使用ycommerce标签:

CRM WebUI and Hybris的Product页面标题实现

2018-04-14
阅读 1 分钟
1.7k
CRM Controller只需实现IF_BSP_WD_HISTORY_STATE_DESCR~GET_STATE_DESCRIPTION方法: 上图在ABAP调试器里观察到的这个字符即出现在最终页面上。 Hybris Product明细页面的pageTitle字段绑定到Model的{pageTitle}字段上: 调试器里观察到的pageTitle的值: 最后的效果:

CRM WebClient UI和Hybris里工作中心跳转的url生成逻辑

2018-04-14
阅读 1 分钟
1.7k
把Work center的navigation target在client side不可见:在Chrome development tool里看不到,而是点击了Work center之后,在后台ABAP端计算出navigation target。

Hybris开发环境的license计算实现

2018-04-14
阅读 1 分钟
2.1k
每隔30天,必须重新执行一次initialize命令把本地所有数据全部清掉然后重新build,需要花费一些时间。 显示在console里的license信息通过license.jsp展示: 剩余的license天数的值绑定到字段demoLicenseRemaining: 具体license的计算在license.jsp对应的控制器PlatformController.java里: 计算通过License对象完成,计算...

浅谈Fiori Design Guidelines

2018-04-10
阅读 1 分钟
2.6k
在 SAP 项目实施中,Brownfield 场景是一种迁移策略,尤其用于从 SAP ERP 系统升级到 SAP S/4HANA 的过程中。Brownfield 方法可以理解为“系统转换”模式,它是指在现有系统基础上进行优化和转换,而不是从头开始构建一个全新系统。这种策略可以让企业保留现有的业务流程和系统配置,最大程度地降低业务中断风险,同时利用...

UI5 Source code map机制的细节介绍

2018-04-10
阅读 4 分钟
2k
在我的博客A debugging issue caused by source code mapping里我介绍了在我做SAP C4C开发时遇到的一个曾经困扰我很久的问题,最后结论是这个问题由于JavaScript的source code map机制在Chrome开发者工具里起作用,其实是working as designed的一种行为。但是当时因为时间限制,没有去深入学习JavaScript source code ma...

SAP CRM WebClient UI和Hybris backoffice UI开发的相同点

2018-04-10
阅读 2 分钟
1.8k
CRM WebClient和Hybris backoffice的UI开发都不需要开发人员手写原生的html代码。 CRM WebClient UI 在CRM WebUI workbench里,开发人员需要写下图这些SAP封装的tag: 这些Tag能在事物码SE80里找到: Hybris backoffice UI 比如我通过backoffice左边倒L形的工作中心列表查看优惠券列表,这个列表实际上是一棵树,根节点...

SAP Netweaver和Hybris的数据库层

2018-04-10
阅读 2 分钟
2.7k
在SAP基于Netweaver的ABAP应用里,应用开发人员用Open SQL访问数据库, 这些Open SQL会被Database interface(数据库接口)转换成各种数据库提供商支持的原生SQL语句然后执行。

利用Excel导入数据到SAP C4C

2018-04-10
阅读 1 分钟
2.2k
假设要导入一个Account数据到C4C系统。 工作中心Data Workbench,工作中心视图Import,点download metadata: 会下载一个压缩包到本地。 进入文件夹Templates, 在里面维护要上传的Account的数据明细。 把维护好的excel重新打成zip,再进入Import工作中心视图进行上传: 稍后在monitor视图里会观察到成功上传的任务: 并收到imp...

ABAP Netweaver和Hybris里获得内存使用统计数据

2018-04-10
阅读 1 分钟
1.8k
ABAP Netweaver 事物码ST06 Hybris 每隔5秒钟,Hybris Administration console会发起一个到Java后台的AJAX查询请求: 这个5秒的时间间隔定义在project.properties配置文件里, 然后使用JavaScript的setInterval建立定期轮询: Java后台的实现,即读取当前内存消耗信息实现在package de.hybris.platform.hac里:

ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较

2018-04-08
阅读 2 分钟
2.4k
原因是因为ABAP对include这个关键字的实现和其他编程语言有点不一样,在激活时简单地把被include的program的全部源代码替换原程序里INCLUDE incl这一行,所以重复引入一个include program会报错。

你真的会用ABAP, Java和JavaScript里的constructor么?

2018-04-08
阅读 3 分钟
1.5k
如果constructor里调用了一个成员方法,这个方法被子类override了,当初始化一个子类实例时,父类的构造函数被的调用,此时父类构造函数的上下文里调用的成员方法,是父类的实现还是子类的实现?你能不用运行代码,就能准确说出这些语句会打印什么出来呢?

如何查看某个用户指定时间段的ABAP开发记录

2018-04-08
阅读 2 分钟
1.9k
输入用户名和想查询的时间段: 执行得到结果。双击可查看具体代码: 工具源代码: {代码...}

sap.ui.require in SAP UI5 and require in nodejs

2018-04-08
阅读 2 分钟
1.8k
我需要先定义我自己的controller,该controller extend自UI5标准的controller module,路径为sap/ui/core/mvc/Controller, 而为了调用MessageToast的show方法,也必须先拿到MessageToast的实例。所以UI5里使用sap.ui.define去加载这两个依赖的module,加载完成后,会调用应用开发人员传入的回调函数,加载的两个module的...

如何将UI5应用部署到Fiori On-Premise和On-Cloud的Launchpad上去

2018-04-07
阅读 1 分钟
2k
Fiori Cloud Launchpad里每个tile分配的应用必须是已经部署到SAP Cloud Platform的应用,因此首先必须在WebIDE里将测试好的应用通过下图的右键菜单部署到SCP:

CRM WebClient UI里的文件是如何上传到Netweaver后台的

2018-04-07
阅读 2 分钟
1.9k
使用Chrome开发者工具调试CRM WebClient UI里附件上传的功能: 从本地选择一个文件,断点触发: 前端取得用户选中上传的文件名: Jerry.txt 点Attach按钮后,触发ABAP后台的事件处理函数: 从Chrome开发者工具的network标签能观察到,UI向ABAP后台发送了一个http post请求: 后台依次处理所有的form parts: 从对应的form p...

动态控制C4C UI元素的显示和隐藏

2018-04-07
阅读 1 分钟
1.5k
C4C UI上UI元素的显示和隐藏可以通过Key User在Adaptation模式里通过编辑一些简单的rule去控制,诸如这种格式: {代码...} 这样就不需要由Partner去做二次开发实现了。 这整套逻辑的工作原理在我的博客How to change UI element visibility dynamically via Rule Editor – and how it works under the hood里有介绍。 用...

使用Excel消费C4C的OData service

2018-04-07
阅读 1 分钟
2.5k
步骤比较简单, 打开Excel的标签Data->From Other Sources->From OData Data Feed:

使用ABAP和JavaScript代码生成PDF文件的几种方式

2018-04-07
阅读 2 分钟
2.5k
ABAP 方法1:使用ABAP + Adobe Lifecycle Enterprise Service 详细步骤参考我的博客Convert word document into PDF via Adobe Livecycle Enterprise service 方法2:使用ABAP Webdynpro里的InteravtiveForm控件 + Adobe Form Template 详细步骤参考我的博客Another way to preview PDF in CRM web client UI with littl...

ABAP Netweaver和Hybris Enterprise Commerce Platform的登录认证

2018-04-07
阅读 2 分钟
1.4k
ABAP Netweaver 在我的博客Learn more detail about Standard logon procedure里有详细介绍。 Hybris ECP Hybris Administration Console的登录界面: 点login button后, 观察到一个HTTP Post请求: j_spring_security_check 这个请求定义在一个form action里,还有两个字段用于存储用户登录输入的用户名和密码: 在tomca...

CRM, C4C和Hybris的后台作业

2018-04-07
阅读 3 分钟
2.2k
CRM 使用事务码SM36查看CRM系统的后台作业: 举一些例子: ABAP_TEXT_INDEX这个job执行的report是ABAP_DOCU_CREATE_TEXT_INDEX: 负责填充buffer表ABAPDOCU_BUFF, 以便ABAP帮助文档的快速读取。 RDDIMPDP 从其他ABAP系统的传输请求进入当前系统后执行导入的逻辑就是在这个job里完成的。 C4C 和CRM系统一样后台都是基于Ne...

如何将Twitter的内容导入到SAP CRM和C4C

2018-04-07
阅读 2 分钟
1.8k
Twitter的内容导入SAP CRM Interaction Center呼叫中心 具体步骤查看我的博客Twitter(also Facebook) is official integrated into CRM 7.0 EHP3 在Twitter网站上创建一条tweet: 之后按照我博客里的设置即可将其导入CRM呼叫中心: C4C 新建一个social media channel: 从下拉菜单里选择Channel(渠道)的类型为"Twitter",...