- 博客(12407)
- 资源 (16)
- 收藏
- 关注

原创 SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)
在 SAP 产品里,存在多种 OData 服务的开发方式,其中最典型的三类,SEGW, RAP(Restful ABAP Programming) 和 CDP(Cloud Application Program),就是笔者在本教程里会为大家分享和讲解的内容。同笔者的另一个 SAP UI5 教程《SAP UI5 应用开发教程的学习目录 - 循序渐进,由浅入深,适合不同水平的 SAP UI5 开发人员》一样,本教程笔者计划通过 300 篇以上的文章篇幅,分别介绍这三类 SAP 主流的 OData 服务开发技术。
2022-06-26 11:30:23
4559
15

原创 SAP UI5 应用开发教程的学习目录 - 循序渐进,由浅入深,适合不同水平的 SAP UI5 开发人员
笔者在业余时间设计了这份 SAP UI5 学习教程,把开发一个完整的 SAP UI5 应用的流程,拆分成若干个步骤,力求每个步骤里,把涉及到的知识点都涵盖到。建议零基础或者对 SAP UI5 知之甚少的 SAP UI5 初学者,按照顺序从第一个步骤开始循序渐进地学习,把这些代码下载到本地,配合教程的文字讲解,自己动手,以加深理解。对于已经有一定基础的 SAPUI5 开发人员,可以通过本文的目录,跳过前面一部分比较基础的章节,直接挑选对自己工作项目有关,或者包含某些知识点自己尚未掌握的章节来有针对性地学习。
2021-10-05 21:11:59
10114
7
原创 利用 AWS CodeWhisperer 激发孩子的编程兴趣
CodeWhisperer 作为一款免费使用的基于 AI 的代码生成工具,不仅能够帮助专业的程序员减少机械的代码编写时间,同时也能作为少儿图形化编程的一个补充,给那些学有余力又对编程感兴趣的小朋友,打开一扇新的通往编程世界的大门。
2023-06-05 14:54:54
33
原创 动手开发第一个 SAP Fiori Elements 应用
至此可能大家虽然得到了一个可以正常运行的 Fiori Elements,但是仍然心里没底,因为自己一行代码也没有编写,不知道这个应用的工作原理?如果大家在做的过程中遇到各种问题,可以在文末评论区留言,把你们遇到的错误消息发给我,或者把错误截图私信给我。按照笔者介绍的步骤,完成后的 Fiori Elements 应用界面如下图所示,是不是看起来很专业?本教程的前五篇文章,我们已经为 SAP Fiori Elements 的创建做了足够的铺垫。笔者也把自己做好的例子上传到 Github 上了,地址在文末。
2023-06-03 20:51:37
52
原创 5. 动手开发第一个 SAP Fiori Elements 应用
本教程的前五篇文章,我们已经为 SAP Fiori Elements 的创建做了足够的铺垫。是动手开始创建第一个 Fiori Elements 应用的时候了。大家可以跟着笔者一起,在本地电脑上用 Visual Studio Code 一步步创建 Fiori Elements 应用了。大家在动手之前,请务必按照上述编号为1的文章,完成自己本地 Visual Studio Code 的安装和环境搭建。如果大家在做的过程中遇到各种问题,可以在文末评论区留言,把你们遇到的错误消息发给我,或者把错误截图私信给我。
2023-06-03 20:47:21
281
原创 将 SAP ABAP 数据库表里存储的文件二进制内容下载成为本地文件试读版
的字段列表,这个数据库表用于存放用户按照笔者这篇教程介绍的步骤,使用 SAP ABAP OData 服务将文件上传到 ABAP 服务器上后保存的文件内容。在 SAP 标准产品和实际项目开发中,经常遇到一些需要将尺寸不大的文件(比如小于1MB的配置文件)的二进制内容,存储到 ABAP 数据库的情况。其中 VALUE 字段显示的是文件二进制内容的十六进制编码,这个编码同我们本地使用。使用到的完整 50 行 ABAP 代码在文末,这里介绍代码编写的关键要点。格式的内容下载到本地,重新生成新的文件。
2023-06-03 10:16:32
93
原创 97. 将 SAP ABAP 数据库表里存储的文件二进制内容下载成为本地文件
本文介绍了如何使用 ABAP Function Module `GUI_DOWNLOAD` 将类型为 xstring 的文件二进制内容,下载到本地成为一个本地文件的详细步骤。
2023-06-03 10:06:03
108
原创 SAP Spartacus UI 中的 CmsTicketInterceptor
CMS 是一个用于管理网站内容的系统,如页面、组件和其他与前端显示相关的元素。为了确保在 Spartacus UI 中显示的内容与 CMS 的状态保持一致,需要使用一个会话标识符来关联二者。为了让SmartEdit能够在可组合的商店界面加载页面,需要向SmartEdit发送所有所需的上下文数据。当用户在 CMS 中进行更改并预览更改结果时,系统会创建一个 CMS 会话票证(CMS Ticket)。properties字段包含了所需的动态属性组,这些属性组适用于包含的CMS项。
2023-06-03 10:03:37
38
原创 Chrome 开发者工具 network 面板里观察到的 Prelight 和 OPTIONS 请求的含义
最近我负责处理团队里 Spartacus 和 SmartEdit 集成遇到的一些 ticket,在 Chrome 开发者工具 network 面板里经常观察到一些 Method 值为 preflight 和 OPTIONS 的请求,于是就详细研究了一下。在 Chrome 开发者工具的 Network 面板里,我们可以观察到各种 HTTP 请求和响应,包括 Prelight 请求(也称为预检请求)和 OPTIONS 请求。在详细讲解这两者之前,我们需要了解跨域资源共享(CORS)的概念。
2023-06-02 12:14:44
76
原创 SAP Commerce Cloud的SmartEdit 不同模式的介绍
SAP Commerce Cloud的SmartEdit提供了不同的模式(Mode),包括Preview Mode(预览模式)、Basic Edit Mode(基本编辑模式)和Advanced Edit Mode(高级编辑模式)。总的来说,Preview Mode用于预览网站,Basic Edit Mode提供了基本的编辑功能,而Advanced Edit Mode提供了更丰富和高级的编辑功能。用户可以根据自己的需求和技能选择适合的模式,以实现对网站内容的编辑和管理。,以便用户进行具体的编辑操作。
2023-06-02 12:04:25
146
原创 什么是 SAP Commerce Cloud 的 Content Catalog 概念
Content Catalog是一个包含页面、组件和其他相关资源的容器,它允许您以结构化和可重用的方式创建和管理网站的不同部分。通过Content Catalog,您可以轻松更新和发布网站的内容,以满足不同的市场需求和商业策略。例如,他们可以创建一个英文版本的Content Catalog和一个法语版本的Content Catalog,并在不同的渠道上分别发布这些版本。通过Content Catalog,这个在线零售商可以有效地管理和组织他们的网站内容,并在不同的渠道上提供一致和个性化的用户体验。
2023-06-02 12:03:57
161
原创 什么是 SAP Commerce Cloud SmartEdit 的 Synchronization 概念
总结来说,SAP Commerce Cloud的SmartEdit中的Synchronization概念是确保Staged版本和Online版本之间内容的一致性和更新的过程。这是您用来编辑和更新内容的版本,也就是草稿版本。内容目录的在线版本包含已发布的内容,这是向您的客户展示的版本。而Online版本是内容目录的在线版本,包含已发布的内容,这是向您的访问者和客户展示的版本。当您完成在Staged版本的编辑工作后,需要将您所做的修改和更新推送到Online版本中,以便用户可以看到最新的内容。
2023-06-02 12:02:33
30
原创 用 SmartEdit 打开 SAP Commerce Cloud Storefront 时动态在 body 标签注入的 css class
CMS Item API 是一个通用的 API,通过转换和填充策略,可以通过检查项的属性,将 CMS 项序列化和反序列化为其 JSON/XML 等效项。例如,要更新 CMS 项,您必须提供 UUID,以便 CMS Item API 可以唯一标识该项。全局唯一标识符(UUID)是一个编码的组合键,表示 CMS 项在其内容目录版本中的标识。UUID 和其他属性,如目录和目录版本,用于唯一标识 CMS 项。使用此 API,您可以搜索、检索、创建和修改 CMS 项子类型,如 CMS 页面和 CMS 组件。
2023-06-02 11:58:34
47
原创 什么是 SAP Commerce Cloud SmartEdit 的 webApplicationInjector.js
webApplicationInjector.js 是 SmartEdit 的一个重要部分,它用于将 SmartEdit 的功能注入到运行 SAP Commerce Cloud 的网站中。这个文件的主要目的是将 SmartEdit 与 Commerce Cloud 之间建立一个桥梁,使得 SmartEdit 可以与 Commerce Cloud 的网站进行交互,从而实现内容的编辑和管理。如果 SmartEdit 无法加载页面,它会显示一个可操作的警告消息,用户可以选择等待页面加载或以预览模式加载页面。
2023-06-02 11:46:16
134
原创 什么是 SAP Commerce Cloud SmartEdit 的 preview API
总而言之,"cx-preview"作为请求中的一部分,用于指示SAP Commerce Cloud Spartacus UI进入预览模式,以便用户可以实时查看和测试其所做的更改。这为用户提供了一个可靠的方式来验证和调整页面的外观和功能,以满足其需求。请求中的"en"表示请求的语言版本,"USD"表示请求的货币代码,而"cmsTicketId"是一个预览票据ID,用于在预览环境中唯一标识该次预览操作。为了以指定的体验环境呈现商户网站,SmartEdit将请求的商户网站加载到请求的体验环境的iframe中。
2023-06-02 11:42:50
135
原创 什么是 SAP Commerce Cloud 的 Content Slot
非共享内容槽是指对共享内容槽的特定页面上进行个性化调整的内容槽。通过将共享内容槽转换为非共享内容槽,可以在特定页面上覆盖共享内容槽中的组件内容。例如,在电子商务网站的首页中,可以将共享的页脚内容槽转换为非共享内容槽,并在首页上显示特定的版权信息和联系方式,以满足首页独有的需求。页面内容槽是指属于特定页面的内容槽。非共享内容槽(Non-shared content slots):非共享内容槽在指定页面上覆盖共享内容槽,也就是说,在指定页面上,您可以选择通过将共享内容槽转换为非共享内容槽来覆盖共享内容的内容。
2023-06-02 09:41:06
152
原创 this version of the Java Runtime only recognizes class file versions up to 52.0
该版本号与Java编译器的版本相关联,用于指示类文件是使用哪个版本的Java编译器生成的。不同的Java编译器版本会生成不同版本的类文件,因此在选择Java编译器版本时需要考虑兼容性和所需的语言特性。“java class file version 55.0” 是指Java编译器生成的Java类文件的版本号。每个Java类文件都有一个与之关联的版本号,用于指示该类文件是使用哪个Java编译器版本编译的。主版本号通常是向后兼容的,也就是说,较新版本的Java编译器可以编译较旧版本的Java类文件。
2023-05-31 18:17:40
53
原创 SAP Commerce Cloud SolrIndexNotFoundException 异常 - 做 full indexing 的详细位置
扩展的应用场景广泛,可以用于数据导航、数据分析、数据管理、订单和库存管理,以及个性化推荐和营销等方面。它提供了一个基于Solr的搜索引擎,允许管理员通过灵活的搜索条件和过滤器来查找和浏览系统中的数据。搜索历史记录和保存:backofficesolrsearch扩展可以记录管理员执行的搜索操作,并提供搜索历史记录和保存功能。高级搜索功能:该扩展提供了强大的高级搜索功能,允许管理员通过多个搜索条件和过滤器来查找数据。管理员可以执行复杂的搜索查询,获得满足特定条件的数据,并基于这些数据生成报告和分析结果。
2023-05-31 18:09:12
57
原创 Angular 应用里 NullInjectorError - No provider for XX 错误的一个场景和分析过程
在使用Angular模块时,有两种方式可以将模块加载到应用程序中:通过 “loaded for root”(根加载)和通过 “loaded with module”(模块加载)。在这个例子中,我们将 “SharedModule” 加载为根模块,并将其导入到应用程序的根模块 “AppModule” 中。假设我们有一个名为 “FeatureModule” 的模块,其中包含了一些特定的功能组件、指令和服务,我们希望这些功能仅在 “FeatureModule” 及其子模块中可用。
2023-05-31 17:48:22
49
原创 关于 SAP Commerce Cloud 本地安装用 root user 执行安装脚本的问题
总之,遵循最佳实践并以适当的权限运行Solr搜索引擎可以降低系统面临的安全风险,并提供更好的安全性、可追溯性和可管理性。配置安全策略:根据实际需求配置适当的安全策略和访问控制,限制对Solr API和管理界面的访问,并采取其他适当的安全措施来保护Solr实例和数据。设置适当的文件和目录权限:确保Solr所需的文件和目录仅对Solr用户可写,以减少恶意代码注入或未经授权的修改的风险。定期更新和监控:确保及时应用Solr的安全更新和补丁,并设置适当的监控和警报机制来检测异常活动和潜在的安全威胁。
2023-05-31 17:34:34
48
原创 什么是 SAP Commerce Cloud 的 Flexible Search?
通过WHERE子句,我们指定了查询条件,包括订单和用户的关联、订单条目和产品的关联、产品编码等。总结起来,SAP Commerce Cloud的Flexible Search是一个功能强大、灵活且可扩展的查询工具,用于在Commerce Cloud平台上进行复杂的数据库查询操作。通过灵活的语法和丰富的查询选项,开发人员可以根据具体的业务需求编写高效、定制化的查询语句,以提高系统性能和满足业务要求。它不仅可以查询基本的属性,还可以查询关联对象的属性,从而提供了更深入和复杂的查询能力。
2023-05-31 17:28:13
50
原创 Spartacus 项目中 scss 文件里的 mergeAll 函数
函数,那可能是在某个项目或框架中自定义的函数。SCSS 和 Sass 提供了强大的样式处理功能,包括嵌套规则、变量、混合器、继承、函数等等,这些功能可以帮助我们更有效地组织和管理样式代码。函数,那可能是在某个项目或框架中自定义的函数。这个函数的具体实现会根据项目的需求而定。下面是一个简单的示例,展示了如何在 SCSS 中自定义一个类似于。函数是一个 JavaScript/TypeScript 中的数组操作方法,用于将多个数组合并为一个数组。函数的具体实现和用法会根据项目的需求和开发者的设计而有所不同。
2023-05-31 10:30:41
78
原创 什么是 bootstrap ngb modal window?
ng-bootstrap 是官方提供的 Angular 版本的 Bootstrap 组件库,它提供了 Angular 指令和服务,使开发人员可以更轻松地在 Angular 应用程序中使用 Bootstrap 组件,包括 Modal 组件。弹出窗口效果:Modal 组件以叠加的方式在当前页面上展示,将焦点放在模态窗口上,而模态窗口之外的页面元素被遮罩层所覆盖,使用户专注于模态窗口的内容。模态窗口尺寸:Modal 组件支持不同的尺寸选项,如小型、中型和大型,以适应不同内容的展示需求。在组件类中,我们使用。
2023-05-30 17:27:02
64
原创 SAP Spartacus 开源项目中 $skipComponentStyles 的作用介绍
自定义样式:有时候,我们可能希望完全自定义某个组件的样式,而不使用框架默认的样式。通过设置 $skipComponentStyles 为 true,我们可以跳过加载框架提供的样式,以便完全自定义组件的外观。通过跳过特定组件的样式加载,我们可以避免这些兼容性问题,并确保组件的正常显示和功能。需要注意的是,使用 $skipComponentStyles 跳过组件样式加载应该谨慎使用,并且仅在必要的情况下才使用。通过选择性地跳过某些组件的样式加载,我们可以提高应用的加载速度和性能。兼容性问题等情况下非常有用。
2023-05-30 17:07:54
50
原创 css breakages 的概念介绍
为了避免CSS破坏,开发者应该注意正确的语法、选择器的优先级、属性冲突和响应式设计原则。如果在CSS代码中存在错误或不当的使用,可能会导致页面显示出不正确的样式或布局,这被称为CSS breakages(CSS破坏)。在这个例子中,"h1"选择器和"title"元素ID都针对同一个HTML元素。由于具有较高优先级的CSS规则将覆盖其他规则,因此会产生样式冲突,导致样式显示出意料之外的效果。在这种情况下,如果给一个元素应用了"float-left"类,但后续的元素没有清除浮动,可能会导致布局问题。
2023-05-30 16:50:59
75
原创 SAP Commerce Cloud 通过 SmartEdit 添加 Component 的一个例子
Spartacus和SmartEdit是SAP电商云中的两个重要组件。Spartacus作为默认的UI框架,提供了一个现代化的电子商务前端应用程序的构建平台,而SmartEdit则是一个内容编辑工具,帮助非技术人员管理和修改网站内容。它们的结合使企业能够在SAP电商云上构建功能强大且易于管理的电子商务解决方案。
2023-05-30 11:38:18
42
原创 SAP Commerce Cloud 2205 生成本地用于开发目的的 license key
在SAP Commerce中,许可证文件通常是一个特定的文件(通常是一个XML文件),其中包含有关许可证密钥和许可证配置的信息。在SAP Commerce的本地项目文件中,bin\platform文件夹下的license.bat文件是一个批处理脚本,用于安装和配置许可证文件。总之,license.bat文件是SAP Commerce本地开发环境中的一个重要组成部分,它用于安装、验证和配置许可证文件。通过运行license.bat脚本,您可以安装新的许可证文件,并更新本地开发环境中的许可证配置。
2023-05-29 17:17:14
76
原创 利用 ChatGPT 解决某些网站文章不允许复制粘贴的限制
可以在 Chrome 开发者工具里,切换到 Element 图标,把想要复制粘贴的文字对应的 element 找到,在开发者工具里选择。此时就是 ChatGPT 派上用场的时候了,让 ChatGPT 把混合文字中的中文字符提取出来就行。如下图所示,假设我想把这段文字复制下来,但是在浏览器里点击右键,会遇到。粘贴到记事本里,发现得到的是中文字符和 HTML 标签字符比如。的错误提示,此时 Ctrl C 也不工作。
2023-05-29 15:31:01
178
原创 Angular HTTPInterceptor 的使用一例
通过这两个方法的组合使用,你可以在 Angular 中的 HTTP 拦截器中实现对请求和响应的拦截、修改和处理,以及执行额外的逻辑操作。现在,当你的组件通过 Angular 的 HTTP 客户端发送请求时,拦截器将在请求发出之前修改请求并添加。)只是一个占位符,你需要将其替换为实际的服务器端点 URL,以确保请求能够到达正确的服务器。方法则负责实际处理最终的 HTTP 请求,并返回一个可观察对象以进行响应的处理。的查询参数添加到请求中,以便服务器能够根据该参数返回相应的模型数据。请注意,示例中的 URL(
2023-05-29 15:16:58
65
原创 如何直接通过 ABAP 调试器将 SE16 事务码里无法直接查看的内容下载到本地试读版
因此本文介绍一种更简单的,不需要写代码的方法,能够在 ABAP 调试器里,直接将数据库表里某条记录内,包含文件的二进制内容,直接下载到本地,另存为一个新的本地文件。等函数,将数据库表里的文件内容下载到本地后,再打开查看(本教程后续笔者会详细介绍其步骤),但这样毕竟还是会引入一些开发的工作量。那么在 SE16 里面,因为无法直接查看类型为 RAWSTRING 的字段的值,有时不太方便。下图是我在本地用 WinHex 软件打开本地文件,查看其内容的 16 进制编码的截图。
2023-05-29 09:28:27
106
原创 96. 如何直接通过 ABAP 调试器将 SE16 事务码里无法直接查看的内容下载到本地
本文介绍了一种简易的不需要自己动手编程的小技巧,能够将常规情况下无法查看的数据库表中二进制字段值的内容,下载并另存为本地文件,通过实际动手操作,也进一步加深了对 ABAP 调试器的掌握程度。
2023-05-28 23:42:10
88
原创 一些计算机基础知识的考试复习题
2013Excel 里用 AND 在开头连接多个条件。立即寻址访问速度最快。直接寻址方式下,操作数在内存中,指令中给出操作数的地址,需要再访问一次内存来得到操作数。立即寻址方式下,操作数在指令中,所以在取得指令时就得到操作数,是速度最快的。寄存器寻址方式下,操作数在CPU的寄存器中,与在内存中取得操作数相比,该方式下获取操作数的速度是很快的。寄存器间接寻址方式下,操作数的地址在CPU的寄存器中,还需要访问一次内存来得到操作数。CPU中有一些重要的寄存器,其中程序计数器中存放待执行指令的内存地址,指令寄
2023-05-28 10:54:52
37
原创 Github Copilot 功能介绍
它可以自动完成代码、提供函数和类的建议、生成注释和文档、提供示例代码、纠错语法错误和改善代码风格,同时还提供相关的文档和资源链接。Copilot 结合了 GitHub 的代码存储库和开源社区的力量,以及 OpenAI 的自然语言处理和机器学习能力,为开发人员提供智能化的代码建议和生成功能。提供示例代码:Copilot 可以根据您的需求和上下文,为您生成示例代码,帮助您理解特定功能或解决问题的方法。提供函数和类的建议:Copilot 可以根据您当前正在解决的问题和上下文,为您提供函数和类的建议。
2023-05-25 10:16:34
410
原创 cpu 中控制单元执行的任务分析
控制单元(Control Unit)是计算机中的一个重要组件,它的主要任务是协调和控制计算机的各个部件,以执行程序中的指令序列。控制单元负责解码指令、生成控制信号,并将这些信号发送给其他组件,例如运算单元、寄存器组、存储器和输入/输出设备等。本文余下部分详细介绍控制单元的任务,并举例说明。
2023-05-21 16:47:07
55
原创 软件著作权,专利权,商标权和商业秘密权的详细差异辨析
软件著作权从软件作品性的角度保护其表现形式, 源代码(程序)、 目标代码(程序)、 软件文档是计算机软件的基本表达方式(表现形式),受著作权保护;专利权从软件功能性的角度保护软件的思想内涵, 即软件的技术构思、程序的逻辑和算法等的思想内涵,涉及计算机程序的发明, 可利用专利权保护;商标权可从商品(软件产品)、 商誉的角度为软件提供保护, 利用商标权可以禁止他人使用相同或者近似的商标, 生产(制作)或销售假冒软件产品, 商标权保护的力度大于其他知识产权, 对软件侵权行为更容易受到行政查处。
2023-05-21 12:52:02
75
原创 SMTP 和 POP3 协议的区别和联系
SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol 3)是两种常用的电子邮件协议,用于发送和接收电子邮件。虽然它们都涉及到电子邮件的传输,但在功能和使用方式上有一些区别。下面将详细介绍SMTP和POP3协议的区别和联系。
2023-05-21 10:50:44
82
原创 Windows操作系统磁盘碎片整理程序的作用
磁盘碎片是指文件在硬盘上分散存储的情况,导致文件的不连续存储,从而增加了文件读取和写入的时间。磁盘碎片整理程序通过重新组织文件的存储位置,将文件片段整理成连续的空间,以减少磁盘访问的时间和提高系统响应速度。用户可以根据自己的需求和偏好,配置自动整理任务的时间和频率,以保持磁盘的良好状态。提高数据安全性:磁盘碎片整理过程中,程序会将文件整理到较大的连续空间中,减少了文件分散存储的可能性。通过整理碎片,减少了寻道的距离和时间,可以降低硬盘的负载,延长其使用寿命。
2023-05-20 23:09:45
123
原创 操作系统中进程的就绪和等待两个状态的区别
在操作系统中,进程可以处于不同的状态,其中包括就绪状态和等待状态。就绪状态表示进程已经准备好被调度执行,而等待状态表示进程因为某种原因而暂时无法执行,需要等待特定事件的发生或条件的满足。
2023-05-20 23:09:43
161
如何使用 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关注的人