Angular @Injectable 注解的工作原理浅析
下面是 SAP 电商云 Spartacus UI 两个 Angular Service 类,都加上了 @Injectable 的注解,区别就在于是否具有输入参数 providedIn: @Injectable() 装饰器指定 Angular 可以在 DI 系统中使用这个类。 这个注解的输入元数据,providedIn: ‘root’,意味着被注解的 Angular service 类,在整个
SAP Fiori Launchpad 应用的两个实用技巧分享
本文分享两个笔者在 SAP Fiori 开发项目中习得的两个关于 Fiori Launchpad 的技巧。 如何查找 SAP Fiori UI 上某个字段对应的底层数据库表很多从事ABAP开发的朋友们,想必都阅读过这个文档的英文或中文版: 英文版:18 Techniques for Locating the Underlying Data of a Screen Field中文版:在SAP G
如何让 ABAP 服务器能够响应通过浏览器发起的自定义 HTTP 请求的试读版
零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 标准培训教程 BC400 学习笔记之三:ABAP 编程语言的特性和基本构成要素ABAP 标准培训教程 BC400 学习笔
SAP AppGyver 的 Universal Theme System 使用介绍
在不少 SAP 产品里,为了避免调整应用程序的样式设计时,不需要单独修改UI的每一个部分,通常都会引入所谓 Skin 或者 Theme 的概念。在 SAP AppGyver 里也有称之为 Universal Theme System 即通用主题系统。 通过这个系统,用户在整个应用程序中能够以可控的方式协调样式和主题。 当用户使用 Universal Theme System 构建应用程序时
SAP AppGyver 简介
SAP AppGyver 工具提供了一个专业的、无代码的应用程序开发环境,使用者可以通过其进行快速开发具有拖放功能的应用程序,无论使用者的角色和技能水平处于何种水平。 AppGyver 使用可视化开发环境构建不含代码的企业级应用程序,可以提高开发效率。 在系统集成方面,AppGyver 支持使用数百个连接器(Connector)和数千个预构建的集成场景,以此来连接和集成来自SAP和非SAP系统
SAP S4 Material Management 库存模块 MARD 数据库表读取技术细节介绍
SAP ERP 6.0 库存管理数据模型由两个文档表 MKPF(用于文档抬头信息)和 MSEG(用于文档项目数据)组成。 此外,在多个表中存储了汇总的实际库存数量数据。 其中一些表还存储物料主数据属性,例如 MARC、MARD 和 MCHB 表。 此类具有物料主数据属性以及实际库存数量的数据库表,在本文余下部分称为混合表(Hybrid Table)。 相比之下,还有像 MSSA 这样的表格,仅包含
SAP ABAP CDS view 视图的 Replacement 技术介绍
在ABAP Dictionary中,可以使用其 CDS 实体的名称将 CDS 视图赋给透明数据库表和经典数据库视图作为替换对象。前提条件是 CDS 视图定义的结构类型与数据库表或经典视图的结构相匹配,如下所示: 两个模型字段的数量必须匹配必须能够将CDS视图的一个字段赋值给数据库表或经典视图的对应字段对于 client 字段来说,其映射关系与它的名称无关。对于数据库表的所有其他组件,CDS视
SAP ECC 和 S4HANA Material 物料库存管理的模型比较
MATDOC 数据库表现在包含了 Material 物料数据的抬头信息和行项目数据。混合表(例如MARC、MARD等)仍然存在,但它们只保存主数据信息(Master Data)。在选择这些表期间显示的所有库存信息都是动态计算的。在动态计算库存数据时,使用 MATDOC_EXTRACT表的目的是为了加速 对 MATDOC 表的汇总。 注意,在 S/4HANA 里,MARD 这些表里包含的库存值
SAP ABAP 系统进行数据库表查询的几种常用方法的试读版
零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 标准培训教程 BC400 学习笔记之三:ABAP 编程语言的特性和基本构成要素ABAP 标准培训教程 BC400 学习笔
SAP S/4HANA New Simplified Data Model (NSDM) 模型介绍
SAP ERP Central Component(简称 ECC)库存管理数据模型,是建立在物料文档(Material Document)、混合表(Hybrid Table)、聚合表(Aggregation Table)和历史表(History Table)之上的。 这些表里面存储着部分冗余信息,用于向应用返回各种查询需求。 数据模型中的大量表,往往会导致库存相关报告运行时的低性能,因为为了显
在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储
零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 标准培训教程 BC400 学习笔记之三:ABAP 编程语言的特性和基本构成要素ABAP 标准培训教程 BC400 学习笔
SAP Fiori 应用 Adapt UI 动态显示或者隐藏的技术设计细节解析
工作中笔者的同事曾经问过我一个问题,SAP Fiori 界面上这个 Adapt UI 的按钮,为什么有的系统上有,有的系统上没有?Fiori Key User正是通过点击该按钮,进入Fiori UI的Adaptation模式,从而实现在屏幕上新增扩展字段的目的。 比较下面两个不同系统的截图: 为什么这个Adapt UI按钮,如此神出鬼没,有的系统上有显示,有的没有? 自己动手,丰衣足食。
在 SAP ABAP 系统对事物码 SEGW 创建的 OData 服务进行配置并测试试读版
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
SAP OData 开发从入门到提高教程的目录
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
SAP UI5 图片显示控件 Avatar 的使用方式介绍试读版
一套适合 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer,
SAP 电商云 Spartacus UI SiteContextParamsService 的实现原理解析
近些年来电子商务应用网站设计的一个趋势是引入所谓的 无干扰 checkout,即去掉常规网页中的页眉和页脚,以便让用户将注意力集中在 checkout 流程本身,防止其不小心导航出了 checkout 页面。 Spartacus是由CMS(内容管理系统)驱动的。这意味着它显示基于从后端返回的内容。因此,要移除标题和 footer,它只需要从checkout CMS页面删除页眉和页脚槽。 这是一
SAP Fiori @OData.publish 注解的工作原理解析
笔者前一篇文章
SAP 电商云 Spartacus UI BaseSiteInitializer 的实现明细
servicescurrentcy 和 language,都有持久化。base site 没有。Service 里还包含通过 url 设置 context 的实现类。总共分 4 组实现。 base-site-initializer.ts(BaseSiteInitializer)首先,这个类是 Injection Token APP_INITIALIZER 的 provider,在应用程序初始
Angular InjectionToken APP_INITIALIZER multi 标志位不同值的情况讨论
下图是 SAP 电商云 Spartacus UI 中的一段和 Site Context 处理逻辑相关的代码: export const contextServiceProviders: Provider[] = [ BaseSiteService, LanguageService, CurrencyService, { provide: APP_INITIA
Angular InjectionToken APP_INITIALIZER 的实现方法介绍
APP_INITIALIZER 是 InjectionToken的一个实例。它是 Angular 提供的内建注入令牌。 Angular会在应用加载时执行这个令牌提供的函数。如果函数返回promise,那么angular会一直等待,直到promise被解析。这将使它成为在应用程序初始化之前执行一些初始化逻辑的理想位置。 Angular 注入器使用 DI 令牌来定位 Angular provide