关于sap:学会使用-SAP-ABAP-Application-Log-在代码里添加应用日志记录功能试读版

笔者在知乎上答复了一个对于 SAP 零碎权限管控的问题: SAP 有没有方法能够跳过权限测试 function? 在问题的答复里笔者提到: 如果是 SAP ABAP 零碎,并且用户具备开发权限,那么能够进入调试模式,在调试器里应用 debugger-> Goto Statement 来绕过权限查看的代码。然而这种行为会被记录到系统日志即事物码 SM21 里。如果因为绕过权限检测逻辑而导致系统数据呈现不统一或者失落的状况,跳过权限检测的用户须要负全副责任。 这个查看系统日志的事物码 SM21,笔者在文章有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中里有更深刻的介绍。 其实除了 SAP 零碎自动记录的系统日志之外,ABAP 利用开发人员也能在本人编写的 ABAP 报表里,通过 ABAP Application Log,依据理论须要插入一些利用层面的日志。 当客户应用咱们的 ABAP 程序遇到问题时,咱们能够不须要单步调试,而是通过查看这些程序运行时产生的利用日志,初步剖析可能的问题起因。 下图是 Application Log 的一个例子: 本文剩下的局部)是 Application Log 具体的应用步骤介绍。

January 16, 2023 · 1 min · jiezi

关于sap:关于-ABAP-的运行时错误-ITABILLEGALORDER

一个敌人在我的常识星球里发问: Jerry 您好!求教一个问题,在生成物料凭证的时候,有个比拟奇怪的问题,在函数MARD_MD_ARRAY_READ,第154行的时候会提醒运行时谬误:ITAB_ILLEGAL_ORDER,内表中的排序不正确;跟着查看是在132行的时候读取v_mard_md的数据未排序,而后前面依照取出来的数据插入到内表MARD_TAB_MD之后,也是未排序的,而后在154行的时候就提醒报错了。然而同样的数据有时候就能过,请问一下这种问题我应该怎么去动手进行解决.以下是ST22的局部内容: 短文本Incorrect sorting of the rows in an internal table.产生了什么?Error in the ABAP application program.The current ABAP program "SAPLMG26" had to be terminated because it found astatement that could not be executed.谬误剖析In the ABAP Debugger, the switch for monitoring the sorting of internaltables before statements with the form "READ ... BINARY SEARCH" wasactivated.In this case, rows 5 and 6 in table "\FUNCTION=MARD_MD_ARRAY_READ\DATA=???" are not sortedaccording to the key specified for the READ statement.The "READ ... BINARY SEARCH" statement works on the assumption that thetable is correctly sorted. An incorrect entry will normally belocalized. ...

January 10, 2023 · 2 min · jiezi

关于sap:ABAP-TESTSEAM-的使用方法

语句 TEST-SEAM 引入了一个称为 seam 的测试 SEAM,它由 END-TEST-SEAM 敞开。 以后程序的测试类(test class)能够应用语句 TEST-INJECTION 将语句块 statement_block 替换为在那里定义的注入。如果没有对 test seam 执行注入,则执行原始代码。 test seam 具备以下属性: 能够在单个编译单元中定义多个 test seam,但每个 test seam 必须具备惟一的名称。个别命名约定实用于名称接缝。test seam 不能嵌套,这意味着 test seam 不能蕴含更多 test seam.test seam 不能超出语句块的限度,但能够蕴含关闭的控制结构。test seam 能够蕴含数据申明。 这些申明在执行注入时不会被替换,并在其上下文中放弃可见。test seam 能够在程序的全局申明局部定义,但不能在类的申明局部定义。test seam 能够是空的,也就是说,它不蕴含任何语句。 取而代之的是 injection.test seam 不能在测试类中定义。test seam 的注入必须在同一个编译单元中定义。 只能在以后程序的测试蕴含中定义的测试类中创立注入。 测试蕴含目前只能在类池和函数池中应用。 这意味着 test seam 仅在类池和函数池中可行。 看个具体的例子。类 CL_DEMO_TEST_SEAMS 是生产代码。 CHANGE_PRICE 办法将数据库表 SFLIGHT 中的航班价格乘以一个系数,如果胜利,则返回批改后的价格。如果数据库拜访失败,将返回一个特定的有效值而不是计算后的价格。 为两个数据库拜访定义了 test seam. 这使得在不拜访理论数据的状况下运行单元测试成为可能。 生产类的残缺源代码: CLASS cl_demo_test_seams DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. METHODS change_price IMPORTING !carrid TYPE sflight-carrid !connid TYPE sflight-connid !fldate TYPE sflight-fldate !factor TYPE i EXPORTING VALUE(new_price) TYPE sflight-price . PROTECTED SECTION. PRIVATE SECTION. DATA subrc TYPE sy-subrc .ENDCLASS.CLASS CL_DEMO_TEST_SEAMS IMPLEMENTATION.* <SIGNATURE>---------------------------------------------------------------------------------------+* | Instance Public Method CL_DEMO_TEST_SEAMS->CHANGE_PRICE* +-------------------------------------------------------------------------------------------------+* | [--->] CARRID TYPE SFLIGHT-CARRID* | [--->] CONNID TYPE SFLIGHT-CONNID* | [--->] FLDATE TYPE SFLIGHT-FLDATE* | [--->] FACTOR TYPE I* | [<---] NEW_PRICE TYPE SFLIGHT-PRICE* +--------------------------------------------------------------------------------------</SIGNATURE> METHOD change_price. DATA wa TYPE sflight. TEST-SEAM selection. SELECT SINGLE * FROM sflight WHERE carrid = @carrid AND connid = @connid AND fldate = @fldate INTO @wa. subrc = sy-subrc. END-TEST-SEAM. IF subrc <> 0. new_price = -1. RETURN. ENDIF. wa-price = wa-price * factor / 100. TEST-SEAM modification. MODIFY sflight FROM @wa. subrc = sy-subrc. END-TEST-SEAM. IF subrc = 0. new_price = wa-price. ELSE. new_price = -2. ENDIF. ENDMETHOD.ENDCLASS.失常状况下,咱们间接执行到 TEST-SEAM 定义的 selection 代码块内。 ...

January 10, 2023 · 2 min · jiezi

关于sap:如何使用-SEGW-的-redefine-功能对-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 的开发教程0. SAP 规范产品里应用 OData 服务的一些细节分享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 申请中返回多个节点的数据18. SAP ABAP OData 服务嵌套创立性能的实现步骤(Create Deep)19. 如何应用 ABAP 程序生产 SAP ABAP OData 服务20. 如何应用 ABAP 代码生产须要传递 CSRF token 的 OData 服务21. SAP ABAP OData 服务的 $count 操作实现22. SAP ABAP OData 服务的 $count 和 $inlinecount 两个操作的区别23. 如何给 SAP ABAP SEGW 开发的 OData 服务增加 Access-Control-Allow-Origin 响应头24. SAP 规范产品里应用 OData 服务的一些细节分享25. 答疑 - SAP OData 框架解决 Metadata 元数据申请的实现细节,前后端组件部署在同一台物理服务器26. SAP ABAP OData Gateway 框架里 /IWFND, /IWBEP 这些缩写代表了什么含意?27. SAP OData 框架里的缓存(Cache)设计专题讲座28. 如何应用 SAP OData 服务向 ABAP 服务器上传文件29. 如何通过 ABAP 代码给 SAP OData 元数据削减注解30. 如何应用 SEGW 的 redefine 性能对 SAP 规范 OData 服务进行扩大更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务1. SAP Business Application Studio 里创立一个基于 CAP 模型的最简略的 OData 服务2. 如何给在 SAP Business Application Studio 里开发的 OData 服务筹备测试数据正在写作中,敬请期待SAP 公布了很多规范的 Fiori 利用,能够通过笔者的文章SAP Fiori利用索引大全工具和 SAP Fiori Tools 的应用介绍里提到的工具进行浏览。 ...

January 10, 2023 · 2 min · jiezi

关于sap:使用-SAP-CRM-Application-Enhancement-ToolAET-创建扩展字段

本文的英文版,发表在 SAP 社区 wiki 上,原文题目:Step by step to create new fields on UI via Application Extension Tool 登录 SAP CRM WebClient UI,点击 Personalization 超链接: 点击超链接 Personalize Settings, 选中 Enable configuration mode 后面的 ✓: 这样,咱们能够间接在浏览器里,应用具备扩大权限的用户,间接对 UI 界面,应用 SAP CRM 提供的规范扩大工具,Application Enhancement Tool,简称 AET,进行扩大。 进入 Service order 明细页面, 点击 configuration 性能对应的图标,如下图所示: 但凡能够间接通过 AET 工具被扩大的 UI 界面,会通过深蓝色高亮。本文咱们想在 General Data 这个区域,创立扩大字段。 单击 General Data 区域,在弹出的窗口里,在工具栏上找到 Create Field 的按钮: ...

January 10, 2023 · 1 min · jiezi

关于sap:SAP-ABAP-Append-structure-介绍

Append structure(附加构造)是 ABAP 字典中附加到另一个构造或数据库表并将其组件附加到它们的构造。 Append structure 能够增加到 SAP 在客户零碎中提供的构造和数据库表中。一个 Append structure 仅能调配给一个表或构造。 然而,一张表或构造容许被调配多个 Append structure 。 Append structure 的组件必须满足表字段的先决条件,这些先决条件定义在这篇文章里:SAP ABAP DDIC 构造字段的一些技术限度条件。 应用 append structure 能够对数据库表或构造进行以下加强: 插入新组件(如果加强类别容许)为数据库表的现有字段定义外键为现有组件绑定搜寻帮忙(search help)下图高亮行是一个 append structure 的例子: 所有在 append structure 上加强的字段都是 append structure 的一部分,这意味着对这些加强所做的任何更改仅仅施加在 append structure 上,而不会影响被加强的 ABAP DDIC 构造。这同样实用于 transport. 激活数据库表或构造时,会找到所有关联的 append structure,并将它们的组件附加到数据库表或构造。 应用append structure 增加的任何外键或搜寻帮忙绑定也会被附加。 当 append structure 被激活时,调配的数据库表或构造会适应所做的更改。不转换任何现有表,这会在字典和数据库中产生不同程序的字段。 当复制构造或具备 append structure 的数据库表时,追加的字段、外键和搜寻有助于成为复制指标的实在元素。 通过菜单 Utilities->Activation Log 查看 append structure 激活的日志: ...

January 9, 2023 · 1 min · jiezi

关于sap:什么是-SAP-ABAP-的-include-structure

构造(留神 structure 并不是数据库表或视图)能够作为蕴含构造(include structures)蕴含在数据库表中。 只有当一个构造的组件满足所有的表字段先决条件时,该构造能力蕴含在表中。 特地留神一点,蕴含的构造不能蕴含任何子结构(sub structure)。 必须通过定义后缀来绕过任何命名抵触。 与在惯例构造中一样,能够为 include 指定一个组的名称。 当蕴含一个构造时,它的所有字段都能够标记为 key 字段。 而后必须将 include 构造插入现有的 key 字段中或直接插入它们之后。 蕴含构造的各个字段自身不能设置为 key 字段。 当蕴含一个蕴含构造时,能够为整个构造设置初始值标记。 在这种状况下,设置了此属性的蕴含构造中的那些字段也保留其属性。 如果未为蕴含的蕴含构造设置初始值标记,则其字段均不具备此属性。 蕴含构造的字段依然是构造的一部分。 它们只能应用构造进行编辑,对构造所做的任何更改都会利用于所有包含数据库表。蕴含的蕴含构造的字段也能够转换为不再与最后蕴含的构造相关联的数据库表的间接字段。 下图是一个例子: 构造的长度受到限制,以满足所有反对的数据库平台的要求。然而能够用 一个标注来标记表,以容许在须要实现某些 feature 的状况下绕过此限度。 当应用 Open SQL 拜访以这种形式标记的表时,会呈现语法查看正告。 该正告表明必须进行跨平台的替换实现。ABAP 开发类 CL_ABAP_DBFEATURES 可用于辨认以后数据库系统反对的限度。

January 9, 2023 · 1 min · jiezi

关于sap:SAP-ABAP-DDIC-结构字段的一些技术限制条件

SAP ABAP 表字段是数据库表构造的组成部分,形容了数据库表字段的名称、数据类型和任何语义属性。 下图这些高亮区域就是 ABAP 表字段的一些例子。 表字段是表的结构化数据类型的组成部分,相干规定实用于组成部分名称和组成部分类型,具备以下限度: (1) 表字段名不能为保留名。 不能应用的保留名称在数据库表 TRESE 中。 这在应用蕴含构造(Include Structure)时也很重要。 (2) 表字段始终具备一种根本数据类型。援用类型、子结构和表类型是不可能的。也就是说援用类型,子结构和表类型不能呈现在 Data element 和 Data Type 这两列上面,如下图所示: 根本数据类型间接为表字段指定或应用数据元素指定,并且始终基于 ABAP 字典中的预约义类型。表字段在物理数据库表中具备特定于平台的类型。 对于每个平台,ABAP 字典中的根本类型与特定于平台的类型之间存在映射。 如果仅应用 Open SQL,则此映射对 ABAP 程序员是通明的,并且只有 ABAP 字典中的预约义类型及其 ABAP 类型与 ABAP 程序相干。 (3) 一个表最多能够有 749 个字段。 所有字段长度的总和限度为 4030 字节。 对于 STRING、RAWSTRING、LRAW 和 LCHR 等深层字段,只计算援用而不计算理论内容。 CHAR 类型的字段最多能够蕴含 1333 个字符。 (4) 任何具备 LRAW 或 LCHR 类型的字段都必须位于表的开端,并且每个表中只容许一个这种类型的字段。 留神:除了通明表之外,还有一个特定于 SAP 的数据库表类别能够在 ABAP 词典中定义, 即 Pool tables 和 Cluster tables. 二者能够通过 Open SQL 拜访,就像拜访通明表一样。数据库接口将拜访转换为对二者的相干拜访。 然而,某些限度实用,这些限度也在相干申明中指定。无奈应用 native SQL 间接拜访 Pool tables 和 Cluster tables. ...

January 9, 2023 · 1 min · jiezi

关于sap:交流学习SAP-ERP的各种问题和方法如何快速入行

笔者从 2007 年大学计算机专业硕士毕业后退出 SAP 成都研究院从事 SAP 各种规范产品的设计和研发工作曾经十五余年,期间也已经在 SAP ERP 上工作过一段时间,当然也蕴含 SAP 次世代的最新 ERP 产品 S/4HANA. 在我看来,SAP ERP 有肯定的进入门槛,这个门槛体现在 SAP ERP 各个模块的行业常识和底层的 ABAP 技术实现。入门 SAP ERP,无论是其业务模块常识还是 ABAP 编程语言的把握,如果想进步学习速度,最高效的做法就是: 在工作中边干边学,过程中遇到问题能随时找到生手,进行解答;采纳以点带面的形式进行学习。举个例子,下图是 SAP ERP MM03 事物码即物料主数据的明细页面。咱们能够看到这个明细页面通过一个 TabStrip 控件出现,外面从左到右分为 Basic data1,Basic data 2,MRP1,MRP2 等不同的标签面板,每个标签面板下又蕴含一个子屏幕,每个子屏幕又蕴含稀稀拉拉很多字段。 这种界面复杂度会让很多 SAP ERP 的初学者望而却步,咱们能够采取蚂蚁搬家的形式,从本人相熟的字段登程。比方咱们作为初学者,只晓得物料主数据的 ID 和形容信息这两个字段的业务含意,那么咱们首先通过搜索引擎找到后盾存储这两个字段业务数据的数据库表名称 MARA,再找到从数据库表里读取这些业务数据的 ABAP Function Module 名称,弄清楚咱们运行 MM03 时,数据是如何从数据库表里通过 Function Module 读取进去显示在 SAPGUI 上的。有了这个根底,咱们能够逐渐扩充咱们的学习范畴,到找到的 MARA 表里查看是否还有其余字段,也呈现在了 MM03 事物码的 Basic data 1 里?其理论依据就是,SAP 产品里,业务含意具备逻辑关联关系的字段,既会建模在同一张数据库表里,也会展当初 UI 同一个 Sub Screen 里。这样,咱们从本人最相熟的物料主数据 ID 和形容信息两个字段登程,逐渐去相熟这两个字段所在的 Basic data1 子屏幕其余字段的业务含意和存储形式,进而进一步扩大到其余子屏幕的其余字段。等到 MM03 的大部分字段的设计含意咱们都了然于胸,那么咱们对于 MM 主数据设计这一块的理解水平曾经上到一个台阶了。 ...

December 31, 2022 · 1 min · jiezi

关于sap:SAP-MM-模块的入门者想学习-ABAP-编程语言应该如何入手

自己自 2007年计算机专业研究生毕业退出 SAP 成都研究院,在这之前也从未据说过 ABAP 这门编程语言,我算是 ABAP 零根底开始学习。依据我的过往教训,能够先简略理解一下 ABAP 这门编程语言诞生的时代背景,它是为了解决一个什么特定畛域的问题而设计的?ABAP 编程语言的现状和未来的倒退方向?理解了这些问题,学习 ABAP 时会更有针对性。对于这些问题,笔者另一篇知乎文章曾经做了具体的解答: ABAP 真的会过期吗?聊聊 ABAP 的过来,当初和将来 https://zhuanlan.zhihu.com/p/... 而后是 ABAP 具体的学习办法。因为这是一门编程语言的学习,所以除了解决学习材料的问题之外,最重要的就是搞定 ABAP 编程环境。因为就像在岸上学习理论知识永远不能让你真正学会游泳一样,唯有在理论的 ABAP 零碎中一直入手和实际,能力把握这门编程语言。 其实笔者常常收到知乎敌人相似的征询: 想比拟全面地学习 SAP XXX,能领导下从哪儿开始学习吗?XXX 能够替换成 ABAP 或者任意一个 SAP 模块,因而笔者写了另一篇知乎文章,分享本人的学习教训: https://zhuanlan.zhihu.com/p/... 我过后在文章里给出的四点泛泛的教训就是: 设法找到一个能用的零碎或环境最好可能在理论工作中学习充分利用搜索引擎来查找 SAP XXX 的学习材料学习时留神调整本人的心态,不要急于求成 回到题主的问题,因为题主提到本人在从事 MM 模块的工作,这意味着 ABAP 零碎的问题曾经解决了。如果工夫容许的话,能够找来 SAP ABAP 规范培训教材,BC400 这本书循序渐进进行学习,并实现书中每一章节课后的分割。 笔者依据本人在 SAP 研究院工作15年积攒的 ABAP 开发教训,也撰写了一套适宜 ABAP 初学者的入门学习教程,目录如下,也能够跟着这套教材来学习 ABAP: https://jerry.blog.csdn.net/a... 当 ABAP 有肯定的根底后,我倡议题主能够从本人从事 MM 模块中最相熟的性能登程,通过钻研 SAP 规范产品是如何实现这些性能的,从规范代码实现中学习,来加深本人对 ABAP 的了解。 ...

December 31, 2022 · 1 min · jiezi

关于sap:SAP-R3SAP-ECC-和-SAP-S4HANA-的联系和区别

有敌人在我的常识星球里发问: 汪哥,我想问一下,就是 r/3 和 ecc 和 s/4 之间的分割和区别。 咱们首先聊聊 R/3 和 S/4 的分割和区别。 在笔者这篇文章ABAP 真的会过期吗?聊聊 ABAP 的过来,当初和将来里,我已经介绍过,SAP R/3 于 1992 年公布,是 SAP ERP 零碎的客户机/服务器版本,起初成为 SAP 最受客户欢送的产品之一。SAP R/3 从某种程度上说建立了 ERP 软件的行业标准:很长一段时间内,SAP 简直成为了 ERP 的同义词。SAP R/3 应用最宽泛,在业界最闻名的模块有: Financials and Controlling (FICO)Human Resources (HR)Materials Management (MM)Sales & Distribution (SD)Production Planning (PP)SAP R/3 中的数字 3,代表展示层,应用层和数据库层别离部署,这也标记着 SAP R 系列的软件倒退到成熟期。 其中 R 代表 Realtime,实时处理之意。 2015年年初,SAP 推出划时代的全新商务套件SAP Business Suite 4 SAP HANA,简称 SAP S/4HANA,简称里的 S 就是套件 Suite 的缩写,4 代表第四代 ERP 软件,同前一代产品 R/3 相辨别。 ...

December 31, 2022 · 2 min · jiezi

关于sap:一个-SAP-开发工程师的-2022-年终总结四十不惑

儿时对于一年四季,我最中意的便是夏季,因为夏季意味着行将到来的暑假,能够回到老家,和多日不见的玩伴们痛痛快快玩上一段时间。夏季也总是和春节分割在一起,过年就意味着能够从前辈那拿到一笔压岁钱,把本人心仪了大半年的玩具和图书带回家。那种在期待了很长时间后,终于可能如愿以偿的满足感,当初回顾起来依然感觉很幸福。 长大当前,尤其是 35 岁当前,我对每年年末有一种说不出的简单感情,甚至有点抗拒年末的降临。年末就意味着又一年行将完结,在这一年里产生过的酸甜苦辣,无论咱们愿不愿意,究竟将一去不复返,行将成为咱们回顾的又一部分。 本文是我自 2017 年底开明微信公众号之后,间断第六年的集体年终总结。过来五年的文章列表如下: Jerry 的 2017, 编程与游泳一个 SAP 开发人员的 2018 年终总结一个 SAP 开发人员的 2019 年终总结一个 SAP 成都研究院开发工程师的 2020 年度总结:未知生,焉知死一个 SAP 成都研究院开发工程师的 2021 年度总结:既没有厚积,也未能薄发马上过来的这个 2022 年对我来说有着非凡的意义:往年我 40 岁了。上小学时,我特地艳羡每天都要下班的父母——我过后每天晚上写完作业,就早早上床睡觉了,而我的父母上班后,既不必写作业,还能够看过后对我极具吸引力的各种电视连续剧。我过后的一个欲望就是:快快长大,早日下班,这样我也能够每天不必写作业,每天能够看电视看个过瘾。弹指一挥间,几十年的时光就过来了。现在,我也到了双亲过后的年龄,亲自感触到了时光流逝速度的残暴和可怕。 国内软件开发行业的程序员到底可能干多久?国内程序员 35 岁年龄危机是否真的存在?这些在国内都永远是程序员们探讨的热门话题。随着 2022 年的完结,再等十多天,我也行将迎来本人在 SAP 成都研究院工作的第 16 个年头: 2007年1月11日~2022年1月11日,我在 SAP 成都研究院这15年 对于我在 SAP 的职场之路,我的反思记录在往年年中这篇总结文章里: 一个 SAP 开发工程师的 2022 年中总结-四十不惑,不忘初心 然而对于我的人生之路,在我满 40 岁之际,我的确产生了一些困惑。我心目中 40 岁男人的现实状态,应该是有肯定的经济基础,有一个优质的人脉圈和关系网,有密切融洽的家庭关系,性情沉稳果决,有很强的自我情绪治理能力等等。在我看来这些才是一个男人能做到四十不惑的资本。惋惜我发现自己除了家庭关系之外,在其余方面都做得不够好。尤其是我在 2020 年经验过一场生死考验之后,我发现自己有时居然还会被一些人一些事影响到情绪和状态,我本人也感觉这很可笑。 对于这些四十不惑的问题,我很难从家父那里取得答案。因而,我抉择了往年 4 月和我的 Manager,SAP 成都研究院吴院长进行的 SAP Talk 中,把我的这些疑难抛给了他。 对于我和吴院长职场上的故事,参看这篇文章: 我与SAP成都研究院吴院长的二三事 ...

December 31, 2022 · 1 min · jiezi

关于sap:一个SAP开发人员的年终总结编程与游泳

往年的生存如此丰富多彩,不写一点什么怎么对得起这过来的一年? 就当记流水账,若干年之后回来看肯定很有意思。 1月 有幸成为SAP Community上2位来自China的SAP mentor之一: 3月 再次来到客户现场,和他们的架构师探讨二次开发时选用UI5还是用Vue. 回到office之后,把这个探讨扔到cloud@SAP的微信群里,没想到激发共事们对这个topic的热烈探讨。我也有幸通过探讨意识了一些其余site的共事,比方Walldorf的QiAn, 还有上海Labs的很多共事。 最初以一篇blog向老板的老板汇报了这次visit: 4月~7月 开始了将近90天的Walldorf - Wiesloch两点一线的闭关生存。 周末就宅在林徒弟家里code. 工作日的晚餐和周末一日三餐就consume这些干货. 对我这种程序猿来说进食的惟一目标就是维持生命。 这三个月也彻底领教了德国瞬息万变的气象。这是半小时之内从WDF18望出去的风光: 因为从林徒弟的家到office要骑行半小时,所以常常在半路上遇到暴雨被从头到脚淋成落汤鸡: 骑到公司时浑身上下全副湿透了,连鞋子里都全灌满了水,不得不脱下来拿到窗台上晒,光着脚写代码。 尽管骑车过程中也产生了一些小插曲: 最囧的就是medical office里的护士小妹给我包扎的时候对我说: " 我晓得XXX用德语怎么说,然而对应的英语单词我不会。。。。。。" 不过我很快从这次incident里复原了过去,持续每天14公里的骑行。 总部的伙食对于我这种不挑食的程序猿来说算完满了,我素来的第一天到最初来到的前一天,都吃得津津乐道。 林徒弟家的前面有个小山坡,下来之后是一马平川的平原。每天我上班骑车去2公里外的超市买面包都会遇到这两匹马: 有一次遇见马的客人,交谈中他们说道一看我就晓得我是来出差的,因为Wiesloch这种中央没有人会因为游览的目标过去。 这条路的止境往左转,下坡,就是超市Penny,外面目不暇接的面包们解决了我每天晚上的填饱肚子问题。 三个月的工夫和Chief Arch和IMS developer一起工作,带着他们的祝福满载而归。 在此也特别感谢三个月来林徒弟和吴老师无所不至的关照,刚下飞机第一顿的pizza, 周末本人包的饺子,端午节的粽子,临行前阳台上的烤肉,感激吴老师的自行车。也感激Simon和Zolo的烤肉和啤酒。 7月~至今 退出了新的C4C team. 这支队伍从最后的只有Max和Harry两位共事开始,迅速setup起来,成为了一支有很强战斗力和凝聚力的队伍。大家的背景和工作经验都不同,然而都很敬业,并且都很有实力,每位共事都有本人的业余上的强项。我很有信念这支队伍可能在2018年庸庸碌碌。 9月 在去客户现场的飞机上意识了7楼Service Center的共事Dean,一位十分厉害的专家,比我全面多了。回来之后和7楼其余共事交谈才晓得大家背地对Dean的评估是 "一个集PO, Architect和Senior developer三位于一体的SAP Employee"。嗯嗯,的确,货真价实。 ...

December 31, 2022 · 1 min · jiezi

关于sap:SAP-ERP-里的-Costing-Sheet-成本核算表

有敌人在我的常识星球里向我发问: 请您帮忙讲一下这个AP0100的costing sheet rows这里都示意什么意思吗?比方row10、base Z010、overhead啥、形容、from、to row、credit都阐明了什么,可能实现下面的指标吗,感激!!! SAP 帮忙文档地址如下。 成本核算表联合了所有间接费用的成本核算,并确定了要颁布的价值的计算规定。 成本核算表将管理费用老本的控制数据(control data)分割起来。 下图是一张成本核算表里的例子,总共蕴含四条记录,其中第一条记录为 Base Row,id 为 B000,第二条记录为第一条 Base Row 保护了额定的 Overhead 和 Credit 计算逻辑,其中 Overhead 的计算逻辑通过另一条记录 C010 保护,Credit 的逻辑也由另一条 Credit 记录 E01 保护。 第三条记录又是 Base Row,id 为 B001,第四条记录的 C011 和 E02 为第三条 Base Row 记录起补充阐明的作用。 B000,B001,E01 和 E02 的别离保护成如下图所示: C010 的保护记录: Base Row 又叫 Calculation Base,是用来定义特定费用开销的次要老本元素。它代表了用户想要施加 overhead 计算逻辑的一组老本元素。 对于每个管制区域,能够为 Base Row 调配单个老本元素或老本元素区间,以及单个 Origin 以及 Origin 区间。 overheadoverhead(间接费用率)决定了基于百分比或基于数量的间接费用率利用于间接老本的水平。它还指定在哪些条件(相关性 Dependencies)下利用间接费用率。 例如,能够通过指定工厂相关性来计算每个工厂的定义间接费用率。 ...

December 24, 2022 · 1 min · jiezi

关于sap:如何在-SAP-UI5-应用里显示-PDF-文件试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程本专栏打算的文章数在 300 篇左右,到 2022年12月23日为止,目前曾经更新了 155 篇,专栏完成度为 51.6%,完成度曾经超过了一半了.作者简介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 本地开发环境的搭建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 利用开发教程之一百二十二 - 在 SAP UI5 利用中应用浏览器原生的 Fetch API 发动网络申请SAP UI5 利用开发教程之一百二十三 - 应用 Busy Dialog 动画阻止 SAP UI5 利用按钮短时间内疾速被点击SAP UI5 利用开发教程之一百二十四 - 应用函数节流思维防止 SAP UI5 利用里按钮短时间内被高频反复点击SAP UI5 利用开发教程之一百二十五 - SAP UI5 进阶 - XML 视图里定义的 UI 控件,运行时实例化的技术细节分析SAP UI5 利用开发教程之一百二十六 - SAP UI5 进阶 - JSON 模型字段里的值,显示在最终 UI5 界面上的神秘剖析SAP UI5 利用开发教程之一百二十七 - SAP UI5 利用的全局配置(Global Configuration) 的设计和应用SAP UI5 利用开发教程之一百二十八 - SAP UI5 智能控件 Smart Controls 的初步意识SAP UI5 利用开发教程之一百二十九 - 如何给 SAP UI5 SmartField 增加 Value Help 性能SAP UI5 利用开发教程之一百三十 - 如何使 SAP UI5 SmartField 在运行时渲染成超链接的模式并反对跳转SAP UI5 利用开发教程之一百三十一 - SAP UI5 Cross Application Navigation (跨利用间跳转)的本地模仿实现SAP UI5 利用开发教程之一百三十二 - SAP UI5 Simple Form 控件的应用办法介绍SAP UI5 利用开发教程之一百三十三 - SAP UI5 利用元数据文件 manifest.json 的加载和解析原理解说SAP UI5 利用开发教程之一百三十四 - SAP UI5 Simple Form 属性 columnsL,columnsM,columnsXL 的属性深刻分析SAP UI5 利用开发教程之一百三十五 - SAP UI5 利用的屏幕尺寸检测工作原理深刻分析SAP UI5 利用开发教程之一百三十六 - SAP UI5 利用 SimpleForm 控件 ResponsiveGridLayout 布局的工作原理深刻分析SAP UI5 利用开发教程之一百三十七 - SAP UI5 SimpleForm 里在程度方向显示多组 Form 元素的实现办法SAP UI5 利用开发教程之一百三十八 - SAP UI5 控件库里 Form 控件和 SimpleForm 控件的区别和分割解说SAP UI5 利用开发教程之一百三十九 - SAP UI5 SmartForm 智能表单控件的应用办法介绍SAP UI5 利用开发教程之一百四十 - 如何应用 JavaScript 代码连贯部署在 SAP ABAP 服务器上的 OData 服务SAP UI5 利用开发教程之一百四十一 - 如何在 SAP UI5 利用里平安存储一些敏感的数据,防止被上传到 Github 去的危险SAP UI5 利用开发教程之一百四十二 - SAP UI5 的 TimePicker ,一个钟表外观的工夫抉择控件SAP UI5 利用开发教程之一百四十三 - SAP UI5 的申明式初始化 Component 定义(Declarative API for Initial Components)SAP UI5 利用开发教程之一百四十四 - 授人以渔 - 如何查找 SAP UI5 官网上没有提到的控件属性的应用明细SAP UI5 利用开发教程之一百四十五 - SAP UI5 本地开发时 ui5.yaml 文件对构建 Release 版本利用目录的影响剖析SAP UI5 利用开发教程之一百四十六 - 通过 SAP UI5 ODataModel API 在 JavaScript 代码里拜访 OData 元数据SAP UI5 利用开发教程之一百四十七 - SAP UI5 SmartTable 控件的应用介绍SAP UI5 利用开发教程之一百四十八 - SAP UI5 表格数据如何导出成 Excel 文件(Table Export As Excel)SAP UI5 利用开发教程之一百四十九 - SAP UI5 Table 控件数据进行 Excel 导出时如何进行格局管制SAP UI5 利用开发教程之一百五十 - 以前编写好可能失常运行的 SAP UI5 代码,几个月后突然不能运行了该怎么办?SAP UI5 利用开发教程之一百五十一 - 对于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的探讨SAP UI5 利用开发教程之一百五十二 - 谈谈 SAP UI5 变量和办法的命名标准SAP UI5 利用开发教程之一百五十三 - 应用 SAP UI5 Smart Chart 控件轻松绘制十数种不同类型的业余图表SAP UI5 利用开发教程之一百五十四 - SAP UI5 Smart Table 和 Smart Filter Bar 的联结应用办法介绍SAP UI5 利用开发教程之一百五十五 - SAP Smart Table 的 Personalization(个性化配置)SAP UI5 利用开发教程之一百五十六 - 如何在 SAP UI5 利用里显示 PDF 文件SAP UI5 利用开发教程之一百五十七 - 正在写作中......阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和 汪子熙 微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

December 24, 2022 · 7 min · jiezi

关于sap:SAP-Smart-Table-的-Personalization个性化配置试读版

本教程的前一步骤,咱们介绍了 SAP Smart Table 和 Smart Filter Bar 配合起来的应用办法: SAP UI5 利用开发教程之一百五十四 - SAP UI5 Smart Table 和 Smart Filter Bar 的联结应用办法介绍 本文咱们在此基础上更进一步,为 Smart Table 削减一个 Personalization(个性化配置)性能,此性能的触发入口如下图绿色齿轮图标所示: 点击之后,能够把默认没有配置进去的表格列配置进去,也能够将目前曾经显示的表格列进行暗藏。 如下图所示,1~4 列默认显示,将每一列记录前的 ✓ 去掉,即可将这些列暗藏。Currency 列默认暗藏,将其后面的 ✓ 选中即可显示。 在 Sort 面板,能够配置依据某一列进行升序或者降序排序。 在 Filter 面板,能够配置过滤器,例如下图的语义是让 Smart Table 只显示货币单位为 EUR 的那些产品。 最初配置的成果如下图所示: 上面是这个 Personalization 性能具体的实现步骤。

December 24, 2022 · 1 min · jiezi

关于sap:SAP-UI5-Smart-Table-和-Smart-Filter-Bar-的联合使用方法介绍试读版

本教程第 147 个步骤,咱们介绍了 SAP UI5 Smart Table 控件的用法: SAP UI5 利用开发教程之一百四十七 - SAP UI5 SmartTable 控件的应用介绍如下图所示: 本步骤咱们在 Smart Table 自身的根底上再进一步,学习如何将 Smart Table 配合 Smart Filter Bar 独特应用。 先看一下成果。咱们进入文件夹 154,运行命令行 ui5 serve,能够看到 Smart Table 控件上方的 Filter Bar 控件,以后默认显示的 filter 为 Category 字段。 咱们能够为这个 Category 字段保护值,让这个值对 Smart Table 里显示的内容进行过滤。 首先点击 Category 字段如下图图例1所示的图标,在弹出的 Category 所有可选值下拉窗口里,抉择 Accessory: 而后点击 OK: 点击 Smart Filter Bar 正上方的 Go 按钮,就能够对 Smart Table 进行过滤,从而让那些只有满足过滤条件即 Category 等于 Accessory 的产品数据显示进去,一共只有 4 条。 ...

December 24, 2022 · 1 min · jiezi

关于sap:如何通过-ABAP-代码给-SAP-OData-元数据增添注解试读版

笔者的这篇 SAP UI5 开发教程文章,* SAP UI5 利用开发教程之一百二十九 - 如何给 SAP UI5 SmartField 增加 Value Help 性能,有敌人留言: 你好,求教一个问题,请问如何在odata外面通过annotations增加一个自定义注解? 你好,请问能够不能够在odata外面通过什么设置,从而主动给metadata.xml中加上注解,实现value help的性能,还是说每次须要在metadata.xml中批改? 这位敌人理论征询的就是如何保护 metadata.xml 文件里这种 Annotations 标签。 在 OData 元数据里生成自定义注解的形式有很多种,比方在 CDS view 里保护注解,而后基于 CDS view 生成 OData 服务。对于本系列到目前为止采取 SEGW 事物码开发的 OData 服务来说,咱们没有 CDS view 模型,因而能够采取另一种方法,即在 MPC_EXT 类里手动编写 ABAP 代码的形式来保护注解。 咱们先看下成果,在 MPC_EXT 类的 DEFINE 办法里编写 ABAP 代码之后,用 Postman 应用 url 拜访 OData metadata,在返回的数据里,能看到咱们用 ABAP 代码增加的自定义注解。 <Annotations Target="ZJERRY.Book" xmlns="http://docs.oasis-open.org/odata/ns/edm"> <Annotation Term="UI.HeaderInfo"> <Record> <PropertyValue Property="TypeName" String="Book"/> <PropertyValue Property="TypeNamePlural" String="Books"/> </Record> </Annotation> <Annotation Term="UI.LineItem"> <Collection> <Record Type="UI.DataField"> <PropertyValue Property="Label" String="Book"/> <PropertyValue Property="Value" Path="Book"/> </Record> </Collection> </Annotation> </Annotations>上面是具体的实现步骤解说。 ...

December 24, 2022 · 1 min · jiezi

关于sap:使用-ABAP-代码给-OData-元数据增添注解的一些例子

最近有读者向我征询,对于当零碎在 SAP NetWeaver 740 之上运行时,如何向 OData 服务增加注解(annotation)。 尽管应用 SAP NetWeaver 750 及更高版本,能够在 CDS DDL 源代码中增加注解,然而 SAP NetWeaver 740 没有此类反对。 尽管如此,如果客户和合作伙伴正在应用应用 CDS 视图作为映射数据源(mapped data sources)的服务施行,则他们能够利用 CDS 视图作为 SAP NetWeaver 740 中已有的 OData 服务的数据源。 因而,能够开始在 740 中为 OData 服务构建 CDS 视图。要在 740 后盾零碎增加对正文的反对,能够应用基于代码的实现。 本文波及到的场景用例是心愿基于 SAP NetWeaver 740 构建 OData 服务的客户和合作伙伴,并且该零碎不反对 CDS 视图中的正文。 降级到 SAP NetWeaver 750 或更高版本时,您也能够将施行转移到 CDS 中。 以下屏幕截图显示了生成的 SAP Fiori 应用程序的第一个屏幕,该应用程序基于来自 Fiori Elements(也称为 Smart Template)的列表报告页面和对象页面。 在实体集 SalesOrderSet 中,咱们默认显示列 Salesorder、Customer 和 Gross amount 以及 Currency。 此列表的题目名为 SalesOrders。 ...

December 24, 2022 · 1 min · jiezi

关于sap:如何使用-SAP-OData-服务向-ABAP-服务器上传文件试读版

本教程到目前为止开发的 OData 图书治理服务,能够在 ABAP 零碎里对图书数据进行增删改查。 本步骤咱们持续介绍如何通过 SAP OData 服务,实现向 ABAP 零碎上传文件的需要。咱们采取 Postman 进行文件上传。 先看一下通过本文介绍的步骤,实现的成果。 Postman 里应用的文件上传 url:https://{{host}}:{{port}}/sap/opu/odata/sap/ZBOOK_MANAGE_SRV/FileSet 通过 HTTP 申请的头部字段,指定自定义头部字段名称为 filename,头部字段值为实际上传的文件名,本例为 1332.txt. 留神,通过 Postman 上传文件到 ABAP 服务器,ABAP OData 框架无奈智能地将本地文件的文件名提取进去,故而须要咱们作为文件上传者,手动通过 HTTP 申请头部字段的形式,指定上传的文件名。 我本地的这个 1332.txt 文件,内容为一个 Hello World 字符串,对应的16进制内容为 68 65 6C 6C 6F 20 77 6F 72 6C 64: 在 Postman 里上传这个本地文件后,收到 HTTP 201 Created 响应音讯,如上图图例3 所示。 在 Postman 里点击 Body 而后再抉择 binary,即可抉择本地文件上传。 上传胜利后,咱们到 ABAP 服务器的自定义数据库表 ZFILE 里查看,发现有一条记录胜利生成了: ...

December 24, 2022 · 1 min · jiezi

关于sap:如何给-SAP-ABAP-ALV-报表的修改功能添加自定义校验逻辑试读版

本教程后面的步骤,咱们曾经介绍了如何编辑 SAP ALV 报表里的某一列数据: 70. 利用 ALV 实现增删改查系列之二:仅让 ALV 报表某一列容许被编辑如下图 Airfare 和 Capacity 列所示。然而理论的开发我的项目中,咱们必定不会容许用户对这些列进行得心应手的批改,必然要削减一些自定义校验逻辑,免得在零碎产生一些脏数据。本文向大家介绍如何为 SAP ABAP ALV 报表某一列的编辑性能,减少自定义校验逻辑。 先看一下本文实现的成果。咱们容许用户在 ALV 报表上批改航班的 Occupied 即曾经卖出去的座位个数,显然这个个数不能超过航班最大容许的座位数,即不能超过前一列 Capacity 的值。 咱们把上图第一行的 375,改成3750,而后回车,触发如下的自定义校验逻辑,谬误音讯显示:The number of seats occupied exceeds the capacity of the plane 747-400 同时,我手动把 Plane Type 列的 747-400 改成 747-401,也会收到另一条谬误音讯:Entry 747-401 does not exist in SAPLANE (check entry) 上面是这些自定义校验的具体实现步骤。

December 24, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-报表屏幕输入字段如何实现联动效果试读版

有敌人向我征询,SAP ABAP 报表输出字段,如何实现联动成果? 所谓联动成果,如下图所示,咱们有三个输入框,类型都是 Checkbox: 激活缓存应用共享内存应用二级缓存 默认状况下,应用共享内存和应用二级缓存这两个 Checkbox 处于禁用状态。只有当咱们选中 激活缓存 时,这两个 Checkbox 才容许编辑: 当咱们选中了应用共享内存和应用二级缓存后,如果将激活缓存的勾去掉: 那么应用共享内存和应用二级缓存的两个勾也应该主动被去掉。 这就是 Checkbox 的联动成果,即 Checkbox 1 须要管制 Checkbox 2 和 3 的编辑状态。同时,如果 Checkbox 1 被勾销抉择,那么 Checkbox 2 和 3 的选中状态也应该被勾销。 本文余下局部介绍这个联动成果的具体实现。 咱们首先把待实现的联动逻辑用自然语言书写进去: 如果激活缓存未勾选,则应用共享内存和应用二级缓存也不能勾选,并且不可编辑如果激活缓存被勾选,则应用共享内存和应用二级缓存能够别离编辑剩下的事件就是把下面两句话用 ABAP 编程语言实现进去。 咱们首先应用 PARAMETERS 关键字定义三个输出参数,如下图红色高亮下划线所示。每个输出参数的类型都是 abap_bool, 再通过 AS CHECKBOX 将其润饰成 checkbox 外观。其中 p_active 即文本为激活缓存 的输出参数,因为在它上的点击还要负责起另外两个输出参数的联动成果,所以这个参数咱们还必须加上 USER-COMMAND p 来润饰,这里的 p 能够任意换成其余的字母。 咱们双击上图的 TEXT-001 和 002,在弹出的页面能够给这两个 Text Symbol 保护对应的文本,如下图所示: 点击 Selection Texts,给三个输出参数也别离保护对应的文本: ...

December 19, 2022 · 2 min · jiezi

关于sap:SAP-OData-框架里的缓存Cache设计专题讲座试读版

正如本教程的开篇介绍文章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 的开发教程0. SAP 规范产品里应用 OData 服务的一些细节分享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 申请中返回多个节点的数据18. SAP ABAP OData 服务嵌套创立性能的实现步骤(Create Deep)19. 如何应用 ABAP 程序生产 SAP ABAP OData 服务20. 如何应用 ABAP 代码生产须要传递 CSRF token 的 OData 服务21. SAP ABAP OData 服务的 $count 操作实现22. SAP ABAP OData 服务的 $count 和 $inlinecount 两个操作的区别23. 如何给 SAP ABAP SEGW 开发的 OData 服务增加 Access-Control-Allow-Origin 响应头24. SAP 规范产品里应用 OData 服务的一些细节分享25. 答疑 - SAP OData 框架解决 Metadata 元数据申请的实现细节,前后端组件部署在同一台物理服务器26. SAP ABAP OData Gateway 框架里 /IWFND, /IWBEP 这些缩写代表了什么含意?更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务1. SAP Business Application Studio 里创立一个基于 CAP 模型的最简略的 OData 服务2. 如何给在 SAP Business Application Studio 里开发的 OData 服务筹备测试数据正在写作中,敬请期待本教程前一篇文章,25. 答疑 - SAP OData 框架解决 Metadata 元数据申请的实现细节,前后端组件部署在同一台物理服务器,咱们介绍了 SAP OData 框架解决 metadata 申请的流程,如下图所示: ...

December 19, 2022 · 2 min · jiezi

关于sap:什么是-SAP-ABAP-FDA-Fast-Data-Access-技术

疾速数据拜访 (Fast Data Access,缩写为 FDA) 是一种可在 SAP ABAP 环境中拜访的协定。 它容许针对 SAP HANA 提交 OPEN SQL SELECT 语句,从而应用 SAP ABAP 的数据格式。 在疾速数据拜访场景里,SAP ABAP 内表数据传输到数据库并返回。这种办法防止了按字段级别(field-wise)进行数据复制和数据格式转换的要求。 FDA 的次要长处是打消字段转换开销,缩小资源利用率并进步性能。 FDA 从 SAP ABAP 内核 7.42 开始曾经可用。对于 FOR ALL ENTRIES 语句,FDA 能够与 SAP ABAP 内核 7.43 及更高版本一起应用。 如何查看本人零碎的 ABAP 内核版本?System->Status, 点击这个放大镜按钮: 如图,我的零碎里,SAP_ABA 的版本号为 750. 许多参数可用于配置疾速数据拜访行为,如下所示。 与默认值的任何差别仅应在特定问题场景的状况下利用,例如基于 SAP support enginner 的倡议或基于 SAP 文档中给出的指南。 参数 dbs/hdb/supports_fda_prot:0 为激活,1为开启。rsdb/fda_shm_seg_size:用于 FDA 数据传输的内存大小。每个 Work Process 都有本人的 FDA data transfer 区域。源自 FDA 申请的 SQL 语句带有正文标记,该正文蕴含在 SQL 文本中并且能够位于跟踪(例如 ST05)或 SAP HANA SQL 缓存(例如事务 DBACOCKPIT 或 SAP HANA Studio)中察看到。 ...

December 19, 2022 · 1 min · jiezi

关于sap:SAP-UI5-Mock-Server-在响应-OData-请求时的单步调试

SAPUI5 中蕴含的模仿服务器模拟 OData V2 后端调用。 它模仿 OData 提供程序并且齐全基于客户端,这意味着不须要与近程主机的网络连接。 它拦挡对服务器的 HTTP 调用,并向客户端提供伪造的输入。 所有这些对于数据绑定和 OData 模型的应用都是通明的,感觉就像一个真正的服务器。 OData 模型不须要任何更改。 OData V2 模仿服务器提供模仿服务和模仿数据。 它反对基于服务元数据随机生成的数据以及 JSON 文件中提供的模仿数据。 为什么没有依照 productCollection json 文件里的数据返回?而返回的是 name1,name2,name3 这种有法则的数值。 从打印的 log 能看出,Mock Server 接管到的申请 url 是正确的。 上图第20行代码 Mock Server 构造函数里的 rootUri 参数:属性 rootUri 的 getter,必须是绝对的并且须要尾随“/”。 它还须要匹配 OData/JSON 模型中设置的 URI 或简略的 XHR 调用,以便模仿服务器拦挡它们。 默认值为空/未定义。 必须以尾部斜线 ("/") 结尾。 我没有指定 productCollection.json MockServer._generateDataFromEntitySet 什么数据也没检索到: MockServer._applyQueryOnCollection: 为 $inlinecount 返回数据: ...

December 19, 2022 · 1 min · jiezi

关于sap:SAP-Gateway-Foundation-里的-batch-操作

SAP Gateway Foundation (SAP_GWFND) 是一个在 SAP NetWeaver 中可用的软件组件。 SAP Gateway Foundation 提供开发和生成工具来为各种客户端开发工具创立 OData 服务。 简而言之,它在应用程序或 SAP Business Suite 数据与指标客户、平台和编程框架之间建设连贯。 SAP Gateway Foundation 提供以下性能: 将桌面程序与 SAP 系统集成的 SAP 解决方案的运行时环境运行时个性,包含用户界面、平安数据拜访、数据库连贯和网络通信,用于治理在框架之上运行的应用程序用于开发在框架上运行的应用程序或加强将桌面程序与 SAP 系统集成的 SAP 解决方案的基础架构和工具 随 SAP Gateway 2.0 的反对包 03 引入的规范模式的性能旨在合乎凋谢数据协定标准 v2.0 中概述的规范(参见 http://odata.org 非 SAP 站点上公布的信息 ). /IWCOR 命名空间里的类不倡议应用。 使数据服务的客户端可能 批处理 一组申请并在单个 HTTP 申请中将该零售送到数据服务是很有帮忙的。 上面介绍如何定义批量申请类型,以缩小须要收回大量申请的应用程序到数据服务的往返次数。 此外,它将 ChangeSet 语法形容为一种将一组申请逻辑分组为批处理中的单个单元的办法。 批处理申请容许将多个独自的申请分组到一个 HTTP 申请负载中。 批处理申请上下文中的单个申请是元数据申请、数据申请、数据批改申请、操作调用申请或函数调用申请。 批处理申请作为单个 HTTP POST 申请提交到位于绝对于服务根的 URL $batch 处的服务的批处理端点。 批处理申请中的单个申请依据申请呈现在批处理申请上下文之外时应用的雷同语义进行评估。 ...

December 19, 2022 · 1 min · jiezi

关于sap:SAP-Gateway-Foundation-Client-Proxy-的使用方法

依据理论应用场景,SAP OData 客户端代理配置有多种生产类型和 OData 版本。 OData Client Proxy是ABAP中OData服务生产中客户端(服务的消费者)和服务实现(数据提供)之间的接口。 这使 ABAP 开发人员可能创立 OData 客户端编码以在其 ABAP 编码中运行 OData 申请。 OData 客户端代理可用于不同的配置,具体取决于以后用例。 OData 客户端代理能够是本地的或近程的。 本地客户端代理在没有 HTTP 的状况下,应用此客户端代理在以后服务器上应用 OData 服务,长处是无 HTTP 开销,OData 服务在同一应用程序会话中解决。 这容许集成测试。 近程客户端代理应用此客户端代理来应用近程服务器上提供的 OData 服务。 异步(近程)客户端代理(仅限 OData V4),应用此客户端代理在应用异步解决 HTTP 调用的近程服务器上应用 OData V4 服务。 2428114 - SAP Gateway Foundation SAP_GWFND OData Client Proxy - Known Constraints 能够应用类 /IWBEP/CL_CP_CLIENT_PROXY_FACT 创立客户端代理实例。 它提供静态方法 CREATE_V2_LOCAL_PROXY 来创立本地版本 2 客户端代理的实例。 作为导入参数,须要您要应用的版本 2 OData 服务的服务 key(服务 ID 和服务版本)。此外,您能够抉择指定是否应写入工作负载跟踪,稍后能够在事务 STAD 中查看。 ...

December 19, 2022 · 1 min · jiezi

关于sap:SAP-Gateway-里的-REST-概念

SAP Gateway 有助于轻松配置和应用 SAP Business Suite 零碎的业务逻辑和内容,用于挪动和 Web 应用程序。它升高了拜访 SAP 数据所需的复杂性和技能组合,从而打消了部署阻碍。应用简略的界面有助于缩短开发工夫。 SAP Gateway 使以人为本的应用程序可能以简略且基于规范的形式通过风行的平台和设施(例如 iPad 和黑莓)应用 SAP Business Suite 数据。 它是一个框架,应用消费者技术、群件和挪动设施将业务用户连贯到 SAP 零碎,并基于凋谢规范(例如 Atom 公布协定和 OData),提供基于 REST 准则的简略服务。 SAP Gateway 应用 OData 协定。 OData 基于行业标准,应用基于 REST 的架构提供相似数据库的业务数据拜访。 对于 SAP 之外的生产,不须要 SAP 构造常识,并且它反对对象导航。 动静绑定产生在运行时。 OData 能够很容易地被各种平台应用,并且它提供了灵活性(过滤、查问选项)。 OData for SAP 蕴含 OData 和 SAP 正文(annotation)。 Roy Fielding 在 2000 年提出的 REST 模型(Representational State Transfer)是 SAP Gateway 的底层架构准则之一。SAP Gateway 通过保持六项核心准则来恪守 REST 范例: ...

December 19, 2022 · 1 min · jiezi

关于sap:SAP-Gateway-上的-Metadata-Cache

SAP Gateway Foundation 缓存服务的元数据信息以显着进步性能。 SAP 提供了三种类型的缓存: 在 hub 上缓存。在 Hub 零碎上缓存了元数据模型、正文模型以及服务的正文文本。 在后端缓存。在后端仅缓存元数据模型和正文模型。 后端不须要正文文原本进行服务实例化,因而不会在此处缓存。 co-deployment 场景。共部署场景是指 hub 和 backend 是一个零碎。 因而,缓存只需为 hub 和每个后端系统执行一次。 SAP 举荐在开发零碎上不关上缓存 cache: 在 OData 通道编程范例中,蕴含最初批改工夫戳的模型提供程序类仅在最后加载元数据并将其存储在 SAP Gateway Foundation 元数据缓存中时调用一次。 如果之后更改了模型提供者类(例如,因为编码更改或因为导入更改后的模型提供者类),元数据缓存会为每个服务文档或服务元数据文档申请执行一次握手,并查看缓存是否蕴含最新的元数据。 如果元数据已过期,则会主动触发缓存刷新。 SAP Gateway 元数据组件容许齐全缓存元数据,从而显着进步通过 SAP Gateway 发送的申请的性能。 存在三种不同的拜访场景: 须要满足对OData服务文档或OData服务元数据文档的申请。SAP Gateway 运行时自身须要拜访元数据能力解决申请。IW_BEP 软件组件须要拜访元数据能力解决申请。SAP Gateway 通过提供三级缓存策略为所有这些场景提供性能。 Access Scenario 1 - Web Infrastructure Cache在这种状况下,存在获取服务文档或服务元数据文档的消费者申请。 这意味着对资源的申请在生产环境中很少扭转。 为了应用 HTTP 规范技术,SAP Gateway OData Channel 依据 HTTP 缓存规范(Last-Modified)设置服务(元数据)文档的 HTTP 响应标头。 如果之前曾经申请过资源,则此参数使 Web 根底结构组件(例如,Web 服务器和浏览器)可能满足其缓存之外的申请。 ...

December 19, 2022 · 1 min · jiezi

关于sap:SAP-Gateway-在开发系统和生产系统上的缓存控制

SAP Gateway 元数据缓存能够启用和禁用,并且在非生产零碎中默认停用。 咱们举荐以下缓存设置: 开发零碎应该禁用 SAP Gateway 元数据缓存,以便始终获取最新的元数据(默认设置)。 OData 通道应用程序应在其模型提供程序类的 GET_LAST_MODIFIED 办法中设置最新工夫戳或保持默认实现。 生产零碎应始终启用 SAP Gateway 元数据缓存以进步性能(默认设置)。咱们须要在每次导入更改后的模型提供程序类后清理元数据缓存。 性能测试零碎应始终启用 SAP Gateway 元数据缓存以进步性能(默认设置)。 性能测试只能在 SAP Gateway 元数据缓存齐全初始化后进行,也就是说,至多必须调用一次服务。 有些资源不会常常更改,如果能够从客户端缓存而不是后端系统读取数据,则能够预期会有相当大的性能改良。 SAP Gateway 反对 HTTP 标头字段 if-modified-since。 该字段是一个工夫戳,能够读取并与应用程序数据的最初批改进行比拟。 如果最初一次批改早于 if-modified-since 则不须要读取应用程序数据,而是只返回 HTTP 304 响应——“未修改”。 前台:/IWFND/R_SM_CLEANUP Tcode:/IWFND/MED_ACTIVATE report:/IWFND/R_COF_CACHE_SETTINGS 数据库表 /IWFND/C_CONFIG CLEAN_UP 办法里:数据库表 /iwfnd/i_med_ctc 后盾服务器: 后盾事务码:/IWBEP/CACHE_CLEANUP 报表:/IWBEP/R_MGW_MED_CACHE_CLEANUP /IWBEP/L_MGW_MDE:Model Dependency 具体内容: /IWBEP/I_MGW_CTC: generic cluster table for meta data caching 前台和后盾服务器的数据库表: /IWBEP/I_MGW_CTC/IWFND/I_MED_CTC 所有的 cache 事物码: ...

December 19, 2022 · 1 min · jiezi

关于sap:SAP-Gateway-后台模型的缓存设置

/iwbep/cl_mgw_med_provider 类里的成员 mv_cache_active: 这个 cache 默认是开启状态。 调用 OData 服务的 MPC_EXT 类的 get_last_modified 办法获取最初一次批改的工夫戳。这个工夫戳(timestamp)也会影响到 cache 的行为,咱们后续也会具体探讨。 第12 行 super 办法调用返回的 timestamp 是 0: 配置表:/iwbep/c_config 如果 share memory 缓存没有开启,就从 cluster 缓存表中读取 Metadata: /iwbep/cl_mgw_med_utils=>get_cached_model( EXPORTING iv_last_modified = lv_last_modified - 20220817025754 iv_technical_name = iv_technical_name - ZBOOK_MANAGE_MDL iv_version = iv_version - 0001 iv_is_busi_data_request = mv_is_busi_data_request IMPORTING es_model_data = ls_model - /IWBEP/IF_MGW_MED_ODATA_TYPES\TYPE=TY_S_MED_MODEL ev_found = lv_found ). ...

December 19, 2022 · 1 min · jiezi

关于sap:SM59-事物码里的错误消息-SECSTORE035

零碎无法访问全局键值,其存储地位在配置文件参数 rsec/securestorage/keyfile 中指定。 应用事物码 RZ11,输出 rsec/securestorage/keyfile,点击 Display: 当这个参数门路指向的 .pse 文件蕴含非法字符或者文件内容小于 48 个字符,或者指向的 .pse 文件压根就不存在的时候,就会报这个谬误。 咱们在 SM59 里输出的明码,应该是通过某种形式存储在 secure storage 里。 https://www.michaelmanagement... 这个谬误音讯在函数 SECSTORE_CONVERT_KERNEL_RC 里抛出: 事物码 secstore,点击 Manage: 点击按钮 Check Key Status: Execution Result 显示为 Success 才行: 平安存储(Secure Storage)是 SAP NetWeaver Application Server for ABAP 的一个组件。 它容许加密存储 SAP 应用程序在登录到其余零碎时须要的敏感数据,或爱护外部数据结构的完整性。 例子: Passwords for RFC connectionsKeys for HMAC components数据库中数据的加密存储可避免未经受权的人员或程序拜访此数据。 应用程序传输到平安存储的数据被加密并存储在数据库中。当用户拜访数据时,它会再次解密。 加密密钥驻留在应用程序服务器的文件系统中,并由密钥管理程序保护。 出于法律起因,只有 SAP 应用程序能够应用平安存储。 数据能够以加密模式(例如明码)或未加密模式(例如用户 ID)存储。 如果存储加密数据记录,则数据文件的加密局部将应用规范加密密钥进行加密,这通常可能提供足够的安全性。 然而也能够应用独自的加密密钥和命令行工具 rsecssfx 从新加密平安存储。 此过程将独自的密钥存储在密钥门路的密钥文件中,并应用新的加密密钥主动加密平安存储中的所有数据记录。 ...

December 19, 2022 · 1 min · jiezi

关于sap:利用-ALV-实现增删改查系列之二仅让-ALV-报表某一列允许被编辑试读版

本系列前一篇文章 69. 利用 ALV 实现增删改查系列之一:让 ALV 报表进入可编辑状态,咱们介绍了如何让 SAP ABAP ALV 报表进入可编辑状态。在该状态下,ALV 报表的每一行,每一列都能够被任意批改,如下图所示: 然而在理论的我的项目中,更常见的需要是,ALV 报表只容许局部列可能编辑。 本文介绍只将 ALV 报表的局部列设置为可编辑状态的技术实现。 先看一下实现的成果。执行报表,发现 ALV 背景色为灰色,意味着这个报表默认状态为不可编辑。点击工具栏的眼镜笔图标: 此时只有 Airfare 列能够被编辑,其余列依然处于不可编辑状态。 上面是实现关键点介绍。 因为从本例开始,咱们实际上将输入内容从逻辑上拆分成两局部,一部分可编辑,另一部分不可编辑。咱们须要通过某种数据结构,通知 ALV 框架如何辨别这两局部。这个数据结构就是下图红色区域所示。其中第 11 行 INCLUDE STRUCTURE sflight 即 ALV 输入的业务数据即 sflight 数据库表的内容。第 12 行定义的 celltab 即是控制结构,该构造负责保护 ALV 某一列是否容许被编辑。 调用第 31 行 set_table_for_first_display 进行 ALV 输入时,输出参数 gs_layout 的 stylefname 字段值设置为 CELLTAB, 意思是通知 ALV 报表框架程序,输入数据结构 gt_outtab 内表里行构造的 CELLLTAB 字段,负责管制 ALV 列的可编辑性。 在第 62 行,通过 SELECT SQL 语句,将 sflight 数据库表里的数据读取进去,写到 ALV 报表调用 set_table_for_first_display 的输入内表 gt_outtab 中。这只是实现了业务数据的读取,接下来从 68 行开始的 LOOP 循环,遍历 ALV 待输入的每一条 sflight 数据,在代码第 71 行判断,如果检测到其 seatsmax 字段值大于 300,就容许这一列的某个字段能够被编辑,反之设置成只读。下图 72 行调用 fill_celltab 这个 subroutine,传入 RW 代表 Read & Write,可读可写。RO 的意思是 Read-Only, 只读。 ...

December 19, 2022 · 3 min · jiezi

关于sap:利用-ALV-实现增删改查系列之一让-ALV-报表进入可编辑状态试读版

在 CSDN 和我的常识星球里有敌人向我提出同样的问题,询问如何在 ALV 里实现增删改查操作。 尽管需要只有一句话,然而这个需要背地波及到的知识点不少,因而笔者会通过几篇文章的篇幅,来介绍这个需要的具体实现步骤。 本文先解决第一个阻碍,如何让 ALV 报表进入可编辑状态? 笔者通过一个 ABAP 报表来阐明。 ALV Grid 控件里每个单元格的状态有两种: non-editable 状态,不可编辑editable 可编辑状态其中 editable 状态又分为两种: (1) editable 并且沉闷(active),此时单元格曾经能够输出新的值(2) editable 然而不沉闷(not active),此时单元格无奈进行编辑 这两种 editable 的不同状态,能够通过 ALV Grid 的 API 来切换。 咱们还是先来看看通过本文介绍的实现步骤之后,能达到什么样的成果。 咱们执行 ABAP 报表(残缺的源代码在文末取得),看到如下的 ALV 报表。 首先,这个报表单元格的背景色是红色,这意味着单元格能够编辑。并且工具栏上咱们也看到了新建,插入,删除和复制这四个按钮。 我轻易在单元格里胡乱保护了一些值,而后通过新建按钮,创立了一些空白行。当然,目前还没有实现保留性能。 显然,ALV 报表的这个状态,就是咱们刚刚介绍过的 editable 并且沉闷(active)状态。 点击上图右下角按钮,能够切换成 editable 然而不沉闷状态。这个按钮蕴含了一幅眼镜和一只笔的图案,眼镜代表只读形式查看,笔代表批改。 点击之后,ALV 报表单元格的背景色变灰,同时工具栏上那四个提供编辑性能的按钮也隐没了。此时这个 ALV 报表的单元格,临时不反对批改,除非咱们再次点击眼镜和笔的按钮。 具体步骤参考这里。

December 19, 2022 · 1 min · jiezi

关于sap:使用-SAP-UI5-Smart-Chart-控件轻松绘制十数种不同类型的专业图表试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程本专栏打算的文章数在 300 篇左右,到 2022年11月19日为止,目前曾经更新了 149 篇,专栏完成度为 49.6%.作者简介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 本地开发环境的搭建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 利用开发教程之一百二十二 - 在 SAP UI5 利用中应用浏览器原生的 Fetch API 发动网络申请SAP UI5 利用开发教程之一百二十三 - 应用 Busy Dialog 动画阻止 SAP UI5 利用按钮短时间内疾速被点击SAP UI5 利用开发教程之一百二十四 - 应用函数节流思维防止 SAP UI5 利用里按钮短时间内被高频反复点击SAP UI5 利用开发教程之一百二十五 - SAP UI5 进阶 - XML 视图里定义的 UI 控件,运行时实例化的技术细节分析SAP UI5 利用开发教程之一百二十六 - SAP UI5 进阶 - JSON 模型字段里的值,显示在最终 UI5 界面上的神秘剖析SAP UI5 利用开发教程之一百二十七 - SAP UI5 利用的全局配置(Global Configuration) 的设计和应用SAP UI5 利用开发教程之一百二十八 - SAP UI5 智能控件 Smart Controls 的初步意识SAP UI5 利用开发教程之一百二十九 - 如何给 SAP UI5 SmartField 增加 Value Help 性能SAP UI5 利用开发教程之一百三十 - 如何使 SAP UI5 SmartField 在运行时渲染成超链接的模式并反对跳转SAP UI5 利用开发教程之一百三十一 - SAP UI5 Cross Application Navigation (跨利用间跳转)的本地模仿实现SAP UI5 利用开发教程之一百三十二 - SAP UI5 Simple Form 控件的应用办法介绍SAP UI5 利用开发教程之一百三十三 - SAP UI5 利用元数据文件 manifest.json 的加载和解析原理解说SAP UI5 利用开发教程之一百三十四 - SAP UI5 Simple Form 属性 columnsL,columnsM,columnsXL 的属性深刻分析SAP UI5 利用开发教程之一百三十五 - SAP UI5 利用的屏幕尺寸检测工作原理深刻分析SAP UI5 利用开发教程之一百三十六 - SAP UI5 利用 SimpleForm 控件 ResponsiveGridLayout 布局的工作原理深刻分析SAP UI5 利用开发教程之一百三十七 - SAP UI5 SimpleForm 里在程度方向显示多组 Form 元素的实现办法SAP UI5 利用开发教程之一百三十八 - SAP UI5 控件库里 Form 控件和 SimpleForm 控件的区别和分割解说SAP UI5 利用开发教程之一百三十九 - SAP UI5 SmartForm 智能表单控件的应用办法介绍SAP UI5 利用开发教程之一百四十 - 如何应用 JavaScript 代码连贯部署在 SAP ABAP 服务器上的 OData 服务SAP UI5 利用开发教程之一百四十一 - 如何在 SAP UI5 利用里平安存储一些敏感的数据,防止被上传到 Github 去的危险SAP UI5 利用开发教程之一百四十二 - SAP UI5 的 TimePicker ,一个钟表外观的工夫抉择控件SAP UI5 利用开发教程之一百四十三 - SAP UI5 的申明式初始化 Component 定义(Declarative API for Initial Components)SAP UI5 利用开发教程之一百四十四 - 授人以渔 - 如何查找 SAP UI5 官网上没有提到的控件属性的应用明细SAP UI5 利用开发教程之一百四十五 - SAP UI5 本地开发时 ui5.yaml 文件对构建 Release 版本利用目录的影响剖析SAP UI5 利用开发教程之一百四十六 - 通过 SAP UI5 ODataModel API 在 JavaScript 代码里拜访 OData 元数据SAP UI5 利用开发教程之一百四十七 - SAP UI5 SmartTable 控件的应用介绍SAP UI5 利用开发教程之一百四十八 - SAP UI5 表格数据如何导出成 Excel 文件(Table Export As Excel)SAP UI5 利用开发教程之一百四十九 - SAP UI5 Table 控件数据进行 Excel 导出时如何进行格局管制SAP UI5 利用开发教程之一百五十 - 以前编写好可能失常运行的 SAP UI5 代码,几个月后突然不能运行了该怎么办?SAP UI5 利用开发教程之一百五十一 - 对于 SAP UI5 XML 视图里控件事件处理函数名称中的 . (点号) 问题的探讨SAP UI5 利用开发教程之一百五十二 - 谈谈 SAP UI5 变量和办法的命名标准SAP UI5 利用开发教程之一百五十三 - 应用 SAP UI5 Smart Chart 控件轻松绘制十数种不同类型的业余图表SAP UI5 利用开发教程之一百五十四 - 正在写作中......阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和 汪子熙 微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

December 19, 2022 · 7 min · jiezi

关于sap:SAP-ABAP-CDS-view-里-INNER-JOIN-和-Association-的区别

最近有敌人在我的常识星球里向我发问,SAP ABAP CDS view 的 INNER JOIN 和 Association 的性能能够了解为一样吗? (对于退出我的常识星球的形式,请移步本文文末) 本文就来聊一聊这个话题。既然 CDS view 里同时反对了 INNER JOIN 和 Association 两种操作,那阐明二者必然存在一些差别。 首先创立一个蕴含 INNER JOIN 的 CDS view,将 sflight 和 spfli 两张表通过独特的 carrid 字段连贯在一起,sqlViewName 取名为 ZJERRYCDSJ. 这个 CDS view 将 sflight 的三个字段和 spfli 数据库表的两个字段 airpfrom 和 airpto 裸露给消费者。 而后咱们用上面这条 ABAP 语句从 CDS view 里仅仅读取来自 sflight 数据库表的两个字段。 DATA: lt_data TYPE TABLE OF ZJERRY_CDS_VIEW_JOIN. SELECT carrid, connid INTO CORRESPONDING FIELDS OF TABLE @lt_data FROM zjerry_cds_view_join. ...

December 19, 2022 · 2 min · jiezi

关于sap:如何给在-SAP-Business-Application-Studio-里开发的-OData-服务准备测试数据试读版

在开始本步骤的学习之前,请大家务必实现前一步骤1. SAP Business Application Studio 里创立一个基于 CAP 模型的最简略的 OData 服务的学习。换言之,大家曾经在 SAP Business Technology Platform 上的 Business Application Studio 里,创立好了 Dev Space,并且领有一个可能失常浏览元数据(metadata) 的 OData 服务了,如下图所示: 本文咱们给这个 OData 服务筹备一些业务数据,不便咱们本地测试。 在 CAP 工程的 db 文件夹下,新建一个 data 文件夹,而后新建一个 csv 文件,取名 jerryodata-Products.csv. 这个 csv 文件的作用就是给定义在 db 文件夹里的 schema.cds 文件中的 Products Entity 筹备测试数据,csv 文件的名称可不是随随便便起的,而是依照 命名空间-Entity 名称.csv 的标准来起的。这里的 jerryodata 来自 schema.cds 文件里应用的命名空间(namespace). 余下具体的操作步骤,参看这篇文章。

November 27, 2022 · 1 min · jiezi

关于sap:SAP-Business-Application-Studio-里创建一个基于-CAP-模型的最简单的-OData-服务试读版

本教程曾经破费了 24 个文章的篇幅,介绍了应用 SAP ABAP SEGW 这个开发工具,开发基于 SAP ABAP 技术栈的 OData 服务的具体步骤。 正如本教程目录 中提到的那样,SAP OData 开发技术蕴含传统的 ABAP,RAP(Restful ABAP Programming) 和 CAP(Cloud Application Programming) 三大门派。正好近期笔者的常识星球里,有敌人在尝试应用 CAP 开发 SAP OData 服务时遇到了问题,向我发问: 我当初正在跟着官网的 btp 教程在进行学习,遇到了一个问题,我想在btp定义一个 odata 服务,在教程中有一步是将一个数组的 csv 文件从db/data这个门路中插入,我发现执行过后无奈实现教程里的成果,提醒我 No database credentials provided,想问一下这一步该如何操作?还是说我后面的步骤呈现了问题? 所以我正好借此机会,开启本教程 CAP 流派开发 SAP OData 服务的第一篇文章。 基于 CAP 开发 SAP OData,应用的工具不再像本教程之前介绍的那样在 SAP ABAP SEGW 事物码里进行,而是应用 SAP Business Application Studio,它是 SAP 业务技术平台 (SAP BTP) 上以服务形式提供的一个浏览器里运行的开发工具,为 SAP Intelligent Enterprise 即智慧企业业务应用程序高效开发量身定制了一套古代开发环境。 SAP Business Application Studio 基于 Code-OSS,这是一种用于构建 Visual Studio Code 的开源软件。 SAP Business Application Studio 作为云服务提供,通过浏览器提供相似传统桌面 IDE 等同程度的开发体验。 ...

November 27, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-Function-Module-的动态调用方式使用方式介绍试读版

在本教程后面的步骤 7,咱们介绍了 ABAP Function Module 的根本应用办法: 7. ABAP function module 的应用最近我的常识星球有敌人发问: 大佬,我想问一下动静获取到物料主数据的字段名之后,如何将获取到的字段名去与bapi中的字段名对应起来从而去批改物料主数据中对应的字段值呢? 这个需要看起来有点简单,但只有把握了本文介绍的动静调用 ABAP Function Module 的技巧之后,就不难实现了。 为了将 ABAP Function Module 动静调用的场景同常识星球里对于物料主数据相干的构造抽离进去,我设计了这样一个场景来模仿。 我创立了一个测试用的 ABAP Function Module,接管 4 个输出参数,全副选取了 Optional 的 checkbox,意思是全副为可选参数。消费者调用时,能够仅传入局部输出参数甚至一个也不传入。 函数体的实现也较为简单,应用 IS SUPPLIED 检测到如果有对应输出参数传入,则打印对应的输出参数值。 假如咱们通过某种逻辑,比方调用其余的函数,或者从数据库配置表里读取到了以后应该调用这个函数的输出参数名称为 iv_id1 和 iv_text3, 以及对应的输出参数值为 test data1 和 test data3, 如何来调用这个函数呢? 最傻的写法当然是老老实实把第一个参数和第三个参数值传递进去: REPORT zlocal.CALL FUNCTION 'ZDYNAMIC_FM' EXPORTING iv_id1 = 'test data1' iv_text3 = 'test data3'. 严格来说,这种写法基本不合要求,因为待传递的输出参数值,是通过调用其余函数或者从数据库表里获取的,咱们在编写这段代码的时候基本不晓得有哪些参数须要传递,所以无奈把这些参数,通过惯例形式传入到函数内,而只能采取动静传递的形式。 上面是具体的实现步骤。

November 27, 2022 · 1 min · jiezi

关于sap:关于-SAP-HANA-数据库的死锁问题deadlock

一个敌人在我的常识星球里发问: hana数据库产生死锁后,会主动解开吗?还是会等着主动超时后报错。 笔者在 15 年的 SAP 开发生涯中对 HANA 数据库接触得比拟少,这里只能依据网络上搜寻出的一些资料来答复。 首先,如果是 ABAP 服务器,当 SQL 语句执行时呈现死锁,会立刻呈现运行时异样,终止以后程序的执行: 对于 ABAP 死锁的介绍,参考笔者这篇文章:ABAP面试题系列:写一组会呈现死锁(Deadlock)的ABAP程序。 回到 HANA 数据库的死锁介绍。 这篇文章采取了和 Jerry 上述文章里相似的思路,在 HANA 数据库里刻意制作一个死锁。 在这个 SAP Note 1999998 - FAQ: SAP HANA Lock Analysis 里提到, 死锁是两个或多个事务互相穿插锁定的状况,因而任何事务都无奈持续进行。 通常死锁是由利用程序设计缺点引起的,但在主键束缚的上下文中也可能存在更多的技术死锁(这种状况请参考 SAP note 2429521)。 当 HANA 数据库呈现死锁时,理论行为取决于死锁类型: Transactional Lock: 如果 SAP HANA 辨认出基于事务锁的死锁,其中一个事务将被终止并收回以下谬误音讯:SQL error 133: transaction rolled back by detected deadlock这种行为不同于 Oracle 等其余数据库,后者的死锁只会终止以后的 DML 操作,而不是终止整个事务。 Internal Lock: 基于外部锁的死锁(详情查看 SAP Note 2304201)被视为 SAP HANA 的 issue,只能通过重启来解决。能够应用 HANA hdbcons 死锁检测器性能查看某些(但不是全副)internal lock,如 SAP Note 2222218 中所述: ...

November 27, 2022 · 1 min · jiezi

关于sap:关于-SAP-ABAP-SYSTEMSHMOPENCHANGELOCK-运行时错误的问题

有敌人在技术探讨群里发问: 遇到 SYSTEM_SHM_OPEN_CHANGE_LOCK 的运行时谬误:Open change lock on transactional area in COMMIT: 上图显示,谬误在 SAP ABAP 规范程序 SAPMHTTP 里抛出,这阐明是 ABAP 服务器进行 HTTP 申请解决或者通信时产生的这个谬误。 另一个谬误是 SYSTEM_NO_SHM_MEMORY 谬误,程序试图在 ABAP 服务器的共享内存区域申请大小为 9168 字节的内存,然而因为共享内存区域可用内存有余,导致内存申请失败,因为程序终止。 从待申请的内存大小看,9168 字节还不到 9k 大,这个内存申请的大小是没有问题的,问题出在 ABAP Netweaver 服务器的共享内存曾经简直被耗尽了。 应用事务码 SHMM,咱们能够查看 ABAP Netweaver 服务器共享内存区域的曾经占用的空间,可用空间和曾经调配的内存空间,如下图所示: ABAP Netweaver 服务器的共享内存是用来做什么的?顾名思义,共享,那么是在哪些实体间共享数据? 答案是在用户会话即 User Session 之间共享数据。 ABAP 服务器里有三种粒度的会话,依照粒度从大到小顺次排序为:User Session,ABAP Session 和 Internal Session,如下图所示: 对于这些会话间的差别和分割,请参看笔者的 ABAP 学习教材第 58 课: 58. 通俗易懂的 SAP ABAP 会话治理(Session Management)概念解说,蕴含具体的实例回到这个 ABAP 运行时谬误,须要分割系统管理员(Basis),请其查看事物码 SHMM 里共享内存的调配和耗费状况,如果的确可用共享内存曾经被耗尽了,须要批改零碎参数,以增大可用内存。 ...

November 27, 2022 · 1 min · jiezi

关于sap:关于-SAP-Cloud-Connector-500-failed-to-sign-the-Certificate-的错误消息

有敌人向我询问一个对于 SAP Cloud Connector 的问题,谬误音讯如下: 500 failed to sign the Cloud Connector Certificate for subaccount XXX. Verify Configuration and proxy settings. See Log And Trace Files and in particular ljs_trace.log for details. Consult SAP note 2460641 for possible remedies.下面这段谬误的大抵意思如下: 试图为 subaccount XXX 签订 Cloud Connect 证书时遇到 500 谬误,请验证 Proxy 相干的设置。查看浏览器操作台的 Log And Trace Files 以及日志文件 ljs_trace.log 来取得更多的明细。 2019年11月6日有一位从业者在 SAP 社区上提出了一个截然不同的问题: 社区专家 Morten 认为这还是一个连接性问题(Connectivity Issue),倡议首先确认是否须要用代理,其次查看代理信息是否正确。能够依照 sap note 2460641 和 2377425 来排查。 ...

November 27, 2022 · 1 min · jiezi

关于sap:SAP-UX-用户体验师这个职位的技能要求和日常工作内容介绍

最近有敌人向我征询对于 SAP UX 用户体验或者界面设计的工作岗位的一些状况。本文简略聊一聊这个话题。 留神:本文不代表 SAP 官网观点,仅仅是我作为一个开发人员,依据本人平时和 UX 共事协同工作的一些察看写作而成。 咱们首先来看看 SAP 官网招聘对 UX 这个职位的工作要求。 咱们找到 SAP招聘 这个官网订阅号,点击搜寻图标: 输出关键字 UX,而后依照公布工夫排序,点击 SAP 最新公布的一个帖子:SAP全球化利用开发团队(CIC)XX 进行时 关上帖子往下滑动,能够找到 Senior UX Designer 的职位要求。 看一下具体的要求。留神这是 高级 UX 设计师 的职位要求,高级和中级设计师,能够将此作为职业生涯致力的方向。 5+ Years’ experience in Interaction Design,have advanced skills in interaction design (ideally application design or design concepts):五年以上交互式设计畛域的工作教训,熟练掌握相干设计技能。Experience with tools such as Axure, Balsamiq and Figma:纯熟使用 Axure, Balsamiq 和 Figma 等设计工具。Knowledge of HTML5, CSS3 are beneficial:HTML5 和 CSS3 常识是加分项。Knowledge of Fiori Design Guidelines is a plus:理解 SAP Fiori 设计规范是加分项。Knowledge of Design Thinking with customer is a plus. 理解同客户的 Design Thinking 方法论是加分项。Experience in software development is advantageous:自身有软件开发教训者优先。Strong communication skills and the ability to effectively engage and convey ideas to cross-functional technical and non-technical teams:具备优良的沟通技能,可能无效地在跨职能的技术和非技术团队之间参加协同工作,以及清晰传播本人的想法。Excellent written and verbal communication skills in English:杰出的英语书面和口头沟通能力。Creative and analytical thinking is required:具备创造性和剖析性思维。Demonstrated ability to learn complex technology:具备学习简单技术的能力。Must be a solid team player in international teams with good writing, presentation and time management skills:可能成为全球化团队中牢靠的团队成员之一,具备良好的写作、演讲和工夫治理技能。那么 UX 交互设计师的日常工作内容是什么? ...

November 6, 2022 · 1 min · jiezi

关于sap:关于-SAP-Spartacus-重定向部分外部-url-到后台系统的问题

许多客户将采纳逐渐(route-by-route)的形式从 Accelerator 迁徙到 spartacus,这意味着客户将应用不同的零碎在同一域中同时驱动局部店面。 咱们心愿反对具备可配置的路由,并可抉择从 SPA 中退出并从新加载页面以容许后端驱动的响应(基于 URL 模式)。 只有咱们在 SPA 的范畴内,咱们只执行 interal 导航,因为应用了 Angular 的 routerLink,依照设计它不会进行齐全从新加载。 然而,咱们能够应用 Guard 定义虚构路由,强制执行指定配置门路的齐全从新加载。 为了更容易测试(不要进入闪动页面从新加载的有限循环),通过扩大 External Routes Guard 来提早页面从新加载: @Injectable()export class CustomRoutingMigrationGuard extends ExternalRoutesGuard{ redirect(route, state) { console.log('migration guard activated, redirect in 5 seconds'); setTimeout(() => { super.redirect(route, state); }, 5000); }}在 app Module 里定义这个 Guard: providers: [ { provide: ExternalRoutesGuard, useClass: CustomRoutingMigrationGuard }, ]测试: routing: { internal: [ '/**', '!/cart', '!/?', '!/???', '!/login', '!/login/register', '!/product/*/*', '!/Open-Catalogue/**/p/**', ] }验证上面列出的页面是否执行从新加载(因为短少后端规定而产生有限循环的从新加载,这些规定通常会依据 URL 其模式出现不同的店面): ...

November 6, 2022 · 1 min · jiezi

关于sap:SAP-Java-Connector-正常运行所需的网络配置

SAP JCO 在本地装置胜利并且将目录加到 PATH 环境变量后,运行命令行: java -jar sapjco3.jar 如果看到下列弹出窗口,阐明 JCO 配置胜利。 JCo 应用基于 TCP/IP 的 CPI-C 协定进行底层网络通信。通常TCP/IP协定是操作系统提供的一种通信服务。因而,作为 JCo 工作的先决条件,必须配置 TCP/IP 服务。 如果您的机器上装置了无效的 SAPGUI,则所有必要的 TCP/IP 配置步骤都应该在其装置过程中实现。然而,如果您在新零碎上从头开始装置 JCo,则必须留神以下事项:确保能够通过应用其 IP 地址(ping <nnn.nnn.nnn.nnn>)物理拜访 SAP 应用程序、音讯和网关服务器或 SAP 路由器。如果这不起作用,请向您的网络管理员寻求帮忙。如果须要,请确保 SAP 应用程序、音讯和网关服务器或 SAP 路由器也能够通过应用它们的逻辑主机名(ping <主机名>)来拜访。如果无奈通过这种形式拜访它们,请查看您的 DNS(域名服务)条目或在本地主机文件中保护相应的主机名(对于 Windows 零碎:<WinDir>\system32\drivers\etc\hosts)。如果您想应用负载平衡登录,请查看是否在服务文件中定义了 SAP 音讯服务器服务及其 TCP 端口。服务文件中必须有一个格局为 sapms<SID> <portnumber>/tcp 的条目,其中 <SID> = 3 个字母的 SAP 零碎 ID。 (在 Windows 零碎中,服务文件通常存储在 <WinDir>\system32\drivers\etc\services)如果想从 Unicode SAP 零碎到 JCoServer 实例进行 RFC outbound 调用,必须在事务 SM59 中为您的 RFC 指标设置 Unicode 选项。 ...

November 6, 2022 · 1 min · jiezi

关于sap:SAP-Java-Connector-组件介绍

SAP Java Connector 3.1 运行时环境由两局部组成: sapjco3.jar - 蕴含 JCo 的 Java 运行时类的存档{library prefix}sapjco3{shared library extension} - 蕴含 JCo 原生代码的 JNI 库JCo 的 JNI 库蕴含用于网络通信的本机代码。 JCo 存档和 JNI 库之间只有涣散的耦合,然而 JCo 须要 JNI 库的特定最低版本,该版本通常与散发包中的 JCo 存档一起提供。 留神:如果开发人员应用的是 32 位 JVM,则还须要 32 位 JCo JNI 库,无论是在 32 位还是 64 位操作系统上运行都是如此。 运行时初始化逻辑当应用程序第一次援用 JCo 类时,它会被关联的类加载器(class loader)加载。 在此过程中,将执行 JCo 的动态初始化程序。该例程将应用以下算法搜寻并加载 JCo JNI 库: 尝试从 sapjco3.jar 文件所在的同一目录加载 sapjco3 JNI 库。尝试从 sapjco3.jar 文件所在的平台相干子目录加载 sapjco3 JNI 库。适当的 JNI 库加载门路是通过思考以后应用的操作系统和 JVM 运行时环境来确定的,并援用以下子目录之一:ntamd64,ntintel,linuxx86_64,linuxppc64le,linuxs390x,darwinintel64,rs6000_64,hpia64,sunx86_64,sun_64,os390_64,as400_pase_64沿着 java.library.path 零碎属性中定义的目录门路从左到右搜寻 sapjco3 JNI 库,如果找到则从那里加载它。留神:如果不手动设置该属性,JVM 通常会在启动时将 OS 特定的库门路环境变量设置为默认的 java.library.path 零碎属性。通过将此工作委托给它的 System.loadLibrary(String libname) 办法,让 JVM 解决 sapjco3 JNI 库的加载。 ...

November 5, 2022 · 1 min · jiezi

关于sap:SAP-Java-Connector-的配置指南

SAP Java 连接器 (JCo) 3.1 须要 Java 运行时环境 (JRE) 版本 8 或 11。无关受反对平台和 Java 运行时环境的最新具体列表,请参阅 SAP 阐明 2786882。 最新版本的 SAP Java 连接器可从 SAP 反对门户网站下载,网址为 https://support.sap.com/jco。 在那里,您还能够找到各种反对的平台和处理器的所有可用散发包以及 PDF 文件的 JCo 3.1 文档。请留神,您不能在一个过程中同时应用 JCo 3.0 和 JCo 3.1。 在 Java 应用程序服务器中应用 JCo 时,您须要确保 JCo 库只加载一次。 最好将 sapjco3.jar 文件放入零碎类门路或应用程序服务器自身的启动类门路中来实现这一点。 如果 JCo 被不同的类加载器加载两次,这也会导致 JCo 本机库被加载两次,这将失败。因而,应用程序绝不能将 JCo 打包到它本人的部署单元中,这意味着不要将 sapjco3.jar 存档或其内容打包到应用程序的 .war 或 .ear 存档中。 应用程序必须假设 JCo 曾经装置并在相应的 Java 应用程序服务器运行时中提供。 要装置实用于 Windows 的 JCo,请将相应的散发包解压缩到本人的任意目录 {sapjco3-install-path}。留神:不要将 sapjco3.dll 复制到 {windows-dir}\system32 或 {windows-dir}\SysWOW64 目录中。 这将毁坏已装置在同一零碎上的其余 JCo 版本的可操作性。 此外,如果 sapjco3.dll 未来在相应的 Windows 系统目录中被替换,您可能会面临以后装置也不再工作的危险。 ...

November 5, 2022 · 1 min · jiezi

关于sap:关于-SAP-Spartacus-SSR-345-版本优化的-reuseCurrentRendering-flag

concurrency: 50 means that OptimizedSsrEngine will perform at most 50 parallel rendering tasks. 反对同时解决 50 个并发渲染申请。 With the option reuseCurrentRendering enabled, it means: At most 50 different URLs can be rendered at once (regardless the number of parallel requests).That implies: if you send parallel requests for 51 or more different URLs at once, then the reuqests for the 51st URL (and more) will fallback immediately to CSR. And it’s by design.开启这个 reuseCurrentRendering 之前,如果第一个申请在渲染 url A,则进来的其余申请渲染同一个 url 的 HTTP request,会立刻 fallback 成 CSR. ...

November 5, 2022 · 1 min · jiezi

关于sap:关于-SAP-AMDP-调用错误消息-restricts-access-to-a-client

近日一个敌人做 SAP AMDP 开发时,遇到如下谬误音讯:XXX is client-specific and restricts access to a client. The calling AMDP method XX must also allow this restriction. 本文将这个谬误音讯相干的背景常识记录如下。 产生问题的场景是在基于 S4/HANA 零碎的 ABAP Test Cockpit ATC 和 CVA 查看的代码加强过程中,决定将 OpenSQL Select 语句挪动到通过 HANA 数据库上的 AMDP 存储过程拜访的 CDS 视图中。 创立 CDS 视图,在其中应用 WHERE 子句中的会话参数 $session.client 依据 MANDT 列上的会话客户端值过滤数据,如上面的 SELECT 代码所示: select * from vbrk where vbrk.mandt = $session.client; 当我尝试在我的 AMDP 类办法(HANA 数据库上的存储过程)中应用此 CDS 视图时,我遇到了以下谬误,导致 AMDP 无奈胜利编译和激活。 ...

November 5, 2022 · 1 min · jiezi

关于sap:通俗易懂的-SAP-ABAP-会话管理Session-Management概念讲解包含具体的实例

本专栏打算的文章数在 150 篇左右,到 2022年10月6日为止,目前曾经更新了 56 篇,专栏完成度为 37.3%笔者这套零根底疾速学习 ABAP从 2021年4月10日写下第一篇文章以来,感激宽广学习者的反对,目前曾经更新了 56 篇。本教程打算破费 150 以上的篇幅,向大家具体介绍 SAP ABAP 开发的方方面面。 大家在学习教程过程中,如果有任何对于 SAP ABAP 开发方面想理解的内容,能够间接在教程各篇文章下评论留言,也能够在《零根底疾速学习 ABAP 读者意见反馈和下一步写作计划表》里留言。我会将大家的意见对立汇总,作为我更新教程的内容参考起源之一。 零根底 ABAP 学习教程系列文章的目录1. ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍2. ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别3. ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素4. ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型5. ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识6. 通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧7. ABAP function module 的应用8. ABAP subroutine 的定义和应用9. ABAP 中的变量和常量10. ABAP 编程语言中的零碎字段(System Fields)11. 什么是 ABAP Field Symbol12. ABAP 援用类型介绍13. 最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍14. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)15. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)16. 用 ABAP 读取本地文本文件内容17. 26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据18. ABAP 如何解析 JSON 数据19. 如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎20. 面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法21. SAP ABAP 报表的用户输出性能22. 应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据23. 通过一个具体的例子,解说 SAP BDC 技术的应用步骤24. 从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分25. 如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储26. 如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称27. 一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤28. SAP ABAP 字符串变量容易忽略和混同的一些知识点SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍29. 授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储30. SAP ABAP 零碎进行数据库表查问的几种罕用办法31. 如何让 ABAP 服务器可能响应通过浏览器发动的自定义 HTTP 申请32. 一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧33. 如何应用 saplink 装置其余网站上提供的 ABAP 程序34. ABAP 报表中如何给报表的输出参数削减 F4 Value Help35. ABAP 报表中如何以二进制形式上传本地文件36. ABAP 里文件操作波及到中文字符集的问题和解决方案37. 如何对 ABAP 数据库表通过 ABAP 代码进行更新和删除操作38. 如何让 ABAP 报表在后台作业的模式下运行39. 如何应用 ABAP 代码解析 XML 文件40. 如何应用 ABAP 代码发送邮件到指定邮箱41. 如何应用 ABAP 代码发送带有 PDF 附件的电子邮件50. 如何在 SAPGUI 里显示上传到 ABAP 服务器的 PDF 文件51. 如何在 SAP ABAP 零碎中应用 Adobe Form52. 应用 SAP ABAP 代码生成 PDF 文件,填充以业务数据并显示在 SAPGUI 里53. 如何把 SAP ABAP 零碎里一张数据库表的内容,显示在 Adobe PDF Form 里54. 应用 ABAP 代码制作手机可能扫描的二维码(QRCode)55. ABAP 是一门反对面向过程和面向对象的混合型编程语言,理论开发中用哪种?更多文章正在写作中Office 专题42. 用 ABAP 新建本地 Excel 文件并写入数据43. 如何应用 ABAP 创立蕴含不同字体大小的 Word 文档更多文章正在写作中ALV 开发专题44. 27 行代码开发一个最简略的 SAP ALV 报表45. 48 行代码给 ABAP ALV 报表的数据行削减色彩成果46. 77 行代码实现ABAP ALV 中的双击事件处理47. SAP ABAP ALV 档次程序表如何应用双表头(Multiple Headers)进行数据输入48. 如何在 SAP ABAP ALV 报表里以交通灯的形式显示某一列的值49. 在弹出对话框窗口里显示 SAP ABAP ALV 列表56. 入手开发一个有用的 ABAP ALV 工具 - 查看指定用户的 ABAP 传输申请,模仿 SE10 事物码57. SAPGUI 里 F1 功能键的用法专题解说更多文章正在写作中本教程之前的步骤,给大家介绍了如何通过 F1 快捷键,关上 ABAP 帮忙文档的办法: ...

November 5, 2022 · 2 min · jiezi

关于sap:SAP-ABAP-Netweaver-里的-ABAP-会话概念

每个用户会话能够蕴含一到多个 ABAP 会话。 每个 ABAP 会话都调配有本人的 ABAP 内存区域,其中能够存储数据簇。 调用序列的程序共享对这些集群的拜访权。 能够按如下形式在同一个用户会话中关上新的 ABAP 会话: 在工具栏中的命令字段中的“/o”之后输出事物码。调用功能模块TH_CREATE_MODE。在解决异步 RFC 时调用 dynpro。 为此,RFC 客户端须要一个额定的 ABAP 会话来与 SAP GUI 进行通信。每个用户会话最多能够有 16 个 ABAP 会话。 零碎理论可能的会话数由配置文件参数 rdisp/max_alt_modes 确定,其默认值为 6。 下图是笔者 ABAP 零碎上 RZ11 事物码关上上述参数的截图: 每次调用 ABAP 程序都会创立一个新的外部会话,在该会话中加载被调用的程序。 外部会话的内存区域称为 poll area,它自身分为堆和堆栈区域。这是保留程序的可批改对象的中央。不可批改的程序数据存储在 PXA 中。poll area 蕴含对 PXA 中必要数据的援用。从技术上讲, poll area 和全局 PXA 存储在应用程序服务器的共享内存中,由 SAP 内存治理负责。 在一个 ABAP 会话中,最多能够有九个外部会话,它们始终属于一个 call sequence(即调用序列). ABAP 内存中的数据总是调配给一个调用序列。 在 64 位平台上,一个外部会话实践上最多须要 4 TB 的内存。在 32 位平台上,实践下限为 4 GB。实际上限通常低于实践限度,因为理论装置的主内存是可用的最大值,并在所有生产程序之间调配。 ...

November 5, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-Netweaver-里的用户会话概念

AS ABAP 的应用层能够散布在多个应用服务器上。 如果一个 AS ABAP 有多个应用程序服务器,它们通常在不同的计算机上实例化。 然而,一个或多个 AS ABAP 的多个应用程序服务器也能够在同一主机上实例化。 事务 SM51 显示以后 AS ABAP 的应用程序服务器及其实例化的计算机的概览。 以后应用程序服务器所在的计算机的网络名称能够从 ABAP 程序中的零碎字段 sy-host 中获取。 下图是笔者登录的 ABAP 服务器 SM51 事物码的截图: User Session登录到应用程序服务器会关上一个用户会话。 应用 SAP GUI、RFC 接口或 ICF(包含 APC)进行登录。 用户会话被调配了它本人的用户内存区域,其中能够存储 SPA/GPA 参数。 执行 ABAP 程序时,有各种类型的用户会话和实用的各种规定: Dialog sessionsBackground sessionsUpdate sessionsRFC sessionsICF sessionsAPC sessions每个应用程序服务器都能够拜访地方 AS ABAP 数据库。 每个应用程序服务器都有本人的共享内存。 ABAP 运行时环境将共享内存用于程序、程序数据和缓冲区(例如,在 SAP 缓冲中)。 ABAP 程序能够在共享内存中存储共享对象和数据簇。 从用户会话中,能够以程序驱动的形式在同一应用程序服务器或另一台服务器上关上更多用户会话。 例如: 指标为“NONE”的近程函数调用在同一应用程序服务器上关上用户会话。应用 COMMIT WORK 调用更新模块或在后盾编程中执行可执行程序会关上独自的用户会话。ICF 客户端和 APC 客户端能够将以后应用服务器或其余服务器作为 ICF 服务器或 APC 服务器进行寻址,从而关上新的用户会话。应用配置文件参数 rdisp/tm_max_no 配置最大用户会话数。 配置文件参数 rdisp/rfc_max_login 确定能够应用 RFC 接口打开的会话百分比。 ...

November 5, 2022 · 1 min · jiezi

关于sap:一个-SAP-开发工程师的成长史

本文副标题:我的演讲稿 - 如何疾速上手新工作,继续晋升集体竞争力 最近我收到了 SAP 上海研究院一个部门领导的邀请,加入了一个信息素养故事分享会。我也就"如何疾速上手新工作,继续晋升集体竞争力"这个话题,聊了一些我集体的认识。 本文是我在分享会上的演讲稿。 大家好,我是 SAP 成都研究院的 developer Jerry. 很荣幸收到这个邀请,其实我得悉这个分享会的主题时,心里很有感触,因为我在 SAP 的工作经验里,的确会常常遇到须要疾速上手新工作的场景。我在 SAP 成都研究院工作了 15 年,先后在七个不同的 SAP 产品开发团队工作过, 因而明天我想利用这个机会,和大家分享一些我过来工作中切换新课题的故事和心得。 我想从以下三方面来分享: 面对新课题,不冲突,放弃踊跃的心态充分利用本人以往我的项目的教训给本人一直设定学习小指标 当咱们行将和手头上开发了一段时间的产品辞别,筹备接手一个新产品时,能做到抱着踊跃的心态去拥抱变动,不是一件容易的事件。 一方面,咱们从事产品开发,破费了工夫和精力去学习其开发技术,开发工具和开发框架,以及相干的产品业务知识。切换课题和产品后,有可能面临的事实是,这些通过努力学习得来的货色,在新产品开发里临时用不上。 另一方面,新产品往往意味着又要开始学习新的开发技术,有时甚至是从头学习,比方技术栈从 ABAP 切换成 Java. 除了技术之外,咱们也须要同 Global 团队的共事,从新建设信赖和磨合。总之,咱们对接手新课题时感到不安和冲突,理论是受到了这些不确定因素的影响。 如何尽量让这些不确定性因素对本人的影响达到最小化,以踊跃的心态去面对变动呢? 我集体的心得,做好两点。 第一点,正视变动是不可避免的。古希腊哲学家赫拉克里特已经说过:Change is the only constant in life. 生存中惟一不变的就是变动自身。 其实 IT 圈子又何尝不是如此呢? 已经咱们提到微软,第一印象总是 Windows 和 Office,但当初微软的 Azure 云公台也十分的胜利。Amazon 以前给大家的印象就是一个电商公司,但现在在技术人员心里,它的云平台 AWS 仿佛比 Amazon 的电商业务更让人印象粗浅。以搜索引擎起家的 Google,它孵化出的 Kubernetes,早已成为云原生平台的相对领导者。20 年前的 SAP,简直就是 ERP 的代名词,但当初咱们不光有 S/4,还有 HANA 平台,有 SAP BTP,还有很多 SAP 收买并胜利整合的各种云产品。 ...

November 5, 2022 · 2 min · jiezi

关于sap:SAP-Java-Connector-错误-JCOERRORCOMMUNICATION

我运行 SAP Java Connector 自带的 SimpleCall 例子程序时,遇到如下谬误音讯: Exception in thread "main" com.sap.conn.jco.JCoException: (102) JCO_ERROR_COMMUNICATION: Initialization of repository destination ABAP_AS1 failed: Connect to SAP gateway failedconnection parameters: TYPE=A DESTINATION=ABAP_AS1 ASHOST=abap_host_name SYSNR=00 PCS=1 SERIALIZATION_FORMAT=columnBased NETWORK=LANLOCATION CPIC (TCP/IP) on local host with UnicodeERROR hostname 'abap_host_name' unknownTIME Tue Oct 25 14:07:48 2022RELEASE 753COMPONENT NI (network interface)VERSION 40RC -2MODULE D:/depot/bas/753_REL/src/base/ni/ninti.cLINE 898DETAIL NiPGetHostByName: 'abap_host_name' not foundSYSTEM CALL getaddrinfoCOUNTER 2 at com.sap.conn.jco.rt.RfcDestination.getSystemID(RfcDestination.java:1560)at com.sap.conn.jco.rt.RepositoryManager.getRepository(RepositoryManager.java:28)at com.sap.conn.jco.rt.RfcDestination.initRepository(RfcDestination.java:1464)at com.sap.conn.jco.rt.RfcDestination.getRepository(RfcDestination.java:1846)at com.sap.conn.jco.rt.RfcDestination.getRepository(RfcDestination.java:40)at com.sap.conn.jco.examples.client.beginner.SimpleCall.main(SimpleCall.java:23)Caused by: com.sap.conn.jco.JCoException: (102) JCO_ERROR_COMMUNICATION: Connect to SAP gateway failed ...

October 31, 2022 · 2 min · jiezi

关于sap:SAPGUI-里-F1-功能键的用法专题讲解

本专栏打算的文章数在 150 篇左右,到 2022年10月6日为止,目前曾经更新了 56 篇,专栏完成度为 37.3%笔者这套零根底疾速学习 ABAP从 2021年4月10日写下第一篇文章以来,感激宽广学习者的反对,目前曾经更新了 56 篇。本教程打算破费 150 以上的篇幅,向大家具体介绍 SAP ABAP 开发的方方面面。 大家在学习教程过程中,如果有任何对于 SAP ABAP 开发方面想理解的内容,能够间接在教程各篇文章下评论留言,也能够在《零根底疾速学习 ABAP 读者意见反馈和下一步写作计划表》里留言。我会将大家的意见对立汇总,作为我更新教程的内容参考起源之一。 零根底 ABAP 学习教程系列文章的目录1. ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍2. ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别3. ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素4. ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型5. ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识6. 通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧7. ABAP function module 的应用8. ABAP subroutine 的定义和应用9. ABAP 中的变量和常量10. ABAP 编程语言中的零碎字段(System Fields)11. 什么是 ABAP Field Symbol12. ABAP 援用类型介绍13. 最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍14. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)15. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)16. 用 ABAP 读取本地文本文件内容17. 26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据18. ABAP 如何解析 JSON 数据19. 如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎20. 面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法21. SAP ABAP 报表的用户输出性能22. 应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据23. 通过一个具体的例子,解说 SAP BDC 技术的应用步骤24. 从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分25. 如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储26. 如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称27. 一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤28. SAP ABAP 字符串变量容易忽略和混同的一些知识点SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍29. 授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储30. SAP ABAP 零碎进行数据库表查问的几种罕用办法31. 如何让 ABAP 服务器可能响应通过浏览器发动的自定义 HTTP 申请32. 一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧33. 如何应用 saplink 装置其余网站上提供的 ABAP 程序34. ABAP 报表中如何给报表的输出参数削减 F4 Value Help35. ABAP 报表中如何以二进制形式上传本地文件36. ABAP 里文件操作波及到中文字符集的问题和解决方案37. 如何对 ABAP 数据库表通过 ABAP 代码进行更新和删除操作38. 如何让 ABAP 报表在后台作业的模式下运行39. 如何应用 ABAP 代码解析 XML 文件40. 如何应用 ABAP 代码发送邮件到指定邮箱41. 如何应用 ABAP 代码发送带有 PDF 附件的电子邮件50. 如何在 SAPGUI 里显示上传到 ABAP 服务器的 PDF 文件51. 如何在 SAP ABAP 零碎中应用 Adobe Form52. 应用 SAP ABAP 代码生成 PDF 文件,填充以业务数据并显示在 SAPGUI 里53. 如何把 SAP ABAP 零碎里一张数据库表的内容,显示在 Adobe PDF Form 里54. 应用 ABAP 代码制作手机可能扫描的二维码(QRCode)55. ABAP 是一门反对面向过程和面向对象的混合型编程语言,理论开发中用哪种?更多文章正在写作中Office 专题42. 用 ABAP 新建本地 Excel 文件并写入数据43. 如何应用 ABAP 创立蕴含不同字体大小的 Word 文档更多文章正在写作中ALV 开发专题44. 27 行代码开发一个最简略的 SAP ALV 报表45. 48 行代码给 ABAP ALV 报表的数据行削减色彩成果46. 77 行代码实现ABAP ALV 中的双击事件处理47. SAP ABAP ALV 档次程序表如何应用双表头(Multiple Headers)进行数据输入48. 如何在 SAP ABAP ALV 报表里以交通灯的形式显示某一列的值49. 在弹出对话框窗口里显示 SAP ABAP ALV 列表56. 入手开发一个有用的 ABAP ALV 工具 - 查看指定用户的 ABAP 传输申请,模仿 SE10 事物码57. SAPGUI 里 F1 功能键的用法专题解说更多文章正在写作中笔者零根底疾速学习 ABAP 读者意见反馈和下一步写作计划表 有读者倡议,做一期 SAPGUI 开发工具里 F1 功能键的专题解说。 ...

October 24, 2022 · 2 min · jiezi

关于sap:一个-SAP-开发工程师的成长史

本文副标题:我的演讲稿 - 如何疾速上手新工作,继续晋升集体竞争力 最近我收到了 SAP 上海研究院一个部门领导的邀请,加入了一个信息素养故事分享会。我也就"如何疾速上手新工作,继续晋升集体竞争力"这个话题,聊了一些我集体的认识。 本文是我在分享会上的演讲稿。 大家好,我是 SAP 成都研究院的 developer Jerry. 很荣幸收到这个邀请,其实我得悉这个分享会的主题时,心里很有感触,因为我在 SAP 的工作经验里,的确会常常遇到须要疾速上手新工作的场景。我在 SAP 成都研究院工作了 15 年,先后在七个不同的 SAP 产品开发团队工作过, 因而明天我想利用这个机会,和大家分享一些我过来工作中切换新课题的故事和心得。 我想从以下三方面来分享: 面对新课题,不冲突,放弃踊跃的心态充分利用本人以往我的项目的教训给本人一直设定学习小指标 当咱们行将和手头上开发了一段时间的产品辞别,筹备接手一个新产品时,能做到抱着踊跃的心态去拥抱变动,不是一件容易的事件。 一方面,咱们从事产品开发,破费了工夫和精力去学习其开发技术,开发工具和开发框架,以及相干的产品业务知识。切换课题和产品后,有可能面临的事实是,这些通过努力学习得来的货色,在新产品开发里临时用不上。 另一方面,新产品往往意味着又要开始学习新的开发技术,有时甚至是从头学习,比方技术栈从 ABAP 切换成 Java. 除了技术之外,咱们也须要同 Global 团队的共事,从新建设信赖和磨合。总之,咱们对接手新课题时感到不安和冲突,理论是受到了这些不确定因素的影响。 如何尽量让这些不确定性因素对本人的影响达到最小化,以踊跃的心态去面对变动呢? 我集体的心得,做好两点。 第一点,正视变动是不可避免的。古希腊哲学家赫拉克里特已经说过:Change is the only constant in life. 生存中惟一不变的就是变动自身。 其实 IT 圈子又何尝不是如此呢? 已经咱们提到微软,第一印象总是 Windows 和 Office,但当初微软的 Azure 云公台也十分的胜利。Amazon 以前给大家的印象就是一个电商公司,但现在在技术人员心里,它的云平台 AWS 仿佛比 Amazon 的电商业务更让人印象粗浅。以搜索引擎起家的 Google,它孵化出的 Kubernetes,早已成为云原生平台的相对领导者。20 年前的 SAP,简直就是 ERP 的代名词,但当初咱们不光有 S/4,还有 HANA 平台,有 SAP BTP,还有很多 SAP 收买并胜利整合的各种云产品。 ...

October 24, 2022 · 2 min · jiezi

关于sap:SAP-Spartacus-SSR-中的-shimming-实现的一个例子

Angular 开发人员应用 HttpClient 与后盾服务器交互。SAP Spartacus Storefront 反对服务器端渲染即 SSR,那么工作在 SSR 模式下的 Spartacus,又是通过什么形式调用的 OCC API 呢? 通用应用程序(Universal applications)应用 Angular 平台服务器包(platform-server)(与平台浏览器 platform-browser绝对),它提供 DOM、XMLHttpRequest 和其余不依赖浏览器的底层个性的服务器端实现。 服务器(在 Angular 官网例子中应用的是 Node.js Express)将客户端对应用程序页面的申请传递给 NgUniversal ngExpressEngine。 在底层,该引擎调用 Universal 的 renderModule() 函数,同时提供缓存和其余有用的实用程序。 renderModule() 函数将模板 HTML 页面(通常是 index.html)、蕴含组件的 Angular 模块和确定要显示哪些组件的路由作为输出。路由来自客户端对服务器的申请。 下图是 SAP Spartacus AppServerModule,咱们能够看到他导入了来自 @angular/platform-server 开发包的 ServerModule 和 ServerTransferStateModule 这两个 NgModule: 在 Spartacus 源代码里,尽管从 @angular/platform-server 导入了 renderModule 函数,然而没有在咱们的代码里显式调用它。 renderModule() 函数将模板 HTML 页面(通常是 index.html)、蕴含 Component 的 Angular modules 和确定要显示哪些组件的路由作为输出。路由来自客户端对服务器的申请。 ...

October 15, 2022 · 1 min · jiezi

关于sap:如何在-SAP-UI5-应用里安全存储一些敏感的数据避免被上传到-Github-去的风险

在本教程前一步骤 SAP UI5 利用开发教程之一百四十 - 如何应用 JavaScript 代码连贯部署在 SAP ABAP 服务器上的 OData 服务里,因为咱们要在本地运行的 SAP UI5 利用里,返回部署在 SAP ABAP 服务器上的 OData 元数据,因而须要提供用户名和明码。 前一步骤,我抉择将这些敏感信息,间接硬编码在 SAP UI5 的控制器代码里。而后在我提交本地代码到 Github 之前,手动将这些用户名和 password 批改成占位符,如下图所示: 这样做其实有平安危险,因为一旦我遗记做这件事件,那么我实际上就把本人实在的用户名和 password 提交到了 Github 上。一旦提交,这些记录就无奈再删除,即便我随后把这些敏感信息删除而后从新提交,然而我第一次提交里蕴含的用户名和 password,是无奈从 Github 提交记录中删除的,网络上的任何人都能从 Github 的提交记录里找到这些信息。惟一的解决方案,就是分割 Github 的工作人员来解决,又费时间又费功夫。 其实笔者在进行前一步骤的写作时,发表博客时,都收到了下列的提示信息: 您的文章蕴含平安口令,密钥等文本内容,请确保相干信息仅做示例用处,防止将私密信息公布到公开的博客。 可见对于私密信息的解决,咱们须要特地的小心和审慎。 本文介绍一种方法,能够将用户名,password,API key,client secret 等敏感信息对立配置在 SAP UI5 利用里一个平安的地位所在,永远不必放心这些信息被不小心提交到 Github 上。 上面)是具体的操作步骤。

October 15, 2022 · 1 min · jiezi

关于sap:关于无法用-https-登录-SAP-ABAP-Netweaver-系统的问题和解决方案

收到一个敌人的征询,在浏览器关上一个 ABAP Netweaver 零碎时,报如下正告音讯: 无奈将协定切换到 HTTPS;HTTPS 未配置/处于非活动状态不能进行 SSO 登录;不能接管浏览器登录票没有切换到 HTTPS,所以发送明码不平安 对于这个正告,能够依照提示信息,点击上图的 登录 按钮,而后在对话框里,手动输出用户名和口令来登录。只是这样的话,登录以及随后的业务解决,都不是应用 HTTPS 进行的,这样有肯定的安全隐患。HTTPS 协定是由 HTTP 加上 TLS / SSL 协定构建的可进行加密传输、身份认证的网络协议,次要通过数字证书 、 加密算法 、非对称密钥等技术实现互联网数据传输加密,实现互联网传输平安爱护。 这些正告音讯翻译成英文为:Protocol cannot switch to Https, Https is not configured/active. No switch to Https occurred. 依据这个关键字进行搜寻:找到这个 SAP 社区问题。 以及这篇博客 咱们尽管能够在非生产零碎上,把这个正告信息显示的开关敞开: 这些博客提到了一个 SAP support note:No Switch to HTTPS occurred 此正告音讯意味着没有切换到 https,因而明码将在未加密的状况下传输,因而不会以平安的形式传输。 呈现此正告有几个可能的起因。此问题通常是由 SSO 或 SSL 性能配置谬误引起的。 如果业务场景是须要启用 HTTPS/SSL 进行加密传输,然而登录时依然须要手动输出用户名和明码,请让 ABAP 系统管理员依照 SAP Note 510007 在零碎里启用 HTTPS。如果业务场景想应用 Single Sign On(SSO),请让 ABAP 系统管理员依照 SAP Note 1257108 蕴含的操作来执行。

October 15, 2022 · 1 min · jiezi

关于sap:SAP-UI5-SmartForm-智能表单控件的使用方法介绍试读版

一套适宜 SAP UI5 初学者循序渐进的学习教程本专栏打算的文章数在 300 篇左右,到 2022年9月22日为止,目前曾经更新了 133 篇,专栏完成度为 44.3%.作者简介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 利用开发教程之一百二十二 - 在 SAP UI5 利用中应用浏览器原生的 Fetch API 发动网络申请SAP UI5 利用开发教程之一百二十三 - 应用 Busy Dialog 动画阻止 SAP UI5 利用按钮短时间内疾速被点击SAP UI5 利用开发教程之一百二十四 - 应用函数节流思维防止 SAP UI5 利用里按钮短时间内被高频反复点击SAP UI5 利用开发教程之一百二十五 - SAP UI5 进阶 - XML 视图里定义的 UI 控件,运行时实例化的技术细节分析SAP UI5 利用开发教程之一百二十六 - SAP UI5 进阶 - JSON 模型字段里的值,显示在最终 UI5 界面上的神秘剖析SAP UI5 利用开发教程之一百二十七 - SAP UI5 利用的全局配置(Global Configuration) 的设计和应用SAP UI5 利用开发教程之一百二十八 - SAP UI5 智能控件 Smart Controls 的初步意识SAP UI5 利用开发教程之一百二十九 - 如何给 SAP UI5 SmartField 增加 Value Help 性能SAP UI5 利用开发教程之一百三十 - 如何使 SAP UI5 SmartField 在运行时渲染成超链接的模式并反对跳转SAP UI5 利用开发教程之一百三十一 - SAP UI5 Cross Application Navigation (跨利用间跳转)的本地模仿实现SAP UI5 利用开发教程之一百三十二 - SAP UI5 Simple Form 控件的应用办法介绍SAP UI5 利用开发教程之一百三十三 - SAP UI5 利用元数据文件 manifest.json 的加载和解析原理解说SAP UI5 利用开发教程之一百三十四 - SAP UI5 Simple Form 属性 columnsL,columnsM,columnsXL 的属性深刻分析SAP UI5 利用开发教程之一百三十五 - SAP UI5 利用的屏幕尺寸检测工作原理深刻分析SAP UI5 利用开发教程之一百三十六 - SAP UI5 利用 SimpleForm 控件 ResponsiveGridLayout 布局的工作原理深刻分析SAP UI5 利用开发教程之一百三十七 - SAP UI5 SimpleForm 里在程度方向显示多组 Form 元素的实现办法SAP UI5 利用开发教程之一百三十八 - SAP UI5 控件库里 Form 控件和 SimpleForm 控件的区别和分割解说SAP UI5 利用开发教程之一百三十九 - SAP UI5 SmartForm 智能表单控件的应用办法介绍SAP UI5 利用开发教程之一百四十 - 正在写作中......阐明Jerry 从 2014 年退出 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,已经在 SAP 社区和 汪子熙 微信公众号上发表过多篇对于 SAP UI5 工作原理和源码解析的文章。 ...

October 3, 2022 · 6 min · jiezi

关于sap:如何打通-SAP-Cloud-for-Customer-系统和微信公众号的双向消息通信功能

本系列的前三篇文章,咱们顺次介绍了微信公众号开发环境的搭建,微信公众平台 API 的调用,以及地图功能的集成。 本文作为该系列第四篇文章,介绍如何实现 SAP Cloud for Customer 零碎同微信公众号的双向通信性能。 所谓双向通信,行将用户发送给微信公众号的音讯,转存到 SAP Cloud for Customer 零碎(本文余下局部应用缩写 C4C 来代替),以及从 C4C 间接回复音讯到用户微信 App 这两个方向的交互。 上面咱们别离介绍。 https://www.jianshu.com/p/91b... 用户通过微信 app 将音讯发送到 SAP C4C 零碎微信用户点击“关注”按钮,关注了某微信公众号之后: 在SAP C4C零碎主动生成了下列数据:(1) 一个代表该微信用户的individual customer主数据(2) 一个绑定到customer主数据的C4C Social Media User Profile这两条数据的ID,会通过微信音讯推送回微信用户的微信app上: 这些胜利创立的C4C数据的ID,在微信音讯服务器,即nodejs利用的管制台上也能察看到: 依据返回给微信用户的客户主数据ID,到C4C零碎找到该主数据,在其Social Profiles面板里,能看到该Social Profile的渠道类型(Channel Type)为自定义的Jerry's Wechat Channel: 一旦微信用户给微信公众号发送文本信息,该文本信息通过微信公众号的音讯服务器作为直达,调用C4C API,在C4C零碎创立一条内容为该文本信息的Social Media Message数据。下图是一个例子:我发送一条"Hello C4C Agent ......"的文本信息,在SAP C4C零碎创立的Social Media Message ID为59610: 依据ID在C4C零碎找到这条Social Media Message: 同时,C4C零碎还会基于新建的Social Media Message,主动生成一条新的Service Ticket,这是C4C零碎的规范性能,无需额定编程实现。 ...

October 3, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-ALV-的一些总结Docking-container-和-Dialogbox-container

Docking container停泊容器(CL_GUI_DOCKING_CONTAINER)不须要任何父容器,自定义屏幕上的自定义容器区域也不须要。 创立和显示后,它停靠在屏幕的四个地位之一:顶部、底部、左侧、右侧。 在大多数状况下,停泊容器用于显示一些导航菜单,但因为能够将其用作网格父级,因而开发人员也能够应用它来显示其中无限数量的列。 看个具体的例子: 为了可能在不创立任何 SCREEN 的状况下应用 docking 容器,咱们只增加了一个虚构参数并将创立容器的代码移至事件 AT SELECTION-SCREEN OUTPUT。 这样 Docking container 在程序运行后间接呈现。 正如咱们在下图 中看到的,网格显示在屏幕的左侧,而在右侧能够找到虚构参数。 Dialgobox container如果您须要应用网格显示弹出窗口并且不想花工夫创立带有自定义控件的屏幕,对话框容器 (CL_GUI_DIALOGBOX_CONTAINER) 会很有用。 在这种状况下应用它十分不便,但它也有一个限度——在这里没有可用的 GUI 工具栏。 为了显示容器,我应用了与停泊容器雷同的办法。一个限度是,运行这个程序后,你将无奈敞开对话框容器,这很失常,因为我没有为它注册任何事件。 输入: Hotspot 字段在 ALV 中利用十分宽泛,这些字段具备超链接的行为和款式,这意味着它们正在触发 ALV 的单击事件,称为 HOTSPOT_CLICK。 它通常用于显示单击对象的详细信息,或挪动到能够批改对象的事务。 能够设想,将 column 设置为 HOTSPOT 非常简单,只需将 ABAP_TRUE ('X') 值传递给字段目录,但这只会扭转字段的款式(字段内容带下划线) 它会触发 HOTSPOT_CLICK 事件。

September 24, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-ALV-的一些总结Custom-container-和-Splitter-container

本文分以下四种情景来介绍。 Custom container自定义容器能够应用 CL_GUI_CUSTOM_CONTAINER 类创立,但它须要一个能够搁置它的父容器,或者须要在自定义屏幕中创立自定义管制区域。 将自定义容器与其余容器混合,这种形式在理论 ABAP 开发中也很常见。 许多 ABAP 开发人员在蕴含自定义容器区域的屏幕的 PBO 事件期间创立自定义容器,但这不是必须的。也能够在调用屏幕之前创立它。 上面是一个例子: 当然,为了可能显示网格,必须创立一个 SCREEN 0100,其中蕴含名为 CC 的自定义容器区域,如下图所示: 对屏幕所做的惟一附加设置是将其大小设置为 200 x 255, 并且曾经为该区域提供了垂直和程度调整大小的可能性,因而它将适宜所有屏幕。 下面代码执行的后果: 2. Splitter container拆分器 (CL_GUI_SPLITTER_CONTAINER) 须要一个自定义容器作为父容器能力工作。 它用于将屏幕区域划分为多个容器。 开发人员能够决定拆分器将有多少行和多少列。 因而,它就像 HTML 中的表格甚至是 DIV,开发人员能够在其中搁置内容。 咱们能够创立多级拆分器,比方能够将区域拆分为两行一列,而后在第一行创立一个拆分器,该拆分器将分为两行和三列。 上面的程序 创立一个具备两行和一列的拆分器。 此处的 SCREEN 0100 与本文第一节中的屏幕完全相同。 因为除了行数和列数之外咱们没有对拆分器进行任何编程,因而它会主动将自定义容器区域拆分为两个相等的局部,在第一行咱们将看到网格,在底部将有一个空的空间,因为咱们没有放任何货色。如下图所示:

September 24, 2022 · 1 min · jiezi

关于sap:关于-SAP-UI5-SimpleForm-控件里的-ColumnsL-和-labelSpanXL-的测试

测试状况列举如下: label 和 columns 为 1:1 的状况下: 后果: Label 改为 2: 此时第三行的 Label,ZIP Code/City 终于能够显示齐全了: 进一步扩充 Label 值为 3:1 如果是3:3 就又还原了: 来一个相差悬殊的比值:1:2 1:4 的状况下: 1:5 的状况下,有些字母都无奈失常显示残缺了: 留神:labelSpanL 的含意是这张图里应用几份 column 来显示 Label 区域。Large 区域之下,默认值为 4,即应用下图前四根柱子的宽度来显示 Label 区域。 2019 年初,SAP 公布了 UI5 Web Components 库的测试版,作为 UI5 Evolution 我的项目的要害支柱,旨在实现 UI 元素的独立生产。 从另一篇博客文章中能够看出,SAP 开发人员从 2014 年开始评估 Web 组件。 在最后公布几个月后,在撰写本文时,RC1 曾经及时公布,以便在 UI5 Con 上展现。 除了与理论开发保持良好同步外,SAP 还公布了一个带有交互式游乐场的网站、一个入门教程、几个演示应用程序和一个 UI5 首席架构师的新闻广播节目。 ...

September 24, 2022 · 1 min · jiezi

关于sap:SAP-电商云-Spartacus-UI-userID-即邮件地址中的加号问题

如果用户登录名或明码蕴含符号 +,它将被替换为空格,因为 Content-Type 等于 application/x-www-form-urlencoded。 上面是一个例子: https://<host>:9002/occ/v2/electronics-spa/forgottenpasswordtokens?lang=en&curr=USD 我输出了蕴含 + 号的邮件地址后,点击 Submit,发送一个 HTTP POST 申请到后盾,响应为 202: 从 Form Data 区域,咱们能够发现,这个 userId 显示为 a @sap.com, 邮箱地址里蕴含了空格符号: 找到 Reset Password Component 的 selector:cx-forgot-password Component 名称为:ForgotPasswordComponent 通过 Service 实现: 依赖于 UserPasswordFacade: 调用 userProfileConnector 实现: connector 调用 userProfileAdapter: 这是一个 abstract class,咱们调用 OCCUserProfileAdapter 实现: OccUserProfileAdapter 最终调用 HTTP Client 的 post 操作: 咱们在后盾打印 Angular HTTP client 发送过去的申请,发现的确 + 号被转换成了空格: ...

September 23, 2022 · 1 min · jiezi

关于sap:SAP-UI5-SimpleForm-控件的-adjustLabelSpan-属性

咱们在 SAP UI5 利用开发时,在 XML 视图里应用 SimpleForm 控件,会定义其 adjustLabelSpan 属性。 如果设置,labelSpanL 和 labelSpanM 的应用取决于一行中 FormContainer 的数量。 如果一行只显示一个FormContainer,labelSpanM用来定义标签的大小。 这对于中型和大型表单是雷同的。 这样做是为了对齐在同一个表单中应用全尺寸 FormContainer 和多列行的表单上的标签(因为每个 FormContainer 外部都有本人的网格)。 如果未设置,labelSpanL 和 labelSpanM 的应用取决于表单大小。 在这种状况下,FormContainer 的数量无关紧要。 editable 属性: 如果表单具备可编辑的内容,则将特定于设施和特定主题的行高和标签对齐利用于表单行。 如果设置,表单的所有(不仅是可编辑的)行都将取得可编辑字段的行高。 默认状况下,表单内的标签将以相应的模式出现。 留神:该属性的设置不会扭转表单的内容。 例如,可编辑设置为 false 的表单中的输出控件依然是可编辑的。 正告:如果此属性设置谬误,可能会导致视觉问题。 标签和字段可能未对齐,标签可能以谬误的模式出现,并且单个控件之间的间距可能是谬误的。 此外,不适宜该模式的控件可能会被谬误地出现。 layout 属性:用于出现 SimpleForm 的 FormLayout。 咱们倡议应用 ColumnLayout 来出现 SimpleForm,因为它的响应性以最佳形式应用可用空间。 倡议尽量在增加内容之前设置布局,以避免计算默认布局。 minWidth:用于 SimpleForm 的整体最小宽度(以像素为单位)。 如果可用宽度低于给定的 minWidth,SimpleForm 将为下一个组(FormContainer)创立一个新行。 默认值为 -1,这意味着将重叠外部组 (FormContainers) 直到达到 maxContainerCols,无论是否达到宽度或达到可用的父级宽度。 留神:此属性仅在将 ResponsiveLayout 用作布局时应用。

September 23, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-OData-服务的-count-和-inlinecount-两个操作的区别

正如本教程的开篇介绍文章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 申请中返回多个节点的数据18. SAP ABAP OData 服务嵌套创立性能的实现步骤(Create Deep)19. 如何应用 ABAP 程序生产 SAP ABAP OData 服务20. 如何应用 ABAP 代码生产须要传递 CSRF token 的 OData 服务21. SAP ABAP OData 服务的 $count 操作实现22. SAP ABAP OData 服务的 $count 和 $inlinecount 两个操作的区别更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待本教程前一步骤,咱们曾经提到,咱们开发的图书治理 OData 服务,只管没有为 $count 这个操作进行特地的代码实现,然而 SAP ABAP OData 框架,依然帮忙咱们提供了默认的实现。 ...

September 23, 2022 · 2 min · jiezi

关于sap:SAP-ABAP-OData-服务的-count-操作实现

正如本教程的开篇介绍文章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 申请中返回多个节点的数据18. SAP ABAP OData 服务嵌套创立性能的实现步骤(Create Deep)19. 如何应用 ABAP 程序生产 SAP ABAP OData 服务20. 如何应用 ABAP 代码生产须要传递 CSRF token 的 OData 服务21. SAP ABAP OData 服务的 $count 操作实现更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待SAP ABAP OData 服务的 $count 操作,次要用于在 SAP Fiori Launchpad 的 tile 里,以数字的模式,直观地显示某种业务文档在零碎中的个数。 ...

September 23, 2022 · 2 min · jiezi

关于sap:SAP-Commerce-Cloud-里-OAuth2-Client-的两种配置方法

无论是 SAP Commerce Cloud 开发人员还是性能分析师,都须要在某个时候测试 API。 为了调用大多数 API,您须要先取得 Authorization. 在 SAP Commerce Cloud 中,OAuth 2.0 是 Omni Commerce Connect (OCC) REST API 的默认受权框架,它有助于爱护资源,而无需与第三方零碎共享凭证。 本文的目标是让读者相熟 OAuth 2.0 以及如何针对 API 进行受权。 在接下来的步骤中,咱们将介绍如何在 SAP Commerce Cloud 中创立 OAuth 客户端、生成拜访令牌,最初应用该令牌通过 Postman 收回 HTTP GET 申请。 Access Token如果您过来没有应用过拜访令牌,那么经典的比喻就是酒店房间钥匙/卡。 当访客达到时,通常会去前台办理入住手续,在那里会失去一把房间钥匙。 房间钥匙没有阐明你是谁或你如何注销入住的。它只是一种进入你房间的机制。 拜访令牌的性能雷同。 令牌与 API 调用一起发送,以让零碎晓得您有权应用 API。 房间钥匙也会在您预约的住宿完结时过期。 拜访令牌同样也在一段时间后过期。 Configure an OAuth Client via Backoffice导航到后盾:https://<YOUR DOMAIN>:9002/backoffice在 Backoffice 中,导航到 System –> OAuth –> OAuth Clients单击创立图标旁边的箭头并抉择 OAuth 客户端详细信息以创立新客户端输出 OAuth 客户端 ID:<YOUR CLIENT ID>输出 OAuth 客户端明码:<YOUR PASSWORD>点击下一步输出 OAuth 权限:ROLE_TRUSTED_CLIENT输出 OAuth 受权受权类型:client_credentials输出 OAuth 资源 ID:hybris点击下一步输出范畴:extended点击实现。 ...

September 23, 2022 · 1 min · jiezi

关于sap:SAP-ABAP-Gateway-Client-的-ABAP-实现重用-HTTP-Connection

SAP NetWeaver Gateway 是一种提供了依据市场规范将设施、环境和平台连贯到 SAP 软件的简略办法的技术平台。 该框架反对开发以人为本的翻新解决方案,将 SAP 业务软件的弱小性能引入社交和合作环境、挪动和平板设施以及富互联网应用程序等新体验。 简而言之,Netweaver Gateway 能够看成现有 SAP ERP 零碎的一组 ABAP 附加组件,能够以简略、以人为本的形式轻松拜访业务信息,并将数据生产阻碍升高到无需当时理解 SAP 零碎的外部工作的前提。 Gateway 提供了一个 API,其性能易于应用、定义明确,能够让用户轻松拜访 SAP 零碎中丰盛的业务数据和性能。 在应用 SAP ABAP Gateway Client 之前,有必要先理解一下 Rest 和 OData. REST: 全称是 Representational State Transfer 是一种用于分布式系统(如万维网)的软件架构格调。因为其更简略的格调,REST 越来越多地取代了其余设计模型,例如 SOAP 和 WSDL。 REST 应用规范的 GET、PUT、POST 和 DELETE 办法以及 HTTP 协定的其余现有个性。REST 的次要指标包含组件交互的可扩展性、接口的通用性、组件的独立部署、缩小提早、增强安全性和封装遗留零碎的两头组件。 OData(凋谢数据协定):是一种用于查问和更新数据的凋谢网络协议。 该协定容许消费者通过 HTTP 协定查问数据源,并以 Atom、JSON 或纯 XML 等格局获取后果,包含数据的分页、排序或过滤等操作。通过 SAP NetWeaver Gateway 接口应用数据只须要可能收回 HTTP(S) 申请即可。 SAP ABAP gateway Client,tcode /IWFND/GW_CLIENT ...

September 23, 2022 · 1 min · jiezi

关于sap:SAP-Spartacus-产品搜索页面结果里的-filter-设计明细

咱们关上 Spartacus 主页,输出产品名称进行搜寻之后,从后果页面能看到这种 filter: 默认有 9 个 filter,能够通过单击来开展或者折叠。 本文介绍其设计原理。 selector:cx-product-facet-navigationComponent 名称:ProductFacetNavigationComponent 咱们能够在 @spartacus/storefront 里倒入这个 Component: 这个 Component 由 active facet 和 facet list 组成。 facet 的字面含意:多面事物的其中一面。 这个 Component 的 CMS Component 名称为:ProductRefinementComponent 提供了 FacetList 和 ActiveFacets 的 module 在这里也能看见: 看一下 facet list 的数据源,通过 facetList$ 提供: Component 不操心数据的起源,通过 FacetService 读取: FacetService 又通过 ProductFacetService 来获取: 这些 facet 都是后盾返回的: c:\Code\SPA\spartacus-release-4.3.x\projects\storefrontlib\cms-components\product\product-list\product-facet-navigation\product-facet-navigation.module.ts SAP Commerce Cloud 中的 CMS 包含以下非凡页面类型:产品、类别和目录(catalog)。 还有一个通用的内容页面类型,用于所有其余类型的页面,例如登录、订单历史和常见问题页面。Spartacus 目前不反对目录页面类型。 ...

September 23, 2022 · 1 min · jiezi

关于sap:SAP-UI5-BaseObjectextend-方法的单步调试

应用程序里的代码如下图所示: var UShellCrossApplicationNavigationMock = BaseObject.extend("sap.ui5.walkthrough.shellMock.UShellCrossApplicationNavigationMock", {});这个 extend 办法实现在 fnClass 上,fnClass 位于 Metadata.js 上: 第一个传入的参数为 className: 咱们传了一个空的对象到第二个参数里: 调用 ObjectPath: ObjectPath 用于治理对象门路。 能够应用 create 创建对象门路,而后将从提供的字符串创立一个空的嵌套对象门路。 如果为对象门路 set 设置了一个值,如果它不存在,它也会被创立。能够应用 get 从对象门路中检索值。 create 办法从提供的根上下文中提供的门路创建对象门路。 提供的门路用于导航嵌套对象,从根上下文开始。 看个具体的例子: var root = {};ObjectPath.create("my.test.module", root) === root.my.test.module;ObjectPath.set(["my", "test", "otherModule"], root) === root.my.test.otherModule;get 办法: 返回位于提供的门路中的值。 如果提供的门路无奈齐全解析,则返回 undefined。 提供的对象门路用于导航嵌套对象,从根上下文开始。 如果没有提供根上下文,则对象门路以 window 结尾。 看个具体的例子: ObjectPath.get("my.test.module", root) === root.my.test.moduleObjectPath.get(["my", "test", "otherModule"], root) === root.my.test.otherModuleObjectPath.get("globalVar") === window["globalVar"];set 办法: ...

September 17, 2022 · 1 min · jiezi

关于sap:使用-ABAP-代码制作手机能够扫描的二维码QRCode试读版

本专栏打算的文章数在 150 篇左右,到 2022年9月12日为止,目前曾经更新了 51 篇,专栏完成度为 34%零根底 ABAP 学习教程系列文章的目录1. ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍2. ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别3. ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素4. ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型5. ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识6. 通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧7. ABAP function module 的应用8. ABAP subroutine 的定义和应用9. ABAP 中的变量和常量10. ABAP 编程语言中的零碎字段(System Fields)11. 什么是 ABAP Field Symbol12. ABAP 援用类型介绍13. 最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍14. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)15. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)16. 用 ABAP 读取本地文本文件内容17. 26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据18. ABAP 如何解析 JSON 数据19. 如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎20. 面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法21. SAP ABAP 报表的用户输出性能22. 应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据23. 通过一个具体的例子,解说 SAP BDC 技术的应用步骤24. 从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分25. 如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储26. 如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称27. 一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤28. SAP ABAP 字符串变量容易忽略和混同的一些知识点SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍29. 授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储30. SAP ABAP 零碎进行数据库表查问的几种罕用办法31. 如何让 ABAP 服务器可能响应通过浏览器发动的自定义 HTTP 申请32. 一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧33. 如何应用 saplink 装置其余网站上提供的 ABAP 程序34. ABAP 报表中如何给报表的输出参数削减 F4 Value Help35. ABAP 报表中如何以二进制形式上传本地文件36. ABAP 里文件操作波及到中文字符集的问题和解决方案37. 如何对 ABAP 数据库表通过 ABAP 代码进行更新和删除操作38. 如何让 ABAP 报表在后台作业的模式下运行39. 如何应用 ABAP 代码解析 XML 文件40. 如何应用 ABAP 代码发送邮件到指定邮箱41. 如何应用 ABAP 代码发送带有 PDF 附件的电子邮件50. 如何在 SAPGUI 里显示上传到 ABAP 服务器的 PDF 文件51. 如何在 SAP ABAP 零碎中应用 Adobe Form52. 应用 SAP ABAP 代码生成 PDF 文件,填充以业务数据并显示在 SAPGUI 里53. 如何把 SAP ABAP 零碎里一张数据库表的内容,显示在 Adobe PDF Form 里更多文章正在写作中Office 专题42. 用 ABAP 新建本地 Excel 文件并写入数据43. 如何应用 ABAP 创立蕴含不同字体大小的 Word 文档更多文章正在写作中ALV 开发专题44. 27 行代码开发一个最简略的 SAP ALV 报表45. 48 行代码给 ABAP ALV 报表的数据行削减色彩成果46. 77 行代码实现ABAP ALV 中的双击事件处理47. SAP ABAP ALV 档次程序表如何应用双表头(Multiple Headers)进行数据输入48. 如何在 SAP ABAP ALV 报表里以交通灯的形式显示某一列的值49. 在弹出对话框窗口里显示 SAP ABAP ALV 列表更多文章正在写作中现今日常生活里,QRCode 无处不在。网络上有一些应用 ABAP 代码生成 QRCode 的解决方案,这些解决方案利用了第三方的 QRCode 图案生成的 Restful API,通过 ABAP 调用这些 API,从网络获取蕴含 QRCode 图片二进制代码的 HTTP 响应后果。 ...

September 17, 2022 · 2 min · jiezi

关于sap:如何把-SAP-ABAP-系统里一张数据库表的内容显示在-Adobe-PDF-Form-里

本专栏打算的文章数在 150 篇左右,到 2022年9月12日为止,目前曾经更新了 51 篇,专栏完成度为 34%零根底 ABAP 学习教程系列文章的目录1. ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍2. ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别3. ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素4. ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型5. ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识6. 通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧7. ABAP function module 的应用8. ABAP subroutine 的定义和应用9. ABAP 中的变量和常量10. ABAP 编程语言中的零碎字段(System Fields)11. 什么是 ABAP Field Symbol12. ABAP 援用类型介绍13. 最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍14. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)15. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)16. 用 ABAP 读取本地文本文件内容17. 26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据18. ABAP 如何解析 JSON 数据19. 如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎20. 面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法21. SAP ABAP 报表的用户输出性能22. 应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据23. 通过一个具体的例子,解说 SAP BDC 技术的应用步骤24. 从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分25. 如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储26. 如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称27. 一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤28. SAP ABAP 字符串变量容易忽略和混同的一些知识点SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍29. 授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储30. SAP ABAP 零碎进行数据库表查问的几种罕用办法31. 如何让 ABAP 服务器可能响应通过浏览器发动的自定义 HTTP 申请32. 一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧33. 如何应用 saplink 装置其余网站上提供的 ABAP 程序34. ABAP 报表中如何给报表的输出参数削减 F4 Value Help35. ABAP 报表中如何以二进制形式上传本地文件36. ABAP 里文件操作波及到中文字符集的问题和解决方案37. 如何对 ABAP 数据库表通过 ABAP 代码进行更新和删除操作38. 如何让 ABAP 报表在后台作业的模式下运行39. 如何应用 ABAP 代码解析 XML 文件40. 如何应用 ABAP 代码发送邮件到指定邮箱41. 如何应用 ABAP 代码发送带有 PDF 附件的电子邮件50. 如何在 SAPGUI 里显示上传到 ABAP 服务器的 PDF 文件51. 如何在 SAP ABAP 零碎中应用 Adobe Form52. 应用 SAP ABAP 代码生成 PDF 文件,填充以业务数据并显示在 SAPGUI 里53. 如何把 SAP ABAP 零碎里一张数据库表的内容,显示在 Adobe PDF Form 里更多文章正在写作中Office 专题42. 用 ABAP 新建本地 Excel 文件并写入数据43. 如何应用 ABAP 创立蕴含不同字体大小的 Word 文档更多文章正在写作中ALV 开发专题44. 27 行代码开发一个最简略的 SAP ALV 报表45. 48 行代码给 ABAP ALV 报表的数据行削减色彩成果46. 77 行代码实现ABAP ALV 中的双击事件处理47. SAP ABAP ALV 档次程序表如何应用双表头(Multiple Headers)进行数据输入48. 如何在 SAP ABAP ALV 报表里以交通灯的形式显示某一列的值49. 在弹出对话框窗口里显示 SAP ABAP ALV 列表更多文章正在写作中在本教程前几个步骤,咱们顺次学习了如何在 SAPGUI 里一步步创立自定义屏幕: ...

September 17, 2022 · 2 min · jiezi

关于sap:使用-SAP-ABAP-代码生成-PDF-文件填充以业务数据并显示在-SAPGUI-里试读版

本专栏打算的文章数在 150 篇左右,到 2022年9月12日为止,目前曾经更新了 51 篇,专栏完成度为 34%零根底 ABAP 学习教程系列文章的目录1. ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍2. ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别3. ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素4. ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型5. ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识6. 通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧7. ABAP function module 的应用8. ABAP subroutine 的定义和应用9. ABAP 中的变量和常量10. ABAP 编程语言中的零碎字段(System Fields)11. 什么是 ABAP Field Symbol12. ABAP 援用类型介绍13. 最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍14. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)15. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)16. 用 ABAP 读取本地文本文件内容17. 26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据18. ABAP 如何解析 JSON 数据19. 如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎20. 面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法21. SAP ABAP 报表的用户输出性能22. 应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据23. 通过一个具体的例子,解说 SAP BDC 技术的应用步骤24. 从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分25. 如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储26. 如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称27. 一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤28. SAP ABAP 字符串变量容易忽略和混同的一些知识点SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍29. 授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储30. SAP ABAP 零碎进行数据库表查问的几种罕用办法31. 如何让 ABAP 服务器可能响应通过浏览器发动的自定义 HTTP 申请32. 一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧33. 如何应用 saplink 装置其余网站上提供的 ABAP 程序34. ABAP 报表中如何给报表的输出参数削减 F4 Value Help35. ABAP 报表中如何以二进制形式上传本地文件36. ABAP 里文件操作波及到中文字符集的问题和解决方案37. 如何对 ABAP 数据库表通过 ABAP 代码进行更新和删除操作38. 如何让 ABAP 报表在后台作业的模式下运行39. 如何应用 ABAP 代码解析 XML 文件40. 如何应用 ABAP 代码发送邮件到指定邮箱41. 如何应用 ABAP 代码发送带有 PDF 附件的电子邮件50. 如何在 SAPGUI 里显示上传到 ABAP 服务器的 PDF 文件51. 如何在 SAP ABAP 零碎中应用 Adobe Form52. 应用 SAP ABAP 代码生成 PDF 文件,填充以业务数据并显示在 SAPGUI 里更多文章正在写作中Office 专题42. 用 ABAP 新建本地 Excel 文件并写入数据43. 如何应用 ABAP 创立蕴含不同字体大小的 Word 文档更多文章正在写作中ALV 开发专题44. 27 行代码开发一个最简略的 SAP ALV 报表45. 48 行代码给 ABAP ALV 报表的数据行削减色彩成果46. 77 行代码实现ABAP ALV 中的双击事件处理47. SAP ABAP ALV 档次程序表如何应用双表头(Multiple Headers)进行数据输入48. 如何在 SAP ABAP ALV 报表里以交通灯的形式显示某一列的值49. 在弹出对话框窗口里显示 SAP ABAP ALV 列表更多文章正在写作中Smart Forms 是 SAP 传统的表单制作和打印的一种可视化工具。 ...

September 17, 2022 · 2 min · jiezi

关于sap:如何在-SAP-ABAP-系统中使用-Adobe-Form

本专栏打算的文章数在 150 篇左右,到 2022年9月12日为止,目前曾经更新了 51 篇,专栏完成度为 34%零根底 ABAP 学习教程系列文章的目录1. ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍2. ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别3. ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素4. ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型5. ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识6. 通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧7. ABAP function module 的应用8. ABAP subroutine 的定义和应用9. ABAP 中的变量和常量10. ABAP 编程语言中的零碎字段(System Fields)11. 什么是 ABAP Field Symbol12. ABAP 援用类型介绍13. 最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍14. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)15. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)16. 用 ABAP 读取本地文本文件内容17. 26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据18. ABAP 如何解析 JSON 数据19. 如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎20. 面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法21. SAP ABAP 报表的用户输出性能22. 应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据23. 通过一个具体的例子,解说 SAP BDC 技术的应用步骤24. 从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分25. 如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储26. 如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称27. 一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤28. SAP ABAP 字符串变量容易忽略和混同的一些知识点SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍29. 授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储30. SAP ABAP 零碎进行数据库表查问的几种罕用办法31. 如何让 ABAP 服务器可能响应通过浏览器发动的自定义 HTTP 申请32. 一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧33. 如何应用 saplink 装置其余网站上提供的 ABAP 程序34. ABAP 报表中如何给报表的输出参数削减 F4 Value Help35. ABAP 报表中如何以二进制形式上传本地文件36. ABAP 里文件操作波及到中文字符集的问题和解决方案37. 如何对 ABAP 数据库表通过 ABAP 代码进行更新和删除操作38. 如何让 ABAP 报表在后台作业的模式下运行39. 如何应用 ABAP 代码解析 XML 文件40. 如何应用 ABAP 代码发送邮件到指定邮箱41. 如何应用 ABAP 代码发送带有 PDF 附件的电子邮件50. 如何在 SAPGUI 里显示上传到 ABAP 服务器的 PDF 文件51. 如何在 SAP ABAP 零碎中应用 Adobe Form52. 应用 SAP ABAP 代码生成 PDF 文件,填充以业务数据并显示在 SAPGUI 里更多文章正在写作中Office 专题42. 用 ABAP 新建本地 Excel 文件并写入数据43. 如何应用 ABAP 创立蕴含不同字体大小的 Word 文档更多文章正在写作中ALV 开发专题44. 27 行代码开发一个最简略的 SAP ALV 报表45. 48 行代码给 ABAP ALV 报表的数据行削减色彩成果46. 77 行代码实现ABAP ALV 中的双击事件处理47. SAP ABAP ALV 档次程序表如何应用双表头(Multiple Headers)进行数据输入48. 如何在 SAP ABAP ALV 报表里以交通灯的形式显示某一列的值49. 在弹出对话框窗口里显示 SAP ABAP ALV 列表更多文章正在写作中Smart Forms 是 SAP 传统的表单制作和打印的一种可视化工具。 ...

September 17, 2022 · 2 min · jiezi

关于sap:如何在-SAPGUI-里显示上传到-ABAP-服务器的-PDF-文件

本专栏打算的文章数在 150 篇左右,到 2022年9月9日为止,目前曾经更新了 48 篇,专栏完成度为 32%零根底 ABAP 学习教程系列文章的目录1. ABAP 规范培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍2. ABAP 规范培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别3. ABAP 规范培训教程 BC400 学习笔记之三:ABAP 编程语言的个性和根本形成因素4. ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型5. ABAP 规范培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号ABAP 基础知识6. 通过理论的例子,介绍 SAP ABAP 里的 Repository Information System 的应用技巧7. ABAP function module 的应用8. ABAP subroutine 的定义和应用9. ABAP 中的变量和常量10. ABAP 编程语言中的零碎字段(System Fields)11. 什么是 ABAP Field Symbol12. ABAP 援用类型介绍13. 最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍14. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)15. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)16. 用 ABAP 读取本地文本文件内容17. 26 行 ABAP 代码应用 HTTP_GET 函数下载百度网站的首页数据18. ABAP 如何解析 JSON 数据19. 如何从本地文件里拷贝某个 ABAP 类到 SAP 零碎20. 面向对象的 ABAP 编程初探 - 什么是类,实例,和 Public 办法21. SAP ABAP 报表的用户输出性能22. 应用 ABAP 事物码 SM59 创立 Destination 来读取外网的数据23. 通过一个具体的例子,解说 SAP BDC 技术的应用步骤24. 从解读 BDC 主动生成的代码谈起,解说 SAPGUI 的程序组成部分25. 如何查问 SAPGUI 屏幕上某个字段对应的数据库表存储26. 如何应用事物码 SAT 查找某个 SAPGUI 屏幕字段对应的后盾存储数据库表的名称27. 一步步创立蕴含自定义 Screen 的 ABAP 程序的具体步骤28. SAP ABAP 字符串变量容易忽略和混同的一些知识点SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍29. 授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储30. SAP ABAP 零碎进行数据库表查问的几种罕用办法31. 如何让 ABAP 服务器可能响应通过浏览器发动的自定义 HTTP 申请32. 一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧33. 如何应用 saplink 装置其余网站上提供的 ABAP 程序34. ABAP 报表中如何给报表的输出参数削减 F4 Value Help35. ABAP 报表中如何以二进制形式上传本地文件36. ABAP 里文件操作波及到中文字符集的问题和解决方案37. 如何对 ABAP 数据库表通过 ABAP 代码进行更新和删除操作38. 如何让 ABAP 报表在后台作业的模式下运行39. 如何应用 ABAP 代码解析 XML 文件40. 如何应用 ABAP 代码发送邮件到指定邮箱41. 如何应用 ABAP 代码发送带有 PDF 附件的电子邮件50. 如何在 SAPGUI 里显示上传到 ABAP 服务器的 PDF 文件更多文章正在写作中Office 专题42. 用 ABAP 新建本地 Excel 文件并写入数据43. 如何应用 ABAP 创立蕴含不同字体大小的 Word 文档更多文章正在写作中ALV 开发专题44. 27 行代码开发一个最简略的 SAP ALV 报表45. 48 行代码给 ABAP ALV 报表的数据行削减色彩成果46. 77 行代码实现ABAP ALV 中的双击事件处理47. SAP ABAP ALV 档次程序表如何应用双表头(Multiple Headers)进行数据输入48. 如何在 SAP ABAP ALV 报表里以交通灯的形式显示某一列的值49. 在弹出对话框窗口里显示 SAP ABAP ALV 列表更多文章正在写作中在敌人们跟着本步骤学习之前,请务必确保曾经学习了本教程这一步骤,把握了必要的准备常识: ...

September 17, 2022 · 2 min · jiezi

关于sap:想比较全面地学习-SAP-XXX能指导下从哪儿开始学习吗

其实已经有不少敌人给我留言,询问本文题目形容的问题。XXX 能够替换成任意一个 SAP 产品或者技术,比方: 想比拟全面地学习 SAP ABAP,能领导下从哪儿开始学习吗?想比拟系统地学习 SAP Fiori,能领导下从哪儿开始学习吗?想比拟系统地学习 SAP Cloud for Customer,能领导下从哪儿开始学习吗?首先,Jerry 在 SAP 成都研究院工作了 15 年,但也仅仅是对 SAP 极少数产品和技术相熟而已。这些敌人询问我的不少 SAP 产品,比方 PO/PI,我在日常工作中也从未用过,因而切实谈不上"领导",本文只是聊聊我的一些集体学习教训,不代表 SAP 官网意见。 倡议1:找到一个能用的零碎或环境我以前已经在 SAP 成都数字翻新空间工作过两年工夫,工作内容就是用 SAP Customer Experience 产品线里的产品开发一些原型和概念验证,因而也免不了要去学习一些新产品和技术。 在我看来,学习一门新的 SAP 产品或技术,首先要解决的一个问题就是要有一个能用的零碎。在我之前的文章 ABAP 真的会过期吗?聊聊 ABAP 的过来,当初和将来 已经提到,SAP 的全称为 System Applications and Products in Data Processing,是一系列应用程序的汇合,SAP 的常识学习离不开实战。就算手上有再好的材料,没有可能入手实际操作的零碎,心愿仅靠浏览这些材料来入门,事倍功半。 倡议2:最好可能在理论工作中学习倡议1 提到最好能找到一个可用的零碎或环境,然而有时对于初学者来说,这是一个有肯定门槛的工作。比方要学习 ABAP,无论是在本地搭建一台 ABAP Netweaver 服务器,还是用 Docker 的形式来装置,过程都可能遇到种种问题,对学习者独立解决问题的能力要求比拟高。 如果能在理论工作中学习,就意味着搭环境这一步能够省去了,因为很多时候,企业里都会有专门的团队去负责环境搭建。 最现实的状况是,工作中有一个明确的工作,比方在 SAP XXX 产品里实现 XXX 场景,并且给予了拮据的工夫去学习。在这种前提下,学习者对于本人短期内的指标十分明确,这种工作驱动的学习形式,可能帮忙学习者在短期里迅速入门该产品某一个具体畛域。有了这一小块具体畛域的常识,能够像小朋友玩拼图游戏一样,在本人曾经把握的常识根底上,以点带面,逐渐扩大本人对该产品更广大畛域的学习。当然,在大部分理论职场里,这种带薪学习的机会不多。 我晓得从某种程度说,"在理论工作中学习" 是一个先有鸡还是先有蛋的问题。在我收到的一些征询里,也的确有一些敌人,心仪某个公司某个 SAP 产品的岗位,但本人不足该产品的相干常识,打算自学一段时间之后,再去应聘该岗位。这种状况下,"在理论工作中学习" 也就无从谈起了。 ...

September 11, 2022 · 2 min · jiezi

关于sap:如何使用-ABAP-代码发送带有-PDF-附件的电子邮件

零根底 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 读取本地文本文件内容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 一些个性化设置和实用小技巧如何应用 saplink 装置其余网站上提供的 ABAP 程序ABAP 报表中如何给报表的输出参数削减 F4 Value HelpABAP 报表中如何以二进制形式上传本地文件ABAP 里文件操作波及到中文字符集的问题和解决方案如何对 ABAP 数据库表通过 ABAP 代码进行更新和删除操作如何让 ABAP 报表在后台作业的模式下运行如何应用 ABAP 代码解析 XML 文件如何应用 ABAP 代码发送邮件到指定邮箱如何应用 ABAP 代码发送带有 PDF 附件的电子邮件更多文章正在写作中Office 专题用 ABAP 新建本地 Excel 文件并写入数据如何应用 ABAP 创立蕴含不同字体大小的 Word 文档更多文章正在写作中ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理SAP ABAP ALV 档次程序表如何应用双表头(Multiple Headers)进行数据输入如何在 SAP ABAP ALV 报表里以交通灯的形式显示某一列的值更多文章正在写作中在学习本步骤之前,请大家务必先把握本教程之前这些步骤的学习,以取得必要的前置常识: ...

September 11, 2022 · 2 min · jiezi

关于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 读取本地文本文件内容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 一些个性化设置和实用小技巧如何应用 saplink 装置其余网站上提供的 ABAP 程序ABAP 报表中如何给报表的输出参数削减 F4 Value HelpABAP 报表中如何以二进制形式上传本地文件ABAP 里文件操作波及到中文字符集的问题和解决方案如何对 ABAP 数据库表通过 ABAP 代码进行更新和删除操作如何让 ABAP 报表在后台作业的模式下运行如何应用 ABAP 代码解析 XML 文件如何应用 ABAP 代码发送邮件到指定邮箱更多文章正在写作中Office 专题用 ABAP 新建本地 Excel 文件并写入数据如何应用 ABAP 创立蕴含不同字体大小的 Word 文档更多文章正在写作中ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理SAP ABAP ALV 档次程序表如何应用双表头(Multiple Headers)进行数据输入如何在 SAP ABAP ALV 报表里以交通灯的形式显示某一列的值更多文章正在写作中本教程后面的步骤,咱们介绍了如何在 ABAP Editor 里一步步创立蕴含自定义 Screen 的 ABAP 程序的具体办法。 ...

September 11, 2022 · 1 min · jiezi

关于sap:如何使用-ABAP-代码消费需要传递-CSRF-token-的-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 服务进行配置并测试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 申请中返回多个节点的数据18. SAP ABAP OData 服务嵌套创立性能的实现步骤(Create Deep)19. 如何应用 ABAP 程序生产 SAP ABAP OData 服务20. 如何应用 ABAP 代码生产须要传递 CSRF token 的 OData 服务更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待本教程的前一步骤,咱们应用 ABAP 代码,生产了咱们本人开发的 OData 服务。 ...

September 11, 2022 · 2 min · jiezi

关于sap:SAP-RFC-接口基于-SeaTunnel-开发实践打通企业内部数据采集的最后一个壁垒

点亮 ⭐️ Star · 照亮开源之路 GitHub:https://github.com/apache/inc... 无论是甲方还是乙方,咱们在采集数据进行数仓模型建设时,企业的ERP一旦切换到SAP零碎中,就会遇到较高的平安挑战、技术门槛和产品壁垒。 平安挑战问题在于:传统数仓模式离线接入SAP HANA,对于多集团公司又波及到数据权限和隔离等平安问题,个别团体大型企业不太会凋谢HANA数据库进行接入,同时SAP的业务表逻辑也比较复杂; 技术门槛在于:咱们要有对应的java开发工程师,每一个数据表就要开发一个接口,而且接口的传输速度也很慢,只能适宜小批量的数据接入; 产品壁垒在于:SAP的闭环治理只能购入SAP的BW产品实现整体数据的疾速接入和模型建设,这种模式就比拟适宜“ALL IN SAP”的企业外面,所有的数据处理和剖析都是基于SAP产品进行闭环的开发治理,然而弊病仍然显著,一旦有局部产品脱离SAP,那数据团队以及运维的老本都是翻倍减少的,也无奈实现企业降本增效的目标; 理论状况是在企业外部的各种业务零碎异样简单,尤其是各种各样的ERP零碎,业务中台零碎,线上平台零碎,私有化部署的,SAAS模式的,要一个通用的工具去实现各种数据源的采集接入,前几年国内比拟支流的就是Kettle,再起初是DATAX;但他们都侧重于离线解决,对于实时数据接入也是费时费力,或者根本不能实现; 基于以上简单场景,在试用了市场上支流的开源的产品之后,咱们锁定了SeaTunnel,依照从简略到简单的接入,分步骤实现了离线数据接入,实时数据(Kafka)接入,数据在Hadoop生态和Clickhouse之间的连接买通,在验证了上述的稳定性和高速度之后,咱们外部决定开发基于SeaTunnel的SAP RFC接口,完全彻底的买通企业外部数据采集的最初一个壁垒; 首先开发BaseStaticInput插件。BaseStaticInput是个abstract class,咱们只有继承并实现它就能够。 class SapRfcInput extends BaseStaticInput{ var config = ConfigFactory.empty() override def setConfig(config: Config): Unit = { this.config = config } override def getConfig(): Config = config override def checkConfig(): (Boolean, String) = { } override def getDataset(spark: SparkSession): Dataset[Row] = { }}其中的关键点就是要实现getDataSet函数,这个函数的返回值是Dataset[Row]。 怎么能力失去Dataset[Row]?要么间接通过seq或者list相似的数据结构,要么通过RDD结构。 如果间接通过数据结构,在数据量过大时会产生内存溢出,这种办法在数据量很小的时候是能够的。在数据量大的时候,须要一种惰性的形式获取数据,得实现本人的RDD。 class SapRfcRDD(sc: SparkContext, config: Config) extends RDD[Row](sc, Nil) with Logging{ override def compute(split: Partition, context: TaskContext): Iterator[Row] = new Iterator[Row] { override def hasNext: Boolean = { } override def next(): Row = { } } override protected def getPartitions: Array[Partition] = { }}SapRfcRDD构造函数咱们本人增加了一个参数config,为什么增加它?下文会阐明。 ...

September 9, 2022 · 3 min · jiezi

关于sap:如何使用-ABAP-代码解析-XML-文件

正如本教程的开篇介绍文章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 申请中返回多个节点的数据18. SAP ABAP OData 服务嵌套创立性能的实现步骤(Create Deep)19. 如何应用 ABAP 程序生产 SAP ABAP OData 服务更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待XML 格局是 SAP 理论我的项目集成中常常应用到的一种数据格式,比方 SAP ABAP OData 服务,反对 XML 和 JSON 两种数据格式。下图是笔者 SAP ABAP OData 实战开发教程里开发的 OData 服务返回的 XML 格局的元数据: ...

September 4, 2022 · 2 min · jiezi

关于sap:如何在-SAP-ABAP-ALV-报表里以交通灯的方式显示某一列的值

零根底 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 读取本地文本文件内容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 一些个性化设置和实用小技巧如何应用 saplink 装置其余网站上提供的 ABAP 程序ABAP 报表中如何给报表的输出参数削减 F4 Value HelpABAP 报表中如何以二进制形式上传本地文件ABAP 里文件操作波及到中文字符集的问题和解决方案如何对 ABAP 数据库表通过 ABAP 代码进行更新和删除操作如何让 ABAP 报表在后台作业的模式下运行更多文章正在写作中Office 专题用 ABAP 新建本地 Excel 文件并写入数据如何应用 ABAP 创立蕴含不同字体大小的 Word 文档更多文章正在写作中ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理SAP ABAP ALV 档次程序表如何应用双表头(Multiple Headers)进行数据输入更多文章正在写作中在本教程的这篇步骤里,咱们介绍了 ALV 档次程序表的输入实现明细。 ...

September 4, 2022 · 1 min · jiezi

关于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 读取本地文本文件内容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 一些个性化设置和实用小技巧如何应用 saplink 装置其余网站上提供的 ABAP 程序ABAP 报表中如何给报表的输出参数削减 F4 Value HelpABAP 报表中如何以二进制形式上传本地文件ABAP 里文件操作波及到中文字符集的问题和解决方案如何对 ABAP 数据库表通过 ABAP 代码进行更新和删除操作如何让 ABAP 报表在后台作业的模式下运行更多文章正在写作中Office 专题用 ABAP 新建本地 Excel 文件并写入数据如何应用 ABAP 创立蕴含不同字体大小的 Word 文档更多文章正在写作中ALV 开发专题27 行代码开发一个最简略的 SAP ALV 报表48 行代码给 ABAP ALV 报表的数据行削减色彩成果77 行代码实现ABAP ALV 中的双击事件处理SAP ABAP ALV 档次程序表如何应用双表头(Multiple Headers)进行数据输入更多文章正在写作中本教程迄今为止咱们介绍的各种 ABAP 程序的编写,都是在事物码 SE38 或者 SE80 里实现之后,间接点击工具栏的执行按钮,或者应用 F8 快捷键来执行的: ...

September 4, 2022 · 2 min · jiezi

关于sap:浅谈-SAP-ABAP-系统里的-ALV-输出方式实现

因为国情起因,ABAP ALV相干的报表开发在国内泛滥SAP技术交换群里永远都是一个热门话题。最近Jerry和敌人的技术交换群里,郭爷向大家介绍了ALV Integrated Data Access,可能轻松实现以ALV格局展现CDS view的数据。 什么是 ALV?ALV 最后是 ABAP List Viewer 的缩写,但在 SAP 文档中找到的以后术语是 SAP List Viewer。 不过,这并不重要,在日常实际中,它被简称为 ALV,不再应用任何名称。 ABAP 列表查看器 (ALV) 是一组应用程序编程接口(API 功能模块和类),用于以表格或分层格局显示数据,以及用于视觉出现和事件处理的内置选项。 对于用户,ALV 提供了一个敌对的界面和一个工具栏,容许每个用户依据本人的爱好调整出现的布局,并轻松地对数据进行排序或过滤。 许多规范 SAP 报告应用 ALV,因为其灵活性、易于施行和多种性能,它已成为构建自定义 ABAP 报告时的风行工具。ALV 框架的第一个实现是经典 SAP 列表查看器,通常称为 ALV 列表。 感激郭爷的介绍,Jerry因为工作起因不会进行SAP Dynpro的编程,所以也不晓得这个ALV IDA的存在。网上搜了一下,发现早在2018年就有SAP从业者写过介绍它的博客了: 因为应用的确非常简单,Jerry不会反复博客里的内容,对其具体用法感兴趣的敌人,请移步这篇SAP社区博客: SAP List Viewer with integrated Data Access ALV with IDA. 如下图所示,我在SAPGUI里写了一个报表,只用一行语句就能实现一个名叫ZFAT_INTERFACE这个CDS view的ALV展现工作。 cl_salv_gui_table_ida=>create_for_cds_view( iv_cds_view_name = 'ZFAT_INTERFACE' )->fullscreen( )->display( ).这个CDS view显示的数据,是以后ABAP零碎里所有的接口(SE24里查看的interface)和接口上定义的办法个数。 CDS view实现源码如下: ...

September 4, 2022 · 1 min · jiezi

关于sap:使用代码给-SAP-UI5-XML-视图添加自定义-CSS

一个例子如下图所示: this.getView().addStyleClass(Device.system.desktop ? "sapUiSizeCompact" : "sapUiSizeCozy"); 样式表以与纯 HTML 雷同的形式蕴含在 XML 视图中。 要向 SAPUI5 控件增加更多 CSS 类,请应用 class 属性。SAP UI5 开发人员务必须要认真抉择设置款式的元素,因为 CSS 始终会影响整个页面,并且不限于视图。 例子:上面介绍如何增加款式定义并定义在 XML 视图中应用它的按钮。 <mvc:View controllerName="sap.hcm.Address" xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc" xmlns:html="http://www.w3.org/1999/xhtml"> <html:style> .mySuperRedButton { color: red; } </html:style> <Panel> <Button class="mySuperRedButton" text="Press Me"/> </Panel></mvc:View>留神,要容许您的 XML 视图在内容安全策略回绝内联款式(Content Security Policy denying inline styles)的环境中应用(即没有 style-src 指令的 unsafe-inline 源),须要援用内部样式表而不是将样式表嵌入到其 XML 视图。 一个最间接的例子: myButton.addStyleClass("mySuperRedJerryButton");下面的代码里,作为 sStyleClass 给出的字符串将被增加到该控件的根 HTML 元素的 class 属性中。 此办法旨在用于将控件标记为非凡类型,能够应用援用此款式类名称的 CSS 选择器为其提供非凡款式。 一个应该防止的做法是间接款式化DOM元素,这会导致不可预测的后果,因为SAPUI5不能保障外部管制DOM树的稳定性。此外,当利用程序运行在共享运行时环境(如SAP Fiori launchpad)或增加自定义HTML时,这可能会导致款式抵触。最好将款式更改限度在特定应用的CSS类中。 应该防止上面这种做法: div { width: 120px;}举荐的做法: ...

September 4, 2022 · 1 min · jiezi

关于sap:使用-SAP-UI5-绘制-Business-Rule-Control

本文咱们介绍如何将 Business Rule Control 即规定控件,嵌入到 SAP UI5 应用程序视图中。 RuleBuilder 组件是一个规定控件的容器,能够捆绑不同的可视化伎俩。 目前惟一可用的可视化是决策表(Decision Table)。 RuleBuilder 定义了 UI 开发者要遵循的通用规定 UI 生产模式和 API。 在这个例子中,咱们创立了一个决策表,它将应用疏导输出模式。 成果如下: 能够切换条件: 能够编辑 if 条件 和 then 后果: 咱们在 xml 视图里,应用的控件来自命名空间 sap.rules.ui 的规范控件:RuleBuilder,types 属性为 DecisionTable 当初咱们须要将 ExpressionLanguage 对象关联连贯到 RuleBuilder,而后控件通过 OData 模型加载其数据。 表达式语言(Expression languages)为规定创作、规定可视化和规定内容验证提供所需的服务。 表达式语言对象提供的服务包含表达式验证、表达式解析、主动实现倡议、表达式元数据和令牌的检索,以及执行运行时服务,例如获取数据对象、输入等。 特定词汇表的词汇表 OData 模型和绑定上下文门路是表达式语言的强制输出。 表达式语言对象是 RuleBuilder 对象的关联,它能够关联多个 RuleBuilder 对象。 咱们能够依据我的项目理论要求:自定义 Page.controller.js。 设置表达式语言对象: oExpressionLanguage = new sap.rules.ui.services.ExpressionLanguage();oRuleBuilder.setExpressionLanguage(oExpressionLanguage); 如果应用 DMN SFEEL(Expression language 2.0),则代码如下: oAstExpressionLanguage = new sap.rules.ui.services.AstExpressionLanguage();oRuleBuilder.setAstExpressionLanguage(oAstExpressionLanguage);确保在设置表达式语言的词汇模型之前已设置数据,如图所示: ...

September 4, 2022 · 3 min · jiezi

关于sap:SAP-UI5-第二代表达式语言的一些特性介绍

Expression Language 2.0(简称 DMN SFEEL),它是足够敌对的表白语言 (FEEL) 的子集,为规定条件提供规范语法,并在建模规定时缩小歧义。 表达式语言 2.0 中一个典型的规定条件如下所示: customer.customer name MATCHES 'John' 表白语言 2.0 的次要特点包含: 主动倡议列表(Autosuggest list)是一个倡议下拉菜单,可让您抉择规定表达式的所需元素。 您不用在相应字段中键入规定表达式。您还能够在字段中键入规定表达式并从主动倡议列表中抉择相应的词汇表元素。 应用自在流输出,您还能够编辑和删除规定表达式中的标记。 看个理论的例子: 在以下规定表达式中:DO1.Equipment = 'Laptop' AND DO2.Date = 'Dec 3, 2020' 如果光标位于 DO 和 1 之间,则所有以 DO 结尾的数据对象都会列在主动倡议列表中。 同样,依据光标地位,列出对应的数据对象或属性名称。要更改日期或工夫戳值,请编辑主动倡议列表的固定值字段中的值。如果光标放在属性名称 Equipment 之前,则删除属性名称。如果光标位于数据对象名称 DO1 之间或之前,则删除数据对象和属性名称 DO1.Equipment。表达式语言 2.0 反对应用词汇规定。能够在规定表达式中应用的规定称为词汇规定。 词汇规定返回的后果能够在规定表达式中应用。 您能够将表达式语言从 Expression Language 1.0 更改为 Expression Language 2.0。 您只能将表达式语言从 1.0 更改为 2.0,反之亦然。 要迁徙到 Expression Language 2.0,请在代码中将表达式语言对象设置为 AstExpressionLanguage,如下所示: oExpressionLanguage = new sap.rules.ui.services.AstExpressionLanguage();oRuleBuilder.setExpressionLanguage(oAstExpressionLanguage);

September 4, 2022 · 1 min · jiezi

关于sap:SAP-UI5-的规则构建器控件介绍

SAP 业务规定是一种逻辑,它定义业务的某些方面,并总是解析为真或假的布尔值。非技术用户能够通过简化的规定语言和用户界面保护此逻辑。因而,业务规定容许应用程序的客户增加他们本人的逻辑,而不须要技术定制或编码。 规定构建器控件容许业务用户基于 SAP UI5 在应用程序中创立和编辑业务规定。该控件定义了用于在SAP Fiori 应用程序中创立业务规定的SAP规范UX,并且应该成为SAP Fiori UI开发人员增加业务规定性能的默认UI组件。 ui库提供了治理业务规定的控件。两个次要组成部分是: RuleBuilder——以决策表和文本规定的模式提供规定的可视化,以简化规定业务逻辑的创立和编辑。表达式语言服务——提供表达式语言服务,以反对业务规定的可读性和正确性。 RuleBuilder组件提供的可视化蕴含文本局部,表达式语言服务反对最终用户创立和编辑这些文本局部。 Expression Languages开发人员能够应用表达式语言对规定建模。规定构建器反对两种表达式语言: 表达式语言1.0(又称规定表达式语言):表达式语言1.0使用户可能用简略易读的语法定义业务决策逻辑。这是规定构建器反对的默认语言。表达式语言1.0中一个典型的规定条件如下:customer_name of the customer is equal to 'John 表达式语言2.0 (DMN SFEEL):表达式语言2.0或DMN SFEEL是足够敌对的表达式语言(FEEL)的一个子集,为规定条件提供规范语法,并在建模规定时缩小二义性。表达式语言2.0中一个典型的规定条件如下:customer.customer name MATCHES 'John'

September 4, 2022 · 1 min · jiezi

关于sap:给-SAP-Commerce-Cloud-Storefront-设置-endpoint

店面端点为客户提供对其架设的店面的拜访权限。 端点配置在构建清单(build manifest.json )和云门户(Cloud Portal)中进行治理。 在构建清单中,您能够为店面域(domain)定义可选门路。 在云门户中,您能够编辑域并利用 SSL 证书(certificate)来爱护店面。 在构建清单中,能够将门路附加到店面的域。 在 aspect 的 accstorefront 局部,请留神 webapps 局部。 如果 mycustomstorefront 的上下文门路设置为空引号 "",则店面的默认 URL 就是域 domain 的值。 如果要增加门路,请将门路定义为如下值: “contextPath”:“/<path>”该示例将端点显示为没有门路的域,因为空引号呈现在 contextpath 中。 Storefront 店面端点具备在最后供给环境时调配的默认域。 此默认域是客户要在向 DNS 提供商注册的 CNAME 记录中援用的域。 胜利配置环境后,登录云门户并应用客户用于拜访您的店面的理论域来更新 domain 的值。 Commerce Cloud modeltacceleratorservices 扩大为店面端点提供了更多配置选项。 要启用此扩大,请将其蕴含在 Commerce Cloud manifest.json 文件的扩大局部中,而后配置根本站点 URL。 配置(provision)环境时,会将默认店面域调配给店面端点。 咱们能够向 DNS 提供商注册默认域。 而后,能够应用客户在拜访您的店面期间望应用的理论域来更新默认店面域。 始终查看端点 URL。 在某些状况下,门路不会主动附加到端点 URL,即便它是在构建清单中定义的。 这种状况下,能够将门路附加到浏览器地址中的端点 URL,而后按 Enter。 例子如下: https://<your_storefront_URL>/<path> Base Site URL in Backoffice配置环境后,能够应用 Backoffice 将 URL 增加为数据库条目。 在这种状况下,请应用以下两个属性手动配置 Backoffice 中的 URL: ...

September 2, 2022 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-ASM-模块的登录过程

电商畛域里的销售代表(Sales Representative)和卖家审批者(Seller Approver)必须应用辅助服务模块 ASM 登录店面,以解决其客户的报价。 要为客户报价,销售代表登录 ASM 并为该客户启动会话。 同样,卖方批准者登录 ASM 并启动一个会话,让客户批准销售代表提交的供应商报价。 销售代表和卖家审批者登录 ASM 并启动客户会话,如下所示: (1) 通过将 ?asm=true 增加到店面 URL 来导航到 ASM。 例如:http://powertools.local:9001/yacceleratorstorefront/?asm=true 回车之后,能够看到 Storefront 页面左上角的 user 和 password 输入框,同时呈现了 Assisted Service Mode 的提示框。 (2) 在“代理 ID”字段中输出用户名,输出 password,而后单击“登录”。 这样咱们当初已登录到 ASM。 输出客户名称(或客户电子邮件地址)并单击开始会话。 或者,单击页面顶部的客户,而后从我最近的客户会话或客户列表中抉择客户。 该客户的 ASM 会话已启动。 下一步通常是通过导航到 My Account 菜单的报价菜单栏来查看须要留神的报价。 请留神,无论是销售代表还是卖家审批者查看报价单,都会略有不同。 通过单击店面中的 My Account->Quotes 拜访报价列表。 该清单显示了买方已提交的所有报价。 请留神,任何处于买方草稿状态的报价(由买方创立但未提交给销售代表)都不会显示在销售代表的报价清单中。 该列表有几个排序选项: date the quote was updatedquote codequote namequote status报价状态字段的含意报价状态表明它在协商过程中的地位。 草稿:销售代表创立或批改的报价,但尚未提交供应商报价。 销售代表能够编辑报价草稿或提交供应商报价。已申请:已由买方提交或已被卖方批准人回绝的报价。 销售代表能够编辑它或提交供应商报价。已提交:销售代表提交的具备法律约束力的供应商报价。 销售代表无奈进行任何批改。已勾销:报价被买方勾销。 销售代表无奈进行任何批改。

September 2, 2022 · 1 min · jiezi

关于sap:SAP-Spartacus-项目开发时需要注意的一些常见错误

SAP Spartacus 的工作原理与 Hybris Accelerator 不同。SAP 不倡议间接复制 Spartacus library 的源代码并在源代码级别上进行批改,这会毁坏 Spartacus 的可降级性。 正确的做法,应该将 Spartacus 用作库并应用其余形式(例如依赖注入、组件映射、outlet)来更改其行为。 正确的做法示例: 防止 outlet 的滥用outlet 是 Spartacus 定制化的一种弱小形式。咱们在利用这个有用工具进行我的项目开发时,也须要分明的意识到它的一些局限性 (1) 咱们无奈通过 CMS 来编辑 outlet(2) outlet 如果使用不当,可能会造成潜在的性能问题 在应用 outlet 之前,咱们能够先进行评估:这个须要应用 outlet 实现的需要,能够通过 Component mapping 实现吗? 防止应用谬误的 recipe moduleSpartacus 提供了所谓的配方模块(recipe module),有点相似 Commerce Cloud 后盾的 installation recipe. B2cStorefrontModule 是一个典型的例子,它为 B2C 商店提供了一个根本实现。 如果咱们的我的项目需要,是实现一个简略的商店并且冀望能够重用大部分内置性能,那么它是一个完满的抉择。 然而,如果打算进行一些更深刻的自定义,则应思考应用另一个模块,例如 StorefrontModule 甚至 StorefrontFoundationModule. 抉择适合的配方模块能够进步性能、更好地控制代码库和更简洁的代码。 Spartacus 自身带有几个层和概念,以及许多能够开箱即用提早加载的较小性能库。 B2cStorefrontModule 是 B2C 施行的初始店面。 它能够应用配置和插座轻松定制。 然而,当我的项目增长并高度自定义时,应用 StorefrontModule 可能会更无效。 这样咱们就能够更细粒度地 import Spartacus 的 library. ...

September 2, 2022 · 1 min · jiezi

关于sap:如何增强-ABAP-系统允许开发人员给-ABAP-对象设置标签方便快速检索

标签(Tag)简直是信息管理软件的一个必备性能,目标是帮忙用户更迅速地检索出本人须要的数据,以及对海量数据进行更无效的治理。 现在在 ABAP Development Tool 里也反对标签性能了,能够像应用各种云笔记一样,给罕用类型的ABAP对象增加自定义的标签。这个标签调配的性能并未给 ABAP 对象削减任何新的性能,而是帮忙使用者可能依照本人的理论需要,迅速将须要的 ABAP 资源检索进去。 如果您相熟 C++ 和 Java,您应该晓得它们的程序存储在独自的内部文件中。 但在 ABAP 中,程序驻留在 SAP 数据库中。 它们在作为 SAP 内核一部分的运行时零碎的管制下执行。 运行时零碎解决所有 ABAP 语句,控制流逻辑并响应用户事件。 本文先展现给ABAP对象加标签的操作形式,再介绍如何给ABAP Development Tool增加标签性能。 SAP 零碎以 3 层客户端-服务器架构形容。 三层别离是表示层、应用层和数据库层。 下图将帮忙您理解 SAP 零碎的简略构造。 表示层蕴含可用于管制 SAP 零碎的任何输出设施。 简略地说,它能够是挪动设施、台式计算机或网络浏览器。 应用层表演中央处理服务器的角色。 表示层发动的所有用户操作都在此解决。 应用层不仅仅是一个零碎自身,它也能够是解决零碎的多个实例。 应用服务器过程通过工作过程(Work Process,简称 WP)执行。 WP 是可能执行应用程序的组件。 在 SAP 零碎的整个运行时,每个 WP 都在数据库系统中注册为用户。 数据库层是存储所有数据的中央。 这里说的数据不光蕴含业务数据,也包含所有客户记录、程序和任何须要存储的货色,是狭义上的数据概念。 简而言之,用户在表示层上执行的任何操作都将传递给应用程序层进行解决,该解决将从数据库层检索任何相干数据,应用程序层解决数据并通过表示层将其出现给最终用户。 在数据库外部,ABAP 代码以两种模式存在。 源代码 — 能够应用 ABAP 工作台工具查看和编辑。生成的代码 - 二进制示意。 (在 Java 中,这个生成的代码有点相似于 Java 字节码)运行时零碎能够被认为是一个虚拟机,就像Java虚拟机一样。 ...

September 2, 2022 · 1 min · jiezi

关于sap:SAP-电商云-Spartacus-服务器端渲染的单步调试详细步骤

本文介绍如何在本地调试 SAP Spartacus Node.js 利用。 依照这个链接 装置 Spartacus. 在 package.json 的 scripts 区域,生成了一个名叫 build:ssr 的指令,默认依照 --prod 参数来构建。 如果应用这个 script,咱们不得不调试 minified and uglified code, 不太直观。 也就是说,去掉 --prod 和 :production 应用如下命令行: ng build && ng run mystore:server 采纳这个形式构建出的 main.js, 代码是可读的: (3) 增加一个 --inspect-brk 选项: node --inspect-brk dist/mystore/server/main.js 启动: npm run serve:ssr (4) Chrome 地址栏输出 chrome://inspect, 点击 inspect hyperlink: 断点会主动触发,停在 main.js 的第一行: 当初就能够开始调试了: ...

September 2, 2022 · 1 min · jiezi

关于sap:SAP-电商云-Spartacus-UI-的-Product-Category-Navigation-UI-实现

本文钻研 SAP 电商云 Spartacus UI Product Category Navigation UI 的实现明细。 selector: cx-category-navigation Component name:CategoryNavigationComponent navigation node 的数据,从 service 里获取的: 依据 Componentdata 拿到 navigation node 的数据: navigation UI 上面是不同的 nav 子节点: navigation UI 的 design 是数据驱动的: nav 节点上有很多 click 事件注册: 在这里加上一行打印信息: 四次打印,两组。 看 /Brands/all/c/brands 蕴含在哪个 CMS response 里:/Open-Catalogue/Cameras/Digital-Cameras/c/575 答案是这个 url: https://spartacus:9002/occ/v2... 取这些 ComponentID: componentIds: AllBrandsCategoryLink,CanonBrandCategoryLink,SonyBrandCategoryLink,KodakBrandCategoryLink,SamsungBrandCategoryLink,ToshibaBrandCategoryLink,FujifilmBrandCategoryLink,KingstonBrandCategoryLink,IciduBrandCategoryLink,TDKBrandCategoryLink,SweexBrandCategoryLink,DigitalCamerasCategoryLink,DigitalCompactsCategoryLink,DigitalSLRCategoryLink,FilmCamerasCategoryLink,HandheldCamcordersCategoryLink,WebcamsCategoryLink,CameraAccessoriesCategoryLink,CamerasFlashesCategoryLink,TripodsCategoryLink,CameraLensesCategoryLink,FlashMemoryCategoryLink,PowerSuppliesCategoryLink,ColourFilmsCategoryLink,BlackAndWhiteFilmsCategoryLink,BlankVideotapesCategoryLink Brand 上面又有两个子节点:camera 和 accessories: Cameras 上面的 6 个子节点: ...

September 2, 2022 · 1 min · jiezi

关于sap:如何使用-ABAP-程序消费-SAP-ABAP-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 服务进行配置并测试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 申请中返回多个节点的数据18. SAP ABAP OData 服务嵌套创立性能的实现步骤(Create Deep)19. 如何应用 ABAP 程序生产 SAP ABAP OData 服务更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待本教程到目前为止,咱们曾经创立了一个反对增删改查的图书治理 OData 服务。本步骤介绍如何应用 ABAP 程序,来生产这个 OData 服务。 ...

September 2, 2022 · 2 min · jiezi

关于sap:一些-Next-Generation-ABAP-Platform-的新语法用例

什么是 NGAP(Next Generation ABAP Platform)? SAP NetWeaver 7.40 公布,并附带其 ABAP 应用服务器 AS ABAP 7.40。 在 AS ABAP 7.40 中,ABAP 语言具备一些不错的新个性。 AS ABAP 7.40 是 AS ABAP 7.31(又名 AS ABAP 7.03)的继承者,后者是基于 AS ABAP 7.0 构建的 AS ABAP 7.02 的继承者。 请留神,对于 ABAP 语言和 ABAP 语言环境 AS ABAP 7.31 及其 AS ABAP 7.40 不是 AS ABAP 7.30 的继承者。相同,AS ABAP 7.03 已重命名为 AS ABAP 7.31,因而 AS ABAP 7.40 是 AS ABAP 7.02 的后续版本。 ...

September 2, 2022 · 5 min · jiezi

关于sap:SAP-ABAP-OData-服务嵌套创建功能的实现步骤Create-Deep试读版

正如本教程的开篇介绍文章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 服务正在写作中,敬请期待什么是 SAP ABAP OData 服务的嵌套创立性能?在很多 SAP 帮忙文档里,这个性能的英文形容是 Create Deep,或者 Deep Insert. ...

September 2, 2022 · 2 min · jiezi

关于sap:SAP-CRM-Fiori-应用的-Deep-Create-行为和实现分析

什么是 OData 的 Deep Create 行为?咱们通过一个具体的例子来理解。 下图是 SAP CRM Fiori 利用之一的 My Opportunities 界面。 咱们点击 + 按钮,能够创立新的 Opportunity 实例。 在 Opportunity 创立页面里,能够保护 Opportunity 低头区域的字段值。所谓低头区域,能够了解成 Opportunity OData 模型的根节点: 低头区域的字段值保护结束之后,往下滑动屏幕,看到 Product 区域。点击 + 按钮,增加 Product 数据: 下图高亮区域就是 Product 数据,而从建模的层面来说,这些字段值,都是 Opportunity OData 模型的子节点,即 Product 子节点上的字段值。 因而,所谓 OData 的 Deep Create 操作,就是 OData 消费者在一个 HTTP 申请里,同时提供了待创立的根节点和子节点字段值,这样 OData 服务提供者在接管到这个 HTTP 申请后,可能同时创立蕴含根节点和子节点的业务数据实例。 咱们在 Chrome 开发者工具的 Network 页面里,察看到上述场景所触发的 OData 申请,其 HTTP Payload 明细如下: ...

September 2, 2022 · 1 min · jiezi