关于sap:SAP-UI5-里的-Busy-Dialog-控件使用概述

sap.m.BusyDialog 用于批示零碎正忙。当显示 Busy 对话框时,整个应用程序被会阻止,无奈进行任何新的操作。 Busy Dialog 蕴含下列几个组成部分,其中大部分是可选的。 title - 对话框的题目。 默认状况下,没有题目。text - 显示在Busy Dialog 上方的文本。showCancelButton - 一个可选的勾销按钮,用于进行执行。customIcon - 用作繁忙动画的可选代替图标。Busy Dialog 的应用场合操作继续超过一秒。心愿在页面到页面导航(轻量级版本)中批示页面的加载过程。如果遇见到后盾过程的运行可能会超过 10 秒,请提供勾销按钮。如果不显示题目或文本,请应用不可见文本控件(Invisible Control)为用户提供提醒,让用户晓得以后是由后盾过程在执行。不应该应用 Busy Dialog 的场合屏幕不应该被阻塞。 这种状况下,对特定的应用程序局部,应该应用 sap.m.BusyIndicator。不要应用 Busy Dialog 的题目属性。 以文本模式提供形容操作的准确文本。看个具体的例子: 弹出 Busy Dialog 的按钮: <mvc:View controllerName="sap.m.sample.BusyDialog.C" xmlns="sap.m" xmlns:l="sap.ui.layout" xmlns:mvc="sap.ui.core.mvc"> <l:VerticalLayout class="sapUiContentPadding" width="100%"> <Button text="Show Busy Dialog" press="onOpenDialog" class="sapUiSmallMarginBottom" ariaHasPopup="Dialog" /> </l:VerticalLayout></mvc:View>Busy Dialog 的 fragment: <core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core"> <BusyDialog title="Loading Data" text="... now loading the data from a far away server" showCancelButton="true" close="onDialogClosed" /></core:FragmentDefinition>控制器代码: sap.ui.define([ "sap/ui/core/mvc/Controller", "sap/ui/core/Fragment", "sap/ui/core/syncStyleClass", "sap/m/MessageToast"], function (Controller, Fragment, syncStyleClass, MessageToast) { "use strict"; var iTimeoutId; return Controller.extend("sap.m.sample.BusyDialog.C", { onOpenDialog: function () { // load BusyDialog fragment asynchronously if (!this._pBusyDialog) { this._pBusyDialog = Fragment.load({ name: "sap.m.sample.BusyDialog.BusyDialog", controller: this }).then(function (oBusyDialog) { this.getView().addDependent(oBusyDialog); syncStyleClass("sapUiSizeCompact", this.getView(), oBusyDialog); return oBusyDialog; }.bind(this)); } this._pBusyDialog.then(function(oBusyDialog) { oBusyDialog.open(); this.simulateServerRequest(); }.bind(this)); }, simulateServerRequest: function () { // simulate a longer running operation iTimeoutId = setTimeout(function() { this._pBusyDialog.then(function(oBusyDialog) { oBusyDialog.close(); }); }.bind(this), 3000); }, onDialogClosed: function (oEvent) { clearTimeout(iTimeoutId); if (oEvent.getParameter("cancelPressed")) { MessageToast.show("The operation has been cancelled"); } else { MessageToast.show("The operation has been completed"); } } });});

September 1, 2022 · 1 min · jiezi

关于sap:一键部署开箱即用的代理服务器解决-SAP-UI5-应用开发过程中访问远端-OData-服务的跨域问题

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用自开发的代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案SAP UI5 利用开发教程之九十五 - SAP UI5 下拉菜单(Select) 控件的应用形式SAP UI5 利用开发教程之九十六 - SAP UI5 列表控件分页显示数据时,如何自定义分页大小SAP UI5 利用开发教程之九十七 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的明细页面SAP UI5 利用开发教程之九十八 - 从 viewId 这个属性谈起,聊聊 SAP UI5 的 HTML 源代码生成机制SAP UI5 利用开发教程之九十九 - 深入探讨 SAP UI5 本地开发环境里的 package.json 和 ui5.yamlSAP UI5 利用开发教程之一百 - 如何批改 SAP UI5 框架的源代码实现,以及应用本地部署的 SAP UI5 SDKSAP UI5 利用开发教程之一百零一 - SAP UI5 利用的 Locale 决定机制SAP UI5 利用开发教程之一百零二 - SAP UI5 利用的打印(Print)性能实现详解SAP UI5 利用开发教程之一百零三 - 如何在 SAP UI5 利用中生产第三方库SAP UI5 利用开发教程之一百零四 - SAP UI5 表格控件的反对复选(Multi-Select)以及如何用代码一次选中多个表格行我的项目SAP UI5 利用开发教程之一百零五 - SAP UI5 Master-Detail 布局模式的联动成果实现明细介绍SAP UI5 利用开发教程之一百零六 - 如何进步 SAP UI5 利用路由 url 的可读性SAP UI5 利用开发教程之一百零七 - SAP UI5 OverflowToolbar 容器控件以及 resize 事件处理的一些细节介绍SAP UI5 利用开发教程之一百零八 - SAP UI5 图片显示控件 Avatar 的应用形式介绍SAP UI5 利用开发教程之一百零九 - 应用 SAP UI5 FileUploader 控件上传本地文件SAP UI5 利用开发教程之一百一十 - SAP UI5 FileUploader 控件深刻介绍 - 为什么须要一个暗藏的 iframeSAP UI5 利用开发教程之一百一十一 - SAP UI5 FileUploader 控件实现本地文件上传,接管服务器端的响应时遇到跨域拜访谬误SAP UI5 利用开发教程之一百一十二 - 应用自开发的代理服务器解决 SAP UI5 FileUploader 上传文件时遇到的跨域拜访谬误SAP UI5 利用开发教程之一百一十三 - 授人以渔 - 如何自行查问任意 SAP UI5 控件属性的文档和技术实现细节SAP UI5 利用开发教程之一百一十四 - 如何通过单步调试的形式找到引起 Fiori Launchpad 路由谬误的起因SAP UI5 利用开发教程之一百一十五 - 对于将本地 SAP UI5 利用配置到本地 Fiori Launchpad 的技术实现深刻解说SAP UI5 利用开发教程之一百一十六 - 在 SAPGUI 里应用 ABAP 报表上传 SAP UI5 利用到 ABAP 服务器SAP UI5 利用开发教程之一百一十七 - 本地开发好的 SAP UI5 利用部署到 ABAP 服务器时,中文字符变成乱码的起因剖析和解决方案SAP UI5 利用开发教程之一百一十八 - 如何剖析因为 SAP UI5 版本差别带来的问题SAP UI5 利用开发教程之一百一十九 - 对于 SAP UI5 Container 控件 aggregation 的深入分析SAP UI5 利用开发教程之一百二十 - 如何依据 SAP UI5 框架代码抛出的谬误音讯,反查出是哪一行代码引起的谬误音讯SAP UI5 利用开发教程之一百二十一 - 一键部署开箱即用的代理服务器,解决 SAP UI5 利用开发过程中拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之一百二十二 - 正在写作中......阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

September 1, 2022 · 6 min · jiezi

关于sap:一个-SAP-开发工程师在-SAP-德国总部出差的见闻系列-2Walldorf-附近的小旅馆

本系列第一篇文章 一个 SAP 开发工程师在 SAP 德国总部出差的见闻系列 1:出差 ≠ 公费旅游 收回来之后,有读者留言:德国房子怎么这么矮啊? 这是因为,SAP 德国总部,坐落在间隔法兰克福约100公里的一座名叫 Walldorf 的小镇上。在百度百科上,将 Walldorf 的行政区类别标注为村,因而很多 SAP 从业人员,喜爱戏称其为 瓦村。 作为一座村庄,包含 SAP 总部办公楼在内,这里大部分屋宇都不超过 4 层,村民们寓居的屋宇,很多都是一二层的小别墅,领有本人的小花园。 SAP 总部于 1977 年正式进驻瓦村,过后只有一栋楼也就是下图这栋编号为 Building 1 的元老。 对于 SAP 公司的历史,请参阅 Jerry 的文章:ABAP 真的会过期吗?聊聊 ABAP 的过来,当初和将来。 SAP 的员工,一旦确认了出差的行程,订好往返的机票之后,下一步就须要预订位于 Walldorf 镇上的小旅馆。上图 Bing 搜寻里显示 Walldorf 左近的旅馆,住一晚均匀 90 美元左右(含早餐),这个价格和我出差时的状况差不多。 从成都双流机场登程,有直飞法兰克福的航班,全程大概10小时。也能够先飞北京,再从北京到达法兰克福。 个别咱们在网上订好 Walldorf 的旅馆后,也会顺带预订机场接机服务,即有专人开车到机场接机,把咱们从法兰克福机场间接送到 Walldorf 旅店门口。德国高速路况良好,100公里车程个别一个小时左右就能达到。 不晓得是德国人性情原本就比拟缄默,还是我不善言辞的起因,大多数时候,接机人员尽管会很激情地帮我把行李箱拎到车上,但整个高速路的行程中,司机都会分心驾驶,绝不会被动和我交谈。 瓦村村口的标志性装璜修建,我始终没弄清这是啥玩意。 进入瓦村村口之前,要先穿梭这一大片绿色的旷野: 旷野远处依稀可见一些平房装点其中,住在那里的居民,视线真的是太宽阔了。 达到旅店之后,和国内 checkin 流程一样,给旅店前台提供本人在线预订酒店的 Reservation Number,领房卡。Walldorf 的旅店房间广泛很小,除了一张床,一张办公桌,一个坐的沙发之外,简直就放不下其余货色了。 ...

August 25, 2022 · 1 min · jiezi

关于sap:一个-SAP-开发工程师在-SAP-德国总部出差的见闻系列-1出差-≠-公费旅游

SAP 德国总部是 SAP 软件的诞生和发源地,也是不少国内 SAP 从业者心中的圣地,对这个圣地充斥了神秘感。 Jerry 作为一个开发工程师在 SAP 成都研究院工作了 15 年(见我的文章 2007年1月11日~2022年1月11日,我在 SAP 成都研究院这15年 ),期间也取得了一些去 SAP 德国总部出差的机会。我会通过这个公众号,把我出差期间的一些见闻和感触分享进去,心愿对想理解在 SAP 德国总部工作状况的敌人有所帮忙。 说到出差,可能很多敌人下意识地会把它和休闲,放松,甚至公费旅游一类的字眼分割起来。理论状况恰恰相反。 我所经验过的 SAP 德国总部出差,无非就两种类型。 (1) 我的项目驱动型的出差,须要来自寰球各地的我的项目相干负责人员,坐在一个屋子里,高效地进行沟通和探讨,短时间内制订出一份具体的我的项目可执行打算。沟通结束后,参加人员返回各自所在的国家和地区,率领本人的团队,依照打算推动我的项目。 (2) 培训。培训内容个别是学习一门新的技术或者方法论。SAP 有个历史悠久的 TTT 打算,即 Train-The-Trainer. 被选中加入培训的人,飞到 SAP 德国总部,经验为其一周到两周的培训,零碎学习 SAP 一门课程的内容。实现学习之后,即成为该课程的 Trainer,回到本人工作的地区之后,须要承当起这门课程 Trainer 的角色,有任务把本人在 SAP 德国总部学到的常识,传授给其余共事。 如果是第一种类型的出差,为了充分利用来自寰球各地共事难得的共聚一堂的宝贵机会,通常每天的会议安顿都是满满的,从早上9点到下午6点,Outlook Calendar 充斥着各式各样的会议申请。这些会议都须要参与者注意力放弃高度集中,同时须要充沛参加到探讨中去,因而往往一天下来,我会感觉精疲力尽,身子被掏空的感觉。 第二种类型的出差,听起来仿佛要轻松不少,毕竟是去听他人传授常识,那么带着耳朵坐在地位上静静的听老师讲课,就能够了吧?实际上不然,SAP 这种 TTT 的我的项目,大多数时候的模式都是相似研讨会,或者说工作坊性质,期间有大量的小组讨论,也须要每个人充沛参加,这里授课的老师和听课的共事,更多的是一种平等的关系,而不像咱们在初高中学习时的老师和学生那种关系。参加 TTT 我的项目的共事们,心里都晓得本人回去之后,须要把当初正在学习的内容传授给其余共事。带着这个明确的指标,咱们都会全身心的投入到学习中去。 德国与国内有 6 个小时的时差。国内的下午 3 点,是德国早上 9 点。国内下午 6 点上班,是德国中午 12 点吃饭时间。那么去德国出差的时候,国内 SAP 成都研究院手头的开发工作怎么办?大部分工作内容,在出差临走之前,就须要和组内共事协商,看看是否可能分派进来。然而也会碰到一些无奈提前预知的突发状况,比方一些很紧急的客户 Incident, 一些必须当天回复,否则会延误整个开发团队我的项目进度的重要邮件,这种状况下没其余方法,只能抉择在旅馆里挑灯夜战了。 ...

August 20, 2022 · 1 min · jiezi

关于sap:如何根据-SAP-UI5-框架代码抛出的错误消息反查出是哪一行代码引起的错误消息试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案SAP UI5 利用开发教程之九十五 - SAP UI5 下拉菜单(Select) 控件的应用形式SAP UI5 利用开发教程之九十六 - SAP UI5 列表控件分页显示数据时,如何自定义分页大小SAP UI5 利用开发教程之九十七 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的明细页面SAP UI5 利用开发教程之九十八 - 从 viewId 这个属性谈起,聊聊 SAP UI5 的 HTML 源代码生成机制SAP UI5 利用开发教程之九十九 - 深入探讨 SAP UI5 本地开发环境里的 package.json 和 ui5.yamlSAP UI5 利用开发教程之一百 - 如何批改 SAP UI5 框架的源代码实现,以及应用本地部署的 SAP UI5 SDKSAP UI5 利用开发教程之一百零一 - SAP UI5 利用的 Locale 决定机制SAP UI5 利用开发教程之一百零二 - SAP UI5 利用的打印(Print)性能实现详解SAP UI5 利用开发教程之一百零三 - 如何在 SAP UI5 利用中生产第三方库SAP UI5 利用开发教程之一百零四 - SAP UI5 表格控件的反对复选(Multi-Select)以及如何用代码一次选中多个表格行我的项目SAP UI5 利用开发教程之一百零五 - SAP UI5 Master-Detail 布局模式的联动成果实现明细介绍SAP UI5 利用开发教程之一百零六 - 如何进步 SAP UI5 利用路由 url 的可读性SAP UI5 利用开发教程之一百零七 - SAP UI5 OverflowToolbar 容器控件以及 resize 事件处理的一些细节介绍SAP UI5 利用开发教程之一百零八 - SAP UI5 图片显示控件 Avatar 的应用形式介绍SAP UI5 利用开发教程之一百零九 - 应用 SAP UI5 FileUploader 控件上传本地文件SAP UI5 利用开发教程之一百一十 - SAP UI5 FileUploader 控件深刻介绍 - 为什么须要一个暗藏的 iframeSAP UI5 利用开发教程之一百一十一 - SAP UI5 FileUploader 控件实现本地文件上传,接管服务器端的响应时遇到跨域拜访谬误SAP UI5 利用开发教程之一百一十二 - 应用自开发的代理服务器解决 SAP UI5 FileUploader 上传文件时遇到的跨域拜访谬误SAP UI5 利用开发教程之一百一十三 - 授人以渔 - 如何自行查问任意 SAP UI5 控件属性的文档和技术实现细节SAP UI5 利用开发教程之一百一十四 - 如何通过单步调试的形式找到引起 Fiori Launchpad 路由谬误的起因SAP UI5 利用开发教程之一百一十五 - 对于将本地 SAP UI5 利用配置到本地 Fiori Launchpad 的技术实现深刻解说SAP UI5 利用开发教程之一百一十六 - 在 SAPGUI 里应用 ABAP 报表上传 SAP UI5 利用到 ABAP 服务器SAP UI5 利用开发教程之一百一十七 - 本地开发好的 SAP UI5 利用部署到 ABAP 服务器时,中文字符变成乱码的起因剖析和解决方案SAP UI5 利用开发教程之一百一十八 - 如何剖析因为 SAP UI5 版本差别带来的问题SAP UI5 利用开发教程之一百一十九 - 对于 SAP UI5 Container 控件 aggregation 的深入分析SAP UI5 利用开发教程之一百二十 - 如何依据 SAP UI5 框架代码抛出的谬误音讯,反查出是哪一行代码引起的谬误音讯SAP UI5 利用开发教程之一百二十一 - 正在写作中......阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

August 20, 2022 · 6 min · jiezi

关于sap:如何通过-SAP-ABAP-OData-expand-操作在同一个-HTTP-请求中返回多个节点的数据试读版

正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到进步(蕴含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,能够分为三大类。因而本教程也分为三大部分,别离进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 对 SAP OData 服务的开发,测试,公布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和应用场合,均有着深刻的钻研。 基于 SEGW - Gateway Service Builder 的开发教程1. 在 SAP ABAP 事物码 SEGW 里创立 SAP OData 我的项目2. 在 SAP ABAP 系统对事物码 SEGW 创立的 OData 服务进行配置并测试3. SAP ABAP OData 服务诊断工具 /IWFND/ERROR_LOG 的应用办法4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 办法实现指南5. SAP ABAP OData 服务如何反对 $filter (过滤)操作6. 应用 Postman 工具高效治理和测试 SAP ABAP OData 服务7. SAP ABAP OData 服务如何反对 $orderby (排序)操作8. SAP ABAP OData 服务如何反对创立(Create)操作9. SAP ABAP OData 服务如何反对删除(Delete)操作10. SAP ABAP OData 服务如何反对批改(Update)操作11. 应用 HTTP PUT, PATCH 以及 MERGE 申请生产 SAP ABAP OData 服务批改操作的实现及其区别12. SAP ABAP OData 服务如何反对 $select 有选择性地仅读取局部模型字段值13. SAP ABAP OData 服务的分页加载数据集的实现(Paging)14. 几种 SAP ABAP OData 服务的性能评估和测试工具介绍15. SAP ABAP OData 服务里 EntityType 和 EntitySet 的区别16. 如何批改 SAP ABAP OData 模型,使其反对 $expand 操作17. 如何通过 SAP ABAP OData $expand 操作在同一个 HTTP 申请中返回多个节点的数据更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待本教程前一篇文章,咱们曾经实现了为了反对 OData 协定定义的 $expand 操作,而必须进行的 OData 模型层面的加强: ...

August 20, 2022 · 2 min · jiezi

关于sap:如何修改-SAP-ABAP-OData-模型使其支持-expand-操作试读版

正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到进步(蕴含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,能够分为三大类。因而本教程也分为三大部分,别离进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 对 SAP OData 服务的开发,测试,公布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和应用场合,均有着深刻的钻研。 基于 SEGW - Gateway Service Builder 的开发教程1. 在 SAP ABAP 事物码 SEGW 里创立 SAP OData 我的项目2. 在 SAP ABAP 系统对事物码 SEGW 创立的 OData 服务进行配置并测试3. SAP ABAP OData 服务诊断工具 /IWFND/ERROR_LOG 的应用办法4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 办法实现指南5. SAP ABAP OData 服务如何反对 $filter (过滤)操作6. 应用 Postman 工具高效治理和测试 SAP ABAP OData 服务7. SAP ABAP OData 服务如何反对 $orderby (排序)操作8. SAP ABAP OData 服务如何反对创立(Create)操作9. SAP ABAP OData 服务如何反对删除(Delete)操作10. SAP ABAP OData 服务如何反对批改(Update)操作11. 应用 HTTP PUT, PATCH 以及 MERGE 申请生产 SAP ABAP OData 服务批改操作的实现及其区别12. SAP ABAP OData 服务如何反对 $select 有选择性地仅读取局部模型字段值13. SAP ABAP OData 服务的分页加载数据集的实现(Paging)14. 几种 SAP ABAP OData 服务的性能评估和测试工具介绍15. SAP ABAP OData 服务里 EntityType 和 EntitySet 的区别16. 如何批改 SAP ABAP OData 模型,使其反对 $expand 操作更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待@[toc] ...

August 18, 2022 · 2 min · jiezi

关于sap:如何在-SAP-Spartacus-中编写-ASMCompatible-的代码

要编写与 ASM 兼容的代码,开发人员须要应用 UserIdService 中的 takeUserId() 函数来确定 OCC 调用中应用的 userId。 这通常在一个服务中实现,该服务调度一个在无效负载中蕴含 userId 的 Action. 在 Spartacus 官网反对 ASM 场景之前,在代表通过身份验证的用户发送的申请中,OCC userId 是非凡的 current OCC 用户,由 OCC_USER_ID_CURRENT 常量示意。 这能够在以下示例中看到: /** * Retrieves user's addresses */ loadAddresses(): void { this.store.dispatch(new UserActions.LoadUserAddresses(OCC_USER_ID_CURRENT)); } 借助 Spartacus 中的官网 ASM 反对,确定 OCC userId 的正确办法是调用 UserIdService.takeUserId()。 应用后面的示例作为终点,Spartacus 当初确定 OCC 用户 ID,如下所示: /** * Retrieves user's addresses */ loadAddresses(): void { this.userIdService.takeUserId().subscribe((userId) => { this.store.dispatch(new UserActions.LoadUserAddresses(userId)); }); }小窍门:如果 OCC_USER_ID_CURRENT 间接在服务中应用,这意味着它可能会被对 takeUserId() 的调用所取代。 ...

August 16, 2022 · 1 min · jiezi

关于sap:为什么电商云产品需要-Assisted-Service-Module-ASM-模块的支持

SAP Commerce Assisted Service Module (ASM) 使组织可能在所有渠道中提供全面的疏导式洽购流程。 ASM 与 SAP Commerce B2C Accelerator 店面兼容,并且与店面的响应式设计齐全兼容。ASM 与 SAP Commerce Telco 和 B2B Accelerator 店面兼容。 然而,SAP 倡议在 B2B 加速器中禁用客户创立。越来越多的公司正在将其传统的线下销售和服务模式转移到在线平台。线下模式往线上模式的迁徙,企业不仅须要思考外部变动和影响,还要思考它如何影响现有和潜在客户。从在模仿环境中与人打交道,在数字世界的虚拟环境中在线购买产品和服务时,不仅新客户,而且现有客户和缺乏经验的客户都须要帮忙。当公司领有简单的、捆绑的、生活化的产品和服务时,这一点尤其无效。 越来越多的简单产品和服务捆绑进步了在客户旅程中帮忙客户的需要。销售和服务反对人员须要为客户提供实时倡议,领导他们实现购买过程并帮忙解决问题。客户可能会将高达 90% 的精力投入到店面的销售或治理用户旅程中,但因为产品不确定性或技术艰难而无奈实现交易。尽管咱们能够创立定制工具并培训企业人员应用它们,但这会给组织带来额定的老本。使客户服务代理可能帮忙客户无效地实现他们的购买旅程,不仅能够升高购物车放弃率,而且,客户代理可能会提供额定的产品,默认状况下,这些产品可能不适用于在任何接触点购物的客户间接购买。 投资于全渠道商务解决方案的组织理解将客户满意度放在首位的必要性。当客户找不到他们须要的答案时,他们可能会感到丧气,并常常点击局部实现的表格或放弃他们的购物车。为了挽回这些客户,服务联络点——包含呼叫核心、聊天、电子邮件,甚至是反对网络的客户自助服务——须要可能疾速提供适当的信息和解决方案。客户服务核心基础设施单薄,难以无效地为客户服务。没有适当技能和常识的长时间期待队列和客户服务代理 (CSA- Customer Service Agent) 会导致客户满意度低和销售损失。要解决这个问题,须要为 CSA 装备正确的反对工具,以便为企业客户提供卓越的服务,企业销售人员须要拜访交互式销售性能,企业服务团队须要正确的工具来满足客户需要。

August 16, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-OData-服务如何支持删除Delete操作试读版

正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到进步(蕴含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,能够分为三大类。因而本教程也分为三大部分,别离进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 对 SAP OData 服务的开发,测试,公布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和应用场合,均有着深刻的钻研。 基于 SEGW - Gateway Service Builder 的开发教程1. 在 SAP ABAP 事物码 SEGW 里创立 SAP OData 我的项目2. 在 SAP ABAP 系统对事物码 SEGW 创立的 OData 服务进行配置并测试3. SAP ABAP OData 服务诊断工具 /IWFND/ERROR_LOG 的应用办法4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 办法实现指南5. SAP ABAP OData 服务如何反对 $filter (过滤)操作6. 应用 Postman 工具高效治理和测试 SAP ABAP OData 服务7. SAP ABAP OData 服务如何反对 $orderby (排序)操作8. SAP ABAP OData 服务如何反对创立(Create)操作9. SAP ABAP OData 服务如何反对删除(Delete)操作更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待本教程至今为止的步骤,咱们曾经学习了 SAP OData 服务的创立,读取,过滤,排序操作的具体实现形式。本文介绍删除(Delete)操作的实现形式。 ...

August 12, 2022 · 2 min · jiezi

关于sap:SAP-ABAP-OData-服务如何支持-orderby-排序操作试读版

正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到进步(蕴含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,能够分为三大类。因而本教程也分为三大部分,别离进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 对 SAP OData 服务的开发,测试,公布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和应用场合,均有着深刻的钻研。 基于 SEGW - Gateway Service Builder 的开发教程1. 在 SAP ABAP 事物码 SEGW 里创立 SAP OData 我的项目2. 在 SAP ABAP 系统对事物码 SEGW 创立的 OData 服务进行配置并测试3. SAP ABAP OData 服务诊断工具 /IWFND/ERROR_LOG 的应用办法4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 办法实现指南5. SAP ABAP OData 服务如何反对 $filter (过滤)操作6. 应用 Postman 工具高效治理和测试 SAP ABAP OData 服务7. SAP ABAP OData 服务如何反对 $orderby (排序)操作更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待序言本文具体介绍了 SAP ABAP OData 服务如何反对 $orderby (排序)操作,以一个图书治理的 OData 服务实现为例,论述了如何基于图书的名称和作者名称这两个字段进行排序操作。 ...

August 12, 2022 · 1 min · jiezi

关于sap:在-SAPGUI-里使用-ABAP-报表上传-SAP-UI5-应用到-ABAP-服务器试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案SAP UI5 利用开发教程之九十五 - SAP UI5 下拉菜单(Select) 控件的应用形式SAP UI5 利用开发教程之九十六 - SAP UI5 列表控件分页显示数据时,如何自定义分页大小SAP UI5 利用开发教程之九十七 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的明细页面SAP UI5 利用开发教程之九十八 - 从 viewId 这个属性谈起,聊聊 SAP UI5 的 HTML 源代码生成机制SAP UI5 利用开发教程之九十九 - 深入探讨 SAP UI5 本地开发环境里的 package.json 和 ui5.yamlSAP UI5 利用开发教程之一百 - 如何批改 SAP UI5 框架的源代码实现,以及应用本地部署的 SAP UI5 SDKSAP UI5 利用开发教程之一百零一 - SAP UI5 利用的 Locale 决定机制SAP UI5 利用开发教程之一百零二 - SAP UI5 利用的打印(Print)性能实现详解SAP UI5 利用开发教程之一百零三 - 如何在 SAP UI5 利用中生产第三方库SAP UI5 利用开发教程之一百零四 - SAP UI5 表格控件的反对复选(Multi-Select)以及如何用代码一次选中多个表格行我的项目SAP UI5 利用开发教程之一百零五 - SAP UI5 Master-Detail 布局模式的联动成果实现明细介绍SAP UI5 利用开发教程之一百零六 - 如何进步 SAP UI5 利用路由 url 的可读性SAP UI5 利用开发教程之一百零七 - SAP UI5 OverflowToolbar 容器控件以及 resize 事件处理的一些细节介绍SAP UI5 利用开发教程之一百零八 - SAP UI5 图片显示控件 Avatar 的应用形式介绍SAP UI5 利用开发教程之一百零九 - 应用 SAP UI5 FileUploader 控件上传本地文件SAP UI5 利用开发教程之一百一十 - SAP UI5 FileUploader 控件深刻介绍 - 为什么须要一个暗藏的 iframeSAP UI5 利用开发教程之一百一十一 - SAP UI5 FileUploader 控件实现本地文件上传,接管服务器端的响应时遇到跨域拜访谬误SAP UI5 利用开发教程之一百一十二 - 应用自开发的代理服务器解决 SAP UI5 FileUploader 上传文件时遇到的跨域拜访谬误SAP UI5 利用开发教程之一百一十三 - 授人以渔 - 如何自行查问任意 SAP UI5 控件属性的文档和技术实现细节SAP UI5 利用开发教程之一百一十四 - 如何通过单步调试的形式找到引起 Fiori Launchpad 路由谬误的起因SAP UI5 利用开发教程之一百一十五 - 对于将本地 SAP UI5 利用配置到本地 Fiori Launchpad 的技术实现深刻解说SAP UI5 利用开发教程之一百一十六 - 在 SAPGUI 里应用 ABAP 报表上传 SAP UI5 利用到 ABAP 服务器SAP UI5 利用开发教程之一百一十七 - 正在写作中......阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

August 12, 2022 · 6 min · jiezi

关于sap:SAP-CRM-Fiori-应用-My-Opportunity-的分页读取逻辑在-GM4-AG3-无法正常工作

咱们关上 SAP CRM Fiori 利用 My Opportunity 的 list 页面,首页默认只能显示 20 个 Opportunity: 当咱们向下滚动鼠标中键时,触发一个加载更多 Opportunity 的动作,或者说提早加载(分页加载)机制: lo_provider = lo_processor->read( io_entity_set = lo_entity_set is_function_import_info = ls_function_import_info it_key = io_uri->key_predicates it_expand = io_uri->expand it_select = io_uri->select io_filter = io_uri->filter io_orderby = io_uri->orderby iv_skip = io_uri->skip iv_top = io_uri->top iv_skiptoken = io_uri->skiptoken iv_inlinecount = lv_inlinecount iv_for = lv_operation iv_format = lv_format ).下图是 gateway 解决 OData 申请的入口: 通过 CALL_BACKEND 办法进行 RFC 调用: ...

August 12, 2022 · 1 min · jiezi

关于sap:关于将本地-SAP-UI5-应用配置到本地-Fiori-Launchpad-的技术实现深入讲解试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案SAP UI5 利用开发教程之九十五 - SAP UI5 下拉菜单(Select) 控件的应用形式SAP UI5 利用开发教程之九十六 - SAP UI5 列表控件分页显示数据时,如何自定义分页大小SAP UI5 利用开发教程之九十七 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的明细页面SAP UI5 利用开发教程之九十八 - 从 viewId 这个属性谈起,聊聊 SAP UI5 的 HTML 源代码生成机制SAP UI5 利用开发教程之九十九 - 深入探讨 SAP UI5 本地开发环境里的 package.json 和 ui5.yamlSAP UI5 利用开发教程之一百 - 如何批改 SAP UI5 框架的源代码实现,以及应用本地部署的 SAP UI5 SDKSAP UI5 利用开发教程之一百零一 - SAP UI5 利用的 Locale 决定机制SAP UI5 利用开发教程之一百零二 - SAP UI5 利用的打印(Print)性能实现详解SAP UI5 利用开发教程之一百零三 - 如何在 SAP UI5 利用中生产第三方库SAP UI5 利用开发教程之一百零四 - SAP UI5 表格控件的反对复选(Multi-Select)以及如何用代码一次选中多个表格行我的项目SAP UI5 利用开发教程之一百零五 - SAP UI5 Master-Detail 布局模式的联动成果实现明细介绍SAP UI5 利用开发教程之一百零六 - 如何进步 SAP UI5 利用路由 url 的可读性SAP UI5 利用开发教程之一百零七 - SAP UI5 OverflowToolbar 容器控件以及 resize 事件处理的一些细节介绍SAP UI5 利用开发教程之一百零八 - SAP UI5 图片显示控件 Avatar 的应用形式介绍SAP UI5 利用开发教程之一百零九 - 应用 SAP UI5 FileUploader 控件上传本地文件SAP UI5 利用开发教程之一百一十 - SAP UI5 FileUploader 控件深刻介绍 - 为什么须要一个暗藏的 iframeSAP UI5 利用开发教程之一百一十一 - SAP UI5 FileUploader 控件实现本地文件上传,接管服务器端的响应时遇到跨域拜访谬误SAP UI5 利用开发教程之一百一十二 - 应用自开发的代理服务器解决 SAP UI5 FileUploader 上传文件时遇到的跨域拜访谬误SAP UI5 利用开发教程之一百一十三 - 授人以渔 - 如何自行查问任意 SAP UI5 控件属性的文档和技术实现细节SAP UI5 利用开发教程之一百一十四 - 如何通过单步调试的形式找到引起 Fiori Launchpad 路由谬误的起因SAP UI5 利用开发教程之一百一十五 - 对于将本地 SAP UI5 利用配置到本地 Fiori Launchpad 的技术实现深刻解说SAP UI5 利用开发教程之一百一十六 - 正在写作中......阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

August 12, 2022 · 6 min · jiezi

关于sap:一个-15-年-SAP-ABAP-开发人员分享的-SAPGUI-一些个性化设置和实用小技巧试读版

零根底 ABAP 学习教程系列文章的目录ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧ABAP function module 的应用ABAP subroutine 的定义和应用ABAP 中的变量和常量ABAP 编程语言中的零碎字段(System Fields)什么是 ABAP Field SymbolABAP 援用类型介绍最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)用 ABAP 读取本地文本文件内容用 ABAP 新建本地 Excel 文件并写入数据26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据ABAP 如何解析 JSON 数据如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法SAP ABAP 报表的用户输出性能应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据通过一个具体的例子,解说 SAP BDC 技术的应用步骤从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤SAP ABAP 字符串变量容易忽略和混同的一些知识点SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储SAP ABAP 零碎进行数据库表查问的几种罕用办法如何让 ABAP 服务器可能响应通过浏览器发动的自定义 HTTP 申请一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理更多文章正在写作中咱们晓得 SAP ABAP 开发能够应用 SAPGUI 和 ABAP Development Tool(基于 Eclipse) 这两种工具。 ...

July 30, 2022 · 2 min · jiezi

关于sap:SAP-ABAP-OData-服务-Data-Provider-Class-的-GETENTITYSET-方法实现指南试读版

正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到进步(蕴含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,能够分为三大类。因而本教程也分为三大部分,别离进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 对 SAP OData 服务的开发,测试,公布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和应用场合,均有着深刻的钻研。 基于 SEGW - Gateway Service Builder 的开发教程1. 在 SAP ABAP 事物码 SEGW 里创立 SAP OData 我的项目2. 在 SAP ABAP 系统对事物码 SEGW 创立的 OData 服务进行配置并测试3. SAP ABAP OData 服务诊断工具 /IWFND/ERROR_LOG 的应用办法4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 办法实现指南更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待本教程到目前为止的三个步骤,咱们还没有通过 OData 服务生产的形式,看到 SAP ABAP 服务器上存储的图书信息,被读取并返回到浏览器端,可能不少初学者都感觉没啥成就感。 ...

July 30, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-OData-服务诊断工具-IWFNDERRORLOG-的使用方法

正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到进步(蕴含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,能够分为三大类。因而本教程也分为三大部分,别离进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 对 SAP OData 服务的开发,测试,公布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和应用场合,均有着深刻的钻研。 基于 SEGW - Gateway Service Builder 的开发教程1. 在 SAP ABAP 事物码 SEGW 里创立 SAP OData 我的项目2. 在 SAP ABAP 系统对事物码 SEGW 创立的 OData 服务进行配置并测试3. SAP ABAP OData 服务诊断工具 /IWFND/ERROR_LOG 的应用办法更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待工具名称:/IWFND/ERROR_LOG ...

July 30, 2022 · 1 min · jiezi

关于sap:SAP-UI5-本地开发如何通过-httpproxy-解决跨域问题

前不久,SAP 公布了新 UI5 工具的官网生产版本。 这当然是 UI5con 上的一个大话题,有几个对于它的会议。对于应用 Visual Studio Code 进行 SAP UI5 本地开发的从业者来说,这个版本里一个十分有用的性能,就是对于 CORS 问题提供的解决方案:代理服务器。 对于 SAP UI5 CORS 问题目前有两种解决方案: 代理服务器将您的应用程序的申请转发到 UI5 服务器,后者再转发到您的后端服务器UI5 CLI 服务器代理扩大:新工具容许开发人员扩大服务器中间件,从而能够拦挡来自客户端的申请并将 OData 申请重定向到后端。在 OpenSAP 课程中,SAP 应用了 npm 模块 CORS。 这个 CORS npm 模块有两个局限性: 应用代理时须要更改应用程序 manifest.json 中的门路。 这意味着开发人员始终须要在部署到零碎之前对其进行更改,或者在 CI 设置中进行更改。我在通过身份验证调用服务时遇到了一些艰难,还没找到解决问题的方法。咱们首先尝试 proxy 解决方案。 此选项将应用 express 来部署代理服务器。 它须要两个 Node.js 模块: http-proxyexpress在 package.json 中将这些模块定义为 devDependencies 并运行 npm install 来应用它们。 增加一个 node proxy.js 的启动命令行。 在我的项目的根目录创立一个 proxy.js 文件: ...

July 30, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-Netweaver-容器化的一些前沿性研究工作分享

笔者之前的文章一个15年ABAP老兵的倡议:理解这些基础知识,对ABAP开发有百利而无一害, 回顾了ABAP Netweaver服务器次要的组件。本文咱们就来聊聊ABAP Netweaver容器化这个话题。 笔者假设浏览本文的敌人,都据说过虚拟机和容器的概念, 并且对虚拟机和容器的区别有所理解。 容器与虚拟机的出发点很相似:对应用程序及其依赖进行隔离,生成一套可能随处运行的自包容单元;二者都可能使利用运行在一个虚构出的形象层里,解脱对传统物理硬件的依赖,使得计算资源的利用更加高效,能源效率与老本效益得以晋升。容器在虚拟化水平上比虚拟机技术更进一步,解脱了前者对Hypervisor层的依赖,间接利用宿主机的内核,形象层比虚拟机更少,更加轻量化,同虚拟机技术相比能达到更高的物理资源利用率,因而更受当今云服务提供商的青眼。 Docker是一个开源的利用容器引擎,是当今最风行的容器技术之一。 那么SAP ABAP Netweaver,是否利用Docker引擎,让它运行在容器里呢? SAP官网的 note 1122387 - Linux: SAP Support in virtualized environments 给出了答案:截至2020年1月17日,答案是不反对。SAP官网不反对将ABAP应用服务器运行在容器或者容器编排环境内。比方目前业界风行的Docker和LXC,以及运行在Google Cloud Platform, Microsoft Azure, AWS上的Kubernetes Cluster,都不是SAP官网反对的可能将ABAP Netweaver服务器以容器的形式运行的平台。 SAP 社区已经有一篇博客:Installing SAP NW ABAP into Docker 这又是怎么一回事呢?咱们能够通过浏览博客理解作者是怎么做到的。 首先,咱们从SAP官网上能收费下载Netweaver的开发者试用版,ABAP版本号为7.52 SP04: 下载到本地,失去一个rar文件,解压之后执行外面的安装文件即可把ABAP Netweaver装置到本地。 因而SAP社区上的一群ABAP爱好者们,想到了一个点子:如果把下载的Netweaver安装文件,解压之后,将其内容构建成一个Docker镜像文件,在这个Docker镜像内实现Netweaver的装置和启动工作。如此一来,岂不是达到了在容器里运行ABAP Netweaver的目标? 咱们能够在这位ABAP爱好者的 github 仓库 上找到用来制作Docker镜像的Dockerfile文件,从中理解到该容器镜像的制作过程: 这个Dockerfile构建的镜像抉择了openSUSE Leap作为母镜像,该镜像提供了ABAP Netweaver运行的Linux操作系统。 Dockerfile的第一行用FROM关键字指定了这个基准镜像的名称: 第16行用COPY将当时从SAP官网下载好的存储在宿主机NW752文件夹下的Netweaver开发者版本安装文件,拷贝到容器镜像里,而后第22行用RUN关键字运行装置脚本。 装置结束后,执行47行的启动脚本run.sh, 这样就能在容器里启动Netweaver服务器了。这个容器镜像制作好之后,只须要简略地应用docker run命令行,就能启动一个新的容器运行实例了。从SAP官网下载的Netweaver开发者版本,就运行在这个新启动的容器实例里。 咱们回顾这种做法,发现Docker技术较之虚拟机的长处并没有体现进去,依照博客作者提供的信息,通过这种形式制作出的镜像文件的大小超过了100GB,如此巨型的镜像文件简直无奈通过Docker Hub分发给其他人,无奈用于生产用处。 另一方面,通过这种容器化形式,Netweaver服务器的诸多组件,被搁置到同一个容器内,无奈通过简略地减少容器实例的形式,实现Netweaver解决能力的程度扩大。 正是因为意识到将Netweaver所有组件搁置于同一容器镜像内这种措施无奈施展容器技术的劣势,SAP Linux实验室的工程师们采取了另一种思路,即这篇SAP社区博客里给出的架构图所体现的,将Netweaver组件进行拆分,别离搁置于不同的容器编排逻辑单元中。 Proof of Concept: Deploying ABAP in Kubernetes ...

July 30, 2022 · 1 min · jiezi

关于sap:在-SAP-云平台上部署和运行-Docker-应用

容器技术,Docker,虚拟化,这些名词诞生只管有很长一段时间了,然而在云原生开发畛域仍旧热度不减。甚至连SAP赖以成名的 ABAP Netweaver,现在也踏上了容器化的上云摸索之路,比方上面这张来自SAP社区的一篇博客: 对于 SAP 生态圈的客户来说,常见的需要之一,就是可能将应用一个或多个反对服务(数据库/消息传递等)的任何现有业务应用程序迁徙到云。 实现此目标的一种办法是在虚拟机上运行它或创立容器映像并部署在能够运行容器的云环境中。 另一方面,当客户的首要任务是最大化在起码数量的服务器上运行的应用程序数量,并且其应用程序实际上不须要拜访操作系统级别的资源或性能时,容器技术是更好的抉择。 默认启用 Diego(Cloud Foundry 的容器管理系统)的 SAP Cloud Platform Cloud Foundry 环境,提供了将 Docker 映像部署为 Cloud Foundry 应用程序的可能性。如果有一个曾经可能失常运行的Java利用,能够将其以Docker容器的形式,部署且运行在SAP云平台上吗?当然能够,而且只须要简略的几个命令行即可。 本文接下来的步骤是针对那些据说过 Docker 容器技术,但尚未入手实际过的敌人。通过浏览本文,能够理解将Java利用容器化并部署到SAP云平台运行的大抵步骤。您也能够依据本文的步骤入手试一试,只须要在本地搭一个最简略的Java开发环境,装置Docker客户端和申请一个SAP云平台的trial账号即可。 (1) 首先得有一个能在本地失常运行的SpringBoot利用。如果没有,百度之而后本人动手做一个。 如果切实不想本人入手,从笔者的 github 仓库上克隆一个下来也行。 本地配置好maven和JDK之后,间接用命令行启动它: mvn spring-boot:run你会看到 Tomcat started on port 8000 的提醒,意思是该利用曾经胜利启动,监听在本地端口8000上。 浏览器里输出localhost:8000/product, 看到Hello World. 至此,咱们就有了一个本地失常运行的SpringBoot利用了,下一步是将其打包成Docker镜像。 (2) 在SpringBoot我的项目里新建一个名叫Dockerfile的文件,输出以下内容: FROM openjdk:8-jdk-alpineVOLUME /tmpVOLUME /logEXPOSE 8080ADD target/prolikeService.jar app.jarENV JAVA_OPTS="-Dserver.port=8080"ENTRYPOINT exec java $JAVA_OPTS -jar /app.jar 这理论是一个指令文件,Docker客户端会依据外面的内容,制作一个Docker镜像。简要介绍每一行内容的含意。 第一行:指定待制作的镜像是基于名叫openjdk:8-jdk-alpine的镜像,在Docker Hub 网站上能找到更多对于该镜像的阐明: 第二行和第三行:定义两个名叫tmp和log的长久化存储。容器运行时产生的数据,随着容器的销毁而销毁,但有时咱们又心愿这些数据可能长久化保留,比方须要剖析某个容器运行时产生的日志文件,这时能够应用Dockerfile里VOLUME关键字提供的容器长久化技术,创立所谓的“卷”,将容器利用运行时写入数据的目录,映射到宿主机上的某个目录下。 如果一个容器尚处在运行状态,咱们能够用命令行进入容器外部,查看log文件夹里的运行日志文件 ...

July 22, 2022 · 1 min · jiezi

关于sap:SAP-电商云-Spartacus-UI-Store-相关的设计明细

Storestate.ts定义了和 Site Context 业务相干的 State 数据模型。 定义数据模型的套路是: export const SITE_CONTEXT_FEATURE = 'siteContext';export interface StateWithSiteContext { [SITE_CONTEXT_FEATURE]: SiteContextState;}这是最顶层的 State 模型了。 SiteContextState 蕴含了三个子 State: export interface SiteContextState { languages: LanguagesState; currencies: CurrenciesState; baseSite: BaseSiteState;}以 CurrenciesState 为例,不仅蕴含了 Entities 列表,还蕴含了以后 Active 状态的 Currency: export interface CurrenciesState { entities: CurrencyEntities; activeCurrency: string;}再定义 Entities 列表: export interface CurrencyEntities { [isocode: string]: Currency;}以上就是 Site Context 畛域所需的 State 数据结构。 留神 SITE_CONTEXT_FEATURE 的应用场合,除了本文件定义 feature state 之外,还用在下列两个文件内: 场景1:用来创立 feature selector: ...

July 22, 2022 · 1 min · jiezi

关于sap:如何使用-SAP-Intelligent-Robotic-Process-Automation-自动操作-Excel

机器人流程自动化 (Robotic Process Automation,简称 RPA) 是一种容许用户将企业反复的、基于规定的业务流程进行自动化的解决方案。 与须要将流程步骤硬编码到零碎中的传统自动化解决方案不同,RPA 利用了当今机器学习和人工智能的最新成绩,通过观察实在用户实现流程的形式,来理解如何执行工作的自动化。 要想理解 RPA 解决方案的工作原理,能够把它设想成录制一个宏。一旦录制实现,RPA 机器人能够自主执行工作,岂但可能用于简单工作,而且能够解决工作中的异常情况,一直积攒常识以响应继续变动的输出条件,利用被自动化的利用的 UI 更改。 一个更易于了解的 RPA 工作原理示例,能够思考电子邮件和文本音讯应用程序中的预测文本性能。 当咱们键入电子邮件、文本等时,该应用程序会记住咱们应用的某些语法和单词,而后在未来键入时主动依据这些提出倡议。 RPA 所有做出的这些致力,都为最终用户从繁琐,反复,乏味的体力活中解脱进去,让其能够进行技术附加值更高的其余事件,这也是智慧企业所提倡的 更聪慧地工作,而不是更致力地工作 的一个指导方针。 除了常见的应用编程语言操作 Excel 文件之外,SAP新公布的SAP Intelligent Robotic Process Automation(简称SAP iRPA),提供了弱小的企业级自动化流程解决方案,善加利用,能够在不须要编程的状况下,像应用编程语言一样灵便地操作Excel. 咱们来看个具体而又简略的例子,用SAP Intelligent Robotic Process Automation操作一个Excel文件,往里面的单元格写入一个字符串,设置背景色而后敞开。 关上SAP Intelligent Robotic Process Automation Desktop Studio,导入SAP预置的操作Excel的nodejs脚本库文件。 在库文件里抉择Excel Integration. 从下图能发现,SAP iRPA除了Excel之外,也反对Office里其余利用比方Word和Outlook. 新建一个名叫jerryExcel的workflow,在工作流的activities面板里输出seq,找到类型为Sequence的Flow控件。该控件容许咱们在工作流里定义一系列程序执行的步骤。 把Sequence控件拖拽到工作流编辑区域里,双击,就能够定义须要执行的具体步骤了。 Excel Lib里预置了很多围绕Excel进行的操作,如Init Excel,Open Excel,Close Excel等等,每个操作对应一段nodejs代码。 比方把Init Excel拖拽到Sequence控件的Activities列表里之后,一旦保留,会立刻看到主动生成的nodejs代码。Excel Lib里每个step,都对应一段nodejs代码。如此一来,即便SAP Intelligent Robotic Process Automation Desktop Studio的使用者没有编程根底,也能开发出能操作Excel的自动化工作流。 上图的Init Excel步骤是所有操作Excel的工作流都必须执行的一个初始化步骤。初始化结束后,把Open Excel这个步骤拖拽到Sequence Activities里,指定要关上的Excel文件门路,在Desktop Studio里有红色提醒。 ...

July 19, 2022 · 1 min · jiezi

关于sap:SAP-Fiori-Launchpad-应用的两个实用技巧分享

本文分享两个笔者在 SAP Fiori 开发我的项目中习得的两个对于 Fiori Launchpad 的技巧。 如何查找 SAP Fiori UI 上某个字段对应的底层数据库表很多从事ABAP开发的敌人们,想必都浏览过这个文档的英文或中文版: 英文版:18 Techniques for Locating the Underlying Data of a Screen Field中文版:在SAP GUI里查找一个屏幕字段对应的底层数据库表的18种办法 作者是Dennis Barrett: 到了Fiori时代,外面的很多方法都不再实用了。 本章节介绍一种办法能找出Fiori UI上某字段对应的ABAP后盾数据库存储表。尽管不肯定足够通用,但的确能解决笔者过后理论工作中遇到的一个问题。 这是SAP S/4HANA一个规范的Fiori利用: Product Master 我的需要是,找到字段"Number of Goods Receipt"在后盾是存储在哪张表里的。 上面是笔者本人摸索的具体步骤。 (1) 咱们晓得SAP UI5也是一个基于MVC的前端框架,框架反对双向绑定。在Chrome开发者工具里,找到这个UI字段绑定的模型字段名称:NmbrOfGROrGISlipsToPrintQty (2) 找到该Product Master Fiori利用基于的OData服务,浏览器里输出其metadata url查看后果,找到字段NmbrOfGROrGISlipsToPrintQty的隶属数据类型为:C_ProductstorageType (3) 登录ABAP Development Tool,应用菜单"Open ABAP Development Object": 把第二步找到的数据类型C_ProductstorageType,依据命名标准,将Type后面的值C_Productstorage作为关键字查问: 排在后果列表第一位的C_PRODUCTSTORAGE, 是一个CDS view.该视图从I_ProductStroageWD里读取数据, I_ProductStorageWD又从I_Productstorage里读取: 最终,I_Productstorage从数据库表MARA里读取数据。 ...

July 19, 2022 · 1 min · jiezi

关于sap:如何让-ABAP-服务器能够响应通过浏览器发起的自定义-HTTP-请求的试读版

零根底 ABAP 学习教程系列文章的目录ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧ABAP function module 的应用ABAP subroutine 的定义和应用ABAP 中的变量和常量ABAP 编程语言中的零碎字段(System Fields)什么是 ABAP Field SymbolABAP 援用类型介绍最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)用 ABAP 读取本地文本文件内容用 ABAP 新建本地 Excel 文件并写入数据26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据ABAP 如何解析 JSON 数据如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法SAP ABAP 报表的用户输出性能应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据通过一个具体的例子,解说 SAP BDC 技术的应用步骤从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤SAP ABAP 字符串变量容易忽略和混同的一些知识点SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储SAP ABAP 零碎进行数据库表查问的几种罕用办法如何让 ABAP 服务器可能响应通过浏览器发动的自定义 HTTP 申请更多文章正在写作中ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理本教程迄今为止的所有步骤,咱们都是在 SAPGUI 里运行 ABAP 程序。 ...

July 19, 2022 · 1 min · jiezi

关于sap:SAP-AppGyver-的-Universal-Theme-System-使用介绍

在不少 SAP 产品里,为了防止调整应用程序的款式设计时,不须要独自批改UI的每一个局部,通常都会引入所谓 Skin 或者 Theme 的概念。在 SAP AppGyver 里也有称之为 Universal Theme System 即通用主题零碎。 通过这个零碎,用户在整个应用程序中可能以可控的形式协调款式和主题。 当用户应用 Universal Theme System 构建应用程序时,能够依据公司的品牌或我的项目的设计指导方针,一次性定义心愿 UI 出现的外观。当用户决定更改主题时,以后 AppGyver 利用应用的所有组件,将主动适应并遵循指导方针,包含色彩零碎、版式、背景等等。总而言之,Universal Theme System 容许客户为其无代码应用程序创立一个残缺的设计零碎。 咱们登录 SAP BTP Cockpit,抉择一个 Global Account,而后单击 Boosters,在搜寻框里输出关键字 appgy,找到 Prepare an Account for Low-Code/No-Code App Developer 的疾速启动器: 点击 Start 按钮,在 Check Prerequisites 这一步骤呈现了谬误: Missing Entitlement须要类型为 standard 的 plan,Subscription,SAP AppGyver: Booster 是一组有领导的交互式步骤,使开发人员可能在 SAP BTP 上抉择、配置和应用服务,以实现特定的技术指标。 通过在导航菜单中选择 Boosters,能够从 SAP BTP Cockpit 中所需的全局帐户间接拜访它们。这将疏导开发人员进入一个页面,在那里能够找到所有可用的 Booster 的概述,按性能分组,如下图所示: ...

July 19, 2022 · 1 min · jiezi

关于sap:SAP-AppGyver-简介

SAP AppGyver 工具提供了一个业余的、无代码的利用程序开发环境,使用者能够通过其进行疾速开发具备拖放性能的应用程序,无论使用者的角色和技能程度处于何种程度。 AppGyver 应用可视化开发环境构建不含代码的企业级应用程序,能够进步开发效率。 在系统集成方面,AppGyver 反对应用数百个连接器(Connector)和数千个预构建的集成场景,以此来连贯和集成来自SAP和非SAP零碎的业务数据和流程。 AppGyver 提供了大量可定制的用户界面组件库和 Theme Pattern,以此来放慢设计和开发过程。在这个开发环境中做的更改,能够实时预览批改成果。 通过在画布(Canvas)上采取拖拽的直观形式来编辑集成场景,能够防止代码的书写以及学习集成流程的开发语法。 SAP AppGyver容许开发人员通过拖放界面从组件构建整个应用程序,这在企业级利用开发畛域中是一种典型的形式,过程大家能够类比成在演示工具中创立 Powerpoint 等演示文稿。然而,在外观的背地,SAP AppGyver是一个与其余 No-code 工具齐全不同的平台。 No-Code 开发工具设计者的一个美妙愿景就是,客户永远不应该因为技术的局限性,在其产品愿景上斗争。所谓斗争,就是客户因为开发工具的局限性,仅仅可能构建出与其现实状况想实现的需要相靠近的货色。而现实状况,就是客户可能应用像素级的完满定义和开发工具,失去100%同其心目中齐全吻合的产品进去。 在SAP AppGyver中,客户可能在最低层控制应用程序的确切行为和外观,然而不须要编码。

July 19, 2022 · 1 min · jiezi

关于sap:SAP-S4-Material-Management-库存模块-MARD-数据库表读取技术细节介绍

SAP ERP 6.0 库存治理数据模型由两个文档表 MKPF(用于文档低头信息)和 MSEG(用于文档我的项目数据)组成。 此外,在多个表中存储了汇总的理论库存数量数据。 其中一些表还存储物料主数据属性,例如 MARC、MARD 和 MCHB 表。 此类具备物料主数据属性以及理论库存数量的数据库表,在本文余下局部称为混合表(Hybrid Table)。 相比之下,还有像 MSSA 这样的表格,仅蕴含销售订单库存的汇总理论库存数量。 此类表将在本文以下局部称为替换聚合表。 SAP S/4HANA Material Management 库存模块中的混合表,保护了冗余的数据,因为所有物料单据信息的总和能够返回雷同的数据。 例如,在 MARD-LABST 中显示的无限度应用库存数量,当初是所有与所选数据相干的 Material Document 的总和,每当在 MARD 中查问 LABST 字段时,在 S/4HANA 里会通过应用 NSDM_V_MARD 视图计算。 如果不须要这些表中的库存信息,则能够将只获取主数据信息的 SELECT 与为此创立的非凡视图 V_Mxxx_MD 一起应用(例如 V_MARD_MD)。 总之,SELECT * FROM MARD 当初执行以下步骤: 拜访 MARD 获取存储地位物料主数据实体。对表 MATDOC_EXTRACT 执行聚合以获取理论库存程度。将以上两个后果进行汇总。 NSDM_V_MARD 的建模明细: 上图 DDL Source NSDM_DDL_MARD 的模型明细: MATDOC_EXTRACTMATDOC_EXTRACT 表是一个压缩的 MATDOC 表,用于在获取动静计算的数据时进步性能。 记录在插入 MATDOC 的同时插入 MATDOC_EXTRACT,并且在MMPV 事务中的期间敞开时主动执行预压缩过程。 此预压缩过程缩小了 MATDOC_EXTRACT 表中的数据,仅保留计算库存数据所需的信息。 ...

July 19, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-CDS-view-视图的-Replacement-技术介绍

在ABAP Dictionary中,能够应用其 CDS 实体的名称将 CDS 视图赋给通明数据库表和经典数据库视图作为替换对象。前提条件是 CDS 视图定义的构造类型与数据库表或经典视图的构造相匹配,如下所示: 两个模型字段的数量必须匹配必须可能将CDS视图的一个字段赋值给数据库表或经典视图的对应字段对于 client 字段来说,其映射关系与它的名称无关。对于数据库表的所有其余组件,CDS视图中必须存在一个名称雷同的元素数据库表和CDS视图中字段的程序不须要匹配对于所有调配的字段,技术类型属性,比方内置数据类型、长度和小数点位数必须匹配CDS 视图不能有输出参数对于保护状态是可批改的数据库视图,不可能同时定义替换对象和关上表缓冲。 如果一个数据库表或经典视图被拜访,并且在以下状况下给这个表或视图调配了一个替换对象,替换对象将被拜访,而不是数据库表或经典视图: 当被 ABAP SQL 的 SELECT, FETCH 或者 OPEN SQL 拜访时 其余的写操作,依然施加到原始的数据库表。 ABAP SQL 是应用 ABAP 语句实现的 SQL 子集的总称,包含DML局部。所谓 DML,是 Data Manipulation Language 的缩写,数据操作语言,是 SQL 的子集。DML 语句读取和更改关系数据库表的内容。在ABAP中,DML 是用 ABAP SQL 示意的。 ABAP SQL语句应用数据库接口中的ABAP SQL 接口来拜访 AS ABAP 数据库。ABAP SQL能够用来读取(SELECT)和批改(INSERT, UPDATE, modify,或DELETE)在 ABAP 字典(即 ABAP 开发人员常常应用的事物码 SE11)中定义的数据库表中的数据。借助 ABAP SQL 接口,ABAP 开发人员能够间接拜访数据库表、视图和所有非形象的 CDS 实体。

July 19, 2022 · 1 min · jiezi

关于sap:SAP-ECC-和-S4HANA-Material-物料库存管理的模型比较

MATDOC 数据库体现在蕴含了 Material 物料数据的低头信息和行我的项目数据。混合表(例如MARC、MARD等)依然存在,但它们只保留主数据信息(Master Data)。在抉择这些表期间显示的所有库存信息都是动静计算的。在动静计算库存数据时,应用 MATDOC_EXTRACT表的目标是为了减速 对 MATDOC 表的汇总。 留神,在 S/4HANA 里,MARD 这些表里蕴含的库存值,曾经是动静计算后的后果,即来自主数据信息表 MARC 和其余库存相干表比方 NSDM_V_MARC 的动静计算结果。 像MARD这样的混合表依然存在,并且依然返回库存数据。然而,这些数字是应用新数据模型创立的 CDS view 视图动静计算的。这能够从SE16事务中MARD中select的SQL跟踪中看到: CDS视图是一个用DDL(数据定义语言)SQL脚本编写的ABAP实体。在此范畴内,它们用于将来自不同起源的数据聚合到单个根视图中。 应用 MB80 事务(由SAP Note 2542130提供)或 SAP ABAP Development Tool,能够查看指向ABAP Catalog 中 SE11 事物码创立的视图的DDL文件。例如,MARD 的 CDS 视图由以下元素组成: 数据定义文件:NSDM_DDL_MARD字典视图:NSDM_V_MARD一个数据库实体(存在于数据库级别,仅由DDL援用):NSDM_E_MARD咱们用 ABAP Development Tool 在 S/4HANA 零碎,关上 MARD,能看到一个 @AbapCatalog.replacementObject : 'nsdm_e_mard' 注解: CDS 视图能够定义为数据库表的代替对象(replacement,有时也称代理对象),也能够定义为ABAP Dictionary中的经典数据库视图。在这种状况下,ABAP SQL 在读取一张数据库表时,读取操作会主动转而拜访其通过注解定义的替换对象。 nsdm_e_mard 的源代码:

July 19, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-系统进行数据库表查询的几种常用方法的试读版

零根底 ABAP 学习教程系列文章的目录ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧ABAP function module 的应用ABAP subroutine 的定义和应用ABAP 中的变量和常量ABAP 编程语言中的零碎字段(System Fields)什么是 ABAP Field SymbolABAP 援用类型介绍最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)用 ABAP 读取本地文本文件内容用 ABAP 新建本地 Excel 文件并写入数据26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据ABAP 如何解析 JSON 数据如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法SAP ABAP 报表的用户输出性能应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据通过一个具体的例子,解说 SAP BDC 技术的应用步骤从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤SAP ABAP 字符串变量容易忽略和混同的一些知识点SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储SAP ABAP 零碎进行数据库表查问的几种罕用办法更多文章正在写作中ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理本文介绍已知一个数据库表,想查看表里有哪些数据的几种罕用办法,即数据库表的查问操作。 ...

July 19, 2022 · 1 min · jiezi

关于sap:SAP-S4HANA-New-Simplified-Data-Model-NSDM-模型介绍

SAP ERP Central Component(简称 ECC)库存治理数据模型,是建设在物料文档(Material Document)、混合表(Hybrid Table)、聚合表(Aggregation Table)和历史表(History Table)之上的。 这些表外面存储着局部冗余信息,用于向利用返回各种查问需要。 数据模型中的大量表,往往会导致库存相干报告运行时的低性能,因为为了显示物料库存值,必须从这些表里抽取各种维度的信息。另一方面,在解决旧数据模型的表时,UPDATE 操作导致的数据库锁有可能会与可能会与来自业务操作的另一把锁产生抵触。 为了解决 SAP ECC 的这些限度,在 S/4HANA 基于以下前提设计了一个新的简化数据模型(New Simplified Data Model,简称 NSDM): 所有库存数据将从存储在单个表中的重要文档信息计算,并且这张表仅反对 INSERT 操作治理。通过动静计算物料库存信息,解决了数据冗余问题。应用繁多的物料文档表,解决了报告性能低下的问题。因为只在物料文档表中应用 INSERT 操作,锁问题失去了解决。S/4HANA 里具体的实现思路: 应用 CDS 视图模式的代理对象。用于动静计算库存数据,并连贯混合表中蕴含的主数据后果。如果给定的混合表有一个调配给它的代理,该表的 SELECT 语句将在数据库接口层(Database Interface Layer)重定向到指定的 CDS 视图。动静计算失去库存的值,很显然比间接从聚合表里获取曾经聚合好的数据要慢。从实践上说,库存值的计算性能与物料单据表中的记录数量成正比。 为了解决这个性能问题,SAP S/4HANA 应用了作为 MATDOC 表子集的第二个表,即 MATDOC_EXTRACT。

July 19, 2022 · 1 min · jiezi

关于sap:授人以渔在-SAP-MM-物料显示界面上看到一个字段如何查找哪张数据库表的哪个字段进行的存储

零根底 ABAP 学习教程系列文章的目录ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧ABAP function module 的应用ABAP subroutine 的定义和应用ABAP 中的变量和常量ABAP 编程语言中的零碎字段(System Fields)什么是 ABAP Field SymbolABAP 援用类型介绍最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)用 ABAP 读取本地文本文件内容用 ABAP 新建本地 Excel 文件并写入数据26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据ABAP 如何解析 JSON 数据如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法SAP ABAP 报表的用户输出性能应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据通过一个具体的例子,解说 SAP BDC 技术的应用步骤从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤SAP ABAP 字符串变量容易忽略和混同的一些知识点SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储更多文章正在写作中ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理在进行 SAP 我的项目施行时,常常遇到这种需要:用户给定一个 SAP 利用的屏幕上的某个字段,比方下图高亮的库存 1567. 咱们须要开发一些围绕这个字段进行的 ABAP 报表,因而首要指标,就是搞清楚这个库存字段,到底寄存在后盾哪张 ABAP 数据库表的哪个字段里。 ...

July 19, 2022 · 1 min · jiezi

关于sap:在-SAP-ABAP-系统对事物码-SEGW-创建的-OData-服务进行配置并测试试读版

正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到进步(蕴含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,能够分为三大类。因而本教程也分为三大部分,别离进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 对 SAP OData 服务的开发,测试,公布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和应用场合,均有着深刻的钻研。 基于 SEGW - Gateway Service Builder 的开发教程1. 在 SAP ABAP 事物码 SEGW 里创立 SAP OData 我的项目2. 在 SAP ABAP 系统对事物码 SEGW 创立的 OData 服务进行配置并测试更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待本教程前一篇文章 1. 在 SAP ABAP 事物码 SEGW 里创立 SAP OData 我的项目 实现之后,咱们在事物码 SEGW 里创立了一个 OData 我的项目,并且胜利生成了运行时的元数据提供类(MPC,MPC_EXT) 以及业务数据提供类(DPC,DPC_EXT)。 ...

July 19, 2022 · 1 min · jiezi

关于sap:SAP-OData-开发从入门到提高教程的目录

正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到进步(蕴含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,能够分为三大类。因而本教程也分为三大部分,别离进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 对 SAP OData 服务的开发,测试,公布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和应用场合,均有着深刻的钻研。 基于 SEGW - Gateway Service Builder 的开发教程1. 在 SAP ABAP 事物码 SEGW 里创立 SAP OData 我的项目2. 在 SAP ABAP 系统对事物码 SEGW 创立的 OData 服务进行配置并测试更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待

July 19, 2022 · 1 min · jiezi

关于sap: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 S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案SAP UI5 利用开发教程之九十五 - SAP UI5 下拉菜单(Select) 控件的应用形式SAP UI5 利用开发教程之九十六 - SAP UI5 列表控件分页显示数据时,如何自定义分页大小SAP UI5 利用开发教程之九十七 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的明细页面SAP UI5 利用开发教程之九十八 - 从 viewId 这个属性谈起,聊聊 SAP UI5 的 HTML 源代码生成机制SAP UI5 利用开发教程之九十九 - 深入探讨 SAP UI5 本地开发环境里的 package.json 和 ui5.yamlSAP UI5 利用开发教程之一百 - 如何批改 SAP UI5 框架的源代码实现,以及应用本地部署的 SAP UI5 SDKSAP UI5 利用开发教程之一百零一 - SAP UI5 利用的 Locale 决定机制SAP UI5 利用开发教程之一百零二 - SAP UI5 利用的打印(Print)性能实现详解SAP UI5 利用开发教程之一百零三 - 如何在 SAP UI5 利用中生产第三方库SAP UI5 利用开发教程之一百零四 - SAP UI5 表格控件的反对复选(Multi-Select)以及如何用代码一次选中多个表格行我的项目SAP UI5 利用开发教程之一百零五 - SAP UI5 Master-Detail 布局模式的联动成果实现明细介绍SAP UI5 利用开发教程之一百零六 - 如何进步 SAP UI5 利用路由 url 的可读性SAP UI5 利用开发教程之一百零七 - SAP UI5 OverflowToolbar 容器控件以及 resize 事件处理的一些细节介绍阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

July 19, 2022 · 5 min · jiezi

关于sap:SAP-Fiori-ODatapublish-注解的工作原理解析

笔者前一篇文章 SAP Fiori 注解 @ObjectModel.readOnly 工作原理解析,介绍了 SAP Fiori 编程模型里 @ObjectModel.readOnly 注解的工作原理。SAP Fiori 注解,是 ABAP Programming Model for SAP Fiori 的重要概念之一。 所谓注解(annotation),Java 和 JavaScript 开发人员肯定不会生疏。 相似的,CDS 注解容许 ABAP 开发人员,将 ABAP 和特定于组件的元数据增加到任何CDS实体的源代码中。 依据一致性和注解有效性的评估实现细节,SAP CDS view 的注解分为以下两类: ABAP 注解:由 ABAP 运行时环境评估。Component 注解:由相干的 SAP 框架进行评估。开发人员能够在元数据扩大中应用注解,为CDS视图定义特定于客户的元数据,而无需批改SAP 公布的规范 CDS 实体自身。应用元数据扩大时,能够笼罩数据定义中定义的特定正文值,或向实体增加额定的正文值。 注解能够增加在 CDS view 上或者 view field 上,上面是一个例子: @AbapCatalog.sqlViewName: 'CUSTOMER'@AccessControl.authorizationCheck: #NOT_REQUIRED@Metadata.allowExtensions: trueDEFINE VIEW cust_book_view_entity AS SELECT FROM scustom JOIN sbook ON scustom.id = sbook.customid { @EndUserText.label: 'Customer ID' scustom.id, @EndUserText.label: 'Customer Name' scustom.name, @EndUserText.label: 'Customer Booking ID' sbook.bookid }本文持续探讨另一个 注解 @OData.publish 的工作原理。 ...

July 19, 2022 · 1 min · jiezi

关于sap:SAP-电商云-Spartacus-UI-Site-Context-模块里-Providers-组件的实现明细

providersindex.ts 里只有两份 export: context-ids.ts是一些参数常量。 export const LANGUAGE_CONTEXT_ID = 'language';export const CURRENCY_CONTEXT_ID = 'currency';export const BASE_SITE_CONTEXT_ID = 'baseSite';export const THEME_CONTEXT_ID = 'theme';context-service-map.ts (ContextServiceMap)ContextServiceMap 是一个 map 构造,key 是字符串,value 是这种 site context 对应的 SiteContext Facade 类? 比方咱们之前在 facade 文件夹里探讨过的: @Injectable()export class CurrencyService implements SiteContext<Currency> { constructor( protected store: Store<StateWithSiteContext>, protected config: SiteContextConfig ) {}serviceMapFactory工厂函数,负责提供 ContextServiceMap 的实现? 什么时候 ContextServiceMap 的实例会被调用到? 这里只有类的定义,并没有类的实例化过程: site-context-params-providers (siteContextParamsProviders)这个类没有被 index.ts 导出。从正文也能看出,这是无意为之,不将其裸露到 public API 去。 import { Provider } from '@angular/core';import { UrlSerializer } from '@angular/router';import { SiteContextParamsService } from '../services/site-context-params.service';import { SiteContextUrlSerializer } from '../services/site-context-url-serializer';// functions below should not be exposed in public API:export const siteContextParamsProviders: Provider[] = [ SiteContextParamsService, SiteContextUrlSerializer, { provide: UrlSerializer, useExisting: SiteContextUrlSerializer },];提供了一些 provider 的实现,SiteContextUrlSerializer 提供了 Angular UrlSerializer 的实现。 ...

July 19, 2022 · 1 min · jiezi

关于sap:关于-SAPGUI-事物码在-Fiori-Launchpad-中嵌入运行的技术细节

笔者之前的文章到底什么样的 ABAP 零碎能运行 Fiori 利用已经提到,咱们能够把SAP GUI里的传统事务码放到SAP Launchpad里启动,并在浏览器里运行。 这是事物码 SE80 在浏览器里运行的界面: 笔者最后留神到这种将SAP GUI里的事务码运行在浏览器里的做法,是在日常工作的测试时,发现Fiori Launchpad里这个Create Material的tile. 回顾一下,原生的Fiori利用,无论咱们在页面内进行何种点击操作,都不会跳转到一个全新的页面去,即不会关上一个新的浏览器窗口,或者一个新的标签页——Fiori原生利用,所有的用户操作都在一个页面内实现,页面的切换通过SAP UI5的router组件实现,这是一个典型的Single Page Application的特色。 反之,当我点击了上图Create Material tile之后,启动的利用是在另一个新的Chrome标签页里关上并操作的,请大家留神上图红色新开启的标签页。 这就阐明,这个Create Material tile背地的利用不是基于SAP UI5开发的Fiori原生利用。那么它又是用什么技术开发的呢?仔细观察url: https://<hostname>:44311/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=928&sap-language=EN#Material-create?sap-ui-tech-hint=GUI发现了这个片段:sap-ui-tech-hint=GUI 这暗示咱们,该利用的UI是基于SAP GUI绘制的。咱们在浏览器里关上该利用: 把上图该利用的界面同SAP GUI里S/4HANA的物料主数据创立事务码MM01的界面做比照: 发现除了外观格调外,二者的字段名称,地位,布局完全一致。联合种种咱们察看到的后果,显然这个Create Material tile指向的利用是基于SAP GUI里MM01事务码包裹而成的。 在浏览器里关上该tile,在Chrome开发者工具中把tile所属的Fiori Catalog ID记录下来:SAP_CMD_BC_PR_MAINT 在Fiori Launchpad里依据该ID关上对应的catalog,发现有好几个和Material相干的跳转对象,其类型都为SAP GUI里的Transaction: 咱们之前发现的url片段,sap-ui-tech-hint=GUI,就配置在这里: 跳转的目标事务码ID MM01,配置在此处。同时Device Types里只反对桌面,这没什么问题,因为SAP GUI通过浏览器渲染进去的界面,不像SAP UI5那样具备响应式布局的性能,因而只能运行在桌面浏览器里。 在运行时,一旦SAP UI5框架代码解析到sap-ui-tech-hint参数的值为GUI,就执行对应的渲染逻辑。 在Chrome开发者工具的Sources标签页里,能看到gui/sap/its这个门路片段。 ITS即Internet Trasaction Server,SAP Netweaver里一项十分古老的技术,这个技术提供的组件能解析应用SAP GUI技术开发出的screen的元数据并渲染成HTML,从而可能让SAP GUI的事务码运行在浏览器里。 对于SAP ITS in SAP NetWeaver Application Server的更多介绍,参考SAP 帮忙文档。 ...

July 19, 2022 · 1 min · jiezi

关于sap:SAP-电商云-Spartacus-UI-根据-url-设置-site-context-的具体例子

connectors蕴含: site.connector.tssite.adapter.tsconverters.ts converters.ts还是从 site-context 平级目录导入: 创立几个 normalizer 的 injection token: convertor 负责把数据模型从后盾格局转换成 UI 模式: site.adapter.ts ( SiteAdapter)是一个纯虚函数: 在 core 的 occ 文件夹里,SiteAdapter 被 OCCSiteAdapter 实现: site.connector.ts (SiteConnector)应用了通过构造函数注入的 SiteAdapter 对应的办法。 events这里呈现了第二个 module: site-context-event.module.ts空的 module: site-context-event.builder.ts (SiteContextEventBuilder)全副的导入信息: 这里注入了规范的 ActionSubject,来自 @ngrx/store: register 办法 protected register(): void { this.registerSetLanguage(); this.registerSetCurrency(); }registerSetLanguage 上面是具体的调试细节。 该 ActionSubject 通过结构函数参数注入: 运行时,set Active Language action 触发了: payload 为 en: 在 language.service.ts 里,抛出了 action:SiteContextActions.SetActiveLanguage(isocode) ...

July 11, 2022 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-里的-Site-API-调用方式讲解

Multiple Country Site Support 为治理蕴含多个内容目录并应用内容继承的站点提供原生反对。它能够重用从顶级父目录到较低级别的国家、地区和本地内容目录的组件和页面,以及无缝站点导航。 在多国家、多渠道或多品牌的背景下,多个网站须要跨不同的网站显示雷同的页面和/或组件,但它们也可能心愿显示特定于每个地区、渠道或品牌的内容。SmartEdit 反对通过应用共享的全局内容目录和多个区域性内容目录(依据须要笼罩特定的页面和/或组件),提供了实现真正内容继承的可能性。 Site API 用于显示无关 CMS站点的详细信息。 应用 Site API,开发人员能够为用户可拜访的所有站点提取以下属性: contentCatalogs: 与站点关联的内容目录(content catalog)名称的有序列表。列表按层次结构排序。在 multiple country部署的状况下,首先显示父内容目录,而后是其子内容目录,而后是子内容目录的子内容目录,依此类推。name(本地化):基于承受或申请报头本地化的站点名称。previewUrl:预览网站的URL地址。uid:站点的惟一标识符。该API只返回蕴含至多一个用户有权查看或编辑的目录版本的站点。 站点 API 公开 SiteFacade,以检索用户可拜访的所有站点的站点信息。 public interface SiteFacade{ List<SiteData> getAllSiteData(); List<SiteData> getSitesForCatalogs(final List<String> catalogIds);}DefaultSiteFacade.getAllSiteData 应用目录版本服务(Catalog Version Service)来提取可写和可读的内容目录版本,以便它只提供用户有浏览或编辑权限的站点。 DefaultSiteFacade.getSitesForCatalogs返回为指定的目录ID列表配置的所有站点,其中目录ID示意站点层次结构中的最低级别内容目录。 Site API 依赖于以下 DTO,定义在 cmsfacade-beans.xml 文件内: <bean class="de.hybris.platform.cmsfacades.data.SiteData"> <property name="uid" type="String" /> <property name="previewUrl" type="String" /> <property name="name" type="java.util.Map<String, String>" /> <property name="thumbnailUrl" type="String" deprecated="Deprecated since 6.4, please use de.hybris.platform.cmsfacades.data.CatalogVersionData instead."/> <property name="contentCatalogs" type="java.util.List<String>" /></bean>总结本文首先介绍了 SAP Commerce Cloud Multiple Country Site support 的概念,接着介绍了如何应用 Java API 的形式获取这些 Site 的明细数据。 ...

July 10, 2022 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-B2C-Accelerator-架构设计概述

B2C Accelerator module 是一组扩大(extensions)的汇合,提供了启用可能齐全失常工作的店面所需的所有 sample 数据。所蕴含的数据集用于服装店面(apparel)和电子产品(electronics)店面。 从下图可能看出,apparelstore 和 electronicsstore 都依赖于 core-Accelerator 的 acceleratorservices: 咱们从上面这个链接里,能够找到到底有哪些 recipe,蕴含了对应的 store 数据。 比方 cx recipe, 就蕴含了 apparel,electronics 和 powertools 三大 store: apparel store 通过 apparelstore Extension 实现。 apparel 扩大增加必要的数据集,参考了 Accelerator site Apparel DE 和 UK. 这个数据集以前存在于 acceleratorsampledata 扩大中。后者现在被弃用了,取而代之的是只代表一个商店的小型扩大。 Apparel网站演示了变体(variant)的应用,以及如何在一个店面(Storefront)上建设多个反对不同货币和语言的网站。它们提供到多个国家的 shipping,并在销售国的商店点设置独自的税收规定。 Apparel 能够同时用于 Desktop 和 Mobile Channel. apparelstore 扩大实现了 ApparelStoreSystemSetup中的 AbstractSystemSetup 类。 当初始化被触发时,将调用createProjectData办法。而后这个办法将调用CoreDataImportService和SampleDataImportService(在yacceleratorinitialdata扩大中)来触发不同的ImpEx文件的导入。 上述文字描述的实现代码如下: /*** This method will be called during the system initialization.** @param context the context provides the selected parameters and values*/@SystemSetup(type = SystemSetup.Type.PROJECT, process = SystemSetup.Process.ALL)public void createProjectData(final SystemSetupContext context){final ImportData apparelImportData = new ImportData();apparelImportData.setProductCatalogName(APPAREL);apparelImportData.setContentCatalogNames(Arrays.asList(APPAREL_UK, APPAREL_DE));apparelImportData.setStoreNames(Arrays.asList(APPAREL_UK, APPAREL_DE));getCoreDataImportService().importData(context, apparelImportData);getEventService().publishEvent(new CoreDataImportedEvent(context, Arrays.asList(apparelImportData)));getSampleDataImportService().importData(context, apparelImportData);getEventService().publishEvent(new SampleDataImportedEvent(context, Arrays.asList(apparelImportData)));}通过 impex 导入零碎的数据包含: ...

July 10, 2022 · 1 min · jiezi

关于sap:如何给-SAP-Commerce-Cloud-Site-设置默认语言

咱们能够在 SAP Commerce Cloud Backoffice Administration Cockpit 中为 CMSSite 设置默认语言。能够通过为 CMSSite 实例或 BaseStore 实例设置默认语言来设置它。 站点的默认语言设置为 SmartEdit 提供了对于在其界面中显示的语言的信息。 CMSSite:在 CMSSite 实例中设置默认语言。BaseStore:在 BaseStore 实例中设置默认语言。如果CMSSite中没有设置默认值,SAP Commerce将应用该值作为回退值。在 WCMS - WebSite 菜单里,找到 Site 实例,定位到 default Language 字段: 如果在弹出窗口中找不到语言,在默认语言区域抉择more(…)按钮。Backoffice 会显示出 Reference Search 窗口。在该窗口中抉择默认语言,而后单击“抉择”。 给 Base Store 设置语言的方法:Backoffice 里通过门路 Commerce-BaseStore, 找到要设置的 store,比方 Electronics Store: 在 Essential 区域找到 Default Language 字段: 咱们还能够在如下的门路里配置 base site url: SAP Commerce Cloud in the Public Cloud->Cloud Portal->Environments->Environment Setup->Front-End Configuration ...

July 10, 2022 · 1 min · jiezi

关于sap:从-SAP-帮助文档的页面谈谈-SAP-Content-Management-的实现

咱们关上一个 SAP 帮忙文档的页面,看到如下链接: https://help.sap.com/docs/SAP... 其中 q=site 表明查问关键字为 site,loio 前面是一串 guid:loio76a5e87baecd4900b2d0f16e3768354e version=2205 表明 Commerce Cloud 的版本号。 在SAP CRM中URL对象以逻辑对象(LOIO)和物理对象(PHIO)的模式存储。 为了取得LOIO和PHIO的值,咱们须要应用办法:CL_CRM_DOCUMENTS=>GET_INFO_URL。 咱们须要将 INSTID_A + TYPEID_A + CATID_A 字段传递到数据库表 SKWG_BREL 作为输出。 函数 SDOK_LOIO_GET_URI 能够用来读取 url. 应用如下的代码,依据 loio guid,取得 document url: TYPES : BEGIN OF l_typ_instid,instid_a LIKE skwg_brel-instid_a,END OF l_typ_instid.** Get URL linkDATA : l_tab_loios TYPE skwf_ios,l_tab_phios TYPE skwf_ios,l_wa_loios TYPE skwf_io,l_wa_phios TYPE skwf_io,l_wa_busobject TYPE sibflporb,l_wa_object TYPE sdokobject,l_wa_skwg TYPE skwg_brel,l_wa_url TYPE sdokcomurl,l_var_url TYPE saeuri.DATA : l_tab_skwg TYPE STANDARD TABLE OF skwg_brel,l_tab_instid TYPE STANDARD TABLE OF l_typ_instid.FIELD-SYMBOLS : <l_wa_instid> TYPE l_typ_instid,<l_wa_guid> TYPE os_guid.LOOP AT it_object_guid ASSIGNING <l_wa_guid> .APPEND INITIAL LINE TO l_tab_instid ASSIGNING <l_wa_instid>.<l_wa_instid>-instid_a = <l_wa_guid>.ENDLOOP.SELECT *FROM skwg_brelINTO TABLE l_tab_skwgFOR ALL ENTRIES IN l_tab_instidWHERE instid_a = l_tab_instid-instid_aAND instid_b LIKE ‘L/CRM_L_URL%’.SORT l_tab_skwg BY instid_a typeid_a catid_a.DELETE ADJACENT DUPLICATES FROM l_tab_skwgCOMPARING instid_a typeid_a catid_a.LOOP AT l_tab_skwg INTO l_wa_skwg.CLEAR : l_wa_busobject.REFRESH : l_tab_loios, l_tab_phios.l_wa_busobject-instid = l_wa_skwg-instid_a.l_wa_busobject-typeid = l_wa_skwg-typeid_a.l_wa_busobject-catid = l_wa_skwg-catid_a .CALL METHOD cl_crm_documents=>get_info_urlEXPORTINGbusiness_object = l_wa_busobjectIMPORTINGloios_url = l_tab_loiosphios_url = l_tab_phios.LOOP AT l_tab_loios INTO l_wa_loios.CLEAR : l_wa_object, l_var_url, l_wa_url.MOVE-CORRESPONDING l_wa_loios TO l_wa_object.CALL FUNCTION ‘SDOK_LOIO_GET_URI’EXPORTINGobject_id = l_wa_objectIMPORTINGuri = l_var_url.MOVE l_wa_skwg-instid_a TO l_wa_url-component.MOVE l_var_url TO l_wa_url-url.APPEND l_wa_url TO et_urls.ENDLOOP.ENDLOOP.SAP Document 存储反对如下几种形式: ...

July 10, 2022 · 1 min · jiezi

关于sap:SAP-Fiori-注解-ObjectModelreadOnly工作原理解析

SAP Fiori 注解,是 ABAP Programming Model for SAP Fiori 的重要概念之一。 ABAP Programming Model for SAP Fiori 实用于 SAP NetWeaver AS for ABAP 7.51 innovation package, SP00 或者更高的版本。对底层数据库没有要求,举荐应用 SAP HANA. 开发人员须要具备如下的 PFCG role: SAP_BC_DWB_ABAPDEVELOPERSAP_BC_DWB_WBDISPLAY/IWFND/RT_DEVELOPER (用于 SAP Gateway service 开发).架构如下: 作为SAP客户,在某些状况下,可能心愿扩大SAP或SAP合作伙伴交付的On-Premise应用程序的用户界面(UI)。 字段可扩展性(Fiori Extensibility)意味着客户心愿在给定的业务应用程序上下文中提供额定的字段,该上下文由理论应用的UI示意。这些字段是SAP交付时应用程序没有预见到的。在这种状况下,能够抉择应用ABAP平台的可扩大基础设施,以便向原始应用程序增加自定义字段。这个基础设施首先须要确保将新的数据元素增加到持久性(数据库表)和之间所有波及的层(ABAP Dictionary、CDS、SAP Gateway服务)。基础设施还须要再次向应用程序UI的服务元数据公开,以供其余消费者应用。 能够在不同的场景中应用此基础设施: Key User Extensibility:只对可配置的扩大感兴趣,因为它们是在业务高级用户(要害用户)适配上下文中应用的。自定义代码可扩展性——心愿通过实现本人的扩大,通过自定义代码这种编程形式,最大限度地利用该基础设施的字段可扩展性。要害用户可扩展性容许要害用户创立自定义字段,如果SAP应用程序启用了可扩展性。要害用户具备业务透视图,不须要关怀技术细节。因而,要害用户最终可能创立和更改自定义字段及其属性(名称、标签、类型或屏幕上的地位)。 如果SAP应用程序启用了可扩展性,优先选择应用要害用户工具来创立自定义字段,即便作为开发人员也是如此,因为要害用户工具暗藏了SAP应用程序的技术细节。另一方面,SAP 倡议在以下状况下应用扩大视图间接创立自定义字段: SAP应用程序还没有启用可扩展性要害用户工具的性能不够充沛。例如,心愿在自定义字段中进行计算。咱们必须记住,自定义代码可扩展性须要整个开发周期通过代码增加来实现扩大。反过来,这就须要对最后以 CDS 视图的模式交付并作为 OData 服务公布以供进一步应用的数据模型进行扩大。 SAP官网的ABAP Programming Model for Fiori帮忙文档里,定义了很多注解(Annotation): 对于这些注解,咱们能够从其字面含意和SAP帮忙文档去把握其用法和性能。 以@ObjectModel.readOnly为例,施加了这个注解的CDS view字段,在对应的Fiori UI上以只读的形式渲染: 并且也不能通过编程的形式进行批改。 ...

July 10, 2022 · 1 min · jiezi

关于sap:使用-ABAP-事物码-SAT-对从浏览器打开的-SAP应用进行性能监控和测量

在开始介绍事物码 SAT 之前,让咱们简略回顾一下 ABAP Platform 的概念。 ABAP 平台是基于 SAP HANA 数据库和数据管理平台的基于 ABAP 的 SAP 解决方案的根底。ABAP 平台充分利用了 SAP HANA 提供的底层翻新。这与 SAP NetWeaver 不同,在 SAP NetWeaver 中,Application Server ABAP 为 SAP反对的所有数据库系统提供了一个公共层。相比之下,ABAP 平台是齐全为 SAP HANA 优化的。 ABAP 平台是基于 ABAP 平台的根底插件。 在 SAP HANA 数据库中,池(pool)和集群表(cluster tables)的概念被认为是过期的。因而,不再反对池表和集群表。任何现有的池表、集群表、表池(table pools)和表集群(table clusters)都已删除。 在 ABAP Platform 里,当初能够配置 ABAP 守护过程(Daemon)的主动启动。配置的守护过程应该由零碎或应用程序服务器实例主动启动,并显示在事务 SMDAEMON 中。为了容许配置监控,ABAP Daemons Start-Up configuration视图曾经增加到事务中。 Release 7.53与内核 773 一起公布,它不向下兼容任何较低的 ABAP 版本。因而,以技术上不兼容的形式扭转了几个对于 ICM 的参数。 ABAP 服务器和 SAP Web Dispatcher 在服务器角色中反对 HTTP/2 协定曾经有一段时间了,然而,默认状况下它没有启用。HTTP/2 通过重用单个 TCP 连贯和额定的压缩提供了性能改良,特地是在慢速网络中。从7.53版本开始,默认启用HTTP/2协定。 ...

July 10, 2022 · 1 min · jiezi

关于sap:实现-ABAP-条件断点的三种方式分享

所谓条件断点,就是设置在某行语句上的断点,并不总是会触发,而是仅当满足肯定条件时才触发。 条件断点的应用场合是什么? 举个简略的例子,下图第15行ADD语句设置一个断点。因为它在一个具备1000行的内表循环体内,所以失常状况下会触发1000次。 假如咱们在调试一个bug,这个bug当循环到第999次时才呈现,那咱们前998次的单步调试都是有效的。最高效的做法,就是借助条件断点的概念,让断点在代码执行到第999次循环时,触发且仅触发一次。 本文介绍实现ABAP条件断点的三种形式。也欢送大家分享本人最喜爱用的且本文尚未提到的条件断点技术。 办法一:给ABAP断点保护触发条件在ABAP调试器里点击Break/Watchpoints面板,新建一个断点: 在Free Condition Entry里保护这个断点的触发条件。 回到我下面的例子,我的内表里蕴含了从1递增到1000的整数,总共1000条记录,而我的触发条件保护为<data> = 22. 显然,这个断点在第22次循环时,惟一触发一次。 保护结束后,咱们在断点面板里看到了这个新建的断点: 按F8持续调试,断点有且仅触发了一次,此时<data>的值为22,正好合乎咱们保护的触发条件,胜利。 办法二:利用ABAP调试器里的观察点(Watchpoint)关上 ABAP 的调试器,此处创立Watchpoint: 咱们晓得在LOOP循环体内,零碎变量sy-tabix会主动赋以以后的循环次数。因而咱们在Watchpoint的触发条件里,保护成sy-tabix = 22, 也能够达到在第22次循环时触发的目标。 Watchpoint创立好之后显示如下: 按F8持续调试,程序果然在第22次循环时触发了: 并且调试器里弹出一条提示信息:Watchpoint reached 办法三:ABAP Debugger ScriptABAP Debugger Script这项技术,在SAP研究院外部用的很宽泛。 回到下面的例子,咱们将编写一段简略的ABAP代码,去控制目标ABAP代码的断点触发。 在ABAP调试器里,点击Script标签页,创立一个新的ABAP脚本: 咱们想用ABAP脚本监控ABAP代码里某个简略变量的值变动,所以应用脚本创立向导里的Variable Value(for Simple Variables): 这个向导会主动帮咱们生成ABAP脚本,其实也就是一段ABAP代码了,这段代码能够用编程的形式,在调试器激活的上下文里,获取某个ABAP变量的值。 下图脚本的语义很清晰,获取调试器里field symbol <data>的值,存储在长期变量lv_result里。如果该变量的值为22,就调用ABAP脚本的工具办法break,触发断点。 把这段脚本通过上图的Save As按钮另存下来,取名ZJERRY_TEST. 而后从新执行咱们的测试代码, 应用Load Script加载方才保留的ABAP脚本: 点击Start Script执行脚本: 断点再次如期触发. 这个 script 的源代码如下: *---------------------------------------------------------------------** CLASS lcl_debugger_script DEFINITION*---------------------------------------------------------------------***---------------------------------------------------------------------*CLASS lcl_debugger_script DEFINITION INHERITING FROM cl_tpda_script_class_super . PUBLIC SECTION. METHODS: prologue REDEFINITION, init REDEFINITION, script REDEFINITION, end REDEFINITION. INTERFACES: if_tpda_script_w_input, if_tpda_script_w_output. PRIVATE SECTION. DATA: entity_name TYPE string. DATA: value TYPE string. DATA: output TYPE tpda_transfer_it_unsorted. DATA: bol_object_name TYPE crmt_ext_obj_name. METHODS get_attribute IMPORTING io_oref_descr TYPE REF TO cl_tpda_script_orefdescr iv_attribute_name TYPE string RETURNING VALUE(ro_descr) TYPE REF TO cl_tpda_script_data_descr.ENDCLASS. "lcl_debugger_script DEFINITION*---------------------------------------------------------------------** CLASS lcl_debugger_script IMPLEMENTATION*---------------------------------------------------------------------***---------------------------------------------------------------------*CLASS lcl_debugger_script IMPLEMENTATION. METHOD prologue.*** generate abap_source (source handler for ABAP) super->prologue( ). ENDMETHOD. "prolog METHOD if_tpda_script_w_input~get_parameters. DATA lt_input TYPE tpda_transfer_it. DATA ls_input TYPE tpda_transfer_struc. ls_input-id = 'ENTITY'. APPEND ls_input TO lt_input. p_parameters_it = lt_input. ENDMETHOD. "if_tpda_script_w_input~get_parameters METHOD if_tpda_script_w_input~set_parameter_values.* Tabelle mit Inputparameter und Wert DATA lt_input TYPE tpda_transfer_it. DATA ls_input TYPE tpda_transfer_struc. lt_input = p_parameter_values_it. LOOP AT lt_input INTO ls_input. IF ls_input-id = 'ENTITY'. entity_name = ls_input-value. ENDIF. ENDLOOP. ENDMETHOD. "if_tpda_script_w_input~set_parameter_values METHOD init.*** insert your initialization code here ENDMETHOD. "init METHOD script. DATA lr_data_descr TYPE REF TO cl_tpda_script_data_descr. DATA lr_struct_descr TYPE REF TO cl_tpda_script_structdescr. DATA lr_cx TYPE REF TO cx_root. DATA ls_quick TYPE tpda_scr_quick_info. DATA lv_name TYPE string. DATA lt_struct TYPE tpda_scr_struct_comp_it. DATA ls_struct TYPE tpda_scr_struct_comp. DATA ls_output TYPE tpda_transfer_struc. DATA lr_symbsimple TYPE REF TO tpda_sys_symbsimple. DATA ls_varinfo TYPE tpda_quick_vars. FIELD-SYMBOLS: <lv_value> TYPE any. TRY. CLEAR output.* BREAK-POINT. ls_varinfo = cl_tpda_script_data_descr=>get_variable_info( 'LO_PRODUCT' ).* get object type name IF ls_varinfo-varvalue = 'OBJECT'.* class instance passed directly lv_name = entity_name && '-CONTAINER_PROXY->DATA_REF->OBJECT_NAME'. ELSE.* variable of class instance passed lv_name = ls_varinfo-varvalue && '-CONTAINER_PROXY->DATA_REF->OBJECT_NAME'. ENDIF. ls_quick = cl_tpda_script_data_descr=>get_quick_info( lv_name ). ASSIGN ls_quick-quickdata TO <lv_value>. lr_symbsimple ?= <lv_value>. bol_object_name = lr_symbsimple->valstring.* get content IF ls_varinfo-varvalue = 'OBJECT'. lv_name = entity_name && '-CONTAINER_PROXY->DATA_REF->ATTRIBUTE_REF->*'. ELSE. lv_name = ls_varinfo-varvalue && '-CONTAINER_PROXY->DATA_REF->ATTRIBUTE_REF->*'. ENDIF. lr_data_descr = cl_tpda_script_data_descr=>factory( lv_name ). lr_struct_descr ?= lr_data_descr. lr_struct_descr->components( IMPORTING* p_components_it = p_components_full_it = lt_struct ). LOOP AT lt_struct INTO ls_struct. ls_output-id = ls_struct-compname. TRY. ASSIGN ls_struct-symbquick-quickdata TO <lv_value>. lr_symbsimple ?= <lv_value>. ls_output-value = lr_symbsimple->valstring. CATCH cx_root INTO lr_cx. ls_output-value = lr_cx->get_text( ). ENDTRY. APPEND ls_output TO output. ENDLOOP. DATA lt_col_alv TYPE tpda_script_service_source_tab. DATA ls_col_alv LIKE LINE OF lt_col_alv. ls_col_alv-fieldname = ls_col_alv-content = 'ID'. APPEND ls_col_alv TO lt_col_alv. ls_col_alv-fieldname = ls_col_alv-content = 'VALUE'. APPEND ls_col_alv TO lt_col_alv. CALL METHOD cl_tpda_script_data_display=>data_display EXPORTING p_list_header = 'Query Selection Parameters' p_column_it = lt_col_alv p_popup = 'X' CHANGING p_data_it = output.* BREAK-POINT. CATCH cx_root INTO lr_cx. BREAK-POINT. "#EC NOBREAK value = lr_cx->get_text( ). ENDTRY. ENDMETHOD. "script METHOD end.*** insert your code which shall be executed at the end of the scripting (before trace is saved)*** here ENDMETHOD. "end METHOD if_tpda_script_w_output~get_parameter_values. DATA lt_param TYPE tpda_transfer_it_unsorted. DATA ls_param TYPE tpda_transfer_struc. ls_param-id = 'VARIABLE'. ls_param-value = entity_name. APPEND ls_param TO lt_param. ls_param-id = 'OBJECT_NAME'. ls_param-value = bol_object_name. APPEND ls_param TO lt_param. APPEND INITIAL LINE TO lt_param. APPEND LINES OF output TO lt_param. p_parameter_values_it = lt_param. ENDMETHOD. "if_tpda_script_w_output~get_parameter_values METHOD get_attribute. DATA lr_oref_descr TYPE REF TO cl_tpda_script_orefdescr. DATA lr_object_descr TYPE REF TO cl_tpda_script_objectdescr. DATA ls_varinfo TYPE tpda_quick_vars. DATA lv_longname TYPE string. DATA lt_attributes TYPE tpda_script_object_attribut_it. lr_oref_descr = io_oref_descr. lr_object_descr = lr_oref_descr->get_object_handle( ). lt_attributes = lr_object_descr->attributes( ). ro_descr = lr_object_descr->get_attribut_handle( lv_longname ). ENDMETHOD. "get_oref_attributeENDCLASS. "lcl_debugger_script IMPLEMENTATION咱们晓得,像如图一这品种的动态属性,因为不属于类的实例所有,因而调试到这个类的办法外部时,只能通过图二演示的两种形式在调试器显示该属性的值。而一旦调试到该类办法的内部,通常就只能通过"类名=>属性名"的形式来显示动态属性值(图三)。其实还有一种形式,如图四和图五所示。 ...

July 10, 2022 · 3 min · jiezi

关于sap:ABAP-编程语言中-Class类的设计原理剖析

在具体介绍 ABAP 这门编程语言的 Class(类) 的设计原理之前,先简略介绍一下 ABAP 编程语言自身。 ABAP 是 SAP 公司推出的一门高级编程语言,全称是 Advanced Business Application Program. 在应用 ABAP 编程语言之前,必须先装置 Application Server ABAP (下文简称 AS ABAP)作为 ABAP 零碎的应用层。AS ABAP提供了 ABAP 运行时框架,ABAP 程序在该框架中独立于平台执行。 AS ABAP 必须连贯到数据库层或数据库系统,其外围数据集存储在规范数据库中。 基于 UI 的拜访须要一个展示层(Presentation Layer)来显示 AS ABAP 用户界面(在 SAP GUI 或 Web 浏览器中)。 ABAP 应用服务器反对下列三种交互组件: RFC 接口这是 AS ABAP 的经典性能界面。近程函数调用是对远端(指标)零碎中的函数的调用,而不是调用程序运行的本地零碎中的函数。调用能够在不同的 AS ABAP 之间,也能够在AS ABAP和内部第三方零碎之间进行。在AS ABAP中,通过功能模块(Function Module)实现各个性能。在内部零碎中,专门编程的函数被称为其接口模仿函数模块。 互联网通信管理器(ICM)Internet通信管理器ICM (Internet Communication Manager)是AS ABAP的一个过程,容许它间接应用HTTP、HTTPS或SMTP与Internet通信。ICM用于连贯基于Web的示意组件,如SAPUI5、Web Dynpro ABAP、BSP等。ICM还容许应用AS ABAP作为Web服务的客户机和服务器。应用Internet通信框架(ICF)的类和接口从ABAP程序拜访ICM。 ABAP渠道(Channel)ABAP 通道 是AS实例与Internet之间基于事件的通信框架。ABAP音讯通道(AMC)用于在不同AS实例的ABAP程序之间替换音讯,而ABAP推送通道(APC)用于在AS ABAP与Internet之间应用WebSocket协定或TCP套接字协定进行双向通信。 ...

July 10, 2022 · 1 min · jiezi

关于sap:SAP-UI5-视图里的-OverflowToolbar-控件

SAP UI5 OverflowToolbar 控件,基于 sap.m.Toolbar,该工具栏在其内容不适宜显示区域时提供 Overflow 行为。 当容器可见区域的可用空间有余时,OverflowToolbar的内容会从右向左挪动到溢出区域。用户能够通过溢出按钮在弹出窗口中关上它来拜访其内容。 上面是一个例子:OverflowToolbar 里的按钮,可能失常显示的状况: Flag 和 Toggle 按钮无奈失常显示,只能在 Overflow 区域显示的状况: OverflowToolbar是一个自适应容器,它查看可用宽度并暗藏不适宜的局部内容。 它的目标是应用简略的控件,如 sap. m.button和 sap.m.label 作为内容。嵌入其余自适应容器控件(sap.m.Breadcrumbs除外)会导致对可用空间的抢夺——两个控件都依据另一个控件的大小计算可用空间,并同时扭转它们的宽度,导致空间散布的计算不正确。 下图显示了 OverflowToolbar 名为 content 的 aggregation,外面蕴含了三个子控件: 这三个子控件在 detail 视图里的定义地位: <m:OverflowToolbar> <m:ToolbarSpacer/> <m:Button type="Accept" text="Save"/> <m:Button type="Reject" text="Cancel"/> </m:OverflowToolbar>OverflowToolbar 继承自 sap.m.Toolbar, 这是一种程度容器,最罕用于显示按钮、标签、抉择和各种其余输出控件。 默认状况下,如果工具栏项有基于百分比的宽度(例如,sap.m.input 和 sap.m.slider)或实现了 sap.ui.core.IShrinkable 界面(例如, sap.m.text 和 sap.m.label),它们是可膨胀的。能够通过为工具栏项提供 sap.m.ToolbarLayoutData 来重写此行为。 开发人员能够应用 sap.m.toolbarseparator 在后面和前面的 sap.m.toolbar 元素之间增加一个视觉分隔符。分隔符与主题相干,能够是填充、边距或线。 要在工具栏项之间增加程度空间,请应用sap.m.toolbarspacer。能够定义程度空间的宽度,或者灵便地笼罩工具栏我的项目之间的残余空间(例如,将我的项目推到工具栏的边缘)。

July 4, 2022 · 1 min · jiezi

关于sap:SAP-UI5-应用开发教程之一百零六-如何提高-SAP-UI5-应用路由-url-的可读性

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案SAP UI5 利用开发教程之九十五 - SAP UI5 下拉菜单(Select) 控件的应用形式SAP UI5 利用开发教程之九十六 - SAP UI5 列表控件分页显示数据时,如何自定义分页大小SAP UI5 利用开发教程之九十七 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的明细页面SAP UI5 利用开发教程之九十八 - 从 viewId 这个属性谈起,聊聊 SAP UI5 的 HTML 源代码生成机制SAP UI5 利用开发教程之九十九 - 深入探讨 SAP UI5 本地开发环境里的 package.json 和 ui5.yamlSAP UI5 利用开发教程之一百 - 如何批改 SAP UI5 框架的源代码实现,以及应用本地部署的 SAP UI5 SDKSAP UI5 利用开发教程之一百零一 - SAP UI5 利用的 Locale 决定机制SAP UI5 利用开发教程之一百零二 - SAP UI5 利用的打印(Print)性能实现详解SAP UI5 利用开发教程之一百零三 - 如何在 SAP UI5 利用中生产第三方库SAP UI5 利用开发教程之一百零四 - SAP UI5 表格控件的反对复选(Multi-Select)以及如何用代码一次选中多个表格行我的项目SAP UI5 利用开发教程之一百零五 - SAP UI5 Master-Detail 布局模式的联动成果实现明细介绍SAP UI5 利用开发教程之一百零六 - 如何进步 SAP UI5 利用路由 url 的可读性阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

July 4, 2022 · 5 min · jiezi

关于sap:SAP-SEGW-事物码里的-Function-Import

凋谢数据协定(OData)包含规范的 CRUD (创立、检索、更新和删除)操作,这些操作映射到 HTTP 办法的 POST、GET、PUT/MERGE 和 Delete 几类。 此外,OData还反对进一步的服务操作:Function Import,这些操作能够由HTTP办法GET或POST调用,用于解决不能映射到规范 CRUD 操作的任何内容。 通过在数据模型中创立 Function Import,能够在 service Builder 中实现此类额定的服务操作。 例如,您能够为以下自定义操作创立函数导入: Work Item confirmation查看航班的可用性尽管创立新的函数导入来调用自定义操作很简略,然而如果能够应用规范的 CRUD 操作来调用要应用的操作,那么就应该尽量避免函数导入的创立。也就是说,应该只为不能应用规范操作调用的自定义操作创立函数导入。 Function import 的例子如下: Function Import 有下列属性须要保护: Return Type Kind:能够在 Complex Type 和 Entity Type 里抉择,也能够抉择不返回任何后果。这种状况下,能够了解成一个产生side effect 的函数执行,比方审批某个 work item. Return Type: 输出心愿函数导入返回的简单类型或实体类型的名称。能够应用输出帮忙从我的项目中抉择现有的简单类型或实体类型。如果输出帮忙为空,则必须首先在我的项目中创立相干的简单类型或实体类型。如果抉择了不返回,此字段是不可编辑的。Return Cardinality: 如果 Function Import 的返回类型是实体类型,并且: 如果实体类型的要害属性为外围类型 Edm.DateTime, Edm.DateTimeoffset 或 Edm.Guid,则返回基数抉择成 0..1是不容许的,因为对于这些外围类型,初始 ABAP 值并不是一个无效的 edm 值,它可能会导致运行时异样。因而无奈抉择 0..1. 如果实体类型的要害属性不是Edm.DateTime, Edm.DateTimeoffset 或 Edm.Guid,并返回基数 0..1, 此时会显示一个正告音讯。因为依据 OData 规范,0..1 不倡议用于任何外围类型。 ...

July 4, 2022 · 1 min · jiezi

关于sap:介绍一种对-SAP-GUI-里的收藏夹事务码管理工具增强的实现方案

SAP Netweaver 里有很多名字比拟长的事务码,比方 SAP CRM UI开发工具BSP_WD_CMPWB,直到明天我也记不住它。幸好SAP贴心地在SAP GUI里提供了收藏夹性能,咱们能够在SAP GUI里创立树状构造的收藏夹事务码列表,能够把若干业务上相干的事务码放在同一个文件夹内,文件夹反对嵌套,如下图: SAP菜单是一个由用户主记录中的一个条目集中定义或笼罩的区域菜单。SAP菜单或SAP区域菜单显示SAP菜单树中所有可用的SAP t-code,如下图所示: 上面是 SAP Area menu 的创立步骤: 应用事物码 SE43: 点击 Create Area Menu 按钮: 输出菜单的名称和形容信息: 增加菜单可供点击的子节点: 顺次增加菜单项和点击后执行的事物码即可: 然而SAP GUI的收藏夹事务码治理性能有个局限,收藏夹树状构造上的事务码节点不反对剪切粘贴操作。比方我要想把下图收藏夹尾部的BSP_WD_COMWB挪动到收藏夹最顶端的Design Layer文件夹里,只能鼠标左键单击BSP_WD_COMWB, 按住不放,而后将其拖拽到顶部的目标文件夹里。 因为我的收藏夹内容很多,所以我得按住鼠标不放,同时用鼠标中键把滚动条往上滑好几下,直至收藏夹顶部的指标文件夹呈现,再松开鼠标左键,将其放到指标文件夹里。 这种收藏夹的治理形式低效而且容易出错,须要按住鼠标左键不放同时滑动鼠标中键,万一此时左键松开,就会误操作。于是我本人开发了一个工具。本地新建一个记事本文件,在其内把本人想要导入SAP GUI收藏夹的事务码依照本人喜爱的层级构造保护好,而后间接把这个记事本文件上传到ABAP零碎即可。 上图的01. 02. 03结尾的内容代表的是SAP GUI里生成收藏夹的文件夹名称,方括号内即事务码自身的值。操作记事本,比用鼠标在SAP GUI里做拖拽操作轻松多了,不是吗?下图左边是我在本地记事本里保护的内容,右边是将这个记事本导入到SAP GUI里生成的收藏夹。 我开发的这个报表,会解析记事本里保护的事务码和层级构造,而后把解析出的记录插入到Netweaver寄存收藏夹事务码的数据库表里。 源代码如下: REPORT zfavorite.TYPES: tt_tcode TYPE STANDARD TABLE OF tstct-tcode, tt_wd_app TYPE STANDARD TABLE OF wdy_applicationt-application_name.TYPES: BEGIN OF ty_file, text LIKE smen_buffc-text, tcode LIKE smen_buffc-report, END OF ty_file.CLASS lcl_counter DEFINITION. PUBLIC SECTION. METHODS: get_new_obj_id RETURNING VALUE(rv_id) TYPE int4, get_folder_sort RETURNING VALUE(rv_id) TYPE int4, get_tcode_sort RETURNING VALUE(rv_id) TYPE int4, reset_tcode_sort. CONSTANTS: cv_root TYPE smen_buffc-parent_id VALUE '00001'. CONSTANTS: cv_level1 TYPE smen_buffc-menu_level VALUE '01', cv_level2 LIKE cv_level1 VALUE '02'. PRIVATE SECTION. DATA: mv_object_id TYPE int4 VALUE 1, mv_folder_sort TYPE int4 VALUE 0, mv_tcode_sort TYPE int4 VALUE 0.ENDCLASS.CLASS lcl_counter IMPLEMENTATION. METHOD: get_new_obj_id. ADD 1 TO mv_object_id. rv_id = mv_object_id. ENDMETHOD. METHOD: get_folder_sort. ADD 10 TO mv_folder_sort. rv_id = mv_folder_sort. ENDMETHOD. METHOD: get_tcode_sort. ADD 10 TO mv_tcode_sort. rv_id = mv_tcode_sort. ENDMETHOD. METHOD reset_tcode_sort. CLEAR: mv_tcode_sort. ENDMETHOD.ENDCLASS.CLASS lcl_tool DEFINITION. PUBLIC SECTION. CLASS-METHODS: is_tcode IMPORTING iv_text TYPE string RETURNING VALUE(result) TYPE abap_bool. CLASS-METHODS: is_wd_app IMPORTING iv_text TYPE string RETURNING VALUE(result) TYPE abap_bool. CLASS-METHODS: get_tcode IMPORTING iv_text TYPE smen_buffc-text RETURNING VALUE(result) TYPE smen_buffc-report. CLASS-METHODS: get_wd_app IMPORTING iv_text TYPE smen_buffc-text RETURNING VALUE(result) TYPE smen_buffc-report. CLASS-METHODS: set_tcode_list IMPORTING it_tcode TYPE tt_tcode. CLASS-METHODS: set_wd_app_list IMPORTING it_app TYPE tt_wd_app. CLASS-METHODS: get_tcode_description IMPORTING iv_tcode TYPE smen_buffc-report RETURNING VALUE(result) TYPE smen_buffc-text. CLASS-METHODS: get_app_description IMPORTING iv_app TYPE smen_buffc-text RETURNING VALUE(result) TYPE smen_buffc-text. CLASS-METHODS: get_menu_type IMPORTING is_menu TYPE ty_file RETURNING VALUE(result) TYPE int4. CONSTANTS: cv_wd_app_type TYPE smen_buffc-reporttype VALUE 'OT', cv_wd_app_report TYPE smen_buffc-report VALUE 'WDY_APPLICATION', BEGIN OF cs_entry_type, top_tcode TYPE int4 VALUE 1, folder TYPE int4 VALUE 2, child_tcode TYPE int4 VALUE 3, top_wd_app TYPE int4 VALUE 4, child_wd_app TYPE int4 VALUE 5, invalid TYPE int4 VALUE 6, END OF cs_entry_type. PRIVATE SECTION. CLASS-DATA: st_tcode TYPE STANDARD TABLE OF tstct, st_wd_app TYPE STANDARD TABLE OF wdy_applicationt.ENDCLASS.CLASS lcl_tool IMPLEMENTATION. METHOD: is_tcode. IF iv_text CP '[*]'. result = abap_true. ELSE. result = abap_false. ENDIF. ENDMETHOD. METHOD: is_wd_app. IF iv_text CP '(*)'. result = abap_true. ELSE. result = abap_false. ENDIF. ENDMETHOD. METHOD: get_tcode. result = iv_text. REPLACE ALL OCCURRENCES OF REGEX `[\[\]]` IN result WITH space. CONDENSE result NO-GAPS. ENDMETHOD. METHOD: get_wd_app. result = iv_text. REPLACE ALL OCCURRENCES OF REGEX `[\(\)]` IN result WITH space. CONDENSE result NO-GAPS. ENDMETHOD. METHOD: set_tcode_list. SELECT * INTO CORRESPONDING FIELDS OF TABLE st_tcode FROM tstct FOR ALL ENTRIES IN it_tcode WHERE sprsl = sy-langu AND tcode = it_tcode-table_line. ENDMETHOD. METHOD: set_wd_app_list. SELECT * INTO CORRESPONDING FIELDS OF TABLE st_wd_app FROM wdy_applicationt FOR ALL ENTRIES IN it_app WHERE application_name = it_app-table_line AND langu = sy-langu. ENDMETHOD. METHOD: get_tcode_description. FIELD-SYMBOLS: <line> TYPE tstct. READ TABLE st_tcode ASSIGNING <line> WITH KEY tcode = iv_tcode. IF sy-subrc = 0. result = <line>-ttext. ENDIF. ENDMETHOD. METHOD: get_app_description. FIELD-SYMBOLS: <line> LIKE LINE OF st_wd_app. READ TABLE st_wd_app ASSIGNING <line> WITH KEY application_name = iv_app. IF sy-subrc = 0. result = <line>-description. ENDIF. ENDMETHOD. METHOD: get_menu_type. DATA: lv_is_tcode TYPE abap_bool, lv_is_wd_app TYPE abap_bool. lv_is_tcode = is_tcode( CONV #( is_menu-text ) ). lv_is_wd_app = is_wd_app( CONV #( is_menu-text ) ). IF is_menu-text IS NOT INITIAL AND is_menu-tcode IS INITIAL. IF is_tcode( CONV #( is_menu-text ) ) = abap_true. result = cs_entry_type-top_tcode. ELSEIF is_wd_app( CONV #( is_menu-text ) ) = abap_true. result = cs_entry_type-top_wd_app. ELSE. result = cs_entry_type-folder. ENDIF. ELSEIF is_menu-tcode IS NOT INITIAL. IF is_tcode( CONV #( is_menu-tcode ) ) = abap_true. result = cs_entry_type-child_tcode. ELSEIF is_wd_app( CONV #( is_menu-tcode ) ) = abap_true. result = cs_entry_type-child_wd_app. ELSE. result = cs_entry_type-invalid. ENDIF. ELSE. result = cs_entry_type-invalid. ENDIF. ENDMETHOD.ENDCLASS.START-OF-SELECTION. DATA: gt_file TYPE STANDARD TABLE OF ty_file, gt_tcodes TYPE tt_tcode, gt_wd_app TYPE tt_wd_app, lo_counter TYPE REF TO lcl_counter, lv_filename TYPE localfile, lv_name_string type string. CALL FUNCTION 'NAVIGATION_FILENAME_HELP' EXPORTING default_path_long = '*.*' mode = 'O' IMPORTING selected_filename = lv_filename. CHECK lv_filename IS NOT INITIAL. lv_name_string = lv_filename. CREATE OBJECT lo_counter. CALL FUNCTION 'GUI_UPLOAD' EXPORTING filename = lv_name_string filetype = 'ASC' has_field_separator = 'X' TABLES data_tab = gt_file EXCEPTIONS file_open_error = 1 file_read_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 no_authority = 6 "as of 4.6C OTHERS = 7. DELETE gt_file WHERE tcode IS INITIAL AND text IS INITIAL. DATA: ls_menu_entry TYPE smen_buffc, lt_menu_entry TYPE STANDARD TABLE OF smen_buffc, ls_web_link TYPE smen_buffi, lt_web_link TYPE STANDARD TABLE OF smen_buffi, lv_current_par_id TYPE smen_buffc-parent_id. FIELD-SYMBOLS: <entry> LIKE LINE OF gt_file, <menu> LIKE LINE OF lt_menu_entry, <link> TYPE smen_buffi. LOOP AT gt_file ASSIGNING <entry>. CLEAR: ls_menu_entry. ls_menu_entry-object_id = lo_counter->get_new_obj_id( ). ls_menu_entry-uname = sy-uname. ls_menu_entry-mandt = sy-mandt. CASE lcl_tool=>get_menu_type( <entry> ). WHEN lcl_tool=>cs_entry_type-top_tcode. ls_menu_entry-reporttype = 'TR'. ls_menu_entry-parent_id = lcl_counter=>cv_root. ls_menu_entry-report = lcl_tool=>get_tcode( <entry>-text ). ls_menu_entry-menu_level = lcl_counter=>cv_level1. ls_menu_entry-sort_order = lo_counter->get_folder_sort( ). APPEND ls_menu_entry-report TO gt_tcodes. WHEN lcl_tool=>cs_entry_type-top_wd_app. ls_menu_entry-reporttype = 'OT'. ls_menu_entry-parent_id = lcl_counter=>cv_root. ls_menu_entry-report = lcl_tool=>cv_wd_app_report. ls_menu_entry-menu_level = lcl_counter=>cv_level1. ls_menu_entry-sort_order = lo_counter->get_folder_sort( ). ls_web_link-object_id = ls_menu_entry-object_id. APPEND ls_web_link TO lt_web_link. ls_menu_entry-text = lcl_tool=>get_wd_app( <entry>-text ). APPEND ls_menu_entry-text TO gt_wd_app. WHEN lcl_tool=>cs_entry_type-folder. ls_menu_entry-text = <entry>-text. ls_menu_entry-parent_id = lcl_counter=>cv_root. ls_menu_entry-sort_order = lo_counter->get_folder_sort( ). ls_menu_entry-menu_level = lcl_counter=>cv_level1. lv_current_par_id = ls_menu_entry-object_id. lo_counter->reset_tcode_sort( ). WHEN lcl_tool=>cs_entry_type-child_tcode. ls_menu_entry-reporttype = 'TR'. ls_menu_entry-report = lcl_tool=>get_tcode( CONV #( <entry>-tcode ) ). ls_menu_entry-parent_id = lv_current_par_id. ls_menu_entry-sort_order = lo_counter->get_tcode_sort( ). ls_menu_entry-menu_level = lcl_counter=>cv_level2. APPEND ls_menu_entry-report TO gt_tcodes. WHEN lcl_tool=>cs_entry_type-child_wd_app. ls_menu_entry-reporttype = 'OT'. ls_menu_entry-report = lcl_tool=>cv_wd_app_report. ls_menu_entry-parent_id = lv_current_par_id. ls_menu_entry-sort_order = lo_counter->get_tcode_sort( ). ls_menu_entry-menu_level = lcl_counter=>cv_level2. ls_menu_entry-text = lcl_tool=>get_wd_app( CONV #( <entry>-tcode ) ). APPEND ls_menu_entry-text TO gt_wd_app. ls_web_link-object_id = ls_menu_entry-object_id. APPEND ls_web_link TO lt_web_link. WHEN OTHERS. WRITE: / 'Invalid record: ', <entry>-text, <entry>-tcode COLOR COL_NEGATIVE. RETURN. ENDCASE. APPEND ls_menu_entry TO lt_menu_entry. ENDLOOP. lcl_tool=>set_tcode_list( gt_tcodes ). lcl_tool=>set_wd_app_list( gt_wd_app ). LOOP AT lt_menu_entry ASSIGNING <menu> WHERE reporttype = 'TR'. <menu>-text = lcl_tool=>get_tcode_description( <menu>-report ). ENDLOOP. LOOP AT lt_web_link ASSIGNING <link>. <link>-mandt = sy-mandt. <link>-link_type = 'W'. <link>-uname = sy-uname. READ TABLE lt_menu_entry INTO ls_menu_entry WITH KEY object_id = <link>-object_id. CHECK sy-subrc = 0. TRANSLATE ls_menu_entry-text TO LOWER CASE. <link>-url = '0E' && ls_menu_entry-text. ENDLOOP. LOOP AT lt_menu_entry ASSIGNING <menu> WHERE reporttype = 'OT'. <menu>-text = lcl_tool=>get_app_description( <menu>-text ). ENDLOOP. DELETE FROM smen_buffc WHERE uname = sy-uname. DELETE FROM smen_buffi WHERE uname = sy-uname. INSERT smen_buffc FROM TABLE lt_menu_entry. INSERT smen_buffi FROM TABLE lt_web_link. COMMIT WORK AND WAIT. WRITE: / 'Favorite list uploaded successfully, total entries: ', lines( lt_menu_entry ) COLOR COL_POSITIVE.总结本文首先介绍了 SAP Area Menu 的创立形式,以及规范的收藏夹治理性能和局限性,接着分享了笔者自开发的收藏夹工具加强的性能以及全副的源代码,心愿对想进步 SAPGUI 工作效率的使用者有所帮忙。 ...

July 2, 2022 · 5 min · jiezi

关于sap:SAP-SEGW-事物码里的-Function-Import

凋谢数据协定(OData)包含规范的 CRUD (创立、检索、更新和删除)操作,这些操作映射到 HTTP 办法的 POST、GET、PUT/MERGE 和 Delete 几类。 此外,OData还反对进一步的服务操作:Function Import,这些操作能够由HTTP办法GET或POST调用,用于解决不能映射到规范 CRUD 操作的任何内容。 通过在数据模型中创立 Function Import,能够在 service Builder 中实现此类额定的服务操作。 例如,您能够为以下自定义操作创立函数导入: Work Item confirmation查看航班的可用性尽管创立新的函数导入来调用自定义操作很简略,然而如果能够应用规范的 CRUD 操作来调用要应用的操作,那么就应该尽量避免函数导入的创立。也就是说,应该只为不能应用规范操作调用的自定义操作创立函数导入。 Function import 的例子如下: Function Import 有下列属性须要保护: Return Type Kind:能够在 Complex Type 和 Entity Type 里抉择,也能够抉择不返回任何后果。这种状况下,能够了解成一个产生side effect 的函数执行,比方审批某个 work item. Return Type: 输出心愿函数导入返回的简单类型或实体类型的名称。能够应用输出帮忙从我的项目中抉择现有的简单类型或实体类型。如果输出帮忙为空,则必须首先在我的项目中创立相干的简单类型或实体类型。如果抉择了不返回,此字段是不可编辑的。Return Cardinality: 如果 Function Import 的返回类型是实体类型,并且: 如果实体类型的要害属性为外围类型 Edm.DateTime, Edm.DateTimeoffset 或 Edm.Guid,则返回基数抉择成 0..1是不容许的,因为对于这些外围类型,初始 ABAP 值并不是一个无效的 edm 值,它可能会导致运行时异样。因而无奈抉择 0..1. 如果实体类型的要害属性不是Edm.DateTime, Edm.DateTimeoffset 或 Edm.Guid,并返回基数 0..1, 此时会显示一个正告音讯。因为依据 OData 规范,0..1 不倡议用于任何外围类型。 ...

July 2, 2022 · 1 min · jiezi

关于sap:SAP-SEGW-事物码里的-ABAP-类型和-EDM-类型映射的一个具体例子

本文的示例次要关注 Edm属性的 ABAP Datetime 解决逻辑。Datetime 只是在映射ABAP 类型和 EDM 类型时可能呈现不统一的例子之一。 对于 Edm.Datetime 属性,在后端,ABAP 字段能够示意为一个简略的日期或工夫戳,能够带有也能够不带有小数秒。 因而,在 Service Builder 中对于一个EDM.Datetime 类型的属性,须要额定的信息来将这个 EDM 类型映射到后端中正确的 ABAP 字段类型。如果没有正确地映射,就会导致谬误的类型赋值。 正确的类型赋值对于 MPC 的主动生成是至关重要的,因为 DPC 的实现是基于 MPC 类中生成的类型。 在 Service Builder 中实现这一指标的最后解决方案是: 如果 precision = 0 并且 scale = 0, 那么 ABAP internal type 为 type D.如果 precision = 8 并且 scale = 0, 那么 ABAP internal type 为 type P,length 为 8 decimals 为 0 (timestamp without fractional seconds)如果 scale = 7, 那么 ABAP internal type 为 type P,length 11 decimals 7 (timestamp with fractional seconds)除了应用下面示例中的 precision 和 scale 属性之外,也能够应用 Service Builder 中的ABAP Type Editor来间接设置外部类型。在 ABAP 类型编辑器中,能够手动设置类别为外部类型,规定如下: ...

June 30, 2022 · 1 min · jiezi

关于sap:SAP-SEGW-事物码里的-ABAP-Editor

因为能够为 Entity Type 的属性,设置 EDM 类型和外部 ABAP 类型,所以必须对这些类型进行验证,以确保值之间没有不匹配的状况产生。 这种类型的不匹配可能会导致数据失落,以 DateTime 和 Date 为例,前者类型比后者类型的限度更严格,因而会导致数据失落。 如果 EDM 类型和 ABAP 类型不兼容,则返回谬误提醒。 应用 ABAP 类型编辑器和相应的 ABAP 字段名定义对于属性的附加类型信息,不便 ABAP 类型和 EDM 类型之间的映射。 应用ABAP类型编辑器来定义对于属性和相应的ABAP字段名的附加类型信息。为了不便ABAP类型和EDM类型之间的映射,您能够抉择要应用的确定模式,实体或简单类型的构造绑定,运行时对象生成器的显式赋值或确定。 如果您抉择了实体或简单类型的构造绑定,零碎将依据须要为实体或简单类型调配一个ABAP构造。主动ABAP类型赋值派生自EDM类型。您能够在实体类型或简单类型级别上调配ABAP构造,但不能在单个属性级别上调配。调配的ABAP构造随后被生成器应用。如果在设计时没有指定ABAP构造,生成器会依据显示的信息生成一个新的构造。 如果抉择显式赋值,则能够保护类别,随后可用于此类别的字段就能够输出了。不实用的字段依然是只读的。如果理论需要中,特地不冀望产生主动赋值,请应用显式赋值。留神,构造绑定会笼罩所有已保护的显式赋值。 ABAP 类型和 EDM 类型之间的准确关联并不总是可能 100% 实现,因为它们的各个方面,并且主动确定相应的 ABAP 或 EDM 类型可能不是完满匹配的。因而,开发人员必须始终查看已确定的类型映射,以确保抉择了可能的最佳匹配。 Service Builder 包含一个验证查看,用于确定可能的不一致性,并显示适当的正告音讯,以便避免通过 ABAP 类型映射到 EDM 类型和/或反过来可能呈现的数据失落。这种查看辨别了潜在的数据失落、可能的转换谬误和 ABAP 类型的适用性。

June 30, 2022 · 1 min · jiezi

关于sap:SAP-电商云和-Customer-Data-CloudCDC-的登录集成过程中的一些问题分析

商业体验的数字化始终是许多 SAP 客户的次要关注点,为了在品牌和消费者之间建设信赖关系,客户生命周期是至关重要的。SAP 客户数据云(Customer Data Cloud)和 SAP 商务云(Commerce cloud)不仅为解决这些挑战提供了解决方案,而且还通过规范的开箱即用性能和集成简化了实现过程。 在咱们探讨具体的性能和设计注意事项之前,理解每种产品的作用是很重要的。 SAP Customer Data CloudSAP 客户数据云用于治理 web/应用程序表单上的用户帐户的创立,并容许登录验证拜访数字属性,同时在所有表单上启用合规的批准捕捉(compliant consent capture)和从新批准(re-consent )流程。能够很容易地创立智能用户首选项表单,以便让最终用户齐全管制其数据。应用 Identity Sync、webhook和 REST api 能够轻松创立智能集成流。SAP客户数据云由以下次要支柱组成: IdentityConsentB2BSAP Commerce CloudSAP Commerce Cloud 通过端对端商务流程确保个性化、全面的电子商务体验: 简化客户的商业设置,升高总领有老本反对端到端的电子商务流程,包含购物车结账、产品内容和体验治理、促销和订单治理实现与在同一平台上构建的组件的无缝集成和交互上面是 SAP Commerce Cloud 将 SAP Customer Data Cloud 用作 login 集成的一个场景中的一个理论问题。 通过 Service Worker 向 Commerce 服务器发动的 token 申请。 留神这个申请的前置条件,是曾经从 CDC tenant 获取了 UIDSignature 字段: 失常状况下,Commerce 颁发的 token,如下图所示: pages CMS OCC 申请也是通过 Service Worker 返回: 全是 JSON 数据: ...

June 30, 2022 · 1 min · jiezi

关于sap:SAP-SEGW-里的-Entity-Type-作用讲解

定义 Entity Type 是在事物码 SEGW 里进行数据建模的步骤之一。 在 Service Builder 我的项目中应用 Entity Type来形容实体数据模型(EDM)中的数据结构。Entity Type 示意数据的特定类型,例如 Item 或 Concept。实体类型由下列这些元素组成: 一个惟一的名称如下图图例1 Opportunity 所示: 键,能够由一个或多个属性(Is key)定义如下图所示,Opportunity Entity Type 的 key 为 guid,通过 Is Key 标识: 属性(可选)下图包含 Guid key 在内的所有高亮字段都是 entity type 的属性。 导航属性(可选用于在关联之间导航)导航属性一览: 实体类型属性必须遵循 OData 协定容许和提供的数据类型,或者是简单类型。实体类型必须有惟一标识符,容许属于该实体类型的实体在 OData 上下文中应用。能够在实体集(Entity Set)中将实体类型分组在一起。 上面是一个例子,Entity Set 和 Entity Type 的蕴含关系: 应用右键菜单创立 Entity Type: 如上图所示,一个 property 由下列字段组成: 属性字段:蕴含名称和类型。外围类型如 Nullable, MaxLength, FixedLength, Precision, Scale 或简单类型正文:SAP正文(如Creatable, Deletable, Label, UnitProperty) 或者 Vocabulary-based正文ABAP类型信息,蕴含 ABAP字段名和 ABAP类型赋值一些字段的含意: ...

June 30, 2022 · 1 min · jiezi

关于sap:关于-SAP-SEGW-Project-Type-的四种不同类型

当咱们应用事物码 SEGW 创立一个新的 Project 时,咱们能够从下拉菜单里抉择四种不同的我的项目类型: 如果要应用 terms 对数据模型工件(artifacts)进行正文, 以提供无关工件的附加信息,请抉择 Service with Vocabulary-Based 的 Project 类型。 规范 SAP 正文不适用于此我的项目类型。 在这种状况下,能够将术语合并到一个词汇表中并上传到词汇库中。 词汇库包含一组词汇文件,例如 Org.OData.Atom.V1 和 Org.OData.Capabilities.V1。 如果您想在不批改服务的状况下对现有服务的工件进行注解并提供无关工件的附加信息,请抉择 Annotation Model for Referenced Service。 与我的项目类型 Service with Vocabulary-Based Annotations 不同,在此我的项目类型中,能够在只读模式下导入另一个服务作为参考,而后创立正文。 Project type 一旦选定,后续不能更改。 总之,如果我的项目中的 OData 服务要应用规范的SAP正文,请抉择Service with SAP Annotations。如果我的项目中的 OData 服务要应用基于词汇表的正文,那么抉择带有基于词汇表的正文的服务。如果 OData 服务必须在不批改服务的状况下进行内部正文,请抉择援用服务的正文模型。您能够创立特定于客户的词汇表并将其上传到词汇库中。词汇表文件的上传是一个可选的筹备步骤,因为有 SAP 规范交付的词汇表可用。在 Attribute 面板下,指定要应用的生成策略。默认应用规范生成策略,但也能够应用其余生成策略。如果零碎中没有定义特定于客户的生成策略,则输出Standard作为默认值,示意应用规范生成策略。 如果不冀望在零碎 landscape 中从一个零碎传输到另一个零碎的包中创立我的项目,请输出$TMP 或 抉择 Local Object。这确保了对象是在本地创立的,不反对传输到其余零碎。

June 30, 2022 · 1 min · jiezi

关于sap:SAP-Gateway-Service-Builder-里的-OData-服务实现方式

SAP SEGW 反对下列几种形式的 OData 服务实现形式: 基于代码的实现:Service Builder 依据开发人员定义的 OData 数据模型生成 ABAP 类。随后,能够间接从 Service Builder 导航到 ABAP Workbench,并且在其中拜访适当的办法并为各种不同的服务操作编写源代码。 SAP 为数据供给和元数据定义提供了一些代码模式。下图是基于代码实现的一个例子: 将操作映射到数据源:能够手动定义数据源对象的参数和实体的属性之间的关系,通过映射近程函数调用 (RFC) 和业务对象存储库 (BOR) 类型的数据源来实现。此函数旨在与导入数据源函数(RFC/BOR 接口)联合应用,并使开发人员可能将 RFC/BOR 函数映射到服务操作。在可能的状况下,服务构建器会为导入的 RFC/BOR 接口倡议一个操作映射。 对于 DDIC 表和视图以及 CDS 视图,能够实现基于服务适配定义语言 (SADL) 的 OData 服务。在服务施行过程中,须要应用映射工具将 SADL 模型实体映射到 OData 模型属性。OData 服务生命周期的最初一个开发阶段是服务保护,无论抉择哪种开发方法,都必须执行此操作。服务保护须要在 SAP 网关零碎中注册和激活每个服务。 Service Maintenance 阶段的一个例子: 如果要应用规范 SAP annotation 对数据模型 artifacts 进行正文,请抉择应用 SAP annotation 的我的项目类型,如下图所示: 例如,SAP annotation 包含 Createable、Updatable、Label、UnitProperty 等等。 可用的正文可能会依据要正文的数据模型工件而有所不同。这些注解的一个例子如下图所示: 您还能够定义 facets:例如 Nullable、Default、MaxLength、FixedLength、Precision、Scale。 可用的 ABAP 类型信息包含 ABAP 字段名称和 ABAP 类型编辑器。 ...

June 30, 2022 · 1 min · jiezi

关于sap:SAP-Gateway-Service-Builder-里的-OData-Model-定义方式

每个 OData 服务须要都数据模型定义(模型提供者类)。 在客户开发我的项目的状况下,开发过程总是从事后定义的数据模型开始(由外而内的办法)。 SEGW 反对下列几种 OData 模型定义形式: 手动定义数据模型提供最大的灵活性,须要手动定义单个数据模型元素及其属性。 下图就是手动创立的数据模型的一个例子: Import - 导入反对下图这几种导入形式: DDIC 构造(ABAP 数据字典):这种形式可能缩小在数据模型中创立实体类型和简单类型所需的工夫;RFC/BOR 接口:使开发人员可能重用现有的 RFC/BOR 参数以轻松创立实体类型。通过这种形式,能够利用业务对象存储库中的大量现有近程函数调用 (RFC) 和业务利用程序接口 (BAPI)。导入现有接口定义后,能够映射来自同一个 RFC 或 BAPI 的操作以取得您须要的服务操作,而无需编写额定的 ABAP 源代码。数据模型:容许重用现有的数据模型。能够为多个服务重用数据模型。导入搜寻帮忙:容许重用零碎中现有的搜寻帮忙作为数据源来创立新的实体类型。服务重定义这个性能可能从新定义现有 SAP 网关服务或从 SAP 零碎环境中的框架创立的服务。 例如,服务提供者接口 (SPI)、SAP 业务信息仓库 (BW 查问)、通用交互层 (GenIL)。 从新定义服务功可能重用 SAP 零碎环境中存在的各种业务对象和服务。 此外,它连贯现有的服务操作,因而无需创立独自的服务实现。 服务蕴含 - Include可能蕴含现有的 SAP Gateway 服务,这样就防止了从新创立其数据模型的步骤。 为了更好地重用,它容许将一个或多个现有服务组合到一个新服务中。 如果抉择蕴含现有服务,则无需执行服务施行阶段。 服务援用 Reference服务援用可能通过 Service Builder 中的 Reference 选项在援用的数据源中获取数据模型。 这样的数据模型在 Service Builder 中不是长久的,而是在调用 Service Builder 时通过援用获取它们,这与在 Service Builder 中的其余办法中导入的工件不同。 援用的模型始终是只读模式。 ...

June 30, 2022 · 1 min · jiezi

关于sap:SAP-Gateway-Service-Builder-里-Project-的概念

如果 SAP 零碎具备 SAP Gateway 7.40 或更高版本,则零碎会装置外围组件 SAP_GWFND,并包含 IW_BEP 的性能范畴。 如下图所示: Gateway Service Builder 将开发人员创立服务所需的所有开发工件可视化,包含: SAP Gateway 运行时工件,例如模型提供者类 (MPC)、数据提供者类 (DPC) 模型正文提供者类 (Annotation PC) 和服务OData 工件,例如实体集、实体类型和属性如下图所示: Service Builder 引入了一个新的服务开发概念,即 Project. 我的项目用于存储开发人员须要的所有工件,在对立的地方地位对立创立服务和模型。 因为我的项目整合了所有相干数据,开发人员能够轻松地并行处理多个我的项目,并在生成和激活理论服务之前在我的项目之间重用数据。 因而,我的项目为开发人员提供了随时中断服务开发和建模过程的自在,而不用放心运行时工件和失落数据的危险。 在我的项目中组织服务开发和建模过程的劣势在于,整个我的项目数据能够在零碎之间轻松传输,以实现最大效率和重用。 笔者的零碎上,SEGW 反对下列这些类型的我的项目的创立: SAP Gateway Service Builder 反对不同的开发方法和生命周期,以提供最大的灵活性,以满足一直变动的开发先决条件并满足不同的需要。如果须要服务来公开特定数据,能够决定是为新服务定义新的数据模型并集成您本人的源代码,还是重用和从新定义现有服务。 例如,能够在 SEGW 里新建我的项目,而后将 SAP 规范的实现蕴含进来: Service Builder 提供了多种办法来重用 SAP Business Suite 零碎中的现有数据源,从而显着放慢开发过程。简而言之,Service Builder 投合了所有级别的开发教训,并提供了在不影响品质的状况下,节省时间和提高效率的开发方法。无论开发人员抉择哪种类型的 SEGW 我的项目,都会生成一组适当的 ABAP 类。这可确保开发人员在优化或扩大 SAP Gateway 中的 OData 服务时领有最大的灵活性。 Service Builder 反对 OData 服务的以下开发阶段: ...

June 30, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-写时拷贝Copy-on-Write策略的一个具体例子

值语义(Value semantics)和援用语义(reference semantics)形容了动态内存对象在多个变量援用它时, 能够体现的两种形式。 用于特定类型的动态内存对象的语义, 对该类型的对象如何耗费内存产生了重要影响。 实质上,应用值语义的援用变量总是有它本人的、它所援用的内存对象的惟一正本。值语义变量相似于动态变量;像动态变量一样,它间接绑定到它所代表的内存对象。只管变量只是一个援用,但在语义上它是内存对象自身。 相比之下,应用援用语义的援用变量被了解为指向内存对象的指针。内存对象在语义上独立于援用变量。该对象能够在许多这样的变量之间共享。 Value Semantics 的典型代表: ABAP Internal TablesStringsBoxed Components应用值语义解析对 ABAP 内表、字符串或 boxed组件的屡次援用。 这意味着: 内表、字符串或 boxed 组件的每个变量都指向它本人的内存对象的独自正本。将内表、字符串或 boxed 组件调配给第二个 ABAP 变量会触发对象的复制操作,以便每个变量都有本人的对象正本。通过特定变量对内表、字符串或装箱组件所做的更改,对于已调配给同一对象的其余变量是不可见的。因为外部表和字符串可能会变得十分大,ABAP 通过采纳惰性复制(有时也称为写时复制)策略 (Copy-On-Write) 来节俭复制工作量。 咱们来看一个具体的例子。 源代码如下: REPORT z.DATA: lv_size TYPE abap_msize, lv_size1 LIKE lv_size, lv_consumed LIKE lv_size.DATA: lt_table TYPE TABLE OF tadir, lt_table1 LIKE lt_table.SELECT * INTO TABLE lt_table FROM tadir.cl_abap_memory_utilities=>get_total_used_size( IMPORTING size = lv_size ).WRITE:/ 'total consumed: ' , lv_size.lt_table1 = lt_table.cl_abap_memory_utilities=>get_total_used_size( IMPORTING size = lv_size1 ).lv_consumed = lv_size1 - lv_size.WRITE:/ 'total consumed after = ' , lv_consumed.APPEND lt_table[ 1 ] TO lt_table.CLEAR: lv_size.cl_abap_memory_utilities=>get_total_used_size( IMPORTING size = lv_size ).lv_consumed = lv_size - lv_size1.WRITE:/ 'total consumed after copy on write:', lv_consumed.这个测试程序的5个关键点: ...

June 30, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-的两种内存对象类型

要钻研 SAP ABAP 内表的写时复制(copy on write)机制,ABAP Memory Inspector 是必不可少的工具。 ABAP Memory Inspector 能报告运行 ABAP 程序的外部会话应用的内存。 这个工具能提供下列两个维度的数据: 间接归因于 ABAP 应用程序的内存耗费。 这包含 ABAP 程序的动态和动态内存对象中的内存,以及 ABAP 堆栈上程序应用的内存。整个外部会话针对主机操作系统的内存调配。 这包含 ABAP 内存耗费以及 ABAP 运行时和外部会话治理耗费的绝对大量的内存。 Memory Inspector 总是在制作内存快照之前运行 ABAP 垃圾收集器,这样 dead 内存对象就不会对内存耗费数据的指标产生影响。 一般来说,特地是因为运行外部会话自身的开销很小,所以咱们个别状况将内存剖析问题的重点,聚焦在 ABAP 应用程序的内存耗费自身。毕竟作为开发人员,咱们在任何状况下都只能影响 ABAP 程序的内存耗费,而不是运行时零碎的内存耗费。 Dynamic and Static Memory Objects在 ABAP 内存对象的类型中,最容易引起问题的是动态内存对象。所谓动态内存对象,是那些大小能够随着程序运行而扭转的对象。 它们包含以下类型的 ABAP 实体: ABAP 内表(或者更确切地说,内表中的行,即其主体)字符串类对象(由 CREATE OBJECT 语句创立的对象)匿名数据对象(由 CREATE DATA 语句创立的对象)boxed Component用于拜访动态内存对象的变量蕴含对外部内存构造的援用,其中保留了动态内存对象的数据。 因而,动态内存对象的变量统称为援用变量。 在 ABAP 中,将援用的程序实体称为“deep Component”,即必须通过评估援用来拜访其内容的组件。 相比之下,动态内存对象(动态变量,在 Memory Inspector 显示中)是那些其大小在设计时由数据类型申明设置的对象。 除非程序代码自身发生变化,否则程序中此类变量所占用的内存不会发生变化。 动态变量在 ABAP 用语中也称为 flat variable或 flat Component. ...

June 30, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-系统进行-client-拷贝时遇到的-63999-table-too-wide-错误消息

应用事物码 SCC9 进行 client 之间数据拷贝时,遇到如下谬误:63999 table too wide 这个谬误在 SAP NOTE 2099033里有介绍。问题的本源是: Limitation in the source code when table length is greater than 63999 Bytes意思是试图拷贝一个 length 超过 63999 字节的数据库表。 在事物码 SE11 里,菜单 Utilites->Runtime Objects->Display 查看一个数据库表的 length: 解决办法执行 report RSCCEXPT,将引起 copy 谬误的数据库表,剔除出 client copy 过程。 应用 customizing transport 手动将被剔除出 client copy 的数据库表的内容进行传输。SAP ABAP 中的表缓冲是 ABAP 表中的一个概念,用于进步性能(通常是 10 到 100 倍的数量级晋升)并缩小解决(拜访)表的工夫。 表的缓冲区是数据库层和应用程序层之间的接口。 应用层与缓冲区通信,缓冲区与数据库层通信,反之亦然。 数据库接口确定数据是否在缓冲区中。 如果没有,它会从数据库中获取数据并同步缓冲区。 ABAP 反对下列几种缓冲类型: 当应用齐全缓冲(full bufferred)时,要么缓冲整个表,要么不缓冲任何记录。 当拜访单个记录时,该表的整个数据/记录都会被缓冲。 缓冲是指所有记录都在缓冲表中。齐全缓冲适应于频繁读取然而极少写入的数据库表。 ...

June 30, 2022 · 1 min · jiezi

关于sap:SAP-UI5-应用开发教程之一百零一-SAP-UI5-应用的-Locale-决定机制试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案SAP UI5 利用开发教程之九十五 - SAP UI5 下拉菜单(Select) 控件的应用形式SAP UI5 利用开发教程之九十六 - SAP UI5 列表控件分页显示数据时,如何自定义分页大小SAP UI5 利用开发教程之九十七 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的明细页面SAP UI5 利用开发教程之九十八 - 从 viewId 这个属性谈起,聊聊 SAP UI5 的 HTML 源代码生成机制SAP UI5 利用开发教程之九十九 - 深入探讨 SAP UI5 本地开发环境里的 package.json 和 ui5.yamlSAP UI5 利用开发教程之一百 - 如何批改 SAP UI5 框架的源代码实现,以及应用本地部署的 SAP UI5 SDK阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

June 21, 2022 · 5 min · jiezi

关于sap:在-SAP-BAS-里使用-SAP-UI5-应用消费-OData-的-Create-和-Delete-操作

在 SAP Business Application Studio 里创立一个 SAP UI5 利用,应该具备如下的我的项目构造: 关上 Home.view.xml, 增加一个 Create 按钮: <Button id="createButton" icon="sap-icon://add" tooltip="Create" visible="true" press="onOpenAddDialog"> 该按钮被点击后,咱们冀望弹出一个对话框,该对话框的实现源代码如下: 关上和敞开对话框的源代码: onOpenAddDialog: function () { this.getView().byId("OpenDialog").open();},onCancelDialog: function (oEvent) { oEvent.getSource().getParent().close();},对话框里调用的 onCreate 办法代码如下: onCreate: function () { var oSo = this.getView().byId("idSo").getValue(); if (oSo !== "") { const oList = this._oTable; const oBinding = oList.getBinding("items"); const oContext = oBinding.create({ "soNumber": this.byId("idSo").getValue(), "customerName": this.byId("idCustName").getValue(), "customerNumber": this.byId("idCustomer").getValue(), "PoNumber": this.byId("idPo").getValue(), "inquiryNumber": this.byId("idInqNumber").getValue() }); oContext.created() .then(()=>{ // that._focusItem(oList, oContext); this.getView().byId("OpenDialog").close(); }); }else { MessageToast.show("So cannot be blank"); } },this._oTable 的赋值,产生在 onInit 钩子函数里: ...

June 21, 2022 · 1 min · jiezi

关于sap:开源工具-SAP-UI5-Tools-介绍

SAP UI5 Tools 是一个凋谢和模块化的工具链,用于开发基于 UI5 框架的最先进的应用程序。 大多数 UI5 工具模块提供了 JavaScript api,供其余 Node.js我的项目间接应用。这容许开发人员通过编程的形式,依赖于UI5工具来实现特定于UI5的构建性能和我的项目解决,同时创立属于本人的工具来完满匹配我的项目的需要。 一个例子: const {normalizer} = require("@ui5/project");const {builder} = require("@ui5/builder");async function buildApp(projectPath, destinationPath) { const tree = await normalizer.generateProjectTree({ cwd: projectPath }); await builder.build({ tree, destPath: destinationPath, selfContained: true, excludedTasks: ["transformBootstrapHtml"], buildDependencies: true });}全局装置的UI5 CLI 将总是尝试调用本地装置的UI5 CLI版本。这样的益处是,开发人员能够在我的项目中应用不同版本的UI5工具。 启动一个新的UI5我的项目最简略的办法是应用模板生成器,如generator-easy- UI5。抉择为要创立的我的项目类型和要将其部署到的指标环境设计的模板。确保模板曾经应用了UI5工具。一个很好的标记是我的项目中存在 ui5.yaml 文件。通过查找 ui5.yaml 文件是否存在,开发人员能够很容易地查看一个我的项目(应用程序或库)是否曾经能够应用 UI5 Tools. 我的项目根目录中的 ui5.yaml 文件(有些例外) 是所有我的项目和它们的依赖(例如重用库) 在UI5 Tools 中起作用的必要条件。 在应用 SAP Business Application Studio 时,有若干个模板可供使用。 ui5 use openui5@latestui5 use sapui5@latest应用不同的 framework. ...

June 20, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-处理-Excel-的标准函数-TEXTCONVERTXLSTOSAP-介绍试读版

零根底 ABAP 学习教程系列文章的目录ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧ABAP function module 的应用ABAP subroutine 的定义和应用ABAP 中的变量和常量ABAP 编程语言中的零碎字段(System Fields)什么是 ABAP Field SymbolABAP 援用类型介绍最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)用 ABAP 读取本地文本文件内容用 ABAP 新建本地 Excel 文件并写入数据26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据ABAP 如何解析 JSON 数据如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法SAP ABAP 报表的用户输出性能应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据通过一个具体的例子,解说 SAP BDC 技术的应用步骤从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理本文介绍如何通过函数 TEXT_CONVERT_XLS_TO_SAP 将指定的 excel 文件进行解析,将解析出的文件内容存储到 ABAP 内表里。 ...

June 20, 2022 · 1 min · jiezi

关于sap:如何修改-SAP-UI5-框架的源代码实现以及使用本地部署的-SAP-UI5-SDK-试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案SAP UI5 利用开发教程之九十五 - SAP UI5 下拉菜单(Select) 控件的应用形式SAP UI5 利用开发教程之九十六 - SAP UI5 列表控件分页显示数据时,如何自定义分页大小SAP UI5 利用开发教程之九十七 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的明细页面SAP UI5 利用开发教程之九十八 - 从 viewId 这个属性谈起,聊聊 SAP UI5 的 HTML 源代码生成机制SAP UI5 利用开发教程之九十九 - 深入探讨 SAP UI5 本地开发环境里的 package.json 和 ui5.yamlSAP UI5 利用开发教程之一百 - 如何批改 SAP UI5 框架的源代码实现,以及应用本地部署的 SAP UI5 SDK阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

June 20, 2022 · 5 min · jiezi

关于sap:深入探讨-SAP-UI5-本地开发环境里的-packagejson-和-ui5yaml-试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案SAP UI5 利用开发教程之九十五 - SAP UI5 下拉菜单(Select) 控件的应用形式SAP UI5 利用开发教程之九十六 - SAP UI5 列表控件分页显示数据时,如何自定义分页大小SAP UI5 利用开发教程之九十七 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的明细页面SAP UI5 利用开发教程之九十八 - 从 viewId 这个属性谈起,聊聊 SAP UI5 的 HTML 源代码生成机制阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

June 20, 2022 · 5 min · jiezi

关于sap:SAP-UI5-应用-indexhtml-里定义的-datasapuitheme-值的加载原理

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案SAP UI5 利用开发教程之九十五 - SAP UI5 下拉菜单(Select) 控件的应用形式SAP UI5 利用开发教程之九十六 - SAP UI5 列表控件分页显示数据时,如何自定义分页大小SAP UI5 利用开发教程之九十七 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的明细页面SAP UI5 利用开发教程之九十八 - 从 viewId 这个属性谈起,聊聊 SAP UI5 的 HTML 源代码生成机制阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

June 20, 2022 · 5 min · jiezi

关于sap:SAP-ABAP-字符串变量容易疏忽和混淆的一些知识点试读版

零根底 ABAP 学习教程系列文章的目录ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧ABAP function module 的应用ABAP subroutine 的定义和应用ABAP 中的变量和常量ABAP 编程语言中的零碎字段(System Fields)什么是 ABAP Field SymbolABAP 援用类型介绍最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)用 ABAP 读取本地文本文件内容用 ABAP 新建本地 Excel 文件并写入数据26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据ABAP 如何解析 JSON 数据如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法SAP ABAP 报表的用户输出性能应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据通过一个具体的例子,解说 SAP BDC 技术的应用步骤从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理本步骤是本教程这篇文章 ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号 的后续。 ...

June 20, 2022 · 1 min · jiezi

关于sap:SAP-Marketing-Cloud-功能概述四

本系列之前的三篇文章,笔者顺次向大家分享了我的项目中应用 SAP Marketing Cloud Contacts,Profiles,Target Group,以及营销流动内容设计,产品举荐,线索和客户治理等模块的教训。 本文作为本系列最初一篇文章,介绍 Marketing Cloud 中的销售打算治理模块。 首先还是先理解销售打算中的一些基本概念: (1) Allocated Budget调配的估算:市场营销经理在Budget Plans利用中对市场营销流动进化调配和打算的估算。 (2) Planned Budget打算估算:市场营销经理在Budget Plans利用中打算市场营销流动的估算, 能够多于调配的估算。 (3) Proposed Spend倡议收入:市场营销经理和专家在Campaigns利用中按计划的媒体类型给出的倡议收入, 能够多于估算。 (4) Planned Spend打算收入:Campaign打算收入。 (5) Actual Spend理论收入:从Campaign产生,并取得市场营销估算赞助的金额, 产生在过来。 (6) Committed Spend承诺收入:基于Campaign申请和订单申请并取得市场营销估算赞助的金额, 产生在将来。 (7) Latest Estimate最新估算:依据打算收入、理论和承诺收入计算出最新收入估算。 Marketing Calendar咱们可通过该利用获取指定工夫范畴内的营销流动概览。 在日历视图中,用不同色彩示意不同营销流动的状态。通过单击营销流动,能够查看无关该营销流动的详细信息,并在Campaign利用中将其关上。能够应用滑块来抉择不同的日期并应用过滤器依照不同的条件(例如类别、优先级和媒体类型)来过滤营销流动。 在日历视图中能够通过点击加号创立营销流动,能够基于规范或自定义的营销流动模板进行创立。保留营销流动时,如果其合乎过滤条件,则该营销流动就会显示在日历和列表视图中。 日历上方区域显示营销流动三大KPI:Success, Spend, Sentiment. Success热门类别:最罕用的五个营销流动的类别。帖子情绪:针对情绪评分从“强烈反对”到“强烈拥护”和“无评估”, 显示社交媒体音讯数。热门关注对象(音讯)和情绪评分(音讯):社交媒体音讯数最多的关注对象及其情绪评分。 Spend总金额:所选营销流动的总打算收入。热门收入类型:最罕用的收入类型以及每个收入类型的总支出。 Sentiment显示所选的工夫内所有社交媒体音讯的情绪分值。使咱们能依据情绪评分变动扭转营销流动策略。 Marketing Plan首先须要明确Plan, Program, Campaign, Activity四者的关系,前者顺次是后者的容器。 (1) Creating Marketing Plans 创立市场营销打算: Marketing Plan利用概览页展现了以后的打算列表,点击能够查看打算详情。点击Create能够创立新的Plan. (2) Creating Programs and Assigning a Budget Plan调配估算打算: 为某个具体的Marketing Plan创立Program。 ...

June 19, 2022 · 2 min · jiezi

关于sap:SAP-Marketing-Cloud-功能概述三

SAP Marketing Cloud提供了一套全面的市场营销利用,可用来帮忙营销人员专一于客户、造就联系人并创立线索和流动。 Marketing Lead Management线索治理(Lead Management)集成了市场营销与间接/间接销售渠道之间的业务流程,从而可能通过改良的需要创立、执行和机会治理来推动价值更高的机会。 它蕴含公司用来将潜在买家和有趣味的集体转换成理论买家所采取的所有措施。线索治理的第一步是确定有动向进行购买的潜在客户联系人。通过剖析联系人对营销流动的反馈来评估其购买动向,并将其相干信息存储在交互记录中。例如在Campaign中发送邮件的模块退出Click Through来辨认有购买动向的联系人,并创立线索: 所有通过邮件点击链接查看网页的Interaction(交互)都会被记录下来。 应用Score Builder利用建设新的Score Rule,来掂量线索的就绪状况,进而细分联系人: 记得给方才咱们创立的Score Rule保护在Segmentation中的地位,不便后续查找应用。 在Segmentation Building Blocks界面上创立一个新的Segmentation Blocks: 利用前文中咱们设定的Score Rule(名称为Lead Quality Score),咱们能够依据线索的就绪状况来对联系人进行分类。依据评分启用联系人过滤, 将线索准备就绪的联系人收集到通过细分创立的动静指标组中。 Lead stage(线索阶段)在Lead Stage利用中,咱们能够为Lead定义多个阶段并为其调配细分构件块,并将联系人调配到不同的线索阶段中。 应用Lead Nurture Stream利用实现精准营销。 最多容许定义7个阶段,每个阶段有15个Campaign. Campaign节点和阶段节点之间根据严格的程序关系来执行以便逐渐引领客户。 设定开始工夫以及循环执行周期。 联系人培养过程,开始于辨认联系人阶段,当然也能贯通于其余各阶段,这是通过为每个阶段细分联系人并创立动静指标组来实现的。 在将指标组调配到相应的阶段后,市场营销人员就能够定义在每个阶段与这些联系人共享的信息。市场营销人员通过创立与每个阶段相干的一系列简略营销流动来共享信息。每个营销流动的内容都是特定的,与各个阶段相干,并且因阶段而异。 Transfer Leads应用Transfer Leads利用创立线索传输,定期为销售提供合乎资格的市场营销联系人。作为前提条件,联系人已实现了使其有资格成为潜在买家的培养过程。因而,这些联系人已达到线索准备就绪状态。该利用提供以下内容: (1) 包含范畴(即关注对象)的所有线索传输流动的疾速概览(2) 移交销售零碎中触发线索创立的联系人(3) 打算主动循环传输的性能(4) 监控进行中的线索传输以使趋势可见(5) 流动线索传输的执行历史记录 线索传输蕴含与先前操作相干的状态。线索传输的状态确定容许哪些后续操作。 新建一个Transfer Leads, 留神Target Group和Marketing Area要对应统一。 为Lead的执行设定周期。 Interests: 能够抉择感兴趣的我的项目。Tags: 用于对类似的线索传输进行分组。能够抉择已有的标签,也能够创立新标签。在Transfer Leads概览页面上,咱们能够按标签进行过滤。零碎会将Interests和Tags传输到销售零碎作为裁减线索信息。 Transfer Leads在执行过一段时间后能够查看执行状况和日志。柱状图显示的内容是每次执行传输的人数。 ...

June 19, 2022 · 1 min · jiezi

关于sap:SAP-Marketing-Cloud-功能概述二

本文作为这个系列的第二篇,将会给大家介绍SAP Marketing Cloud里的营销流动内容设计和产品举荐这两大模块的性能。 营销负责人员通过第二篇文章介绍的步骤确定了Target Group之后,下一步就是设计流动的内容。这部分工作在Content Studio中实现。 咱们能够创立不同类型的营销流动内容。在内容中能够进行针对客户的个性化设定,如增加用户的购物车内产品、用户姓名等。同时还能够将本人创立的内容设定为模板和可重用块,不便之后重用。 个性化内容的设计,通过在须要插入的中央点击Insert Attribute,抉择须要的个性化属性来实现。这一性能使得营销流动可能更加智能和精准地施行。例如依据用户画像提供不同的折扣、举荐不同产地商品等等。 在Condition Assignment界面能够配置内容元素依据某些条件的动态显示规定。例如在内容元素显示布局里,如果可能取得用户的First name,那么就显示该名称,否则显示缺省值。 为不同年龄的人提供不同折扣的操作形式相似。点击加号设定不同年龄段的显示状况。 当Target Group和流动内容都筹备好之后,咱们就能够开始执行营销流动(下文都用Campaign这个词来表述)了。 能够抉择的Campaign模板有很多,咱们能够依据需要抉择,也能够本人创立营销流动的模板,不便重用。 以下以Email Campaign为例进行阐明。 如下图所示,咱们为营销流动选取Target Group。 为营销流动增加内容,如退出A/B测试,向Target Group发送两种不同内容的邮件,而后收集这些群体的业务数据,以此查看营销成果,帮忙咱们调整营销策略。 点击这个垃圾桶状的图标能够删去不须要的内容。 对A/B测试设置进行批改。在进行大规模营销流动之前进行A/B测试,有助于找出更好的实施方案。 为邮件模块抉择之前筹备好的Email进行填充。 能够为邮件增加触发器,例如抉择“关上邮件”作为触发条件: 如果邮件5天内(能够更改天数)未被关上,发送音讯给用户进行揭示。要实现这个行为,只须要增加事件后,抉择相应的内容进行填充即可。 设置完结后,咱们抉择Done,并且点击Start即可开始执行营销流动。点击Save as Template创立为营销流动模板。若设置的开始工夫还未达到,流动会在工夫达到时主动进行。 在Campaigns明细页面中查看营销流动的成果。 既然是营销流动,产品举荐当然少不了。 首先明确一些概念和术语: (1) 举荐场景 Recommendation Scenarios 每个举荐场景只能有一个模型类型。 在举荐场景中保护调配至场景的模型类型。除了向客户端应用程序提供举荐外,举荐场景还能够将交互数据公布到 SAP HANA数据库。 (2) 模型类型 Model Type 代表模型提供的举荐类型。任何工夫内每个模型类型只能有一个流动模型。流动模型向客户端应用程序提供举荐。 (3) 模型 Model 创立Model时会为其调配模型类型。模型的模型类型属性在创立后无奈更改。 (4) 算法 Algorithm 模型由一个或多个算法组成。算法应用历史数据来检索举荐。在Manage Recommendation的Scenario Overview界面,咱们能够搜寻、查看和保护举荐场景。 ...

June 19, 2022 · 1 min · jiezi

关于sap:SAP-Marketing-Cloud-功能概述一

本系列文章分享笔者所在的团队,在从事 SAP Marketing Cloud 系统集成我的项目中积攒的一些教训以及对这个 SaaS 软件的了解,心愿宽广同行不吝赐教。 SAP Marketing Cloud次要解决的问题,集体了解就是实现与客户一对一的精准智能营销。 (1) 精准:精确辨认指标用户。(2) 营销:提供了多种预设定的营销模式,同时反对用户自定义。(4) Contacts联系人 作为一个营销人员,该怎么应用SAP Marketing Cloud来推动支出和业务增长呢? 本系列的文章,会从下列六个办法来分享 Marketing Cloud 的业务性能。 (1) Contacts & Profiles(2) Segmentation & Target Group(3) Content & Campaign(4) Recommendation(5) Lead(6) Plan Contacts & Profiles首先明确一些基本概念:Contacts:联系人。Contact Profiles:联系人参数文件,包含集体数据、交互和许可。Corporate Accounts:公司客户,信息蕴含客户联系人、客户团队成员、交互等详细信息。Followers of Digital Accounts:社交账号关注者。SAP Marketing Cloud 反对咱们查看社交账号关注者,生成对于关注者获取和关注者交互的剖析报表。Sentiment Engagement:情绪互动。在与客户进行交互的过程中,咱们在一直地进行数据的收集,逐步欠缺用户画像。SAP Marketing Cloud对收集的数据进行了统计和剖析,营销人员能够利用这些信息,来领导营销流动的进行。 (1) Contacts and Profiles Overview宏观数据统计和图形化展现 (2) Profiles Dashboard 低头:不同级别的交互的各项指标的变动,如公司数、沉闷水平、评分、交互降级数目等。下图两头显示区域依据左侧工夫和过滤器设定进行显示:客户趣味图形化显示(鼠标放上去能够查看交互数和打分)、按渠道对交互数目进行统计、Contact列表。 选中某局部能够间接在Target Audience处创立Segmentation model或者Target group: 按渠道对交互数目进行统计: Contact列表,抉择某Contact能够查看其详细信息。 (3) Profiles 联系人参数文件 ...

June 19, 2022 · 2 min · jiezi

关于sap:一步步创建包含自定义-Screen-的-ABAP-程序的详细步骤试读版

零根底 ABAP 学习教程系列文章的目录ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧ABAP function module 的应用ABAP subroutine 的定义和应用ABAP 中的变量和常量ABAP 编程语言中的零碎字段(System Fields)什么是 ABAP Field SymbolABAP 援用类型介绍最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)用 ABAP 读取本地文本文件内容用 ABAP 新建本地 Excel 文件并写入数据26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据ABAP 如何解析 JSON 数据如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法SAP ABAP 报表的用户输出性能应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据通过一个具体的例子,解说 SAP BDC 技术的应用步骤从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理本教程前一步骤,从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分,咱们介绍了一个典型的蕴含 Screen 的在 SAPGUI 环境下运行的 ABAP 程序的组成部分,次要是一些理论知识的介绍。 ...

June 19, 2022 · 1 min · jiezi

关于sap:如何查询-SAPGUI-屏幕上某个字段对应的数据库表存储的试读版

零根底 ABAP 学习教程系列文章的目录ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧ABAP function module 的应用ABAP subroutine 的定义和应用ABAP 中的变量和常量ABAP 编程语言中的零碎字段(System Fields)什么是 ABAP Field SymbolABAP 援用类型介绍最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)用 ABAP 读取本地文本文件内容用 ABAP 新建本地 Excel 文件并写入数据26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据ABAP 如何解析 JSON 数据如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法SAP ABAP 报表的用户输出性能应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据通过一个具体的例子,解说 SAP BDC 技术的应用步骤从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理本文咱们介绍一个十分实用的技巧,这也是 SAP ABAP 开发里十分常见的一个需要:已知 SAPGUI 里某屏幕上的一个字段,如何查到这个字段在 ABAP 后盾哪张数据库表的哪个字段进行的存储。 ...

June 19, 2022 · 1 min · jiezi

关于sap:SAP-Field-Service-Management-和微信集成的案例分享和实现介绍

SAP FSM(Field Service Management), 属于SAP C/4HANA五朵云里的Service Cloud. 本文介绍笔者在工作中经验过的一个我的项目,蕴含 SAP Field Service Management 同微信集成的一个场景的性能需要剖析和具体的技术实现。 咱们须要在微信里可能显示FSM的数据,比方FSM里的产品和客户主数据: 一种繁难的形式就是应用FSM提供的Query API.关上FSM官网的帮忙文档:https://docs.coresystems.net/... 进入Query API的相干局部: 通过浏览文档,得悉FSM Query API采纳一种和Facebook Query Language,SAP Hybris Flexible Search和ABAP Open SQL相似的思路,即仿SQL语法的查问形式,从FSM零碎里读取数据。 下图是Facebook Query Language的一个例子: 下图是SAP Hybris Commerce Flexible Search的例子: ABAP Open SQL的例子我就不贴了,大家太相熟了。那么FSM的Query API如何应用呢? 登录FSM,点击Query API: 在弹出来的控制台里,输出类SQL语句:SELECT bp FROM BusinessPartner bp默认返回了前40条数据: 那么如何应用代码来触发Query API查问呢?官网上给出了一个基于nodejs的SDK,能够轻易实现用代码调用Query API的需要。 点击超链接后,会跳转到github的一个仓库: 依照帮忙文档上的示例代码,将本人FSM零碎里创立的API client对应的credential保护到代码里,失去一个CoreAPIClient实例。 ClientIdentifier和clientSecret等Credential字段的值,能够通过Admin标签页,新建一个Client后取得: 应用CoreAPIClient实例的query办法向FSM零碎发动Query API申请,输出参数一为应用程序里拼接的类SQL查问语句,参数二为Data Transfer Object的名称,在帮忙文档里能查到。 ...

June 19, 2022 · 1 min · jiezi

关于sap:从解读-BDC-自动生成的代码谈起讲解-SAPGUI-的程序组成部分试读版

零根底 ABAP 学习教程系列文章的目录ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧ABAP function module 的应用ABAP subroutine 的定义和应用ABAP 中的变量和常量ABAP 编程语言中的零碎字段(System Fields)什么是 ABAP Field SymbolABAP 援用类型介绍最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)用 ABAP 读取本地文本文件内容用 ABAP 新建本地 Excel 文件并写入数据26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据ABAP 如何解析 JSON 数据如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法SAP ABAP 报表的用户输出性能应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据通过一个具体的例子,解说 SAP BDC 技术的应用步骤从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理本文咱们介绍一个十分实用的技巧,这也是 SAP ABAP 开发里十分常见的一个需要:已知 SAPGUI 里某屏幕上的一个字段,如何查到这个字段在 ABAP 后盾哪张数据库表的哪个字段进行的存储。 ...

June 19, 2022 · 1 min · jiezi

关于sap:SAP-Spartacus-的-TMS-和-Event-Service-实现的关联关系

大多数客户应用标签管理系统 (TMS) 向Storefront 增加额定的标签。增加这些标签以集成到其余零碎,例如搜寻或社交爬虫、剖析解决方案、销售零碎等。应用 TMS 将为应用程序生命周期带来敏捷性,因为无需通过开发周期即可利用更改。 Spartacus 的指标是反对各种 TMS 供应商解决方案。最风行的标签管理器仿佛是 GTM,但咱们不想将架构以及技术实现局限于 GTM。此外,CDS 也依赖于相似的概念。 TMS 解决方案能够通过所谓的数据层进行集成。只管不存在官网的数据层规范,但外围准则是雷同的:应用程序将数据推送到地方 JavaScript 对象。 谷歌标签管理器 (GTM) 反对窗口对象上的立体 dataLayer 数组,而 Adobe Launch 是由更简单的 JavaScript 对象驱动的在窗口对象上调用 digitalData。这两种解决方案仿佛都没有提供 API,因而咱们不得不间接操作这些全局 JSO。 将 Spartacus 与多个标签管理器集成的高级架构如下图所示。 该示例形容了与 GTM 的集成,但其余标签管理器能够以相似的形式集成。 event servicengrx action 是事件零碎的重要起源,典型的例子就是 Spartacus 购物车组件里对 EventService 的应用。感激 Spartacus 中的通用事件零碎,开发人员能够在其中轻松察看事件。 为了与现有的 ngrx action 解耦,咱们将 ngrx action 在底层映射到公共 EventActions。 EventActions 很可能会成为 Spartacus 中的规范,而不是低级别的 ngrx action. 这次要是因为咱们未来可能会思考 sunset掉 Spartacus 中的 ngrx 实现。 尽管 Store 中有大量可用的 (ngrx) 操作,但这些操作次要由来自后端的数据集成驱动。还有许多其余事件也能够思考在内,例如路由器事件、滚动事件、鼠标交互等。尽管咱们能够从简略的 mvp 开始映射现有的存储操作,但设计不应仅限于繁多事件源。能够应用多个 EventService(咱们能够应用多个 EventService 注入令牌)。 ...

June 19, 2022 · 1 min · jiezi

关于sap:通过一个具体的例子讲解-SAP-Cloud-Platform-IntegrationCPI-的使用方法

最近笔者因为我的项目须要,又得学习一个新工具:SAP Cloud Platform Integration,简称 CPI,以前又叫做HCI - HANA Cloud Platform Integration Service. 笔者想通过本文,把应用这个工具的第一手领会,分享给已经用过SAP CRM中间件,但尚未有机会接触到CPI的敌人们。 之所以本文题目里把SAP CRM中间件和SAP CPI关联在一起,是因为二者同狭义上说,表演的都是系统集成里中间件的角色。 SAP ERP和CRM通过qRFC进行业务数据同步,而中间件可能提供队列机制,错误处理,重试,传输监控等性能。 而SAP CPI顾名思义,则是云时代下SAP举荐的SAP产品同第三方云产品进行集成的云端中间件解决方案。 SAP CPI(Cloud Platform Integration)是一种通过云端集成不同零碎的解决方案。它是 SAP Cloud Platform Integration Suite 的一部分。 CPI 可能连贯零碎、服务、人员、数据、人工智能、物联网。 只管云利用在很长一段时间内被业界宽泛探讨,但在企业管理软件畛域,不少公司依然更违心应用本地解决方案,或者至多是混合解决方案(Hybrid Solutions)。 近些年来 SAP 在私有云和公有云解决方案上做出了微小的投资,公布 S/4 HANA 的云版本以及后续流动则充分证明了 SAP 向云端转型的信心。 而 SAP CPI 则是 SAP 本地解决方案,SAP 云端解决方案和第三方零碎之间互联的重要工具和伎俩之一,旨在实现对于数据的协定、构造、类型和格局的转换。其用于建模 IFlow 的技术是 Java、JavaScript 或 Groovy Script. 作为学习笔记,Jerry这里把我学习SAP CPI时做的一个Hello World级别的练习步骤记录下来。 这个练习的场景是,假如有一个部署在第三方云平台上的OData服务,提供了产品主数据查问的性能。咱们须要在SAP零碎里生产这个OData服务。SAP开发人员不心愿间接去生产第三方云平台上的OData服务,而是冀望SAP CPI能裸露一个更加容易拜访的API endpoint进去,例如通过postman传一个Product ID给CPI,CPI拿到这个ID后,由CPI向第三方云平台发动OData申请,拿到申请响应后,CPI把后果返回给位于SAP产品的生产端。 用于这个场景的OData服务地址:https://espmrefapps.hana.onde...$metadata SAP CPI是一个SaaS利用,在SAP云平台控制台的Subscriptions面板里订阅和拜访。点击Go to Applications进入主操作页面。 ...

June 6, 2022 · 1 min · jiezi

关于sap:SAP-云平台多目标应用-MultiTarget-Application-的开发技术介绍

随着SAP云平台的呈现,SAP云平台开发生态圈辞别了过来单凭ABAP打天下的场面。 随同着SAP云转型的步调,越来越多的编程语言,技术栈,工具纷纷退出SAP开发生态圈。古代企业级利用,越来越不青眼过来传统的单体式架构,取而代之的是采纳微服务的思维,将简单的单体利用依据业务拆分成一个个细粒度的扩散的松耦合模块,这些模块能够由不同的编程语言和技术栈实现。 凡事无利就有弊,这种拆分除了让咱们享受微服务架构带来的收益外,也引入了新的挑战,比方这些模块群的生命周期治理,对立部署和配置等等。SAP MTA的引入就是为了解决这些挑战,Multi Target Application里包裹的所有模块,不论它们采纳何种异构的技术栈实现,都共享同一套生命周期治理。通过MTA治理的利用模块,所有运行时的依赖问题都能失去妥善处理。 MTA 利用由示意数据、业务逻辑和 UI 层的多个软件模块组成。 这些模块应用不同的技术创立并部署到不同的指标平台,但共享雷同的开发生命周期。MTA 应用程序概念旨在协调所有这些模块的部署,以便正确解决所有运行时依赖项,并按预期运行应用程序。 所有这所有是通过向部署工具提供一组描述符(descriptor)来实现的,这些描述符定义了应用程序中所有模块的相互依赖关系和部署场景。 MTA 描述符(位于我的项目根文件夹中的 mta.yaml 文件)在应用 SAP Web IDE 或者 SAP Business Application Studio 创立 MTA 应用程序我的项目时主动生成,并在我的项目属性更改或增加或删除模块时动静更新。 目前并非所有必要的信息都可能主动生成,在某些状况下,开发人员依然须要手动保护描述符以欠缺资源、属性和依赖项的申明和定义。 MTA 描述符以 YAML 格局编写,具备严格的语法要求。 开发人员能够在基于文本的代码编辑器中编辑描述符,但更佳的抉择是应用可视 MTA 编辑器,因为它提供输出验证。 要将 MTA 编辑器设置为 MTA 描述符的默认值,请转到 Preferences Default Editors 并设置 MTA 应用程序描述符的编辑器。 留神,MTA 可视化编辑器删除正文并格式化文件。 如果要增加正文,请应用代码编辑器。 要关上代码编辑器,请将代码编辑器设置为默认编辑器,或者右键单击文件并抉择应用代码编辑器关上。 如果应用代码编辑器编辑文件,应用空格而不是制表符进行缩进很重要。 本文只是对SAP云平台上的MTA模型进行Hello world级别的介绍,更多SAP MTA高级用法,请参考 SAP官网文档。 在SAP WebIDE里依据向导能够很容易地创立一个MTA我的项目: 创立模板抉择Multi Target Application: 轻易命个名: 从MTA右键菜单里,咱们能看到反对许多不同类型的模块创立,大家领会到了Multi的含意了吗?这里简略起见,我先创立一个nodejs模块: ...

June 6, 2022 · 1 min · jiezi

关于sap:SAP-云平台上的-ABAP-编程环境里如何消费第三方服务

在ABAP On-Premises环境下,应用ABAP编程生产第三方服务,置信很多ABAP参谋都曾经十分相熟了,无非就是应用CL_HTTP_CLIENT或者CL_REST_HTTP_CLIENT来发送和接管HTTP申请。 下图这短短的38行代码,展现了如何应用ABAP工具类CL_HTTP_CLIENT去拜访百度首页并拿到回复。 从百度返回的响应,通过办法GET_CDATA取得,存储于变量rv_data内: 当然如果咱们是做正式的产品开发的话,个别不会把第三方服务的URL硬编码在应用程序里,而是通过事务码SM59创立的Destination治理第三方服务的endpoint,而后把Destination名称存储于配置表里,这样使得第三方服务的URL同利用代码解除耦合关系。 下图是一个例子,我在SM59事务码里保护了一个指向某C4C零碎的Destination,取名为C4C: 而后在ABAP代码里应用cl_http_client=>create_by_destination创立HTTP工具类的实例。后续操作同应用cl_http_client=>create_by_url结构实例的代码统一,这里不再反复。 如果咱们间接把On-Premises环境下的这些ABAP代码搬到SAP Cloud Platform的ABAP环境里,会遇到很多语法错误: 起因在于,云端的ABAP编程模型反对的只是ABAP编程语言的一个子集,咱们只能应用SAP凋谢的白名单里的资源,这个白名单即上图右边Released Objects外面蕴含的内容。 因为过来在On-Premises环境里应用过的CL_HTTP_CLIENT, CL_REST_HTTP_CLIENT, IF_HTTP_CLIENT等ABAP类和接口均不在白名单内,故无奈在ABAP云端环境应用。 既然在云端了,咱们就得应用云端的编程范式。 在SAP Cloud Platform ABAP编程环境拜访第三方服务的代码如下: 能够看到其思路就是通过CL_HTTP_DESTINATION_PROVIDER这个云端的Destination工厂类,拿到Destination实例,而后基于该实例创立云端上的ABAP HTTP客户端实例。工厂类生产Destination实例须要两个参数: i_namei_service_instance_name依据这个办法的接口正文,这两个参数别离为Destination的名称和Service instance的名称。上面介绍如何取得这两个参数的值。 在SAP Cloud Platform Service Marketplace里创立一个新的Destination实例: 咱们把新建的实例取名为DestService,而后再基于该实例创立一个Destination配置,这个配置就好比咱们在ABAP On-Premises的SM59事务码里创立的Destination: Destination我取名为ZJERRY_API, 这就是后面提到的工厂办法里第一个参数i_name值的由来。 点击Check Connection,确保该Destination指向的URL能够拜访: 而后点击Open Dashboard,关上这个SAP Cloud Platform ABAP实例的Fiori界面: 点击Launchpad tile,创立一个新的Communication Arrangements: 须要为新建的Communication Arrangement抉择一个Communication Scenario,这里我抉择SAP规范公布的专门用于CloudFoundry环境同第三方服务进行集成的场景,ID为SAP_COM_0276: 创立Communication Arrangement时还要保护Service Key信息: 这个Service Key的信息能够从Destination实例列表的Service Key保护界面取得: 在创立好的Communication Arrangement里,保护Service Instance Name的值为jerry-service-instance, 这也就是ABAP代码里传给工厂办法的第二个参数。 ...

June 6, 2022 · 1 min · jiezi

关于sap:SAP-Restful-ABAP-Programming-编程模型的-Action-实现和云端调试介绍

笔者之前的文章如何应用 Restful ABAP Programming 编程模型开发一个反对增删改查的 Fiori 利用,曾经对 SAP Restful ABAP Programming 编程模型(以下简称 RAP)进行了一个最根本的介绍。 咱们简略回顾一下之前文章的内容:在SAP云平台ABAP编程环境里创立了一个Z表,而后基于这张自定义数据库表创立了CDS view,基于该view创立Service Definition,把view裸露成服务,而后通过Behavior Definition实现对Z表的增删改查。 双击Service Binding里的TravelProcessor或者右键菜单里抉择Open Fiori Elements App Preview, 就能够拜访Fiori利用。 稍稍有点教训的 SAP 参谋敌人们都明确,一个模型只有增删改查的性能是不能满足客户理论需要的。在SAP Cloud for Customer里,开发参谋能够在Cloud Application Studio里创立beforeSave和afterModify这些脚本文件并实现业务逻辑,笔者也已经介绍过,它们相当于S/4HANA BOPF框架里创立的determination. 除了上述在运行时特定的工夫点能力触发(beforeSave,afterModify)的逻辑外,Action机制则提供了自由度更高的业务逻辑编写机制。体现在UI上,Action逻辑个别通过UI按钮触发。 Validation比拟容易了解——自定义的数据校验逻辑。 本文依照程序介绍 RAP 的 Action和Validation. 为了介绍在Restful ABAP Programming模型下如何开发Action,咱们在前一篇文章创立的SFLIGHT表削减一个示意航班预订状态的字段,并开发一个Action,当其被调用时,批改这个状态。 (1)在数据库表里削减一个OVERALL_STATUS字段: 当然在对应的CDS view上也要通过 @UI相干的注解把这个字段配置到UI上。通过注解lineItem和identification别离把view的这个字段显示在搜寻后果的table控件和航班信息明细页面的字段上。通过label指定UI上显示的标签,通过注解的dataAction把这个状态字段绑定到一个名为acceptTravel的Action上。 从新激活CDS view后,咱们就能在工具栏上看到CDS view里通过label保护的标签文本为Accept Travel了: 因为不足实现,此时点击无成果。 (2) 在Behavior Definition的申明局部,增加如下三行代码: action ( features: instance ) acceptTravel result [1] $self;validation validateCustomer on save { field customer_id; }validation validateDates on save { field begin_date, end_date;下面的代码除了定义一个Action外,还申明了两个Validation,在特定字段发生变化并保留时触发校验逻辑,字段名称保护在大括号内。剩下的就是ABAP编程实现了。在Behavior Definition的ABAP实现类里,申明上面这些ABAP类办法,来实现Behavior Definition里的定义。 ...

June 6, 2022 · 1 min · jiezi

关于sap:SAP-UI5-列表控件分页显示数据时如何自定义分页大小

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案SAP UI5 利用开发教程之九十五 - SAP UI5 下拉菜单(Select) 控件的应用形式SAP UI5 利用开发教程之九十六 - SAP UI5 列表控件分页显示数据时,如何自定义分页大小阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

June 6, 2022 · 5 min · jiezi

关于sap:基于-JSONModel-数据模型的-SAP-UI5-列表控件分页显示数据的完整解决方案试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面SAP UI5 利用开发教程之九十二 - 基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination)前提SAP UI5 利用开发教程之九十三 - 基于 JSONModel 数据模型的列表控件显示数据的深刻探讨SAP UI5 利用开发教程之九十四 - 基于 JSONModel 数据模型的 SAP UI5 列表控件分页显示数据的残缺解决方案阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

June 6, 2022 · 5 min · jiezi

关于sap:如何使用客户端-JSON-模型构建一个-MasterDetailDetail-布局中的列表页面试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数SAP UI5 利用开发教程之八十八 - SAP UI5 Mock 服务器如何实现自定义 Function ImportSAP UI5 利用开发教程之八十九 - 如何给 SAP UI5 列表控件削减多个图形界面的过滤器SAP UI5 利用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之九十一 - 如何应用客户端 JSON 模型构建一个 Master-Detail-Detail 布局中的列表页面阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

June 5, 2022 · 4 min · jiezi

关于sap:SAP-UI5-DynamicPage-控件介绍

该控件从 SAP UI5 1.42 版开始可用。DynamicPage 是一个布局控件,由题目、具备动静行为的题目、内容区域和可选的浮动页脚组成。 该控件由几个组件组成: DynamicPageTitle - 由左侧的题目、两头的内容和右侧的操作组成。 显示的内容会依据 DynamicPageHeader 的以后模式而变动。DynamicPageHeader - 一个通用容器,能够蕴含单个布局控件并且不关怀内容对齐和响应性。 标头在两种模式下工作 - 开展模式(expanded)和收起模式(snapped),并且能够借助不同的属性调整其行为。内容区域 - 一个通用容器,能够有单个 UI5 布局控件,不必关怀内容对齐和响应性。页脚 - 位于底部,有一个小的偏移量,用于附加操作,页脚浮动在内容上方。 它能够是任何 sap.m.IBar 控件。如果需要是显示一个始终可见的题目和一个具备可配置扩大/对齐性能的题目,请应用 DynamicPage。相同的,不须要扩大/对齐性能,最好应用 sap.m.Page 作为较轻的控件。如果显示的 sap.m.FlexBox 具备非自适应内容(不会拉伸以填充可用空间),倡议将 FlexBox 的 fitContainer 属性设置为 false。如果您正在显示 sap.ui.table.Table,请记住它是非自适应的,并且可能会导致 DynamicPage 在较小的屏幕尺寸(例如挪动设施)上呈现不可预测的行为。应该应用 sap.m 命名空间下的 Table 控件。在以下状况下不反对将 DynamicPageTitle 收起(snap): 当 DynamicPage 有滚动条时,控件通常会滚动到 snap point 的地位 。然而,当有滚动条但没有足够的内容达到 snap point 时,无奈应用滚动进行收起操作。在DynamicPage的内容中应用 sap.ui.layout.form.Form、sap.m.Panel、sap.m.Table和sap.m.List控件时,如果要实现垂直方向的文字内容对齐,须要调整它们的左文字偏移量 sap.f.DynamicPageHeader 的内容和 DynamicPage 的内容之间的对齐。响应行为:DynamicPage 的响应行为取决于所显示内容的行为。要调整 DynamicPage 内容填充,能够应用 sapUiContentPadding、sapUiNoContentPadding 和 sapUiResponsiveContentPadding CSS 类。 ...

June 5, 2022 · 1 min · jiezi

关于sap:SAP-Marketing-Cloud-Contact-模型的导入配置和数据合并原理

SAP 很多零碎的主数据都反对从内部零碎导入,SAP Marketing Cloud也是如此,contact 主数据能够来自 Hybris Commerce,CRM,ERP或者Twitter,Facebook等社交媒体。来自不同渠道的contact可能对应的是真实世界里同一个人,那么就存在一个过程,该过程的逻辑是将不同渠道的contact数据进行整合,拼凑出一个蕴含残缺信息的contact主数据存储到Marketing Cloud零碎里,这个拼凑的过程称之为合并(merge),拼凑后造成的残缺Contact构造称为Golden record。 上面这张示意图里的蓝色圆环称为 Main facet,代表每个contact数据在某个源零碎上的ID,比方在ERP零碎上的ID为123,在Twitter上的ID为456等等。而黄色圆环是contact在各自源零碎里的属性,比方在Twitter网站上ID为456的一个contact,其name属性为jerrywang@sap。黄色圆环称之为additional facet. 通过在SAP Marketing Cloud里进行一系列配置,通知零碎,当检测到来自不同数据源的contact数据,存在至多一个雷同属性的状况下,应该执行何种contact操作,也就是合并或者新建。 比方下图在ERP,Facebook和Web Shop上有三条contact数据,其Email地址的值都雷同,那么进行数据导入时,基于预约义好的配置,Marketing Cloud认为这三条数据指向的是同一个人,所以最初merge进去生成惟一一条 contact记录。 Marketing Cloud具体merge的过程,就是依据SAP Marketing Cloud零碎里的customizing配置,将三条Email地址都雷同的记录作为以后merge的输出,而后逐个将本记录内的属性“投影”到最终的Golden Record里。如果把Golden Record设想成最终残缺的拼图,那么这个merge过程就有些相似于拼图操作——将分布在各个数据源中的零散信息合并成一个整体,存储在Marketing Cloud零碎内以便进行后续解决。 Marketing Cloud里针对contact导入零碎时的merge操作的相干customizing设置,在整个contact导入过程中起着至关重要的作用。 和SAP Cloud for Customer等很多云产品一样,SAP Marketing Cloud的customizing也是在浏览器里实现。 点击Fiori Launchpad里的Manage Your Solution这个tile, 进入Configure Your Solution, 依据关键字contact进行搜寻,在搜寻后果列表里找到Contacts and Profiles相干的配置: 其中第六步, OriginContactID-Configure这一步,就是合并时针对来自不同平台的contact数据,执行合并或新建操作的配置。 点击之后,能看到一个contact属性列表,从这些属性列表不难推断出SAP Marketing Cloud反对导入contact的数据源有S/4HANA,ERP,CRM,Hybris Commerce,SAP Cloud for Customer,Gigya,Qualtrics和社交媒体如Twitter,Facebook等等。 上图有两列,别离对应为每个属性指定One Per Contact和Shareable为true还是false的界面。前者顾名思义,如果设置为true,意味着一个contact在同一个数据源零碎里只能领有一个惟一值,比方一个人的护照号码,或者SAP零碎里的Customer ID;反之像Email,座机号,传真号这种属性,一个contact在同一个数据源零碎里如果容许存在多个值,则One Per Contact设置为false。而Shareable属性置为true,适宜那些在同一个数据源零碎里容许多个不同contact具备雷同值的属性,比方一家人的contacts的座机号容许雷同。 对每一个Contact属性,One Per Contact和Shareable的true/false状态排列组合共有四种,其中One Per Contact为true的两种状况,即便零碎在检测到匹配的属性状况下,也可能会导致contact数据的创立,而不是merge,也就是下图中第二行和第四行标注了感叹号的状况。 ...

May 15, 2022 · 1 min · jiezi

关于sap:浅谈-Fiori-Fundamentals-和-SAP-UI5-Web-Components-的关系

最近工作中,笔者受邀请给一个团队做了 SAP 开发技术的演进历史。我的讲座依照下列几个主题进行的介绍: 其中 SAP 的技术回顾和演进,我的思路就是从前后盾两方面别离介绍。我画了一张非常简单的图: 依据笔者从社区上曾经公布的信息来看,Fiori 的两个倒退方向,我集体概括为: (1) 兼容并蓄,即通过 Fiori Fundamentals,让应用非 UI5 开发框架的前端开发人员,用其青睐的技术,也能开发出合乎 Fiori UX 的利用。 (2) 轻装上阵,即通过 SAP UI5 Web Components,既能持续提供像之前 UI5 控件库那些开箱即用的泛滥 UI 控件,又防止了前端利用对UI5框架的依赖。 咱们来别离理解一下下面提到的这两个新概念。 Fiori Fundamentals看看 SAP 官网上的权威定义: 下面定义的一些关键点: (1) Fiori Fundamentals在前端利用里扮演着一个轻量级展示层的角色,可配合Angular, React和Vue等前端框架一起应用。 (2) Fiori Fundamentals不是一项新的UI技术,更不会取代UI5,而是一个CSS和HTML标签的汇合,使得开发人员能应用其偏爱的UI框架去开发具备 Fiori UX 格调的利用。 Fiori Fundamentals 是一系列CSS和 HTML 标签页的汇合,咱们来看一个具体的例子。 这是 Fiori Fundamentals 部署在 CDN 上的 CSS: 这是SAP Fiori Fundamentals 帮忙文档里提到的绘制表格的标签: 在 Vue 利用里 生产这些标签的形式: ...

May 15, 2022 · 2 min · jiezi

关于sap:SAP-UI5-应用开发教程之八十七-如何让-SAP-UI5-Mock-服务器支持自定义-url-参数试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器SAP UI5 利用开发教程之八十七 - 如何让 SAP UI5 Mock 服务器反对自定义 url 参数阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

May 13, 2022 · 4 min · jiezi

关于sap:SAP-UI5-应用开发教程之八十六-动手开发一个最简单的本地-Mock-数据服务器试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能SAP UI5 利用开发教程之八十六 - 入手开发一个最简略的本地 Mock 数据服务器阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

May 12, 2022 · 4 min · jiezi

关于sap:SAP-UI5-应用开发教程之八十五-如何用-OPA5-编写测试用例来测试用户输入文本的功能试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行SAP UI5 利用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输出文本的性能阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

May 12, 2022 · 4 min · jiezi

关于sap:SAP-UI5-应用开发教程之八十四-如何指定-SAP-UI5-应用程序基于某个特定的版本运行试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 工作中应用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包含 SAP UI5 在内的多款 SAP 自研框架有深刻的钻研。 教程目录SAP UI5 本地开发环境的搭建SAP UI5 利用开发教程之一:Hello WorldSAP UI5 利用开发教程之二:SAP UI5 的疏导过程 BootstrapSAP UI5 利用开发教程之三:开始接触第一个 SAP UI5 控件SAP UI5 利用开发教程之四:XML 视图初探SAP UI5 利用开发教程之五:视图控制器初探SAP UI5 利用开发教程之六 - 理解 SAP UI5 的模块(Module)概念SAP UI5 利用开发教程之七 - JSON 模型初探SAP UI5 利用开发教程之八 - 多语言的反对SAP UI5 利用开发教程之九 - 创立第一个 ComponentSAP UI5 利用开发教程之十 - 什么是 SAP UI5 利用的描述符 DescriptorSAP UI5 利用开发教程之十一 :SAP UI5 容器类控件 Page 和 PanelSAP UI5 利用开发教程之十二 - 应用 CSS 类对 UI 进行进一步丑化SAP UI5 利用开发教程之十三 - 如何增加自定义 CSS 类SAP UI5 利用开发教程之十四 - 嵌入视图的应用形式SAP UI5 利用开发教程之十五 - 对话框和 Fragments 的应用形式SAP UI5 利用开发教程之十六 - 图标 icon 的应用SAP UI5 利用开发教程之十七 - 聚合绑定在 UI5 复合控件中的应用SAP UI5 利用开发教程之十八 - SAP UI5 数据绑定语法里的特殊符号,以及相对绑定和绝对绑定概念详解SAP UI5 利用开发教程之十九 - SAP UI5 数据类型和简单的数据绑定SAP UI5 利用开发教程之二十 - SAP UI5 的表达式绑定用法解说SAP UI5 利用开发教程之二十一 - SAP UI5 的自定义格局器 Custom FormatterSAP UI5 利用开发教程之二十二 - 过滤器 filter 的开发和应用SAP UI5 利用开发教程之二十三 - 列表控件的排序 Sort 和分组 GroupSAP UI5 利用开发教程之二十四 - 如何应用 OData 数据模型SAP UI5 利用开发教程之二十五 - 应用代理服务器解决 SAP UI5 利用拜访远端 OData 服务的跨域问题SAP UI5 利用开发教程之二十六 - OData 服务配合 Mock 服务器的应用步骤详解SAP UI5 利用开发教程之二十七 - SAP UI5 利用的单元测试工具 QUnit 介绍SAP UI5 利用开发教程之二十八 - SAP UI5 利用的集成测试工具 OPA 介绍SAP UI5 利用开发教程之二十九 - SAP UI5 的路由和导航性能介绍SAP UI5 利用开发教程之三十 - SAP UI5 的路由过程中进行参数传递SAP UI5 利用开发教程之三十一 - SAP UI5 的路由历史和路由回退(Routing back and history)SAP UI5 利用开发教程之三十二 - 如何创立一个自定义 SAP UI5 控件SAP UI5 利用开发教程之三十三 - SAP UI5 利用的响应式布局个性(Responsiveness)SAP UI5 利用开发教程之三十四 - SAP UI5 利用基于设施类型的页面适配性能(Device Adaptation)SAP UI5 利用开发教程之三十五 - 如何把本地开发的 SAP UI5 利用部署到 ABAP 服务器上SAP UI5 利用开发教程之三十六 - 应用 Chrome 开发者工具 Elements 标签动静批改 CSS 类SAP UI5 利用开发教程之三十七 - 应用 Chrome 开发者工具 Console 面板进行元素审查SAP UI5 利用开发教程之三十八 - 应用 Chrome 开发者工具查看程序执行出错时的上下文信息SAP UI5 利用开发教程之三十九 - SAP UI5 利用呈现白屏的一些常见谬误和分析方法分享SAP UI5 利用开发教程之四十 - 如何制作蕴含了 component-preload.js 在内的 SAP UI5 公布版本SAP UI5 利用开发教程之四十一 - Chrome 扩大 UI5 Inspector 的离线装置和应用办法SAP UI5 利用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具应用办法介绍SAP UI5 利用开发教程之四十三 - SAP UI5 自带的 Support Assistant 工具应用办法介绍SAP UI5 利用开发教程之四十四 - Label 和 Input 控件文本没有程度对齐的起因剖析和解决方案SAP UI5 利用开发教程之四十五 - 如何在 SAP UI5 利用里应用 jQuery 和原生的 DOM APISAP UI5 利用开发教程之四十六 - 应用 Message Manager 实现开箱即用的验证(Validation)信息抛出SAP UI5 利用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输出字段的校验逻辑SAP UI5 利用开发教程之四十八 - 如何在 SAP UI5 利用里开发条形码扫描性能SAP UI5 利用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 利用SAP UI5 利用开发教程之五十 - 如何应用 Cordova 将 SAP UI5 利用生成一个能在 Android 手机上安装的混合利用SAP UI5 利用开发教程之五十一 - 如何应用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合利用SAP UI5 利用开发教程之五十二 - 如何应用 SAP UI5 的规范控件联合 Cordova 插件调用手机摄像头进行条形码扫描SAP UI5 利用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)SAP UI5 利用开发教程之五十四 - 如何将本地 SAP UI5 利用配置到本地 Fiori Launchpad 中SAP UI5 利用开发教程之五十五 - 如何将本地 SAP UI5 利用通过 Node.js Express 部署到公网上SAP UI5 利用开发教程之五十六 - SAP UI5 树控件(tree)的开发SAP UI5 利用开发教程之五十七 - 基于 OData 注解的 Smart Field 应用办法学习SAP UI5 利用开发教程之五十八 - 应用工厂办法在运行时动态创建不同类型的列表行我的项目控件SAP UI5 利用开发教程之五十九 - 如何在 SAP UI5 利用里显示世界地图SAP UI5 利用开发教程之六十 - SAP UI5 地图控件的一些高级用法SAP UI5 利用开发教程之六十一 - 在 SAP UI5 利用里绘制甘特图 Gantt ChartSAP UI5 利用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件应用办法介绍SAP UI5 利用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深刻介绍SAP UI5 利用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)性能SAP UI5 利用开发教程之六十五 - 基于 OData V4 的 SAP UI5 表格控件如何实现创立,编辑和保留性能SAP UI5 利用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除性能SAP UI5 利用开发教程之六十七 - 基于 OData V4 的 SAP UI5 List-Detail(列表-明细)布局的实现形式SAP UI5 利用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面SAP UI5 利用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到失常的利用页面SAP UI5 利用开发教程之七十 - 如何应用按钮控件触发页面路由跳转SAP UI5 利用开发教程之七十一 - SAP UI5 页面的嵌套路由SAP UI5 利用开发教程之七十二 - SAP UI5 页面路由的动画成果设置SAP UI5 利用开发教程之七十三 - 应用自定义 Query 实现 SAP UI5 页面路由的书签性能SAP UI5 利用开发教程之七十四 - SAP UI5 利用应用 OData V4 显示 Table 表格数据的一个陷阱SAP UI5 利用开发教程之七十五 - 如何采纳SAP UI5 主从表格的联动技术显示简单表格内容SAP UI5 利用开发教程之七十六 - 如何实现 SAP UI5 的 Lazy Loading(提早加载,懒加载)SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系SAP UI5 利用开发教程之七十八 - 如何通过 url 放弃 SAP UI5 搜寻的状态,让其反对书签性能SAP UI5 利用开发教程之七十九 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(一)SAP UI5 利用开发教程之八十 - 采纳测试驱动开发理念(Test Driven Development)进行 SAP UI5 利用的性能开发(二)SAP UI5 利用开发教程之八十一 - 采纳 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子SAP UI5 利用开发教程之八十二 - 采纳 OPA5 开发反对页面跳转的 SAP UI5 集成测试用例SAP UI5 利用开发教程之八十三 - SAP UI5 的自动化测试套件页面的开发步骤介绍SAP UI5 利用开发教程之八十四 - 如何指定 SAP UI5 应用程序基于某个特定的版本运行阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和“汪子熙”微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

May 12, 2022 · 4 min · jiezi

关于sap:SAP-Commerce-Cloud-如何为-Storefront-配置新的应用

关上 saample 仓库里 manifest.json 文件,地址如下: https://github.com/SAP-sample... 在 Application 数组里增加新的元素: 将清单文件中申明的新应用程序的文件增加到代码存储库。 如果应用源代码形式开发 Spartacus,则将 package.json 文件增加到 <application.path>/package.json。例如,<repository-root>/js-storefront/some-subdirectory/app2/package.json 如果您应用的是预构建的应用程序,则将已编译的应用程序文件(包含 index.html)增加到 <application.path>/dist/<application.name>。例如,<repository-root>/js-storefront/some-subdirectory/app2/dist/app2/index.html。 每个应用程序的 index.html 文件必须蕴含以下占位符: <meta name="occ-backend-base-url" content="OCC_BACKEND_BASE_URL_VALUE" />在应用程序启动时,此占位符将替换为真正的 API aspect 里定义的内部 URL。 为了使上述配置失效,须要创立一个 build. 构建过程会主动构建 Commerce Cloud 代码存储库中提供的所有 JavaScript 应用程序。 对于 manifest.json 中定义的每个应用程序,构建过程会查看 <application.path>/dist 目录是否存在。 如果它不存在,则构建过程在 <application.path> 目录中运行以下命令: yarn install - 下载 package.json 中申明的依赖项,yarn build - 运行 package.json 中申明的构建命令。yarn build 对应下图的命令: "build": "env-cmd --no-override -e dev,b2c,$SPA_ENV ng build storefrontapp --configuration production"如果 <application.path>/dist 的确存在,则构建过程假设此目录蕴含已构建的 JavaScript 店面并跳过构建。 ...

May 12, 2022 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-Github-仓库管理规范

SAP Commerce Cloud 应用单个 Git 存储库作为我的项目 Customization 的起源,采纳繁多构建过程来构建整个利用,并且将整个应用程序的构建后果,采纳繁多部署过程部署到指标环境。 Commerce Cloud 构建过程应用递归选项克隆我的项目存储库。它容许您将其余存储库(称为Sub modules)插入主存储库。 当多个团队为同一个我的项目存储库做出奉献时,这种办法很有用。 每个存储库能够应用不同的分支策略或具备不同的权限规定。 从 Commerce Cloud 的角度来看,这种形式依然像单个存储库一样工作: Commerce Cloud 构建过程会克隆主存储库的给定分支的最近提交。主存储库的某一个门路,能够指向特定门路和独自存储库(git 子模块)的特定提交。所有独自的存储库都应用雷同的凭据进行拜访,这些凭据在 Cloud Portal 中为主存储库配置。 看个具体的例子。 有一个我的项目存储库,它包含下列资源: core Customization 外围定制,其中存储在子模块 1 中的扩大 1 和 2,扩大 3 和 4 存储在子模块 2 中。JavaScript 店面存储在子模块 3 中。在某个工夫点,开发人员更改了子模块 1 中的扩大 1。 为了反映主存储库中的更改,还必须对主存储库进行提交,更改对子模块 1 的援用,以指向其最近的更改。最终用户触发 Commerce Cloud 中的新构建。构建过程进行的变更剖析和检测: 必须构建新的平台镜像,因为扩大 1 产生了变动。能够重复使用现有的 Solr 镜像,因为操作系统、Solr 或 Commerce Cloud 版本没有变动,Solr 定制没有变动。能够重复使用现有的 Zookeeper 镜像。因为操作系统或 Zookeeper 版本没有变动。能够重复使用现有的 JavaScript 店面镜像。 JavaScript 店面自定义没有变动。最终用户触发新构建的部署: ...

May 12, 2022 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-构建过程中的文件夹可写入性问题分析

在构建时,SAP Commerce Cloud 规范的文件目录是可写的,因为构建过程自身须要批改这些文件目录。然而不举荐客户的 Customization 里也对这些 SAP Artifacts 做批改,因为这违反了开闭准则,可能会引起潜在的问题。SAP 举荐客户应用 Commerce Cloud 自带的 Extension 机制来进行定制化。 不要在不受构建过程治理的任意目录中写入任何内容,即便这些目录从技术上来说是处于可写状态的,也不要这样做。这是因为因为优化或平安改良,这些不受构建过程治理的目录,未来可能会从新变成不可写入状态,从而导致构建过程失败。 在构建过程中,默认认为 Github 仓库和 Docker Registry 都是处于可拜访状态。然而无奈保障构建过程具备不受限制的互联网拜访权限。 在构建过程中不要应用任何内部服务,因为出于优化或平安改良的目标,网络策略可能随时更改。 构建过程可能管制的惟一资源就是我的项目 Git 存储库。 Commerce Cloud 构建过程不为第三方 Artifacts 提供任何受信赖的存储库。 默认状况下,它应用公开可用的存储库。 以下是存储库应用状况的细分: 如果在 extensioninfo.xml 中启用,外围定制应用 Maven Central 进行散发JavaScript Storefront 应用 yarn 工具配置的默认注册表[图片] 对于 yarn 和 npm - 在开发过程中解决依赖关系并将 yarn.lock.json 或 package-lock.json 文件提交到代码存储库中。这样做的目标是,对于雷同的输出,即便反复构建,也能失去雷同的输入。 属性文件是蕴含用于配置管理的键值对的规范 Java 文件。上面是一个例子: 能够应用三种不同的形式为 SAP Commerce Cloud 和 Data Hub 设置属性: 在 Cloud Portal 中将它们设置为 Service Properties应用服务特定清单即 Service specific Properties筹备属性文件,将它们放在存储库中,并应用 useConfig 清单组件来援用它们。

May 12, 2022 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-构建环境和最终运行环境的区别

SAP Commerce Cloud 的构建产生在一个专门的构建环境中,该环境不同于最终的 Commerce Cloud 运行环境上。 二者的差别包含: 构建环境具备与 Commerce Cloud 不同的 Credential目录构造不同扩大是由命令行 ant production 打包的,因而它们的构造与构建时不同构建环境能够装置不同的工具,例如 Java 编译器。根底 Docker 镜像不同,因而两个环境的操作系统也可能不同最终环境因为是用于生产用处,须要与必要的资源进行通信,例如数据库、媒体存储、附加服务构建工具自身及其配置,例如 Java 编译器、Maven 配置,旨在仅存在于构建环境中。客户的运行环境,显然不须要 JDK,Maven 这些工具整个软件构建在单个 Docker 容器中,而后在独自的容器中运行机器尺寸能够不同。构建环境仅针对构建这个繁多的工作进行了优化环境的地位不同 - 构建环境的出站 IP 地址与 Commerce Cloud 生产环境不同能够利用不同的网络安全规定构建环境未与 Commerce Cloud 运行时组件集成,比方 Solr 服务器或数据库等其余资源,在构建时不可用 构建环境与最终的 Commerce Cloud 环境拆散。 这意味着特定于构建的资源(例如 Github 代码存储库)仅可用于构建环境。 同样,特定于最终 Commerce Cloud 环境的资源,例如数据库或媒体存储,对于构建环境不可用。 因为构建与环境无关,因而在构建期间不要存储或波及任何特定于环境的资源,例如内部零碎。 不举荐硬编码绝对路径,例如 /opt/example。 无奈保障特定门路放弃不变。并且如上述所说,构建环境和最初的运行环境,可能操作系统都齐全不一样,而 /opt/example 显然不能在 windows 操作系统工作。

May 12, 2022 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-Github-项目的个性化配置-customization

Commerce Cloud 中的构建过程在我的项目存储库中查找我的项目自定义 customization. 有两种反对的自定义目录构造。 Separate subdirectories for each customization这是默认并且举荐的抉择。 每个自定义应用独自的子目录。如下图所示: 在此配置中,构建器心愿找到一个 core-customize 子目录和几个可选目录。 core-customize(必须)- 蕴含 SAP Commerce Cloud 和清单文件的自定义。js-storefront(可选)- 蕴含 Javascript 店面自定义和清单文件。datahub(可选)- 蕴含 Data Hub 自定义和清单文件。每个 Customization 必须蕴含一个 manifest.json 文件。 Single directory for all customizations这种做法曾经 deprecated 了。应用单个根目录是配置存储库的原始形式。 此配置仍受反对,但不举荐应用且已弃用。在这种构造里,所有目录都间接增加到根目录中。不反对 JavaScript 店面。 Builder 在运行时怎么晓得客户采取的哪一种 Customization 形式呢? 构建过程在根目录中查找 Commerce Cloud manifest.json 文件。如果它找到清单文件,则应用 deprecated 即所有 Customization 位于同一文件夹内的层级构造。 如果它没有找到清单文件,则阐明每个 Customization 具备各自的子文件夹。 当您应用独自的子目录构造时,Javascript 应用程序门路绝对于 <root>/js-storefront. 看个例子: 这里的 Spartacusstore, 是 js-storefront 上面的一个子文件夹。 ...

May 12, 2022 · 1 min · jiezi

关于sap:关于-SAP-Commerce-Cloud-Github-仓库需要遵循的规范

SAP Commerce Cloud CCV2 构建过程冀望您的代码存储库具备特定的构造(Specific Structure)。 当您的存储库遵循预期的构造时,构建会正确生成。 默认状况下,所有自定义项都存储在单个 Github 存储库中。 它能够蕴含外围定制(扩大、配置)、数据中心定制和 Javascript 店面。 您能够应用 git submodules 性能将内容拆分为多个存储库。 在这样的设置中,主存储库指向独自存储库中的特定提交。 在 Cloud Portal 中为主存储库配置的凭证随后也可用于子模块。 如下图所示: 什么是 git submodules ?思考这样一个场景: 在解决一个我的项目时,您须要应用其中的另一个我的项目。兴许它是第三方开发的库,或者您正在独自开发并在多个父我的项目中应用。在这些场景中会呈现一个常见问题:您心愿可能将两个我的项目视为独立的,但依然可能在另一个我的项目中应用其中一个。 假如您正在开发一个网站并创立 Atom 提要。您决定应用库,而不是编写本人的 Atom 生成代码。您可能必须从共享库(如 CPAN 装置或 Ruby gem)中蕴含此代码,或者将源代码复制到您本人的我的项目树中。蕴含库的问题在于,很难以任何形式自定义库,而且通常更难以部署它,因为您须要确保每个客户端都有可用的库。将代码复制到您本人的我的项目中的问题是,当上游更改可用时,您所做的任何自定义更改都难以合并。 Git 应用子模块解决了这个问题。子模块容许您将 Git 存储库保留为另一个 Git 存储库的子目录。这使您能够将另一个存储库克隆到您的我的项目中并放弃您的提交离开。只有自定义我的项目扩大的源代码必须受版本控制。 构建过程会主动装置 Commerce Cloud 的二进制文件。

May 12, 2022 · 1 min · jiezi