- 博客(83)
- 资源 (16)
- 收藏
- 关注
原创 Adding Applications for JavaScript Storefronts in SAP 电商云
帮助文档:https://help.sap.com/viewer/b2f400d4c0414461a4bb7e115dccd779/v2011/en-US/63577f67a67347bf9f4765a5385ead33.html从 Github sample Repository 拷贝出来,js-storefront 文件夹下面有个 Spartacusstore 文件夹,进入其 manifest.json 文件,可以在 applications 数组里添加新的 Commerce 应用:执行 yar
2021-05-31 13:07:29 266 1
原创 SAP Spartacus 服务器端渲染的依赖注入之 ProductPageEventBuilder
入口:AppServerModule 的依赖:遍历这个巨大的 set:其中 ProductPageEventBuilder 正是这个 injectorDefTypes set 其中的一个元素:更多Jerry的原创文章,尽在:“汪子熙”:
2021-05-31 13:05:01 254
原创 Angular platform-server.js 里动态创建 JavaScript 标签页的场景
State transfer 的序列化和反序列化:script 的实际内容:更多Jerry的原创文章,尽在:“汪子熙”:
2021-05-30 21:57:10 289 1
原创 SAP Spartacus 服务器端 nodejs 应用里渲染 Angular Component 的一个例子
触发方式:将下列 url 粘贴到浏览器地址栏里,回车:http://localhost:4000/Open-Catalogue/Cameras/Hand-held-Camcorders/c/584最终会触发一系列递归的函数调用:refreshViewrefreshChildComponentsrefreshComponentrefreshEmbeddedViews在 refreshView 里,会调用 Component 的一系列 hook,比如 ngOnInit:注意下列这些代码
2021-05-30 21:52:12 277
原创 SAP Spartacus 服务器端渲染的单步调试
所有常规路由采用 universal engine 实现:将 req 的 app 属性保存到变量 app 里:在浏览器里访问 localhost:4000,该请求转发给 app.render 函数。这个 merge 操作,把对象 b 的属性,全部赋给对象 a:首先试图从缓存中读取 view 实例:读取 index 视图实例:得到视图构造函数:开始渲染:调试模式:调用 Universal Engine 进行渲染:下列代码是我们团队同事编写的:在哪里渲染好的呢?
2021-05-30 20:57:29 270
原创 SAP Spartacus 服务器端渲染优化引擎的参数 SsrOptimizationOptions
timeout?: number - Time in milliseconds to wait for SSR rendering to happen.单位毫秒,等待 SSR 渲染发生的时间间隔。cache?: boolean - Enable in-memory cache for pre-rendered urls.If disabled, the cache will still be used to temporarily store renders finished after csr ..
2021-05-29 18:21:07 281
原创 SAP Spartacus 服务器端渲染文件 server.js 和构建后的 main.js 对比
构建之前:构建之后:其中 express__WEBPACK_IMPORTED_MODULE_3__ 来自 module uX2x:uX2x 来自 node_modules/express/index.js:其依赖 K0zx.更多Jerry的原创文章,尽在:“汪子熙”:
2021-05-29 13:42:28 1089 2
原创 SAP Spartacus 服务器端渲染文件的 build 过程
SAP Spartacus 根目录下有个 server.ts 文件。整个文件的入口是 run 函数:run 函数里,开启一个 服务器,监听在 4000 端口上:服务器实例通过 app 函数返回:首先利用一个NgExpressEngineDecorator 获得 NgUniversal engine 实例,然后将该 engine 同 express 返回的 server 实例进行绑定:所有的静态文件,通过 browser 文件夹里的文件返回:所有的常规路由,使用 Universal Eng
2021-05-29 11:46:01 266
原创 Angular 项目 tsconfig.json 里定义的 out-tsc 还有作用吗?
在这个 StackOverflow 帖子里有介绍:What happens to the outDir in tsconfig.json for Angular projects?ng 命令的路径:根据这个 StackOverflow 帖子的定义,tsconfig.json 里定义的 outDir 无效:以 angular.json 文件里定义的 outputPath 为准:ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发
2021-05-29 11:22:12 326
原创 SAP Spartacus 服务器端渲染调试的开发端版本
我按照这篇文章手动安装 SAP Spartacus 3.3.0版本并启用服务器端渲染 SSR 的介绍,启用了 SAP Spartacus 服务器端渲染,并且按照SAP Spartacus服务器端渲染模式下的调试方法 介绍的办法,在 Visual Studio Code 里启用了调试模式。但是 SAP Spartacus 服务器端渲染, 用 node 执行的 main.js 文件,经过 minification,文件内所有空格和注释均被删除过。这给调试带来了一些困难。其实,这是因为我们在 setup 服务
2021-05-28 21:11:47 269
原创 SAP Spartacus 3.3.0 版本服务器端渲染的优化
https://sap.github.io/spartacus-docs/server-side-rendering-optimization/为什么要引入服务器端渲染优化?Without SSR optimization, it is possible for the following to occur:Pages do not render quickly enough, which leads to SSR using too much memory, and eventually it f
2021-05-27 21:18:56 251
原创 SAP Spartacus 3.3.0 SSR 的一个问题,当浏览器刷新时,SSR 失效
Dear experts,I found one issue regarding Spartacus SSR in version 3.3.0.I have created a sample store using schematics:ng add @spartacus/schematics@latest --baseUrl https://spartacus-demo.eastus.cloudapp.azure.com:8443/ --baseSite=electronics-spa --ssr
2021-05-27 19:55:59 324
原创 SSR rendering exceeded timeout 3000, fallbacking to CSR for
当我使用 node dist/jerryssr/server/main.js 时,遇到了如下的提示信息:SSR rendering exceeded timeout 3000, fallbacking to CSR for /显然,SSR 没有启用成功。按照这篇 StackOverflow 讨论的帖子介绍的解决方案:加上 timeout: 0 的参数,关闭超时机制:const ngExpressEngine = NgExpressEngineDecorator.get(engine, { ti
2021-05-27 19:34:40 438
原创 手动安装 SAP Spartacus 3.3.0版本并启用服务器端渲染 SSR
使用 ng new jerryssr 创建一个空的 Angular 项目:确保项目创建成功。ng add @spartacus/schematics@latest --baseUrl https://spartacus-demo.eastus.cloudapp.azure.com:8443/ --baseSite=electronics-spa --ssr弹出提示信息:Please choose which configuration you would like to add. (Use arr
2021-05-27 18:13:36 337 2
原创 如何找出 SAP电商云产品明细页面读取后台数据的代码具体位置
以如下这个产品明细页面为例:http://localhost:4200/electronics-spa/en/USD/product/553637/nv10观察浏览器 url 的格式:/product/553637/nv10在 default-routing-config.ts 里,得知 product/ 后的 553637 代表 productCode,而 nv10 则是 product name.因为我使用的是默认的 CSR 即客户端渲染模式,所以首先看到一个只包含 loading 的 HT
2021-05-26 10:38:39 440
原创 手动为 SAP Spartacus 添加 SSR 支持的步骤
ng add @spartacus/schematics --ssr在用 SAP Spartacus 开发的 store 里,能看到 devDependencies 里具有 @spartacus/schematics 的依赖:这是 SAP Spartacus Schematics 的一部分:https://sap.github.io/spartacus-docs/schematics.Spartacus schematics allow you to install Spartacus libra
2021-05-26 10:29:48 451
原创 Angular 项目里的 tsconfig.json
https://www.typescriptlang.org/docs/handbook/tsconfig-json.htmlThe presence of a tsconfig.json file in a directory indicates that the directory is the root of a TypeScript project.文件夹里若存在 tsconfig.json, 说明这个文件夹是 TypeScript 项目的根文件夹。It specifies the roo
2021-05-25 18:20:42 467
原创 Angular 项目工程文件结构介绍
https://angular.io/guide/file-structureYou develop applications in the context of an Angular workspace.Angular 应用开发人员在 Angular workspace(工作空间)的上下文里进行应用开发。A workspace contains the files for one or more projects.一个工作空间包含若干文件,这些文件属于一个或多个 projects.A
2021-05-25 18:08:49 990 2
原创 从 ng build 支持的参数 --prod,谈谈 Angular workspace configuration
语法:ng build project options作用:编译 Angular 应用到 output 文件夹里,通常名称为 dist. 必须在工作空间目录下执行。输入参数:project, 可以为应用或者 library.支持的参数使用 ng build --help 查看所有支持的参数。其中这个选项值得一说:–prodShorthand for “–configuration=production”.是 --configuration=production 的简写形式。When tru
2021-05-25 16:53:17 1735 2
原创 科大讯飞语音转文字以及中文分词的Java测试代码
我录了一段音存储在这个test.m4a文件里,语音内容为"测试一下Netweaver对于并发请求的响应性能"。使用如下Java代码进行测试:package com.iflytek.msp.lfasr;import java.util.HashMap;import org.apache.log4j.Logger;import com.alibaba.fastjson.JSON;import com.iflytek.msp.cpdb.lfasr.client.LfasrClientImp;i
2021-05-24 22:11:16 1012
原创 具有SmartFilterBar 的 SAP Fiori Elements 自动触发的搜索操作
ContextContainer.load 之后,自动触发 Search 操作:
2021-05-24 21:24:39 426
原创 初,中,高级的 ABAPer 应该各自具备什么水准的开发能力
一个朋友在我微信公众号留言:初,中,高级的 ABAPer 应该各自具备什么水准的开发能力。以下是我的一些粗浅理解:初级 ABAP 开发人员,能根据设置文档进行功能实现,编写相关代码。遇到功能不能工作时,在中级 ABAP 开发人员的帮助下,能够通过调试的方式进行故障排查。中级 ABAP 开发人员,能够根据业务顾问传达的需求,配合高级 ABAP 开发人员一起,写出详细的设计文档。能根据设计文档独立完成功能实现。熟练掌握 ABAP 服务器常用的工具,并能够灵活运用来解决工作中遇到的实际问题。对于自己
2021-05-24 21:21:25 1450 2
原创 SAP Spartacus angular.json 中定义的 serve-ssr
直接不带参数运行 ng run:An unhandled exception occurred: Cannot determine project or target for command.See “C:\Users\I042416\AppData\Local\Temp\ng-FXVlA1\angular-errors.log” for further details.在 Angular 项目的 angular.json 文件里,定义了所谓的 project:storefrontapp而
2021-05-24 20:02:32 417
原创 Angular Schematics 学习笔记
网址:https://angular.io/guide/schematicsA schematic is a template-based code generator that supports complex logic.一个 Schematic 是一个基于模板的代码生成器,能支持复杂逻辑。It is a set of instructions for transforming a software project by generating or modifying code.Sche
2021-05-24 11:03:33 510 2
原创 在 SAP BTP Kyma Runtime 上使用 Redis 读取和存储数据
https://developers.sap.com/tutorials/cp-kyma-redis-function.htmlThis sample provides a Redis deployment and two serverless functions that interact with it.这个例子提供了一个 Redis 应用部署和两个使用 Redis 的 serverless 函数。The function cache-order will be set to subscri
2021-05-23 20:56:11 377
原创 如何查看 SAP Spartacus PageLayoutComponent 里的 template$ 的值
SAP Spartacus PageLayoutService.ts 里的 templateName$ get 操作:返回一个 Observable 对象,包裹的类型为 string.pipe 的第一个操作 filter,目的是确保 page 对象的 template 属性一定存在,避免接下来第二个 map 操作出现返回被 Observable 包裹的 undefined 值的情况。而在 PageLayoutComponent 实现里,有一个同名属性。从 layoutName$ 返回的逻辑看,优先从
2021-05-23 13:58:36 304
原创 答网友问:如果用 OData 就能直接和 SAP 系统互通,BTP 和 CPI 这样的平台意义在哪里呢?
有朋友提问:外部SaaS应用通过ODATA API访问SAP标准接口,直接从本方应用发起访问就可以,无需借助PI或者BTP类的平台吧?既然这样,通过BTP或CPI来构建应用相对比直接在第三方平台上构建应用的好处是什么呢?是因为这2个平台除了获取数据,有更多关于流程设计和类似扩展插件(不用重复造轮子)的功能,并可以发布到SAP应用市场吗?也就是如果我不需要这些插件辅助,不到应用市场发布,是可以绕过这些平台的。关于 SAP 和第三方系统之间的集成,我写过一篇短文:SAP S/4HANA Cloud 系
2021-05-23 12:51:13 1259 1
原创 一步步将 SAP Commerce Mock 应用部署到 SAP BTP Kyma Runtime
The Kyma mock application contains lightweight substitutes for SAP applications to ease the development and testing of extension and integration scenarios based on Varkes.什么是 Kyma Mock 应用?它们是 SAP 应用轻量级的替代物,为了便于开发和测试基于 Varkes 的扩展和集成场景而生。Together with S.
2021-05-23 11:38:55 361
原创 SAP BTP Kyma Runtime dashboard 打开报缺少缺陷的错误消息该如何解决
登录 SAP BTP 测试帐号,确保 Entitlements->Service Assignments 下有一个 Kyma runtime,类型为 trial environment:点击 Enable Kyma 按钮:创建一个 Kyma Environment:耐心等待环境创建好之后,在 Active 列下面能看到创建好的一个实例。点击 Go to Dashboard:发现遇到下列的错误消息:Not enough permissionsYou don’t have eno
2021-05-23 10:40:12 343
原创 SAP S/4HANA Cloud 系统集成的一些场景介绍
如下图所示:SAP S/4HANA 集成有下列这些类型:用户移动设备同 SAP 云的集成SAP 云系统之间的集成SAP 云系统同物联网解决方案的集成SAP On-Premises 解决方案同 SAP 云的集成SAP On-Premises 系统间的集成SAP On-Premises 系统同物联网解决方案的集成SAP 系统集成的技术手段之一:API - Application Programming Interface,典型的类型如下:ODataSOAP - Simple Objec
2021-05-22 16:09:58 949
原创 最详细的 SAP ABAP Web Service 创建和消费步骤讲解
本文原版发表于 SAP 官方社区,当时用的英文版写作,标题为:Step by step to create, consume and trace web service in ABAP systemhttps://blogs.sap.com/2014/05/20/step-by-step-to-create-consume-and-trace-web-service-in-abap-system/总共阅读量超过 18 万。How to create web service provider in A
2021-05-22 15:16:46 2454 1
原创 Angular 依赖注入学习笔记之工厂函数的用法
网址:https://angular.institute/diWe can transfer any data through our apps, transform it and replace it.我们能传递任何数据到我们的应用里,改变其形态,并且替换。Another case: document and fetch can work in your browser correctly. But one day you need to build your app in SSR or pr
2021-05-22 11:33:58 409 1
原创 SAP Spartacus 如何获得当前渲染页面的 CMS 元数据
PageLayoutService 实现里有一个 cms 依赖:CmsService.当前页面元数据信息,通过 cms.getCurrentPage 维护。从 routingService 里拿到当前页面上下文,再从 central 的 ngRx store 里抽取实际数据:routingService.getPageContext 的实现:从 store里读取。关于 TypeScript 的箭头函数,下列两种写法都正确:第一种:没有给该函数指定返回类型,TypeScript 编译器自动
2021-05-22 08:25:49 267 1
原创 Angular Universal 学习笔记 - 客户端渲染和服务器端渲染的区别
https://github.com/angular/universalUniversal 的命名由来:We believe that using the word “universal” is correct when referring to a JavaScript Application that runs in more environments than the browser. (inspired by Universal JavaScript)参考了一个能运行在除浏览器之外的其他环
2021-05-22 08:23:50 341 1
原创 使用 Angular Universal 实现服务器端渲染
原文链接:https://medium.com/geekculture/implement-server-side-rendering-using-angular-universal-b32ebd9b8b29Normally Angular is a framework that is used to build Single Page Applications (SPA’s) and executes on the browser which means angular application ren
2021-05-21 20:19:49 392 1
原创 Angular 服务器端渲染的学习笔记(二)
官网地址:https://angular.io/guide/universal使用服务器端渲染,可以提前让服务器加载一些异步数据,比如从数据库里读取产品的描述信息,便于爬虫读取。网络爬虫一般不会通过执行 JavaScript 的方式去异步加载 HTML.因此通常情况下,我们需要服务器先执行一些 JavaScript 片段,才能将生成的页面返回给客户端。SSR 可以生成一个应用的静态版本,但并不意味着该版本完全可用。应用页面的静态版本,大多数 DOM 元素都已经提前加载。这种情况下,不需要等待 Angular
2021-05-21 18:30:42 718 1
原创 Angular 服务器端渲染的学习笔记(一)
官网链接:https://angular.io/guide/universalAngular Universal, a technology that renders Angular applications on the server.Angular Universal 是一种将 Angular 应用渲染于服务器平台上的技术。A normal Angular application executes in the browser, rendering pages in the DOM in res
2021-05-21 09:59:30 545 1
原创 第三方外部 Saas提供商如何跟使用 SAP 系统的客户进行对接接口集成
最近收到一位朋友的咨询:作为第三方外部 Saas提供商,想要跟使用 SAP 系统的客户进行对接接口集成,需要了解哪些 SAP 的版本?和常见对接技术语言,方式,协议,注意事项?首先这个问题范畴确实比较大。随着近些年来 SAP 向云端转型,收购了很多公司的云产品,SAP 的产品线不再像本世纪初那样主要由 基于 ABAP 技术栈的产品组成。我们可以首先把 SAP 产品按部署方式,分为基于 On-Premises (本地部署) 和基于 Cloud 两种类型。On-Premises:SAP ERP,SAP
2021-05-20 13:21:50 993 2
原创 如何从 SAP Spartacus Product Detail 页面,找到其 Angular 实现 Component 的位置
如图:假设我们通过下列 url,打开 SAP Spartacus 一个产品的明细页面,我们想找出是哪个 Angular Component,实现了该明细页面。http://localhost:4200/electronics-spa/en/USD/product/553637/nv10打开 Chrome 开发者工具,查看 Product 明细页面的 HTML 源代码,能找到 cx-page-layout 节点,class 值为 ProductDetailsPageTemplate.因此,Produ
2021-05-18 12:05:03 361 2
原创 ABAP 编程语言的变量,常量和字面量,以及文本符号
在 Jerry 的前一篇文章ABAP 标准培训教程 BC400 学习教程之四:ABAP 编程语言的数据类型里,我们实际上已经涉及到了 ABAP 字面量的一种:如下图高亮的 ‘01’ 所示,该文本字面量由两个单引号包裹的字符0和1组成:除了文本字面量之外,ABAP 还有数字字面量:上图代码的语义是,把数字字面量 123 和 -123 的值,分别赋给 ABAP 整型变量 lv_int1 和 lv_int2.ABAP 常量从某种意义上说,同 ABAP 字面量有相似之处。ABAP 常量通过关键字 CON
2021-05-16 21:59:28 2007 3
如何使用 ABAP 创建包含不同字体大小的 Word 文档-模板文件
2022-08-07
使用 ABAP 创建 Word 文档的工具库
2022-08-06
SAP Fiori 和 SAP UI5 开发学习路线图
2022-03-25
UI5 Inspector,一款好用的 Chrome 扩展
2022-02-22
使用 JavaScript 上传 PDF 和 Excel 文件到 ABAP 服务器并解析
2021-11-13
SAP Fiori Elements Overview 页面的创建.mp4
2021-05-23
在没有任何前端开发经验的基础上, 创建第一个 SAP Fiori Elements 应用 的配套源代码
2021-04-16
dgreadiness_v3.6.zip
2021-02-17
自己用Java编写的有道云笔记图片批量下载工具
2020-11-29
《Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现》文章的源代码
2020-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人