关于sap:仅仅-49-行代码就能使用-ABAP-函数发送邮件到指定邮箱试读版

本教程之前的步骤,笔者介绍了如何应用 ABAP 代码发送邮件到指定的邮箱去: 40. 如何应用 ABAP 代码发送邮件到指定邮箱41. 如何应用 ABAP 代码发送带有 PDF 附件的电子邮件有敌人感觉笔者的发送邮件代码应用了 ABAP 面向对象的思路,即 cl_document_bcs,而他们的我的项目里次要还在用面向过程的 ABAP 编程形式,因而询问我 ABAP 零碎里有没有现成的函数可能同样实现邮件的发送性能。 对于 ABAP 面向对象和面向过程这两种编程思路的探讨,请参看笔者之前的文章: 55. ABAP 是一门反对面向过程和面向对象的混合型编程语言,理论开发中用哪种?本步骤笔者就介绍如何应用 ABAP Function Module,短短 49 行代码就能实现发送邮件到指定邮箱的性能。 先看报表实现的成果。执行之后,保护一个接管邮件的地址: 执行结束,从状态栏看到 successful 的胜利提醒。 而后关上接收者的 outlook,果然看到了通过 ABAP 代码发送的这封邮件: 其中邮件题目和注释三行内容,都是咱们在 ABAP 代码里硬编码实现的。 上面是具体的实现步骤。残缺的源代码见文末。

July 1, 2023 · 1 min · jiezi

关于sap:ABAP-泛型编程Generic-Programming-在实际工作中的一个例子

ABAP(Advanced Business Application Programming)泛型编程是一种在 ABAP 语言中应用的编程范式,它容许编写能够解决多种数据类型的通用代码。泛型编程的目标是进步代码的复用性、灵活性和可维护性。通过应用泛型编程,开发人员能够编写一种通用的算法或数据结构,而不用为每种数据类型编写特定的实现。 在 ABAP 中,泛型编程次要通过应用类型组(Type Groups)和泛型类型(Generic Types)来实现。类型组容许您定义一组相干的类型,而泛型类型容许您编写独立于特定类型的代码。例如,您能够编写一个泛型排序算法,该算法能够解决任何类型的数组,而无需为每种类型的数组编写独自的排序函数。 以下是 ABAP 泛型编程的一些要害概念: 类型组(Type Groups):类型组是一种组织和治理相干类型的办法。您能够应用 TYPE-POOL 关键字定义类型组,而后在程序中应用它们。类型组提供了一种定义类型别名和常量的办法,以便在整个程序中重复使用。泛型类型(Generic Types):泛型类型是一种示意不确定类型的办法。这容许您编写通用的代码,该代码能够解决多种类型的数据。在 ABAP 中,泛型类型通常用 TYPE ANY 或 TYPE ANY TABLE 示意。您能够应用泛型类型编写独立于特定类型的函数、办法和类。RTTS(Run Time Type Services):RTTS 是一组用于创立和操作动静类型的 ABAP 类和接口。应用 RTTS,您能够在运行时创立、批改和查问类型信息,从而使您的代码更加灵便和可扩大。总之,ABAP 泛型编程容许您编写可解决多种数据类型的通用代码,从而进步代码的复用性、灵活性和可维护性。这是通过应用类型组、泛型类型和 RTTS 等技术来实现的。 咱们来看事实工作中一个理论的例子。 Attachment 的metadata里定义的data type和runtime时的data type不一样Attachment和其余四个节点不太一样。 当用新的service url拜访时,https://jerry.corp:44354/sap/opu/odata/sap/CRM_ODATA/TaskColl... 动静生成的structure是BP 定义的common structure,如下: 用老的service url:https://jerry.corp:44354/sap/opu/odata/sap/CRM_TASK/Tasks?$filter 则动静生成的structure是咱们task本人的attachment structure。 优化后的代码须要可能同时handle 这两种状况。我曾经想到有两种方法能够工作,等做完性能测试后再update大家。 不晓得BP是否也要实现相似的需要,如果是,等我把solution写进去之后再和他们的比拟。 Metadata里是这个structure: Runtime变成了这个: 这些BPID和file_size 是runtime 生成的?这个structure里header_guid也没了。 在Z class里调了半天才调通,两头遇到好多dump。 有两种方法。 办法1:如果line 15 ASSIGN失败,阐明以后的internal table类型是BP定义的。 ...

July 1, 2023 · 1 min · jiezi

关于sap:关于-ABAP-函数调用-Pass-by-value-和-Pass-by-reference-的性能比较

ABAP(Advanced Business Application Programming)是一种高级业务利用编程语言,次要用于开发 SAP 零碎。在 ABAP 中,函数调用时的参数传递形式有两种:按值传递(pass by value)和按援用传递(pass by reference)。这两种传递形式在很多编程语言中都有利用,它们在参数传递和内存治理方面有一些重要的区别。 按值传递(pass by value):在按值传递中,函数调用时理论参数的值会被复制到形式参数中。这意味着函数外部对形式参数的批改不会影响到理论参数。因为参数的值是复制的,因而按值传递可能会减少内存耗费,特地是在解决大数据结构时。在 ABAP 中,要应用按值传递,须要在参数申明中应用关键字 VALUE。例如: FORM my_function USING VALUE(param) TYPE i.按援用传递(pass by reference):在按援用传递中,函数调用时传递的是理论参数的内存地址,而不是参数的值。因而,函数外部对形式参数的批改会影响到理论参数。这种传递形式在内存耗费方面更为高效,因为它防止了复制参数值。按援用传递是 ABAP 中默认的参数传递形式。要应用按援用传递,能够省略关键字 VALUE: FORM my_function USING param TYPE i.总结一下,按值传递和按援用传递的次要区别如下: 按值传递在函数调用时会复制参数的值,而按援用传递只传递参数的内存地址。按值传递不会扭转理论参数的值,而按援用传递可能会扭转理论参数的值。按值传递可能会减少内存耗费,特地是在解决大数据结构时,而按援用传递在内存治理方面更为高效。Subject: 2016-01-25 Task 优化进度 - document history全副实现主办法的行数压缩到34行,把逻辑拆分成很多小办法,减少了可读性,然而肯定水平上升高了性能: 因为ABAP 虚拟机实现里办法调用的入栈出栈是有开销的简直所有高级语言里,拜访局部变量的速度快于拜访类的成员变量优化代码里办法的signature应用了很多return type,returning只能通过pass by value传递,比pass by ref慢。然而具体慢多少没测过。没有通过性能测试,贸然把所有returning 参数改成exporting也不明智。目前AG3用我的账号测试后果。右边是申请曾经优化过的前4个节点,左边column是4个优化节点+attachment。单位为秒。 能够看出attachment的确比较慢,极其状况下消耗的工夫简直等于前四个节点的工夫总和。 今天开始attachment的优化钻研。 Subject: RE: one action item for 2016-01-25 - performance between pass by value and pass by reference这是周一一个action item的followup ...

July 1, 2023 · 1 min · jiezi

关于sap:SAP-UI5-ODataModel-构造函数里的-annotationURI-输入参数

SAP UI5 是一套用于构建企业级应用程序的前端框架,它提供了一系列 UI 控件和库,使得开发人员能够疾速地构建可扩大、可保护的 SAP 利用。OData 是一个合乎 RESTful 架构格调的 Web 数据协定,它容许客户端与服务器端以简略、直观的形式进行数据交互。SAP UI5 应用 ODataModel 对象来连贯 SAP 零碎中的 OData 服务,将数据绑定到 UI 控件上。 在 SAP UI5 的 ODataModel 构造函数中,annotationURI 参数用于指定 OData 服务的元数据注解文件的门路。元数据注解文件蕴含了无关 OData 服务实体、属性、关联等的附加信息,这些信息通常用于改良数据绑定和 UI 展现。注解能够帮忙开发人员依据业务需要对数据进行更好的管制和展现,例如:字段控件类型、字段长度、字段标签等。 注解是 OData 协定的一部分,它们是以 XML 格局编写的,并遵循 OData 注解语法规定。注解能够分为两类: 规范注解:这些注解是 OData 协定定义的,用于形容通用的数据表示和行为。例如,@Org.OData.Measures.V1.Unit 注解用于指定度量单位,@UI.Hidden 注解用于示意该属性在 UI 中应该被暗藏。自定义注解:这些注解由利用开发人员或业务专家定义,用于满足特定业务需要。自定义注解须要在元数据文档中申明,并在相应的实体、属性或关联上利用。annotationURI 参数容许开发人员为 ODataModel 提供一个或多个注解文件的门路。当 ODataModel 创立时,它会主动加载和合并这些注解文件,并将注解利用到相应的实体、属性或关联上。这些注解能够在数据绑定和 UI 控件的配置中应用,以实现更精密的管制和展现。 上面是一个简略的 SAP UI5 ODataModel 构造函数示例,其中蕴含了 annotationURI 参数: var oModel = new sap.ui.model.odata.v2.ODataModel({ serviceUrl: "/sap/opu/odata/sap/MyService/", annotationURI: [ "/sap/opu/odata/sap/MyServiceAnnotations1/", "/sap/opu/odata/sap/MyServiceAnnotations2/" ]});sap.ui.getCore().setModel(oModel);在这个示例中,咱们创立了一个新的 ODataModel,并为其提供了服务 URL(serviceUrl 参数)和两个注解文件的门路(annotationURI 参数)。当 ODataModel 创立时,它会主动加载这些注解文件,并将注解利用到相应的实体、属性或关联上。 ...

July 1, 2023 · 1 min · jiezi

关于sap:ERP-软件领域的-frontend-office-和-backend-office

在企业资源布局(ERP)软件畛域中,前端(frontend office)和后端(backend office)通常指的是企业外部操作和治理的不同方面。它们之间的区别在于,前端次要关注与客户交互和销售相干的工作,而后端则波及企业外部的经营和治理。在本文中,咱们将具体介绍前端和后端办公的概念、性能和劣势,以及它们在 ERP 软件中的利用。 一、前端办公(Frontend Office) 1.定义 前端办公是指企业与客户、供应商和其余内部实体之间的交互。它波及到企业的市场营销、销售、客户服务等方面。前端办公的次要指标是确保客户满意度,进步客户忠诚度,减少市场份额,进步企业支出和利润。 2.性能 前端办公包含以下性能: (1)市场营销:通过广告、宣传、公关、展览等伎俩,向潜在客户流传企业的产品和服务信息,进步企业的知名度和美誉度。 (2)销售:波及销售策略、定价、渠道治理、订单解决、合同治理、发票和付款等。销售人员通过与潜在客户和现有客户建立联系,理解其需要,提供解决方案,达成销售合同。 (3)客户服务:包含客户征询、投诉解决、售后反对、培修和颐养等。客户服务人员通过解答客户疑难、提供技术支持、解决投诉和培修产品等形式,确保客户满意度。 3.劣势 前端办公的劣势包含: (1)进步客户满意度:通过优化客户交互、提供个性化服务和解决方案,进步客户满意度和忠诚度。 (2)进步销售业绩:通过销售策略和渠道治理,进步销售额和市场份额。 (3)加强企业品牌形象:通过市场营销流动,进步企业的知名度和美誉度。 二. Backend office 后端办公(backend office)是 ERP(企业资源布局)软件畛域的一个要害概念,它次要波及企业在进行日常经营和治理过程中的外部业务。后端办公不仅涵盖了企业的财务管理、人力资源管理等方面,还包含与企业资源布局相干的其余业务,如生产、物流、仓库治理等。ERP 零碎在整个企业的经营中施展着无足轻重的作用,可能为企业提供实时数据和准确的剖析报告,有助于企业实现高效的资源管理和优化业务流程。 财务管理财务管理是后端办公的外围组成部分之一,它波及企业的会计、税务、老本管制、预算编制等方面。ERP 软件通过集成企业的财务数据,帮忙企业实现自动化的会计解决、财务报表生成以及税务申报。通过 ERP 零碎,企业能够更加不便地对支出、老本、利润等要害财务指标进行监控和剖析,从而实现更好的财务管理。 人力资源管理人力资源管理是后端办公的另一个重要组成部分,它波及员工的招聘、培训、考核、薪酬等方面。ERP 软件通过整合企业的人力资源数据,帮忙企业实现员工信息管理、招聘流程治理、薪酬福利计算等性能。通过 ERP 零碎,企业能够更加不便地对员工的绩效、培训需要、到职率等要害指标进行监控和剖析,从而实现更好的人力资源管理。 生产治理生产治理是指企业对生产过程中的资源、工艺、设施等因素进行无效地组织和管制,以实现生产指标。后端办公的生产治理性能通常包含生产打算、工艺治理、设施治理等。ERP 软件通过集成企业的生产数据,帮忙企业实现生产计划编制、生产进度跟踪、工艺参数设置等性能。通过 ERP 零碎,企业能够更加不便地对生产效率、产能利用率、设施培修率等要害指标进行监控和剖析,从而实现更好的生产治理。 物流治理物流治理是企业在生产和销售过程中对物料、产品的运输、贮存和配送进行无效地组织和管制。后端办公的物流治理性能通常包含洽购治理、库存治理、销售治理等。

July 1, 2023 · 1 min · jiezi

关于sap:SAP-CRM-My-Note-应用的设计要点概述

SAP CRM Fiori(客户关系治理)是 SAP 提供的一套基于 Fiori 用户体验的客户关系管理应用程序。Fiori 是一种现代化的、响应式的用户界面,为用户提供了一个直观、统一的体验。在 SAP CRM Fiori 利用中,My Notes 利用是一个容许用户增加、查看和治理集体笔记的工具。 My Notes 利用的次要性能如下: 创立笔记:用户能够创立新的笔记并在其中增加文本、图片等内容。这些内容能够与特定的客户、销售订单、服务申请等相关联,以便在解决相干业务时可能疾速查找和援用。查看和搜寻笔记:用户能够查看他们创立的所有笔记,并依据关键字、日期、相干对象等条件进行搜寻,以便疾速找到所需信息。编辑和删除笔记:用户能够对现有笔记进行编辑,以更新或增加新的信息。此外,还能够删除不再须要的笔记,以放弃笔记列表的整洁。标签和分类:用户能够为笔记增加标签和分类,以便于对笔记进行组织和治理。通过应用标签和分类,用户能够依据主题或我的项目对笔记进行分组。My Notes 利用在 SAP CRM Fiori 中的应用场景包含: 销售代表在与客户交换时记录要害信息,以便在后续跟进和销售过程中援用。服务工程师在解决服务申请时记录问题解决方案或其余相干信息,以便与共事分享或在当前的相似案例中查阅。客户服务代表在解决客户问题时记录重要事项,以便在与其余团队成员合作时进行参考。笔者最近在解决incident 时,发现my note application里右边S2.view实现的list和咱们团队 own 的其余诸如my opportunity,my lead等有所区别,具体列在上面: 在右边的list里看到的每个entry,在My note odata model里称为note header,左边的每个checkbox前面的entry称为note section。Note section必须依附于某个note header,不能独自存在,header: section是1对N的关系。在CRM后盾,这两种entry的header information 存储别离以TDOBJECT为CRM_NOTESH和CRM_NOTESS寄存在table STXH中。 如果以后user下不存在任何的note header,则第一次关上my note application时,零碎会主动为该user 创立一个新的note header。实现在S2 controller的159行,印度人通过一个很奇葩的boolean 变量来管制这个behavior。 删除button的实现:如果删除之前user只存在惟一一个note header了,则删除操作的odata batch 操作里会主动插入一个新的note header creation,确保在任何时候user都至多领有1个note header。 如果一个note header没有任何note section,则application会主动创立一个note section: Step4右图中提到section之间的分隔符是通过两个回车实现的,即下图代码中的\n\n: 也就是说,my note application里每个section的content里,行与行之间不反对两个回车。比方上面这段话两头有两个回车,所以只能别离放到两个note section里。 ...

July 1, 2023 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-的-FooterNavigationComponent

FooterNavigationComponent 在UI 上对应的区域如下图所示: 在 Hybris 中,FooterNavigationComponent 是一个用于构建和治理网站页脚导航的组件。这个组件容许用户轻松地向网站的页脚增加和编辑导航链接,并确保这些链接在整个网站上保持一致。 应用 FooterNavigationComponent 的次要长处之一是它容许网站管理员在不批改任何代码的状况下更新页脚导航。这意味着,即便没有技术背景的人也能够轻松地治理网站的页脚导航。此外,因为这个组件是 Hybris 平台的一部分,它还能够与其余组件和性能集成,以实现更高级的定制和优化。 以下是一些在 SAP Hybris 中应用 FooterNavigationComponent 的要害概念和步骤。 创立 FooterNavigationComponent:在 Hybris 治理控制台中,导航到 “Components” 局部。在这里,你能够创立一个新的 FooterNavigationComponent 实例,并为其指定一个惟一的 ID。你还能够设置其余属性,例如组件的名称和形容。增加导航节点:FooterNavigationComponent 蕴含一个名为 “Navigation Nodes” 的子集合,用于存储页脚导航的链接。为了增加新的导航节点,你须要在组件的 “Navigation Nodes” 汇合中创立一个新的 NavigationNode 实例。为每个节点指定一个惟一的 ID,并提供节点的名称和链接 URL。你还能够为每个节点调配一个排序程序,以便在页脚中正确显示它们。配置链接类型:对于每个导航节点,你还须要指定链接类型。链接类型定义了链接如何在页脚中出现,例如作为文本链接、图标链接或带有图像的链接。在 Hybris 中,链接类型是通过 LinkType 枚举来示意的,其中包含如下值:TEXT、ICON 和 IMAGE。你能够为每个导航节点调配一个 LinkType,以便依据须要定制链接的显示方式。增加子导航节点:除了顶级导航节点之外,你还能够为每个节点增加子导航节点。这容许你创立具备多级层次结构的页脚导航,从而使用户更容易找到他们感兴趣的内容。要增加子导航节点,请在父节点的 “Child Nodes” 汇合中创立一个新的 NavigationNode 实例,而后依照与增加顶级节点雷同的形式为其指定属性。将 FooterNavigationComponent 增加到页面模板:为了在网站上显示页脚导航,你须要将 FooterNavigationComponent 增加到页面模板中。这通常是通过在模板的 JSP 文件中蕴含一个非凡的标签来实现的。

July 1, 2023 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-的-Footer-区域设计

咱们拜访 Spartacus 首页,发现从后盾申请的 template id 为:LandingPage2Template 咱们钻研这个 CMS 申请的响应:`https://localhost:9002/occ/v2/electronics-spa/cms/pages?lang=...` 发现一个名(Name)叫 Footer 的 Slot: 这个 slot 里蕴含了很多 Component,其中之一就是 FooterNavigationComponent 这个 Footer Navigation Component 所在的 content slot 就是 Footer: 双击 Footer 能看到这个 slot 里蕴含了哪些 Component: Footer Navigation Component 蕴含了三个 navigation node: 在后盾看到这个 Footer Pages 的三个 children: Twitter page 是一个 navigation node: 双击 Nabigation Node entry,能进到 entry 级别: Navigation entry 又关联了一个 link Component: ...

July 1, 2023 · 1 min · jiezi

关于sap:关于-SAP-UI5-的-CrossApplicationNavigation-服务

从 SAP UI5 利用启动时察看 Chrome 开发者工具 console 面板,看到如下提醒的谬误音讯: sap.ui.comp.navpopover.SemanticObjectController: Service 'CrossApplicationNavigation' could not be obtained - SAP UI5 CrossApplicationNavigation 是一种用于在 SAP Fiori Launchpad 中实现不同利用之间导航的技术。通过 CrossApplicationNavigation,开发人员能够在各种 Fiori 应用程序之间创立链接,以实现更好的用户体验和集成。它是 SAP UI5 框架中的一个重要性能,用于反对企业级应用程序的可扩展性和可维护性。本文将具体介绍 CrossApplicationNavigation 的概念、实现办法和最佳实际。 背景和动机随着 Fiori 应用程序的一直增长和复杂性的进步,开发人员须要一种简略、牢靠的办法来实现应用程序之间的导航。特地是在企业级应用程序中,用户须要在多个利用之间流畅地切换,以实现各种工作。CrossApplicationNavigation 的目标是为开发人员提供一种简化导航的办法,同时确保应用程序之间的链接是稳固的。 CrossApplicationNavigation 的工作原理CrossApplicationNavigation 是通过应用 SAP Fiori Launchpad 的组件来实现的。Fiori Launchpad 是一个集中式的用户界面,容许用户拜访和治理他们的 Fiori 应用程序。当用户点击一个跳转链接时,Fiori Launchpad 会解析并解决该链接,而后依据须要加载指标应用程序。 CrossApplicationNavigation 的外围是一个名为 "ShellNavigation" 的服务。该服务提供了一组 API,用于创立和解决跨利用导航链接。开发人员能够应用这些 API 在应用程序之间创立链接,而不用关怀底层实现细节。 实现 CrossApplicationNavigation要实现 CrossApplicationNavigation,开发人员须要遵循以下步骤: 3.1. 配置 Fiori Launchpad 首先,确保 Fiori Launchpad 正确配置了所有须要导航的应用程序。在 Fiori Launchpad 的配置文件中,每个应用程序都须要一个惟一的 "semantic object" 和 "action"。这些值将用于创立和辨认跳转链接。 ...

July 1, 2023 · 1 min · jiezi

关于sap:SAP-CRM-Fiori-应用后台-OData-服务性能优化的一些思路

取一个task的attachment header信息(蕴含4个attachment)都须要0.5秒工夫,太慢了。 具体分析: 取attachment时,会先call retrieve_task_opt取task header信息,耗费0.1秒。通过之前4个节点的优化教训,这个retrieve是不须要的,此时header信息曾经在memory里了,间接应用即可。次要的瓶颈就在取attachment header的cl_crm_documents=>get_info, 这个办法只反对取单个task的attachment, 0.26秒。须要找能批量取的API。 之前的实现里,在取attachment时也要取一次application log. 在优化的版本里,我会把attachment读取里取application log这段代码删除。 老的实现里间接call 这个FM,传单个的task guid进去,输入该task所有的attachment。 在这个FM group里查找其余是否有GET + 复数模式的名词 如GET_OBJECTS,READ_OBJECTS之类的,然而这个function group下没有。 而后发现single read的FM delegate到了CL_CRM_DOCUMENTS 这个class。 然而这个class里也没有提供任何批量读的API,所有办法的input全是is,我须要的是it。 查看更底层Knowledge management的FM,也没有任何批量读的API。下图这些加了S的,这些复数模式意思是order->attachment是1:N的关系。 那么就只有本人用OPEN SQL读表,造一个multiple read的API进去了。 CRM-BF-COM 这个component是咱们own的,我2014年的时候做过好几个correction,所以对外面的代码比拟熟,只须要接下来debug回顾一下就ok。 他们的思路和我差不多,逻辑全副是从规范的FM里摘出来的。 最初也是间接读表。 然而他们的逻辑摘得不够彻底,有一些冗余的代码。我最初写进去代码应该会比他们少。

July 1, 2023 · 1 min · jiezi

关于sap:SAP-UI5-manifestjson-文件的-config-区域

SAP UI5 是一种用于构建企业级 Web 利用的 HTML5 用户界面技术。它提供了一套丰盛的控件库,并反对 MVC(模型-视图-控制器)架构、双向数据绑定等个性。manifest.json 是 SAP UI5 利用的元数据文件,蕴含了利用的配置信息、依赖项、模型、路由等内容。 在 manifest.json 文件中,config 区域是一个十分重要的局部,它存储了利用的通用配置信息。在这篇文章中,咱们将具体介绍 config 区域中能够保护的内容以及如何应用这些内容来配置您的 SAP UI5 利用。以下是一些 config 区域能够蕴含的信息: 资源门路和库配置config 区域能够蕴含资源门路和库的配置信息。这些信息有助于利用在运行时正确加载所需的库和资源。例如,能够在 config 区域中定义资源门路和库的别名,以便在利用中应用这些别名来援用资源,而无需指定残缺的门路。示例:{ "sap.ui5": { "config": { "resourceRoots": { "my.custom.lib": "./custom_lib/" }, "libs": { "sap.m": {}, "sap.ui.commons": {}, "my.custom.lib": {} } } }}在这个例子中,咱们定义了一个名为 "my.custom.lib" 的资源根门路,并将其映射到 "./custom_lib/" 文件夹。同时,咱们还引入了 "sap.m"、"sap.ui.commons" 和 "my.custom.lib" 三个库。 服务端点配置在理论利用中,咱们可能须要与后端服务进行交互。config 区域能够用于定义服务端点,这样咱们就能够在利用中不便地援用这些端点。示例:{ "sap.ui5": { "config": { "serviceConfig": { "name": "Northwind", "serviceUrl": "https://services.odata.org/V2/Northwind/Northwind.svc/" } } }}在这个例子中,咱们定义了一个名为 "Northwind" 的服务端点,并指定了其服务 URL。之后,咱们能够在利用中应用这个端点名称进行数据申请。 ...

July 1, 2023 · 1 min · jiezi

关于sap:什么是-SAP-UI5-的-cldr-json-文件

SAP UI5 是一个基于 HTML5 的 UI 开发框架,它容许开发人员构建功能丰富、易于保护和满足企业需要的应用程序。它是一个集成了各种 UI 控件、工具和库的弱小框架,旨在简化企业级应用程序的开发过程。SAP UI5 的一个重要个性是对国际化和本地化的反对,这意味着开发人员能够构建可能适应不同语言和文化的应用程序。 在 SAP UI5 中,/sap/ui/core/cldr/en.json 文件是一个要害的文件,它蕴含了英语语言环境的国际化信息。以下是该文件在 SAP UI5 中的作用和重要性的详细描述: 提供国际化反对:/sap/ui/core/cldr/en.json 文件蕴含了大量的国际化信息,例如日期、工夫、数字、货币等的格局。通过这些信息,SAP UI5 能够确保应用程序在不同地区和语言环境中正确显示和解决这些数据。反对多语言环境:SAP UI5 容许开发人员为应用程序提供多种语言反对。/sap/ui/core/cldr/en.json 文件为英语语言环境提供了必要的国际化信息。在理论利用中,开发人员能够依据须要增加其余语言环境的 CLDR 文件,以便为不同的用户提供本地化的体验。进步应用程序的可维护性:将国际化信息集中存储在 /sap/ui/core/cldr/en.json 文件中,有助于进步应用程序的可维护性。开发人员能够轻松地更新、增加或删除语言环境数据,而无需批改应用程序的其余局部。遵循 CLDR 规范:/sap/ui/core/cldr/en.json 文件遵循 Unicode 共享区域设置库 (CLDR) 规范。CLDR 是一个由 Unicode 组织保护的我的项目,旨在提供一个通用、可扩大的数据集,以反对世界各地的软件国际化。通过遵循这个规范,SAP UI5 确保了对寰球用户的广泛支持和兼容性。与 jQuery Globalize 集成:SAP UI5 应用了 jQuery Globalize 库来解决国际化和本地化工作。/sap/ui/core/cldr/en.json 文件中的数据格式与 jQuery Globalize 库兼容,使得开发人员能够轻松地利用这些库的性能,以实现应用程序的国际化。简化本地化工作:有了 /sap/ui/core/cldr/en.json 文件,开发人员无需手动解决简单的本地化逻辑。

July 1, 2023 · 1 min · jiezi

关于sap:SAP-UI5-应用里-sapuithirdpartysinonjs-的作用

SAP UI5 是一个企业级前端开发框架,由 SAP(德国软件公司)开发并保护。它使得开发人员可能轻松地创立合乎 Web 规范、功能强大且易于保护的企业应用程序。SAP UI5 是基于 JavaScript 的,并且利用了一些风行的库和框架,如 jQuery、OpenAjax、Less 和 D3 等。开发人员能够应用 JavaScript、HTML5 和 CSS3 等 Web 规范技术来构建 SAP UI5 应用程序。SAP UI5 还提供了一系列的 UI 控件,这些控件既能够疾速开发应用程序,又能够保障应用程序具备良好的性能和用户体验。 在 SAP UI5 中,/sap/ui/thirdparty/sinon.js 是一个第三方 JavaScript 库,用于提供独立测试性能。Sinon.js 是一个风行的 JavaScript 测试库,提供了丰盛的性能,如 spies(特务)、stubs(存根)和 mocks(模仿),使得开发人员可能轻松地创立和治理测试用例,以确保他们的应用程序在不同场景下都能失常运行。 以下是对于 sinon.js 在 SAP UI5 中的一些要害性能和概念的具体介绍: Spies(特务):特务是 sinon.js 提供的一种监督函数调用的办法。开发人员能够应用特务来记录函数的调用状况,例如调用次数、调用参数和返回值等。这对于验证函数是否按预期执行十分有用。特务能够利用于理论的函数、匿名函数或者对象办法。Stubs(存根):存根是一种用于替换函数的技术,能够在测试期间管制函数的行为。存根能够用于强制函数返回特定值、抛出异样或者模仿内部依赖项的行为。存根与特务的次要区别在于,存根能够影响函数的理论行为,而特务只能记录函数调用状况。Mocks(模仿):模仿是一种集成了 spies 和 stubs 性能的高级测试技术。它容许开发人员在一个对象上定义多个行为,而后在测试期间验证这些行为是否按预期执行。模仿通常用于模仿简单的内部依赖项,例如 Web 服务或数据库连贯。Fake timers(伪定时器):伪定时器容许开发人员管制 JavaScript 中的 setTimeout 和 setInterval 等定时器函数的行为。这对于测试波及异步操作的代码片段十分有用,因为它能够使测试在同步模式下运行,从而进步测试的稳定性和可预测性。Fake XMLHttpRequest(伪 XMLHttpRequest):伪 XMLHttpRequest 是一个能够拦挡并替换实现的代理 XHR 申请。

July 1, 2023 · 1 min · jiezi

关于sap:SAP-Restful-ABAP-Programming-和-HTML-Over-the-wire-的一些对比

Restful ABAP Programming(简称RAP)旨在找到 SPA 和 MPA 之间的最佳平衡点。 RAP 丰盛了 JSON 自身或初始 OData 申请的元数据中的响应,并且视图和模型是先前在 CDS 中定义的后盾 annotation: 这种办法也导致了一种相似于HDA的前端薄、后端强的架构。然而,RAP旨在以有组织和受控的形式实现这一指标:每个API都基于OData协定,视图应用UI正文定义,数据模型在DDL中定义,模型更新在RAP类的本地实现中开发,并且所有内容都别离分层,由虚构数据模型进行编排。最初,这种办法确保了高度组织化的开发过程,在大多数应用状况下都十分无效。 然而,RAP 不反对应用RTTI进行模型更改,并且通过扩大视图很快超出了后端正文的性能范畴,因而须要应用Fiori Elements开发应用程序(还须要额定的部署)。 首先,咱们不定义一个特定的HTTP服务来传输视图和数据。相同,每个应用程序都应用雷同的通用HTTP处理程序,包含两个字符串(一个用于视图,一个用于数据),打消了开发独自的SEGW或CDS OData服务的须要。在运行时,ABAP变量和表格被转换为JSON模型,并作为字符串传输到前端。在JavaScript中,它被解析为JSON模型,并绑定到UI5视图中: 此外,咱们不仅发送数据,还随每个申请发送元数据(数据模型),这与经典的 OData 通信不同,在经典的 OData 通信中,元数据在开始时与初始 OData 申请一起发送以建设模型,之后仅替换数据。 通过这种办法,咱们当初能够针对每个申请发送不同的模型:

June 27, 2023 · 1 min · jiezi

关于sap:如何处理-SAP-Pricing-Document-currency-missing-的错误消息

问题当增加一个物料主数据到 Quotation 行我的项目时,遇到如下谬误音讯: Pricing:Document currency missing 查看这条音讯的技术明细: 发现是如下代码抛出的,因为字段 waerk 为空: 将下图的 currency 字段保护之后,问题隐没: # 更个别的思路 谬误音讯 "SAP Pricing - Document currency missing" 通常示意在创立销售订单或其余业务文档时,文档货币未被正确保护。这可能会导致报价和计算错误。要解决这个问题,须要查看以下几个方面: 查看客户主数据: 请确保客户主数据中的货币设置正确。在SAP中,您能够通过事务代码XD02(更改客户主数据)来查看和批改客户的货币设置。查看销售组织: 请查看销售组织的货币设置。您能够应用事务代码OX01(创立/更改销售组织)来查看和批改销售组织的货币设置。查看报价和销售订单: 确保报价和销售订单中保护了正确的货币。您能够通过事务代码VA21(创立报价)或VA01(创立销售订单)来核实和更改相干货币设置。配置问题: 如果上述办法都无奈解决问题,请查看SAP的配置设置,确保与货币相干的定价过程和条件类型已正确配置。自定义代码: 如果您的零碎中有自定义代码,请查看这些代码是否影响了文档货币的保护。您可能须要与ABAP开发人员单干,以查找和修复可能的问题。这里重点说一下第二点。 第二点是查看文档货币设置。在SAP零碎中,文档货币是指与特定业务文档相关联的货币。当呈现"SAP Pricing - Document currency missing"谬误音讯时,示意零碎无奈找到所需的文档货币信息。以下是具体介绍如何查看文档货币设置: 查看货币代码:首先,确认所应用的货币代码是否正确。在SAP零碎中,每个货币都有一个惟一的货币代码,如USD示意美元,EUR示意欧元等。确保所应用的货币代码与所需的文档货币统一。查看汇率设置:文档货币通常与本地货币或基准货币之间存在汇率转换关系。确保在SAP零碎中正确配置了相应的汇率。这包含汇率类型、无效日期、汇率买入和卖出价格等。确认文档类型设置:在SAP零碎中,每个业务文档类型都有相干的货币字段。例如,销售订单可能具备一个字段来指定订单货币。确保所应用的文档类型已正确配置,并且货币字段与相应的文档货币字段进行了正确映射。查看货币相干配置:在SAP零碎中,存在许多与货币相干的配置设置。例如,货币舍入规定、货币显示格局、货币精度等。确保这些配置与所需的文档货币统一,并且可能正确处理与该货币相干的计算和显示。思考系统集成:如果SAP零碎与其余零碎进行集成,并波及到货币转换和传递,则还须要确保在系统集成层面上正确处理文档货币。检查数据传递的接口或集成点,确保正确传递和解决文档货币相干信息。通过仔细检查和确认上述设置,能够确保文档货币的正确配置。如果问题依然存在,可能须要进一步查看SAP零碎的配置和数据输出,或者与SAP反对团队分割以获取更具体的领导。

June 26, 2023 · 1 min · jiezi

关于sap:如何找到-ABAP-pricing-procedure-的-requirement

在 pricing procedure customizing 中,咱们能够为每种条件类型定义一个需要(例程)编号。 需要用于以编程形式管制条件类型是否能够参加条件确定。 2 意味着 Item with pricing. 如何找到 2 routing 对应的实现? 事务码 VOFM, Requirement->Pricing: 点击 F5: KOMP-KPOSN: condition item numberKOMP-PRSFD: X - use standard approach to carry out pricingKOMP-KZNEP: identify the price type which must be excluded for condition check 定价过程(Pricing Procedure)是ERP(企业资源布局)零碎中一个要害组件,它用于确定产品或服务的销售价格。定价过程是一种灵便的、可配置的性能,容许企业依据其特定的需要和商业策略来定义和执行定价策略。它波及到多个组件,如价格、折扣、税收和附加费用等,这些组件独特决定了最终的销售价格。本文将具体介绍定价过程及其重要组成部分,包含定价过程的配置和执行过程。 定价过程的组成部分定价过程包含以下次要组成部分: a) 定价条件:定价条件是用于计算价格的根本元素。它们能够是价格(如根本价格、材料价格等)、折扣(如客户折扣、订单折扣等)、附加费用(如运输费、包装费等)和税收。每个定价条件都有一个惟一的条件类型,用于辨别不同的定价条件。 b) 定价过程:定价过程是一个蕴含多个定价条件的结构化框架,它定义了定价条件之间的互相关系和计算程序。定价过程中的每个步骤都蕴含一个或多个定价条件,这些条件依照预约义的程序利用于销售订单。 c) 计算规定:计算规定用于计算定价条件的值。依据条件类型和相干数据(如数量、价格等),计算规定能够是简略的算术公式,也能够是简单的业务逻辑。 定价过程的配置定价过程的配置波及以下次要步骤: a) 创立条件类型:首先须要创立条件类型以示意不同的定价条件。条件类型定义了定价条件的根本属性,如计算规定、标准值、有效期等。 b) 创立定价过程:接下来须要创立定价过程并为每个步骤调配一个或多个条件类型。定价过程定义了定价条件的利用程序和互相关系。 c) 调配定价过程:最初须要将定价过程调配给特定的销售文档类型、客户等级和销售组织。这样,零碎就晓得在哪些状况下应应用哪个定价过程。 定价过程的执行在ERP零碎中创立销售订单时,零碎会依据调配给该销售文档类型、客户等级和销售组织的定价过程主动执行定价过程。

June 26, 2023 · 1 min · jiezi

关于sap:ABAP-git-安装指南

abapGit 有 2 种版本:独立版本或开发版本。 standalone 版本:面向最终用户。 它由一个(微小的)程序组成,其中蕴含所有所需的代码。 用户在事务 SE38 中运行独立版本,执行创立的程序。开发者版本:面向为 abapGit 代码库做出奉献的开发者。 它由所有 ABAP 程序/类/接口/等组成。开发人员能够应用事务 ZABAPGIT 运行开发人员版本。 只有开发者版本反对并行处理。前提ABAP Git 须要 SAP BASIS version 702 或者更高。 菜单:SAP GUI Options > Interaction Design > HTML Control > Browser Control 确保应用 IE: 源代码地址:https://raw.githubusercontent.com/abapGit/build/main/zabapgit... 当应用基于 Internet Explorer 的 HTML 控件时,abapGit 能够不受限制地在 Windows 7.60 或更高版本的 SAP GUI 上运行。 对于 Windows 7.70 或更高版本的 SAP GUI,能够抉择应用 Edge(基于 Chromium)作为 HTML 控件。 一般来说,Git 服务器须要平安连贯。 因而,abapGit正在应用基于HTTPS的平安连贯来拜访Git服务器。 留神:能够应用不平安的 HTTP 连贯,但强烈建议不要应用,因为存储库的内容将在网络上可见。 ...

June 26, 2023 · 1 min · jiezi

关于sap:SAP-BTP-平台-ABAP-编程环境如何维护自定义-Unit-Of-Measure-数据库表-T006

在 ABAP On-Premises 零碎下,咱们能够轻易在 SAPGUI 里对 Unit of Measure 数据库表即 T006 进行保护:[图片] ABAP 数据库表 T006 是 SAP 零碎中的一个重要数据表,它用于存储与度量单位相干的信息。在 SAP 零碎中,度量单位用于示意各种物料、服务和计量单位。这些信息对于物料治理、打算、制作、销售、洽购等业务流程至关重要。T006 表用于存储所有度量单位和相干的形容、转换因子等信息。依据要求,以下是对于 T006 数据库表的具体解释,以帮忙您更好地了解这个表的作用。 表的组成:T006 表蕴含多个字段,用于存储度量单位的不同属性。以下是一些次要字段的简要阐明: MANDT:客户端。这是一个3位数字,用于惟一标识 SAP 零碎中的客户端。MSEHI:度量单位的外部示意模式。这是一个 3 位字符,用于惟一标识度量单位。MSEH3:度量单位的内部示意模式。这是一个3位字符,用于在零碎中显示度量单位。MSEHL:度量单位的形容。这是一个长度可达 20 个字符的文本,用于形容度量单位的用处和含意。MSEH6:度量单位与根本单位的转换因子。这是一个浮点数,用于示意从度量单位到根本单位的转换因子。MSEH5:度量单位与其余度量单位的转换因子。这是一个浮点数,用于示意从度量单位到其余度量单位的转换因子。KNUMF:度量单位与其余度量单位的比例关系。这是一个浮点数,用于示意度量单位之间的比例关系。数据保护:T006 表中的数据由 SAP 零碎进行保护。当您在 SAP 零碎中创立新的度量单位时,零碎会主动将相干信息增加到 T006 表中。同样,当您更新或删除现有度量单位时,零碎也会自动更新 T006 表中的数据。这确保了 T006 表始终保持最新的度量单位信息。与其余表的关联:T006 表与其余 SAP 数据库表之间存在关联。例如,物料主数据表 MARA 中的根本计量单位字段 MEINS 援用了 T006 表中的度量单位。这确保了物料主数据表中的度量单位与 T006 表中的度量单位保持一致。此外,在洽购、销售、制作等业务流程中,度量单位信息还与其余要害数据库表(如 EKPO、VBAP、AFPO 等)相关联。然而在 SAP BTP ABAP 编程环境里,如何实现相似的工作呢? 许多 Business 应用程序在其业务流程中应用测量单位。 为了标准化这些流程,须要对单位和相干维度进行集中保护。 除此之外,还存在不同单位之间转换的业务需要。 咱们提供通用标准化单位、尺寸和 ISO 代码的子集,用作预交付内容。此外,还须要在客户应用程序中定义客户领有的单位和尺寸。 应用 API CL_UOM_MAINTENANCE 对单位进行增删改查。 ...

June 26, 2023 · 1 min · jiezi

关于sap:使用纯-ABAP-开发-SAP-UI5-之一概述

abap2UI5是一个开源我的项目,提供了一种纯ABAP的办法来开发UI5应用程序,无需应用JavaScript、OData和RAP——相似于过来,只须要几行ABAP代码就能够应用抉择屏幕和ALV显示输出和表格。该我的项目设计具备最小的零碎占用,并能够在本地和云环境中运行。 应用 ABAP 开发 SAP UI5 利用的一些劣势: 易于应用-仅需施行一个独立的UI5利用程序接口纯ABAP-应用100%的ABAP进行开发(没有JavaScript、DDL、EML或自定义)低零碎占用-基于纯http处理程序(没有BSP、OData、CDS、BOPF或RAP)云端和本地就绪-实用于两种语言版本(云端ABAP,规范ABAP)高零碎兼容性-可在所有ABAP版本上运行(从NW 7.02到ABAP 2305)装置简便-abapGit我的项目,无需额定的应用程序部署兼容性BTP ABAP Environment (ABAP for Cloud)S/4 Public Cloud ABAP Environment (ABAP for Cloud)S/4 Private Cloud or On-Premise (ABAP for Cloud, Standard ABAP)R/3 NetWeaver AS ABAP 7.50 or higher (Standard ABAP)R/3 NetWeaver AS ABAP 7.02 to 7.42一个根本的例子: CLASS z2ui5_cl_app_demo_01 DEFINITION PUBLIC. PUBLIC SECTION. INTERFACES z2ui5_if_app. DATA product TYPE string. DATA quantity TYPE string.ENDCLASS.CLASS z2ui5_cl_app_demo_01 IMPLEMENTATION. METHOD z2ui5_if_app~main. "event handling CASE client->get( )-event. WHEN 'BUTTON_POST'. client->popup_message_toast( |{ product } { quantity } - sent to the server| ). ENDCASE. "view rendering client->set_next( VALUE #( xml_main = z2ui5_cl_xml_view=>factory( )->page( title = 'abap2UI5 - First Example' )->simple_form( title = 'Form Title' editable = abap_true )->content( 'form' )->title( 'Input' )->label( 'quantity' )->input( client->_bind( quantity ) )->label( 'product' )->input( client->_bind( value = product ) )->button( text = 'post' press = client->_event( 'BUTTON_POST' ) )->get_root( )->xml_get( ) ) ). ENDMETHOD.ENDCLASS.上述代码的作用是生成一个 input 和 message output. ...

June 26, 2023 · 2 min · jiezi

关于sap:实际案例分析-根据应用程序日志的记录反查出哪一行-ABAP-代码产生的这条日志试读版

本文的写作动机来自笔者常识星球一个敌人的发问: 调用bapi创立主数据的时候报错,没有未物料组调配个性参数文件,这个是什么起因?理论查看,个性文件曾经生成了 这个敌人提供的是应用程序日志(即 Application Log)里的截图。对于应用程序日志的具体用法,笔者之前的文章曾经做过介绍。 74. 学会应用 SAP ABAP Application Log 在代码里增加利用日志记录性能大家从我上图常识星球的回复能够看出,这类问题理论有一种通用的解法,即从利用日志记录里的记录登程,首先找到谬误音讯对应的 Message Class 和 Message Number,进而通过事务码 SE91 里的 Cross Reference,也叫 Where Used List 性能去查找到底是哪一句 ABAP 代码抛出了这条音讯。 咱们通过一个简略的例子来相熟这个流程。上面是具体的步骤解说。

June 23, 2023 · 1 min · jiezi

关于sap:使用-New-Bing-学习-SAP-ABAP-生成-PDF-的几种技术

本文还是围绕 SAP ABAP 生成 PDF 这个话题来写。 Jerry 之前的公众号文章每日一个 ChatGPT 应用小技巧系列之3 - 利用角色扮演进步 ChatGPT 回复的品质 公布之后,有敌人反馈,ChatGPT 在答复如何给 ABAP PDF 增加水印这个问题时,体现不尽如人意。 我试了一下,的确如此,所以先人工写了一篇文章,给大家分享如何在 ABAP 里给 PDF 增加水印: 如何用 ABAP 生成带有水印(Watermark)的 PDF 文件 有的敌人因为客观原因,没有方法应用 ChatGPT. 其实也能够退而求其次,应用微软 New Bing 的 Chat 性能,同样能够向它发问。 上面是一个具体的测试。 应用 Microsoft Edge 浏览器,关上网址: https://www.bing.com/new 点击登录,输出账号和明码,再点 Chat 按钮即可通过对话的形式,向 New Bing 发问。 比方我发问:SAP ABAP 里有几种生成 PDF 的技术? 答复如下: 在 SAP ABAP 中,有这几种生成 PDF 文件的技术。SAP 提供了 PDF1 设施类型(也称为"PDF 转换器"),您能够应用它将 OTF 或列表文档转换为 PDF 格局。当您打印 SAPscript 或 Smart Form 时,您能够抉择获取 OTF 格局的生成文档,而后以编程形式将 OTF 转换为 PDF 二进制。此外,从 NetWeaver 2004(版本 6.40)开始,SAP 提供了一种名为"SAP Interactive Forms by Adobe"的技术(通常称为 Interactive Forms, Adobe Forms 或 PDF Forms) ,它容许您在不应用任何两头媒介的状况下本地生成 PDF。大家留神上图绿色高亮区域的注解"1", 指明了答案关键点的出处,即来自索引 1 指向的网页。而索引 1 即是 SAP 社区 wiki,点击上图黄色区域即可关上。 ...

June 23, 2023 · 1 min · jiezi

关于sap:SAP-ABAP-生成-PDF-的几种技术综述

上面这段文章,产生自 ChatGPT: 在SAP ABAP零碎中,有几种罕用的技术可用于生成PDF文档。以下是其中一些常见的技术和它们的具体阐明: ABAP内置性能(SAPScript和Smart Forms):SAP ABAP零碎提供了两种内置的打印表单技术,即SAPScript和Smart Forms。这些技术容许你创立具备格式化文本、图像和变量的打印表单。你能够应用这些性能创立打印表单,并将其转换为PDF格局。下面这段话没有问题。 ABAP List Viewer(ALV):ABAP List Viewer(ALV)是SAP提供的一种用于生成报表的工具。你能够应用ALV将报表数据显示在屏幕上,并抉择将其导出为PDF格局。通过设置适当的输入选项,你能够在PDF中蕴含表格、列题目和页眉/页脚等元素。下面这段话值得斟酌。 据我所知,SAP ABAP ALV 是没有开箱即用的能够导出成 PDF 的性能的,须要开发人员进行一些两头工作。 在这个 SAP 社区探讨帖里有记录: Create a spool job of the ALV output and convert that spool into PDF using FM CONVERT_ABAPSPOOLJOB_2_PDF.大抵思路是,基于 ALV 输入创立一个 spool job,而后将这个 spool job 转换成 pdf,应用 ABAP Function Module CONVERT_ABAPSPOOLJOB_2_PDF. SAP Adobe Forms:SAP ABAP零碎与Adobe Forms集成,使你可能创立可交互的PDF表单。你能够应用Adobe Form Designer创立蕴含表单字段、复选框、下拉框等交互元素的表单。而后,应用ABAP代码将数据填充到表单中,并将其导出为PDF格局。这段解释没有问题。 笔者这套 零根底疾速学习 ABAP里介绍的 pdf 计划,就是基于 Adobe Form 来实现 PDF 的生成: ...

June 23, 2023 · 1 min · jiezi

关于sap:SAP-标准-ABAP-代码里的-IF-1-0-是怎么一回事

SAP ABAP 零碎里的规范实现,有时会发现上面这种代码: IF 1 = 0. 而后把逻辑写在这个永远都不可能执行到的 IF 分支里。比方下图这个 SAP CRM 里的规范类 CL_CRM_MDG_BP_CRGRP: 我查看了一下,这个类创立于 2009 年。 这个写法有什么作用? 咱们把视线放宽阔一点,留神到这行 IF 语句的下一行,即是将 Message Class 音讯类 CRM_MDG_CORE 里编号为 034 的音讯,通过 add_message 办法,显示在 WebClient UI 界面上。 咱们应用事务码 SE91,定位到编号为 034 的这条音讯,点击工具栏的 Where Used List 按钮,想查问这条音讯到底被哪些 ABAP 类和程序所应用到: 从查问的后果来看,高深莫测。原来,针对 ABAP Message 进行的 Cross Reference 即 Where Used List 查问,只能检测到那些通过 MESSAGE 关键字抛出的音讯,即下图查问后果里这些包裹在 IF 1 = 0 分支里的 MESSAGE 语句。 然而,MESSAGE 一旦执行,在不同的执行上下文,抛出不同类型的音讯,其体现行为都有所差别。 因为咱们探讨的代码在 WebClient UI 运行环境下执行,显然不须要 MESSAGE 语句像在 SAPGUI 环境下,执行时弹出一个对话框,因而咱们将 MESSAGE e034(crm_mdg_core) 放在永远不可能进入的 IF 1 = 0 分支内,起到的作用是,让 ABAP Message Text 的 Cross Reference 即 Where Used List 性能,可能顺利捕捉到这条音讯的应用状况,同时又不让这段代码真的被执行。这算是一个非功能性编程的例子吧。 ...

June 22, 2023 · 1 min · jiezi

关于sap:SAP-Spartacus-和-Sticky-session-相关的话题

当 Commerce 后端运行多个Pods/节点时,当间断的申请过快达到时,后端将无奈在集群中发送缓存生效告诉。此外,如果多个申请扩散到多个节点上,会产生提早和不必要的资源耗费。 Spartacus 尽可能与单个后端进行交互,以服务于单个客户端。这通常被称为 sticky session. Sticky session(粘滞会话)是一种负载平衡策略,用于在多个服务器之间调配客户端申请。在具备多个Java应用服务器的集群中,负载均衡器将客户端申请散发到不同的服务器上,以实现性能优化和高可用性。然而,这可能会导致一个问题:当一个客户端须要与特定服务器上的会话(例如,一个购物车或登录会话)进行交互时,因为负载均衡器将申请分发给不同的服务器,会话数据可能不会保持一致。 为了解决这个问题,引入了粘滞会话(sticky session)策略。粘滞会话策略确保同一个客户端的所有申请都会被调配到之前解决其申请的同一个服务器。这通常是通过将客户端的会话标识符(例如,JSESSIONID)与特定服务器关联来实现的。负载均衡器在将申请散发到服务器之前,会查看申请中的会话标识符,并将申请路由到与该标识符关联的服务器。 粘滞会话确保了会话数据的一致性,但可能导致服务器负载不平衡。如果一个服务器上的用户会话特地沉闷,那么这个服务器的负载可能会变得很高,而其余服务器则绝对较低。因而,在抉择粘滞会话策略时,须要衡量会话数据一致性和负载平衡的需要。 CCv2在肯定水平上为此做了筹备。它在响应中增加了一个 ROUTE cookie. 然而,该cookie无奈进行配置,并且没有SameSite策略。这意味着解耦的前端商店很可能无奈应用它,因为它是在不同的域上操作。 为了启用 ROUTE cookie,必须执行以下操作: 在http客户端中应用withCredentials: true选项,以便在每个申请中发送cookie。应用额定的CORS过滤器(Allow-Origin-With-Credentials:true)配置 Commerce backend,以确保cookie通过过滤器。

June 22, 2023 · 1 min · jiezi

关于sap:ABAP-MESSAGE-关键字的使用方法

ABAP message 关键字的作用是要么显示在以后用户的登录语言中,从数据库表 T100的msg字段中指定的短消息文本,要么显示作为音讯的任何文本。 以下是可用的变体: 如果没有指定RAISING或INTO中的任何一个,语句MESSAGE将中断程序流并发送音讯。该语句MESSAGE的根本模式的确切行为(即文本如何显示以及在MESSAGE语句之后程序流如何持续)取决于在msg或text中指定的音讯类型,并且与上下文相干。语句MESSAGE应用RAISING补充在函数模块或办法中触发非基于类的异样。如果未解决该异样,音讯将以与未指定RAISING 补充时雷同的形式发送。如果指定了INTO补充,程序流不会被中断,而是将音讯的短文本调配给一个字段。MESSAGE 关键字执行后对应零碎变量的值:sy-msgid:在发送音讯后,蕴含音讯类别,并在发送任何文本后蕴含值"00"。sy-msgno:在发送音讯后,蕴含音讯编号,并在发送任何文本后蕴含值"001"。sy-msgty:蕴含发送音讯或文本时应用的音讯类型的标识符。sy-msgv1到sy-msgv4:在发送音讯后,按程序蕴含在WITH补充后指定的数据对象的内容。在发送任何文本后,蕴含数据对象文本的前200个字符。 未应用 RAISING 或 INTO中的任何一个补充发送的音讯是与用户进行交互的一种形式。除了类型为"X"的音讯外,语句MESSAGE 应该仅在示意逻辑层中应用,而不应在应用逻辑层中应用。 如果应用SET LOCALE语句设置了文本环境,则显示音讯的语言将疏忽此设置。 当应用 DISPLAY LIKE dtype 变式时,当应用此补充时,将显示dtype中指定的音讯类型的图标,而不是关联的图标。dtype预期是一个相似字符的数据对象,其中蕴含大写字母"A"、"E"、"I"、"S"或"W"中的一个值。 对于默认显示在对话框中的音讯,短文本依然会作为对话框显示。如果dtype蕴含"A"或"I",则类型为"E"或"W"的音讯(除了PBO和LOAD-OF-PROGRAM的音讯)将显示为对话窗口。类型为"S"的音讯始终显示在状态栏中,与dtype无关。对于PBO和LOAD-OF-PROGRAM的类型为"I"的音讯也是如此。类型为"X"的音讯总是会引发运行时谬误。

June 22, 2023 · 1 min · jiezi

关于sap:如何用-ABAP-生成带有水印Watermark的-PDF-文件试读版

我之前写过一篇文章:每日一个 ChatGPT 应用小技巧系列之3 - 利用角色扮演进步 ChatGPT 回复的品质,有敌人评论说,向 ChatGPT 提出了通过 ABAP 给 PDF 增加水印的问题,但 ChatGPT 的回复没有任何的参考意义。 本文首先给出通过 ABAP 给 PDF 增加水印的编码实现,而后在笔者后续的公众号文章,会持续探讨如何用 ChatGPT 来失去这个问题的解答。 精确的说,本文题目提到的 PDF,是指通过 Adobe Form Designer 开发的 Form 模板,在运行时通过和 ABAP 数据进行合并(官网术语是 Merge),从而失去的 PDF. 当然 ABAP 零碎还存在其余生成 PDF 的技术,比方 SAPScript,SAP SmartForms 等等。本文介绍的技术仅针对 Adobe Form Designer 开发而成的 PDF Form. 在浏览本文之前,请大家先实现本教程下列四个步骤的学习: 41. 如何应用 ABAP 代码发送带有 PDF 附件的电子邮件50. 如何在 SAPGUI 里显示上传到 ABAP 服务器的 PDF 文件51. 如何在 SAP ABAP 零碎中应用 Adobe Form52. 应用 SAP ABAP 代码生成 PDF 文件,填充以业务数据并显示在 SAPGUI 里先看下依照本文介绍的步骤实现的成果。 ...

June 21, 2023 · 1 min · jiezi

关于sap:什么是-SAP-Business-ByDesign-里的-TREX

TREX (Text Retrieval and Information Extraction) 在 SAP Business ByDesign 中是一个弱小的搜寻和剖析引擎,专门用于解决大量的结构化和非结构化数据。它是 SAP 的全文搜索引擎,提供高效的文本搜寻、信息提取和剖析性能。TREX 的利用范畴宽泛,上面将具体阐明其在 SAP Business ByDesign 中的性能和利用案例。 文本搜寻性能:TREX 能够帮忙用户疾速找到他们须要的信息。在 SAP Business ByDesign 中,企业通常会积攒大量的文档、合同、报价、订单等数据。应用 TREX,用户能够轻松地进行全文搜寻,无论是搜寻特定的合同条款、客户需要还是其余要害信息。用户能够输出关键词、短语或应用含糊搜寻进行查问,TREX 将在大量数据中疾速定位相干文档和信息。举例来说,一家制作公司可能须要查找某个特定供应商合同中的条款,以核实某个产品的规格要求。他们能够在 SAP Business ByDesign 中应用 TREX 进行全文搜寻,输出相干的关键词(如产品名称、合同号码等),TREX 将立刻返回匹配的合同文档,并高亮显示相干的条款和规格要求。 信息提取性能:TREX 能够主动解析和提取非结构化文本中的重要信息,从而实现信息的自动化解决。在 SAP Business ByDesign 中,企业可能会收到大量的客户邮件、服务申请和反馈。应用 TREX,能够主动从这些邮件中提取要害信息,并将其与业务流程和数据集成起来。例如,一家零售商可能收到大量的客户退货申请邮件。他们能够应用 TREX 主动解析这些邮件,并提取要害信息,如退货起因、产品信息、订单号码等。这些提取的信息能够间接与销售订单和供应链管理系统进行集成,从而实现自动化的退货解决流程。 剖析和报告性能:TREX 还能够用于构建弱小的剖析和报告应用程序,在 SAP Business ByDesign 中反对业务决策和数据洞察力。TREX 能够解决大量的数据,并提供灵便的查问和过滤性能,使用户可能轻松地进行数据分析和生成报告。erp例如,一家制作公司可能心愿剖析其供应链中的物料需要状况。他们能够应用 TREX 查问和剖析大量的洽购订单、生产打算和库存数据。通过应用 TREX 弱小的搜寻和过滤性能,能够疾速找到与物料需要相干的数据,并生成定制的报告,以便管理层做出相应的决策。综上所述,TREX 在 SAP Business ByDesign 中具备重要的性能和利用案例。它能够帮忙用户疾速搜寻和定位所需的信息,主动提取非结构化文本中的要害信息,并反对数据分析和报告生成。这些性能使用户可能更高效地治理和利用企业数据,放慢决策过程,并提供更好的洞察力,从而促成企业的增长和胜利。

June 21, 2023 · 1 min · jiezi

关于sap:什么是-SAP-Commerce-Cloud-SmartEdit-使用的-CKEditor

这个 Editor 的截图如下图所示: SAP Commerce Cloud SmartEdit 是一款弱小的内容管理工具,专为企业提供全面的电子商务解决方案。它与SAP Commerce Cloud集成,为用户提供了一种直观、易用的形式来编辑、治理和定制其电子商务网站的内容。在SmartEdit中,CKEditor是一个外围组件,用于反对富文本编辑性能。 CKEditor是一个风行的开源富文本编辑器,应用JavaScript编写。它被广泛应用于许多网站和应用程序,提供了丰盛的性能和灵便的可定制性。作为SmartEdit的一部分,CKEditor容许用户在编辑页面、产品描述、博客文章等内容时,轻松地进行文本格式化和编辑。 CKEditor提供了许多性能,使用户可能以直观的形式创立和治理富文本内容。以下是CKEditor的一些次要特点: 格式化文本:CKEditor提供了各种文本格式化选项,例如字体款式、字体大小、色彩、段落格局等。用户能够通过简略的操作来利用这些格式化成果,使内容更具吸引力和可读性。图片治理:通过CKEditor,用户能够不便地插入和治理图像。它提供了图像上传、调整大小、对齐、链接和替换等性能,使用户可能在编辑器中间接操作和调整图像。链接治理:在编辑内容时,常常须要增加链接到其余页面或内部资源。CKEditor使用户可能轻松地创立和编辑链接,包含设置链接文本、指标、打开方式等选项。表格编辑:如果须要在内容中插入表格,CKEditor能够满足这一需要。用户能够通过直观的界面创建表格,设置行列、合并单元格、调整大小等。拼写检查和语法高亮:CKEditor集成了拼写检查和语法高亮性能,帮忙用户在编辑内容时防止拼写错误和语法问题。主动保留和撤销/重做:CKEditor具备主动保留性能,确保用户的编辑内容在意外状况下不会失落。此外,它还提供了撤销和重做性能,使用户能够不便地吊销或反复其编辑操作。CKEditor还反对插件扩大,容许用户依据其特定需要增加额定的性能和集成。这使得它非常灵活和可定制,适应各种不同的应用场景和要求。 在SAP Commerce Cloud SmartEdit中,CKEditor的集成为用户提供了一个直观、交互式的编辑环境,使其可能轻松地治理和定制其电子商务网站的内容。通过 与SAP Commerce Cloud的深度集成,SmartEdit和CKEditor能够与商业逻辑和产品数据进行交互,实现内容治理和电子商务性能的无缝联合。

June 20, 2023 · 1 min · jiezi

关于sap:回答朋友提问Fiori-UI-中如何知道当前系统-Client-ID-一

明天我的 SAP 开发技术交换群里,有敌人问这样的问题: 在 Fiori 界面中,怎么查看以后 Client? 我感觉要答复这个问题,须要发问的敌人提供更多的背景信息,比方: Fiori 界面,是运行在 ABAP On-Premises 上,还是 Cloud 环境(Cloud 环境下想晓得 Client ID 貌似没有意义,因为这个字段值只对 SAP Support Engineer 有用)? Fiori 界面是 Fiori 1.0,2.0 还是 Fiori 3.0? 在不同的 Fiori 部署形式和版本,查看以后 Client 的办法稍微有些差别。Jerry 近期会逐个介绍。 在开始介绍查看 Client 办法之前,咱们能够先温习一下这几篇文章介绍到的常识: SAP Fiori 利用的三种部署形式如何分辨 SAP Fiori Launchpad 里的"虚实" Fiori 利用SAP Fiori Launchpad Tile,UI5利用,和PFCG Role的对应关系上面咱们从 Fiori 1.0 开始聊起。 SAP Fiori 1.0 正式公布于 2013 年,旨在通过 Mobile First(挪动设施优先)的设计策略,对 SAP 不同畛域应用频率最高的利用进行重构。Fiori 1.0 在这门设计语言倒退历史上,起到的最重要的作用,就是提出了基于角色的利用拜访准则(Role-based Access Principle),指标是开发出具备 simple, responsive, coherent 和 delightful 个性的应用程序。这些准则和指标,贯通于 Fiori 长达10年的漫长演进历史中。 ...

June 20, 2023 · 2 min · jiezi

关于sap:将-SAP-ABAP-数据库表里存储的文件二进制内容下载成为本地文件试读版

在 SAP 规范产品和理论我的项目开发中,常常遇到一些须要将尺寸不大的文件(比方小于1MB的配置文件)的二进制内容,存储到 ABAP 数据库的状况。 比方笔者的 SAP OData 开发教程 里这篇文章,下图代码第 17 行,应用 ABAP OPEN SQL 将变量 ls_file_db 的值,插入到数据库表 zfile 里: 下图是数据库表 ZFILE 的字段列表,这个数据库表用于寄存用户依照笔者这篇教程介绍的步骤,应用 SAP ABAP OData 服务将文件上传到 ABAP 服务器上后保留的文件内容。 28. 如何应用 SAP OData 服务向 ABAP 服务器上传文本格式和 Excel,PDF 等格局的文件具体的,文件的内容通过字段 VALUE 保护,数据类型是 RAWSTRING. 比方在我的零碎里,ZFILE 表里有三条数据,代表三个上传后胜利保留的文件: 双击任意一条记录,查看明细: 其中 VALUE 字段显示的是文件二进制内容的十六进制编码,这个编码同咱们本地应用 WinHex,UltraEdit 等软件关上后查看到的内容是统一的。 本文介绍如何将数据库表里这种 RAWSTRING 格局的内容下载到本地,从新生成新的文件。 本文应用到的残缺 50 行 ABAP 代码在文末,这里介绍代码编写的要害要点。

June 20, 2023 · 1 min · jiezi

关于sap:什么是-SAP-Commerce-Cloud-的-Content-Catalog-概念

SAP Commerce Cloud的Content Catalog是一个外围概念,用于治理和组织网站内容。Content Catalog是一个蕴含页面、组件和其余相干资源的容器,它容许您以结构化和可重用的形式创立和治理网站的不同局部。在本文中,咱们将具体介绍Content Catalog的概念、用处和示例。 Content Catalog的概念 Content Catalog是SAP Commerce Cloud中的一个实体,用于存储和治理网站的内容。它容许您组织页面、组件、图像、文本和其余相干资源,以便构建和公布网站的不同局部。Content Catalog提供了一种结构化的形式来组织和治理网站内容,使内容治理更加灵便和高效。 Content Catalog的用处 Content Catalog在SAP Commerce Cloud中具备多种用处和性能。以下是Content Catalog的主要用途: 网站构造治理:Content Catalog用于定义网站的整体构造和层次结构。您能够创立类别页面、内容页面、产品页面等不同类型的页面,并将它们组织成层次结构。通过Content Catalog,您能够轻松治理和更新网站的构造,以便提供更好的用户导航和浏览体验。内容治理:Content Catalog容许您创立和治理网站的各种内容。您能够在页面中增加和编辑文本、图像、视频和其余媒体资源,以及自定义组件。通过Content Catalog,您能够轻松更新和公布网站的内容,以满足不同的市场需求和商业策略。多渠道反对:Content Catalog反对多渠道公布,使您能够在不同的渠道上展现和散发网站内容。无论是Web、挪动利用还是其余数字渠道,Content Catalog都能够为不同的渠道提供统一的内容治理和公布流程。版本控制和回滚:Content Catalog提供了版本控制性能,容许您创立和治理不同的版本。您能够创立新版本并对其进行预览和编辑。如果须要回滚到先前的版本,也能够轻松复原到特定的版本。版本控制性能使您可能无效治理和跟踪网站内容的变动和历史记录。多语言反对:Content Catalog反对多语言内容治理,使您可能轻松治理和公布多语言网站。您能够为不同的语言创立独立的版本,并在Content Catalog中进行治理和组织。这样,您能够针对不同的语言市场定制和优化网站内容。Content Catalog的示例为了更好地了解Content Catalog的概念和用处,咱们来看一个具体的示例:一个在线零售商的网站。 假如这个在线零售商销售服装和配饰产品,并且心愿通过网站向寰球用户提供购物体验。为了实现这个指标,他们应用SAP Commerce Cloud并创立了一个Content Catalog。 在这个Content Catalog中,他们能够创立不同的页面,如首页、类别页面和产品详情页面。例如,他们能够创立一个名为"Women's Clothing"的类别页面,用于展现所有女装类别的产品。在这个页面中,他们能够增加文本、图像和其余媒体资源,以及自定义组件,以提供最佳的用户体验。 此外,他们还能够创立产品页面,展现每个具体产品的详细信息和图片。通过Content Catalog,他们能够轻松治理和更新这些页面的内容,包含价格、形容、库存信息等。 为了满足不同语言市场的需要,他们能够为每种语言创立独立的Content Catalog版本。例如,他们能够创立一个英文版本的Content Catalog和一个法语版本的Content Catalog,并在不同的渠道上别离公布这些版本。 在Content Catalog中,他们还能够应用版本控制性能来治理不同的公布版本。如果须要更改某个页面或组件,他们能够创立新版本并对其进行编辑和预览。如果发现问题或须要回滚到先前的版本,他们能够轻松复原到特定的版本。 通过Content Catalog,这个在线零售商能够无效地治理和组织他们的网站内容,并在不同的渠道上提供统一和个性化的用户体验。 总结起来,SAP Commerce Cloud的Content Catalog是一个重要的概念,用于治理和组织网站的内容。它提供了结构化、可重用和多渠道的内容治理性能,使您可能轻松创立、治理和公布网站的不同局部。通过Content Catalog,您能够实现更好的网站导航、个性化用户体验和多语言反对,以满足不同市场的需要。

June 19, 2023 · 1 min · jiezi

关于sap:用-SmartEdit-打开-SAP-电商云-Storefront-时动态在-body-标签注入的-css-class

当咱们应用 SAP SmartEdit 关上 SAP Commerce Cloud Storefront 时,在商户网站中,还必须在body标签中作为CSS类名蕴含以下惟一标识符: smartedit-page-uid-<value>:指定指定目录和目录版本的惟一页面标识符。这是为了反对旧版实现而必须的。smartedit-page-uuid-<value>:指定页面的全局惟一标识符(UUID)。通常状况下,它是页面的复合主键的序列化示意(在默认的CMS实现中,复合主键蕴含目录版本信息)。smartedit-catalog-version-uuid-<value>:指定目录版本的UUID。通常状况下,它是目录版本的复合主键的序列化示意。当咱们应用 CMS API 时,cmsfacades extension 里的 UniqueItemIdentifierService 会对上述提到的 uuid 进行读写操作。 上面是 body 标签里 css class 的一个例子: <body class="smartedit-page-uid-mypageuid smartedit-page-uuid-mypageuuid smartedit-catalog-version-uuid-mycatalogversionuuid">上面是 Commerce Cloud 2205 SmartEdit + Spartacus 5.2 Storefront 的例子: CMS Item API 是一个反对对 CMS 项或 CMS 项子类型进行 CRUD 操作的 REST 端点。应用此 API,您能够搜寻、检索、创立和批改 CMS 项子类型,如 CMS 页面和 CMS 组件。 概述:CMS Item API 是一个通用的 API,通过转换和填充策略,能够通过查看项的属性,将 CMS 项序列化和反序列化为其 JSON/XML 等效项。要执行 CRUD 操作,您须要一个生成的全局惟一标识符(UUID)。例如,要更新 CMS 项,您必须提供 UUID,以便 CMS Item API 能够惟一标识该项。 ...

June 19, 2023 · 1 min · jiezi

关于sap:什么是-SAP-Commerce-Cloud-SmartEdit-的-preview-API

Preview API使得SmartEdit可能将商户网站加载到申请的体验环境上的iframe中。体验环境是指特定站点、目录和目录版本的商户网站,并且还能够是指定的语言、日期和工夫。 为了以指定的体验环境出现商户网站,SmartEdit将申请的商户网站加载到申请的体验环境的iframe中。 为了在申请的体验环境中加载商户网站,SmartEdit框架执行以下操作: 向预览API发送申请的体验环境的POST申请,并从中获取预览 ticket ID。应用附加了/cx-preview的URI和具备 preview ticket ID作为值的cmsTicketId申请参数,调用体验环境的商户网站首页。将申请的页面加载到iframe中。上面的负载必须公布到 /previewwebservices/v1/preview: {"catalog":"apparel-ukContentCatalog","catalogVersion":"Staged","language":"en","resourcePath":"/the/path/to/my/storefront/site""time": "2016-12-20T08:51:36-0500","catalogVersions" : [{ "catalog" : "apparelProductCatalog", "catalogVersion" : "Online" }, { "catalog" : "apparel-ukContentCatalog", "catalogVersion" : "Staged" }]}例子: response 会返回一个 ticket ID: 而后下一个 HTTP 申请会附带上这个 ticketID: http://localhost:4200/electronics-spa/en/USD/cx-preview?cmsTi... 在SAP Commerce Cloud Spartacus UI中,申请http://localhost:4200/electronics-spa/en/USD/cx-preview?cmsTi...中的"cx-preview"是一个非凡的标识符,用于批示进行预览操作。 "cx-preview"作为URI门路的一部分,用于告知零碎将申请定向到预览模式。它用于辨别预览模式和惯例模式之间的申请,以便零碎可能依据申请类型进行相应的解决。 在Spartacus UI中,预览模式容许用户在编辑过程中查看更改后的网站外观和性能。通过应用"cx-preview"标识符,能够将申请定向到预览环境,以便在编辑器中进行实时预览。 申请中的"en"示意申请的语言版本,"USD"示意申请的货币代码,而"cmsTicketId"是一个预览票据ID,用于在预览环境中惟一标识该次预览操作。 通过在URI中增加"cx-preview",零碎可能辨认申请的预览模式,并依据该模式加载相应的内容和性能。这使得用户能够在编辑过程中查看并测试其所做的更改,并确保最终的页面出现合乎预期。 总而言之,"cx-preview"作为申请中的一部分,用于批示SAP Commerce Cloud Spartacus UI进入预览模式,以便用户能够实时查看和测试其所做的更改。这为用户提供了一个牢靠的形式来验证和调整页面的外观和性能,以满足其需要。

June 19, 2023 · 1 min · jiezi

关于sap:SAP-电商云-SolrIndexNotFoundException-异常-做-full-indexing-的详细位置

Console 看到音讯:No Active index found, FULL indexer operation must be performed before any other operation Caused by: de.hybris.platform.solrfacetsearch.solr.exceptions.SolrIndexNotFoundException: de.hybris.platform.servicelayer.exceptions.UnknownIdentifierException: Active index not found: {indexedType=SolrIndexedTypeModel (8796093188255@2), active=true, facetSearchConfig=SolrFacetSearchConfigModel (8796093188248@1)} at de.hybris.platform.solrfacetsearch.solr.impl.DefaultSolrIndexService.getActiveIndex(DefaultSolrIndexService.java:215) ~[solrfacetsearchserver.jar:?] at de.hybris.platform.solrfacetsearch.search.impl.DefaultFacetSearchStrategy.search(DefaultFacetSearchStrategy.java:137) ~[solrfacetsearchserver.jar:?] ... 175 moreCaused by: de.hybris.platform.servicelayer.exceptions.UnknownIdentifierException: Active index not found: {indexedType=SolrIndexedTypeModel (8796093188255@2), active=true, facetSearchConfig=SolrFacetSearchConfigModel (8796093188248@1)} at de.hybris.platform.servicelayer.util.ServicesUtil.validateSingleResultWithType(ServicesUtil.java:68) ~[coreserver.jar:?] at de.hybris.platform.servicelayer.util.ServicesUtil.validateIfSingleResult(ServicesUtil.java:34) ~[coreserver.jar:?] at de.hybris.platform.solrfacetsearch.daos.impl.DefaultSolrIndexDao.findActiveIndexByConfigAndType(DefaultSolrIndexDao.java:66) ~[solrfacetsearchserver.jar:?] at de.hybris.platform.solrfacetsearch.solr.impl.DefaultSolrIndexService.getActiveIndex(DefaultSolrIndexService.java:211) ~[solrfacetsearchserver.jar:?] at de.hybris.platform.solrfacetsearch.search.impl.DefaultFacetSearchStrategy.search(DefaultFacetSearchStrategy.java:137) ~[solrfacetsearchserver.jar:?] ... 175 more须要依照下图这个门路,手动做一次 indexing: ...

June 19, 2023 · 1 min · jiezi

关于sap:什么是-SAP-Commerce-Cloud-的-Flexible-Search

SAP Commerce Cloud的Flexible Search是一种弱小而灵便的查询语言和工具,用于在SAP Commerce Cloud平台上执行简单的数据库查问操作。它提供了一种高度可定制的形式来检索和操作存储在Commerce Cloud数据库中的数据。Flexible Search能够用于在产品、订单、用户等对象之间进行联接、过滤和排序,并反对各种条件和运算符,以满足不同的查问需要。 Flexible Search的特点和劣势: 灵活性:Flexible Search容许开发人员自定义查问,灵便地指定须要的字段、条件和排序形式。它不仅能够查问根本的属性,还能够查问关联对象的属性,从而提供了更深刻和简单的查问能力。高性能:Flexible Search在查问大量数据时表现出色,并且能够通过索引和缓存机制进行优化,以进步查问性能。这对于解决大型电子商务平台中的简单查问申请至关重要。可扩展性:Flexible Search能够轻松适应一直变动的业务需要和数据模型。它能够与Commerce Cloud的数据模型严密集成,并反对扩大和自定义,以满足特定业务场景的查问需要。上面是一个具体的例子,展现了如何应用Flexible Search进行查问: 假如咱们有一个电子商务网站,须要查问在过来一个月内购买过某个特定产品的用户列表,并依照购买日期进行排序。 首先,咱们须要构建Flexible Search查问语句。查问语句由两局部组成:SELECT和FROM。SELECT定义了要返回的字段,FROM定义了要查问的表或对象。 SELECT {u:pk} as userId, {u:name} as userName, {o:pk} as orderId, {o:date} as orderDateFROM {Order AS o}, {User AS u}, {OrderEntry AS oe}, {Product AS p}WHERE {o:user}={u:pk} AND {oe:order}={o:pk} AND {oe:product}={p:pk} AND {p:code}='PRODUCT_CODE' AND {o:date} >= (CURRENT_TIMESTAMP - INTERVAL '1' MONTH)ORDER BY {o:date} DESC在下面的查问中,咱们抉择返回用户ID、用户名、订单ID和订单日期作为后果字段。咱们从Order、User、OrderEntry和Product这四个对象进行联接查问。通过WHERE子句,咱们指定了查问条件,包含订单和用户的关联、订单条目和产品的关联、产品编码等。咱们还应用了CURRENT_TIMESTAMP函数和INTERVAL运算符来限定查问的工夫范畴为过来一个月。最初,咱们通过ORDER BY子句依照订单日期进行降序排序。 执行该查问后,咱们将取得一个后果列表,蕴含在过来一个月内购买过该特定产品的用户信息。每个后果即将包含用户ID、用户名、订单ID和订单日期等字段。 总结起来,SAP Commerce Cloud的Flexible Search是一个功能强大、灵便且可扩大的查问工具,用于在Commerce Cloud平台上进行简单的数据库查问操作。它提供了宽泛的查问性能,能够满足电子商务平台中各种不同的数据检索和操作需要。通过灵便的语法和丰盛的查问选项,开发人员能够依据具体的业务需要编写高效、定制化的查问语句,以进步零碎性能和满足业务要求。 ...

June 19, 2023 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-2205-生成本地用于开发目的的-license-key

参考 note. 关上利用:https://launchpad.support.sap.com/#/licensekey/wizard/install... 点击 Add System 按钮: 这是我过来申请过的,版本是 2105: 从下拉菜单里抉择各个字段的值: 而后点击 Add License Key: 写个2099年到期,一劳永逸: Hardware Key: Y4989890650 点击 Generate: 如同最多只能到2024年,改成2099年没有用。 generate 之后,失去一个 CPS.txt 文件,应用命令行 license.bat -install CPS.txt 装置即可: 在SAP Commerce的本地我的项目文件中,bin\platform文件夹下的license.bat文件是一个批处理脚本,用于装置和配置许可证文件。它在本地开发环境中起着重要的作用,确保SAP Commerce平台可能正确加载和验证许可证,以便在开发和测试阶段应用残缺的性能。 上面是license.bat文件的主要用途和性能: 许可证装置:license.bat文件用于装置许可证文件到本地开发环境中。在SAP Commerce中,许可证文件通常是一个特定的文件(通常是一个XML文件),其中蕴含无关许可证密钥和许可证配置的信息。通过运行license.bat脚本,您能够将许可证文件装置到SAP Commerce的本地实例中。许可证验证:license.bat文件还用于验证许可证的有效性和正确性。在装置许可证后,脚本将执行一系列验证步骤,以确保许可证文件是无效的、残缺的,并与本地开发环境相匹配。如果许可证有效或不匹配,脚本将显示谬误音讯,并阻止SAP Commerce平台的失常启动。许可证配置:license.bat文件还提供了一些配置选项,容许您在装置和验证许可证时进行自定义配置。这些选项可能包含指定许可证文件的地位、设置许可证文件的门路和名称等。通过编辑和配置license.bat文件,您能够灵便地治理许可证的装置和验证过程。错误处理:license.bat文件蕴含了错误处理机制,用于捕捉和解决许可证装置和验证过程中可能呈现的谬误。如果在许可证装置或验证过程中产生谬误,脚本将显示相干谬误音讯,并提供领导和倡议来解决问题。许可证更新:在开发过程中,您可能须要更新许可证文件,以便获取新的性能或缩短许可证的有效期。通过运行license.bat脚本,您能够装置新的许可证文件,并更新本地开发环境中的许可证配置。总之,license.bat文件是SAP Commerce本地开发环境中的一个重要组成部分,它用于装置、验证和配置许可证文件。通过运行这个脚本,您能够确保SAP Commerce平台在开发和测试阶段可能失常加载和应用许可证,从而取得残缺的性能和拜访权限。

June 19, 2023 · 1 min · jiezi

关于sap:如何直接通过-ABAP-调试器将-SE16-事务码里无法直接查看的内容下载到本地试读版

在 SAP ABAP 零碎里,咱们能够应用事务码 SE16 查看数据库表的内容。 这个事务码很不便,然而有一些局限性,比方类型为 RAWSTRING 的二进制内容,无奈在这个事务码里不便的查看。 上面的数据库表 ZFILE 是一个例子:字段 VALUE 寄存的是文件的二进制内容。 咱们应用事务码 SE16 查看该文件的内容,发现 VALUE 字段显示的是文件二进制的16进制编码:504B030414000600080000002100A453C5CF4E0100000804000013... 这个值同文件在本地通过 Winhex,UltraEdit 等软件关上后查看的内容完全一致。 下图是我在本地用 WinHex 软件关上本地文件,查看其内容的 16 进制编码的截图。 那么在 SE16 外面,因为无奈间接查看类型为 RAWSTRING 的字段的值,有时不太不便。 诚然咱们能够应用 GUI_DOWNLOAD 等函数,将数据库表里的文件内容下载到本地后,再关上查看(本教程后续笔者会具体介绍其步骤),但这样毕竟还是会引入一些开发的工作量。 因而本文介绍一种更简略的,不须要写代码的办法,可能在 ABAP 调试器里,间接将数据库表里某条记录内,蕴含文件的二进制内容,间接下载到本地,另存为一个新的本地文件。 上面是具体的步骤解说。

June 19, 2023 · 1 min · jiezi

关于sap:SAP-MTA-里定义-SAP-UI5-module-的一个例子

SAP BTP是SAP提供的一种云原生利用开发和集成平台,它为企业提供了构建、部署和扩大企业级应用程序所需的工具和服务。而MTA是一种在SAP BTP上进行利用部署和治理的概念。 MTA利用是一种由多个模块(Modules)组成的应用程序,每个模块能够是不同类型的组件,如前端利用、后端服务、数据库等。这些模块能够独立开发、测试和部署,并且能够在不同的运行时环境中进行灵便的组合和配置。 MTA利用通过描述性的配置文件(MTA形容文件)来定义应用程序的构造、依赖关系和部署参数。在MTA形容文件中,您能够定义应用程序的模块、服务绑定、资源需要等信息,并指定它们之间的关系和程序。这使得MTA利用具备灵活性和可扩展性,使开发人员可能更高效地治理和部署简单的企业应用程序。 通过MTA利用,您能够实现跨多个指标运行时的应用程序治理。指标运行时能够是SAP BTP上的Cloud Foundry环境、Kubernetes集群、SAP HANA数据库等。MTA利用提供了一种标准化的部署和治理形式,简化了应用程序的交付和运维过程。 总的来说,SAP BTP上的MTA利用提供了一种灵便、可扩大的利用开发和部署模式,帮忙企业更好地构建和治理现代化的企业应用程序。 一个例子: _schema-version: "3.1"ID: appversion: 1.0.0modules: - name: my-first-app type: staticfile path: content.zip requires: - name: my-first-app-service parameters: memory: 64m disk-quota: 64mresources: - name: my-first-app-service type: org.cloudfoundry.managed-service parameters: service: application-logs service-plan: lite让咱们逐行解释SAP BTP上的mta.yaml文件的每一行的含意: _schema-version: "3.1": 示意应用的是MTA形容文件的模式版本3.1,用于指定文件的语法和构造。ID: app: 定义了应用程序的惟一标识符,此处为"app"。version: 1.0.0: 指定了应用程序的版本号,此处为"1.0.0"。modules:: 定义了应用程序的模块局部的开始。- name: my-first-app: 定义了一个名为"my-first-app"的模块。type: staticfile: 指定了模块的类型为"staticfile",示意它是一个动态文件模块。path: content.zip: 指定了动态文件模块的文件门路为"content.zip",示意内容将从该文件中提供。requires:: 定义了模块所需的依赖关系的开始。- name: my-first-app-service: 定义了一个名为"my-first-app-service"的依赖项,示意该模块须要依赖名为"my-first-app-service"的服务。parameters:: 定义了模块的参数局部的开始。memory: 64m: 指定了模块的内存调配为64兆字节。disk-quota: 64m: 指定了模块的磁盘配额为64兆字节。resources:: 定义了应用程序的资源局部的开始。- name: my-first-app-service: 定义了一个名为"my-first-app-service"的资源,示意该应用程序应用了名为"my-first-app-service"的托管服务。type: org.cloudfoundry.managed-service: 指定了资源的类型为"org.cloudfoundry.managed-service",示意它是一个托管服务。parameters:: 定义了资源的参数局部的开始。service: application-logs: 指定了服务的类型为"application-logs",示意该托管服务为应用程序日志服务。service-plan: lite: 指定了服务的打算为"lite",示意应用的是该服务的轻量级打算。以上是对mta.yaml文件中每一行的解释,它形容了应用程序的构造、依赖关系和资源配置,以便在SAP BTP上进行部署和治理。 ...

May 18, 2023 · 1 min · jiezi

关于sap:使用-FOR-ALL-ENTRIES-将-ABAP-内表内容作为数据库表的读取条件之一试读版

本教程之前的文章,咱们曾经介绍了如何用 ST05 事务码,对一个 ABAP 报表进行性能剖析和优化的步骤。 94. 应用事务码 ST05 对 SAP ABAP 数据库表拜访性能调优的一个具体例子 重构后的代码: REPORT zdb_optimization.DATA:lt_order TYPE TABLE OF zmyorder, ls_order LIKE LINE OF lt_order, lt_person TYPE TABLE OF zperson, ls_person LIKE LINE OF lt_person.SELECT * INTO TABLE lt_order FROM zmyorder.SELECT * INTO TABLE lt_person FROM zperson.LOOP AT lt_order INTO ls_order. READ TABLE lt_person into ls_person with key person_id = ls_order-customer_id. "SELECT SINGLE * INTO ls_person FROM zperson WHERE person_id = ls_order-customer_id. WRITE:/ 'order:', ls_order-order_id, ' user:', ls_person-person_name.ENDLOOP.下图是应用事务码 ST05 采集到的重构后的数据库表拜访状况,对 ZMYORDER 和 ZPERSON 表别离各自只读取了一次,每次读取了4条数据进去。 ...

May 18, 2023 · 1 min · jiezi

关于sap:使用-ABAP-代码删除指定-SAP-CRM-系统里-Opportunity-订单的文本

REPORT znote_delete_tool.PARAMETERS: id TYPE crmd_orderadm_h-object_id OBLIGATORY DEFAULT '2025', type TYPE crmd_orderadm_h-process_type OBLIGATORY DEFAULT 'OPSM', lan TYPE stxh-tdospras OBLIGATORY DEFAULT 'E', tdid TYPE stxh-tdid OBLIGATORY DEFAULT 'A002'.TYPES: text_line(cl_crm_odata_oppt_constant=>gc_oppt_notes_textlength) TYPE c.DATA: lv_char32 TYPE char32, " CRMD_ORDERADM_H-guid, lv_id LIKE id, lv_guid TYPE crmd_orderadm_h-guid.DATA: ls_return TYPE STANDARD TABLE OF bapiret2.DATA: lt_lines TYPE STANDARD TABLE OF tline, ls_line LIKE LINE OF lt_lines.DATA: lt_objects_to_save TYPE crmt_object_guid_tab.DATA: lt_objects_not_saved TYPE crmt_object_guid_tab.DATA: lt_saved_objects TYPE crmt_return_objects.lv_id = id.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = lv_id IMPORTING output = lv_id.SELECT SINGLE guid FROM crmd_orderadm_h INTO lv_guid WHERE object_id = id AND process_type = type.IF sy-subrc <> 0. WRITE: / 'No opportunity found' COLOR COL_GROUP. RETURN.ENDIF.DATA: lt_text TYPE crmt_text_comt, ls_text LIKE LINE OF lt_text, ls_input_fields TYPE crmt_input_field, lv_logical_key TYPE crmt_logical_key, ls_field_names TYPE crmt_input_field_names.DATA: lt_input_field_names TYPE crmt_input_field_names_tab, ls_input_field_name LIKE LINE OF lt_input_field_names.DATA: lt_input_fields TYPE crmt_input_field_tab.ls_text-ref_handle = '0000000000'.ls_text-ref_guid = lv_guid.ls_text-ref_kind = 'A'.ls_text-text_object = cl_crm_odata_oppt_constant=>gc_oppt_notes_tdobject.ls_text-mode = 'D'.ls_text-tdid = tdid.ls_text-tdspras = lan.ls_line-tdformat = '*'.APPEND ls_line TO ls_text-lines.APPEND ls_text TO lt_text.CLEAR ls_input_fields.ls_input_fields-ref_guid = lv_guid.ls_input_fields-ref_kind = 'A'.ls_input_fields-objectname = 'TEXTS'.CONCATENATE ls_text-tdid ls_text-tdspras INTO lv_logical_key.ls_input_fields-logical_key = lv_logical_key. " use handle or guid ?CLEAR ls_input_fields-field_names.ls_input_field_name-fieldname = 'LINES'.APPEND ls_input_field_name TO ls_input_fields-field_names.INSERT ls_input_fields INTO TABLE lt_input_fields.CALL FUNCTION 'CRM_ORDER_MAINTAIN' EXPORTING it_text = lt_text CHANGING ct_input_fields = lt_input_fields EXCEPTIONS error_occurred = 1 document_locked = 2 no_change_allowed = 3 no_authority = 4.IF sy-subrc <> 0 . WRITE: / 'text modify failed: ' COLOR COL_NEGATIVE, sy-subrc COLOR COL_TOTAL. RETURN.ENDIF.APPEND lv_guid TO lt_objects_to_save.CALL FUNCTION 'CRM_ORDER_SAVE' EXPORTING it_objects_to_save = lt_objects_to_save iv_update_task_local = abap_true IMPORTING et_saved_objects = lt_saved_objects et_objects_not_saved = lt_objects_not_saved EXCEPTIONS document_not_saved = 1 OTHERS = 2.IF sy-subrc EQ 0 AND lt_saved_objects IS NOT INITIAL. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = abap_true. WRITE: / 'text changed successfully' COLOR COL_NEGATIVE.ELSE. WRITE: / 'text changed failed' COLOR COL_POSITIVE.ENDIF.BREAK-POINT.这段 SAP ABAP 代码的作用是批改 CRM 订单的文本。该程序蕴含了以下性能: ...

May 17, 2023 · 2 min · jiezi

关于sap:SAP-Fiori-Tools-里-proxy-中间件的使用场景介绍

应用 proxy 中间件能够让开发人员通过配置的形式连贯不同的后盾零碎,或者是切换不同的 SAP UI5 版本。 上面是一个典型的 ui5.yaml 里的 proxy 配置文件的例子: - name: fiori-tools-proxy afterMiddleware: compression configuration: backend: - path: /sap url: https://my.backend.com:1234这个配置的语义是,该 SAP UI5 利用启动之后,但凡发送到 /sapXXX 门路的 OData 申请,都会被主动转发到 url 指定的后盾服务器去。为了使上述 ui5.yaml 失效,须要应用命令行 npx fiori run 启动本地 SAP UI5 利用。 如果须要通过 destination 连贯到后盾零碎(这是 SAP UI5 利用部署到 SAP BTP 平台 CloudFoundry 环境的常见需要),只须要在 ui5.yaml 里削减 Destination 字段的保护: - name: fiori-tools-proxy afterMiddleware: compression configuration: backend: - path: /sap url: https://my.backend.com:1234 destination: my_backend连贯多个后盾零碎的配置语法: ...

May 16, 2023 · 1 min · jiezi

关于sap:SAPUI5-本地工程中的键值对-sapux-true-的作用

在 SAPUI5 本地工程中,"sapux": true 是 package.json 文件中的一个字段,它用于指定我的项目是否是 SAPUI5 UX 工程。 SAPUI5 UX 工程是一个应用了 SAPUI5 的特定配置的应用程序类型,它应用了一些特定的 SAPUI5 库、主题和约定,以实现更好的用户体验。如果在一个 SAPUI5 本地工程中设置了 "sapux": true,则意味着该我的项目是一个 SAPUI5 UX 工程,它将应用 SAPUI5 UX 库和主题,而不是默认的 SAPUI5 库和主题。 通常状况下,如果您的 SAPUI5 应用程序是专门为 SAP 的用户界面设计的,例如 SAP Fiori 应用程序,则倡议将 "sapux" 设置为 true。这将确保您的应用程序与 SAP 的 UX 准则和设计准则保持一致,并提供更好的用户体验。 总之,"sapux": true 是一个用于指定 SAPUI5 本地工程是否是 SAPUI5 UX 工程的 package.json 文件字段。如果设置为 true,则该我的项目将应用 SAPUI5 UX 库和主题,以提供更好的用户体验。 在 SAPUI5 本地工程中,"@sap/ux-specification": "UI5-1.112" 是 package.json 文件中的一个依赖项,它用于援用 SAPUI5 UX 标准库。 ...

May 16, 2023 · 1 min · jiezi

关于sap:SAP-Fiori-Tools-的-Application-Reload-Middleware-介绍

通过 application reload middleware 的帮忙, 开发者能够在进行 Fiori Elements 开发的过程中,即时预览这些尚未齐全实现开发的利用。 即时的意思是,一旦有 Fiori Elements 我的项目相干的文件发生变化,Application Reload middleware 会主动刷新利用。 npx 是一个 Node.js 工具,它能够让你在不装置全局包的状况下运行 npm 包中的命令。 通过 npx,你能够在本地长期装置并运行一个 npm 包的命令,而不须要将这个包装置到全局环境或者本地我的项目中。例如,你能够应用 npx 运行一个在 npm 上公布的命令行工具,而不用先全局装置它。 npx 会主动帮你下载须要的包,并执行它们提供的命令。这个性能在须要长期尝试一个新的命令行工具或者运行不罕用的命令时十分不便。 除了运行命令行工具,npx 还能够执行 JavaScript 文件和模块。例如,你能够应用 npx 运行一个蕴含 ES6 模块的 JavaScript 文件。 假如你想要创立一个新的 React 应用程序。通常,你须要先全局装置 create-react-app,而后再应用它创立新的我的项目: npm install -g create-react-appcreate-react-app my-app然而,如果你只是想疾速创立一个新的 React 应用程序而不想在你的计算机上安装 create-react-app,那么你能够应用 npx 来执行它: npx create-react-app my-app这个命令会在本地长期装置 create-react-app,而后应用它来创立一个新的 React 应用程序,而不用全局装置这个包。 另一个例子是应用 npx http-server 来启动一个本地服务器,这个服务器能够用来在本地浏览器中测试动态网页。在这个例子中,http-server 是一个命令行工具,用于在本地启动一个 HTTP 服务器。 ...

May 16, 2023 · 1 min · jiezi

关于sap:SAP-Fiori-Elements-本地应用启动的三种模式辨析试读版

本教程前一步骤,咱们介绍了在 Visual Studio Code 里应用命令行 npm run start 启动 SAP Fiori Elements 利用的办法: 3. 入手运行第一个 SAP Fiori Elements 利用 有仔细的学习者发现了,笔者提供的这个 Fiori Elements 利用的 package.json 文件的 scripts 区域里,除了定义了名为 start 脚本外,还有另外两个 start-mock 和 start-local. 这就意味着这个 Fiori Elements 利用至多有三种启动形式。这些形式的区别是什么?本文就来解答这些问题。

May 16, 2023 · 1 min · jiezi

关于sap:使用-SAP-Fiori-tools-开发-SAP-UI5-应用

SAP Fiori tools 通过为 SAP Business Application Studio 和 VS Code 开发环境提供扩大性能,简化了 SAP Fiori Elements 应用程序的开发。 SAP Fiori tools 扩大性能可帮忙开发人员创立应用程序、可视化导航、主动生成代码等。联合 SAP Fiori Elements 应用,这些扩大能够进步开发效率、确保应用程序之间的体验一致性,并帮忙开发人员构建可扩大的体验。SAP Fiori tools 包含以下扩大性能: Application Wizard:应用向导式办法生成提供的 SAP Fiori Elements 和 SAPUI5 自在款式模板。SAP Fiori Tools – Application Modeler。可拜访应用程序页面、导航和服务实体的可视化。您能够增加新的导航和页面、删除页面,并导航到相应的编辑工具。以下性能属于此扩大性能:a. Page Editorb. Page Map Guided Development:可拜访 How-To 指南和教程,介绍如何在 SAP Fiori Elements 应用程序中实现某些性能。您能够依照所需性能的步骤进行施行,而后应用疏导式开发方法在我的项目中进行所需更改。Service Modeler:可视化 OData 服务元数据文件。您能够应用它轻松浏览简单的服务,包含实体、属性和关联。Maintaining Annotations with Language Server:可拜访资源,帮忙在代码编辑器中定义正文,从而通过缩小工作量和保护代码一致性来改善利用程序开发。以下性能子集属于此扩大性能:a. Code completionb. Micro-snippetsc. Diagnosticsd. Internationalization support SAP Fiori tools Environment Check:设计用于针对您在 SAP BTP 中配置的环境和/或指标运行查看的工具。笔者这篇教程有具体的 SAP Fiori Tools 在 Visual Studio Code 里的装置和配置步骤介绍。 ...

May 16, 2023 · 1 min · jiezi

关于sap:SAP-UI5-Flexible-Programming-Model-Explorer

依照 SAP UI5 官网的说法, The SAPUI5 freestyle templates are deprecated, and it’s recommended to use the custom page SAP Fiori template based on the flexible programming model as an alternative. For more information, see Flexible Programming ModelInformation published on SAP site.SAP UI5 Freestyle template 曾经 deprecated 了,举荐应用基于 flexible programming model 这个编程模型来应用 custom page Fiori template. OData V4 的 SAP Fiori Elements 提供了多种办法来扩大应用程序以满足您本人的特定需要。 尽管能够在扩大点中自在应用任何 SAPUI5 编码或控件,但也能够利用 Fiori Elements 的构建块和控制器扩大。 ...

May 16, 2023 · 1 min · jiezi

关于sap:SAP-UI5-应用的两种开发方式的教程

要开发连贯到 SAP OData 服务的 SAP UI5 应用程序,开发人员能够应用以下选项之一: SAP Fiori Elements这种形式基于常见业务场景的几个根本 Floorplans 创立规范应用程序。 这些 Floorplans 提供 UI 代码,包含一些预置的逻辑,以便来自后端的数据精确地达到预期的地位,并且 UI 行为基于 OData 元数据的注解(英文名为 annotation)来进行实现。 能够应用 XML 正文自定义 Fiori Elements 的 floorplans. 笔者编写的 Fiori Elements 开发教程(正在写作中):SAP Fiori Elements 从入门到进阶 Fiori Elements 设计要点SAP Fiori Elements 框架解释 OData 元数据和注解以出现应用程序 UI。 元数据形容您的数据模型或屏幕上的内容,而注解形容数据语义或它的可视化形式。 例如,任何将 Communication.IsEmailAddress 正文术语设置为 true 的实体类型属性都被 SAP Fiori 元素框架解释为电子邮件地址,并在应用程序 UI 中显示为指向电子邮件客户端的可点击链接。 正文能够关联到服务的实体(entities)、关系(relationship)和属性(properties). 开发人员还能够应用 annotation 来执行以下操作: 形容属性之间的关系,例如金额和相干货币之间的关系。SAP Fiori Elements 在应用程序 UI 中并排显示这些属性。将属性分组在一起,以便它们在表单中彼此相邻显示。形容对给定对象可用的操作,用户是否能够编辑它、删除它、利用一些过滤器等等。所有这些都由 SAP Fiori Elements 框架解释并相应地显示在应用程序中。 ...

May 16, 2023 · 1 min · jiezi

关于sap:SAP-ABAP-系统里长文本-Long-Text-的设计和读取函数-READTEXT-详细讲解试读版

本文答复本教程一位学习者在笔者的常识星球里的发问。 要想找到这个问题的本源,须要首先对 SAP ABAP 零碎里长文本(Long Text) 的设计有一个比较清楚的理解,这就是本文及后续文章的目标。 SAP ABAP 长文本的应用场景在SAP ABAP零碎中,长文本(Long Text)是一种非凡的文本类型,它能够存储比一般文本更长的文本内容,通常用于详细描述 SAP 零碎中的各种类型的业务对象,例如: 物料主数据(Material Master Data)形容文本:形容物料的名称、规格、性能等详细信息。销售订单(Sales Order)文本:形容订单的特殊要求、运输细节等信息。洽购订单(Purchase Order)文本:形容洽购订单的供应商、货物要求等信息。业务搭档(Business Partner)文本:形容客户或供应商的详细信息。应用长文本的益处是,它能够让用户更具体地形容SAP业务对象,从而进步业务的准确性和可读性。例如,在洽购订单文本中形容洽购物料的具体要求,能够让供应商更精确地理解洽购方的需要,防止因为信息有余而导致的交付问题。在物料主数据的形容文本中,能够提供更多的详细信息,帮忙应用该物料的人员更好地了解该物料的属性和用处。 上面是 SAP CRM 零碎里,一个物料主数据的长文本在 UI 上显示的例子。这个物料主数据的 Product ID: TESTPRODUCTMASS25 长文本(Long Text) 的读取,通过 ABAP 函数 READ_TEXT 实现。 SAP ABAP 长文本读取函数 READ_TEXT 的参数阐明咱们在这个函数里设置断点,而后关上 UI,断点会触发,咱们记录下该函数被调用时,在 ABAP 调试器里察看到的各个输出参数传入的值内容。 下文是具体介绍。

May 16, 2023 · 1 min · jiezi

关于sap:Spartacus-cart-id-存储在浏览器-local-storage-里面

浏览器的 local storage(本地存储)是指浏览器提供的一种客户端存储机制,用于在用户的浏览器上存储大量数据。这些数据能够在同一域名下的所有页面之间共享,并且在浏览器敞开后也能够保留下来,直到被用户删除或达到存储下限。 Local storage 是 HTML5 标准中引入的一种新的浏览器存储机制,它比传统的 Cookie 机制更加弱小和灵便。与 Cookie 不同的是,Local storage 能够存储更多的数据(个别为5-10MB),而且不会被蕴含在HTTP申请中发送到服务器,因而对于须要在客户端保留数据的应用程序来说,Local storage 是更加平安和牢靠的抉择。 开发人员能够应用JavaScript API拜访 Local storage 中存储的数据,通过 setItem() 和 getItem() 办法来增加和获取数据,通过 removeItem() 办法来删除数据。在应用 Local storage 时,开发人员须要留神数据存储的限度和数据类型的转换问题。 SAP Spartacus 项目选择将以下信息存储到浏览器的 local storage 里: 用户登录凭证(Access Token 和 Refresh Token):用户在登录后获取的凭证信息将被存储在 local storage 中,以便用户在浏览网站时不须要反复登录。用户语言偏好设置:Spartacus 应用程序能够反对多种语言,因而用户能够抉择应用哪种语言。用户抉择的语言偏好设置将被存储在 local storage 中,以便在用户下一次拜访网站时放弃其语言偏好设置。用户的购物车 ID:用户在进行购物时增加的商品信息将被存储在 local storage 中,以便在用户下一次拜访网站时复原其购物车状态。上面是一个具体的例子。5198 存储在 local storage 外面 依据 cart id 从后盾读取 cart 数据: 点击 Edit configuration:http://localhost:4200/electronics-spa/en/USD/configure/vc/car...

May 12, 2023 · 1 min · jiezi

关于sap:什么是-Intelligence-Enterprise-的-Business-network

Intelligence Enterprise(智能企业)的 Business Network(业务网络)是指企业外部和内部的所有要害业务参与者之间的互动和协作关系。这些参与者包含供应商、客户、合作伙伴、员工等。 Business Network 是 Intelligence Enterprise 构建数字化生态系统的外围,它能够促成各方之间的信息共享、业务流程合作和价值发明。通过业务网络,企业能够更好地理解市场需求、优化供应链治理、进步客户满意度和加强竞争力。 在 Intelligence Enterprise 中,业务网络能够通过技术手段进行数字化和自动化。例如,应用区块链、智能合约和物联网等技术,能够实现供应链跟踪、贸易融资、数字化领取和物流治理等业务流程的自动化和智能化。 此外,业务网络还能够与企业的数据分析和人工智能技术集成,从而实现更精确的预测、决策和优化。通过 Intelligence Enterprise 的业务网络,企业能够建设更加智能、灵便和可继续的业务模式,进步业务效率和价值发明能力。 中间件是指连贯不同零碎之间的软件,它能够实现不同零碎之间的数据交换和通信。在企业外部和供应链搭档之间,可能存在不同的物流零碎和库存管理系统,这些零碎可能应用不同的数据格式和协定。为了实现零碎之间的数据共享和交换,须要一种可能解决不同数据格式和协定的中间件。 ChatGPT 作为智能对话零碎,具备解决自然语言的能力和与用户交互的接口。在业务网络中,能够通过 ChatGPT 的自然语言解决能力,将用户输出的信息转化为零碎能够了解的指令或参数,而后将这些信息传递给后端系统或应用程序,以实现数据交换和通信。 例如,在物流零碎和库存管理系统之间,能够应用 ChatGPT 作为中间件,将用户输出的物流信息和库存信息转化为零碎能够了解的指令或参数,而后将这些信息传递给物流零碎和库存管理系统,以实现实时的供应链跟踪和库存治理。通过 ChatGPT 的中间件作用,不同零碎之间能够实现数据共享和交换,从而进步供应链的透明度和合作效率。 须要留神的是,ChatGPT 作为中间件须要与企业外部和供应链搭档的零碎进行集成。为了实现集成,须要应用 API 或其余集成技术。此外,还须要对数据安全和隐衷进行治理,确保数据在传输和处理过程中不被泄露或篡改。

May 12, 2023 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-的-Product-Carousel-Component-介绍

Product Carousel Component (产品轮播组件)显示一组带有本地化文本的产品图片。如果您想将相干产品放在一起展现,这将十分有用。商务营销人员应用产品轮播组件来改善营销并进步转化率。 咱们能够创立一个蕴含产品、类别或产品和类别混合的产品轮播组件。如果将类别增加到组件中,则类别内的所有产品都将在 storefront 中的产品轮播组件中显示。创立组件时,抉择将从中抉择产品和类别的产品目录。如果产品或类别尚未同步到产品目录的在线版本,则这些产品或类别将不会显示在 storefront 中。 该轮播组件不会主动滚动,因而用户必须应用左右箭头来滚动产品。 该组件外观如下图所示: 此过程形容了如何定义产品轮播组件的内容。 定义产品轮播组件的内容,请执行以下操作: 在组件编辑器中,抉择“内容”选项卡。在“题目”字段中,抉择语言并指定要在该语言中显示的题目。 在您的内容目录反对的每种语言中指定题目。 要向组件增加产品,请单击“增加产品”按钮并执行以下操作:从“目录版本”列表中抉择要从中抉择产品的产品目录。 产品列表将显示进去。 如果您抉择了尚未同步到在线版本的产品目录版本,则无奈在 storefront 中显示从该目录抉择的产品。 在产品列表中,滚动列表以查找产品或开始输出产品名称,仅会显示合乎搜寻条件的产品。 单击产品以将其增加到列表中。 反复这些步骤以将更多产品增加到列表中。 增加完所有所需产品后,请单击“增加”按钮。 组件编辑器窗口将显示所选产品。 要向组件增加类别,请单击“增加类别”按钮。增加类别到组件的步骤与增加产品的步骤雷同。 组件编辑器窗口将显示所选产品和类别。 在保留组件之前,您能够执行以下操作来向您的产品轮播组件增加产品和/或类别: (1) 随时单击产品或类别列表上方的“增加更多”链接增加其余产品或类别。 (2) 应用拖放性能将产品和类别在列表中高低挪动。您还能够应用菜单选项在列表中高低挪动我的项目。 从选项菜单中选择“删除”以从列表中删除选项。指定滚动行为: 按需在“根本信息”和“可见性”选项卡中持续指定组件的参数。无关更多信息,请参见从组件类型创立组件。 当您指定组件的所有参数时,请抉择“保留”。 新组件将呈现在内容插槽中定义的内容中。当初,在“增加组件”面板的“组件”局部中可用该组件。

May 7, 2023 · 1 min · jiezi

关于sap:关于-SAP-Commerce-Cloud-构建的-Nodejs-版本号问题

假如 SAP ccv2 某个工夫点 A 上 cloud portal 反对 Node.js 14,16 和 18 三个版本, 而后到了工夫点 B,就只反对 16 和 18 了。那么在工夫点 A 基于 14 构建和部署的镜像依然可能在工夫点 B 工作,只是在工夫点 B 之后,不能再持续触发版本 14 的构建和部署了。 SAP Commerce Cloud 不提供内容交付网络 (CDN) 或 Web 应用程序防火墙 (WAF) 服务,但您能够自在地与您本人的 CDN 或 WAF 提供商集成。 您须要配置 DNS 设置,以便您的域首先指向您的 CDN/WAF 提供商,而后 CDN/WAF 指向 SAP Commerce Cloud。 您只需在 SAP Commerce Cloud 上配置 IP 过滤器集,这样您就能够将您的端点拜访限度为您的 CDN/WAF 提供商。 无关更多详细信息,请参见下图: SAP Commerce Cloud提供站点到站点VPN设置,您能够将您的SAP Commerce Cloud环境与您的公有网络连接起来。VPN是自助服务,能够从SAP Commerce Cloud Portal进行配置。 ...

April 22, 2023 · 1 min · jiezi

关于sap:Data-source-is-not-a-transactional-CDS-view-OData-Exposure

一个敌人遇到问题:给 ABAP CDS view 增加 OData.publish: true 注解激活之后,冀望主动生成 OData 服务,然而遇到谬误音讯: Data source is not a transactional CDS view [OData Exposure] SAP 社区上有人问相似的问题:https://answers.sap.com/questions/78804/cds-view-annotation-.... 能够尝试去后盾应用事务码 /IWFND/MAINT_SERVICE, 对 OData 服务 ZFLIGHT_COM_CDS 手动激活。 如果后盾激活 OData 服务后,回到 ABAP Development Tool 里激活 CDS view,还是遇到 Data source is not a transactional CDS view [OData Exposure] 的谬误音讯,那么参照这个帖子: https://www.michaelmanagement.com/sap-error-messages/en/sadl_... Either add the annotation '@ObjectModel.transactionalProcessingEnabled:true' to the underlying CDS view or remove the annotation'@ObjectModel.transactionalProcessingDelegated' from the consumptionview.意思是要么给 zspfli_root 这个 underlying CDS view 里增加 @ObjectModel.transactionalProcessingEnabled 注解,要么从 consumption view zflight_com 里移除 @ObjectModel.transactionalProcessingDelegated. ...

April 22, 2023 · 1 min · jiezi

关于sap:SAP-Fiori-Elements-开发环境的搭建和开发准备工作试读版

本教程第一篇文章,咱们介绍了 SAP Fiori Elements 和 SAP UI5 Freestyle 两种开发方式的区别和各自的适应场合。 本文咱们开始入手实操,创立并运行第一个 SAP Fiori Elements 利用。 Fiori Elements 开发环境搭建咱们抉择在本地应用 Visual Studio Code 开发 Fiori Elements 利用。 须要本地装置 Visual Studio Code 和 Node.js,具体步骤参考笔者这篇教程: SAP UI5 本地开发环境的搭建当然,技术上应用 SAP Business Application Studio 也是没有问题的,只是笔者集体更喜爱用 Visual Studio Code,因为它是本地操作,没有 Business Application Studio 那样的网络延时。 须要留神的是,同应用 Visual Studio Code 进行 SAP UI5 Freestyle 开发相比,Fiori Elements 开发须要额定装置一款名叫 SAP Fiori Tools - Extension Pack 的扩大: 所谓 Extension Pack,就是扩大包,外面蕴含了 Fiori Elements 开发相干的若干个 Visual Studio Code 扩大,大家装置时请认证扩大的公布方是 SAP SE,如上图所示。 ...

April 21, 2023 · 1 min · jiezi

关于sap:如何自行查找出-SAP-ABAP-标准的-OData-服务返回数据的后台数据库表和表字段名称

笔者的常识星球有敌人发问,询问如何查找一个 SAP ABAP OData 服务,暴露出的字段到底来自 SAP ABAP 后盾哪些数据库表的哪些字段。 要答复这个问题,须要综合使用到咱们过来学过的包含 ABAP 后台程序单步调试的常识。 本文咱们还是通过之前应用过的 SAP CRM 规范的 Fiori 利用,My Accounts 作为例子进行解说。 在 Fiori Launchpad 里点击 My Accounts tile 之后,能看到 SAP OData 服务返回的 Accounts 数据列表。 点击其中一个行我的项目,就能进入 Accounts 的明细页面。这里在 SAP UI5 利用界面上看到的字段,都是该利用对应的 OData 服务从 SAP 后盾业务服务器取回的。 在理论的 SAP 集成我的项目中,咱们有时候会须要晓得这些 OData 返回字段值,到底是存储在哪些数据库表的哪些字段中。这些信息作为系统集成二次开发的实践前提。 本教程前一篇文章,曾经介绍了如何通过 Chrome 开发者工具,自行找到该 SAP UI5 利用应用的 OData 服务的名称,以及运行时部署在 SAP Gateway 零碎上的 SAP UI5 利用,收回的 OData 服务,到底被哪一台 SAP 后盾服务器接管并解决。 33. 如何找出 SAP Fiori Launchpad 里点击 tile 之后,读取业务数据调用的是哪个 SAP 后盾零碎的 OData 服务 ...

April 16, 2023 · 1 min · jiezi

关于sap:企业管理软件-Support-领域-的-L1L2-和-L3-Support-以及-SLA-的概念

在企业管理软件 Support 畛域,L1,L2 和 L3 Support 是指反对团队提供技术支持的三个不同级别。 L1 Support,也称为一线反对,是指客户服务核心的第一道反对阶段。L1 反对人员是与客户最先接触的人,他们的次要工作是收集客户的问题,分类和解决常见的技术问题。他们通常有一个预约义的知识库,能够为客户提供疾速解决方案,如果问题太简单,则将其降级给 L2 或 L3 Support。 L2 Support,也称为二线反对,是指技术团队中具备更高级别技能和常识的人员,他们负责解决 L1 Support 无奈解决的技术问题。L2 反对人员通常须要更深刻地理解软件的架构和技术细节,并且能够进行更简单的问题排查和修复。如果问题须要更高级别的技术支持,则将其降级给 L3 Support。 L3 Support,也称为三线反对,是指最高级别的技术支持。L3 反对人员是技术团队中最有教训和常识的人员,他们解决最简单的技术问题,并与软件开发团队单干解决问题。L3 Support 通常须要定制解决方案,对系统进行更深刻的调试和修复,以确保客户的问题失去解决。 总之,L1、L2 和 L3 Support 是企业管理软件 Support 畛域中不同级别的技术支持,其次要工作是帮忙客户解决软件问题并确保客户满意度。 笔者目前在 Spartacus L3 Support 团队工作。 在企业管理软件 Support 畛域,ORT (SLA) 是指服务水平协定(Service Level Agreement),也称为经营级别协定(Operational Level Agreement),是一份协定,其中蕴含了服务提供商和客户之间的责任、任务和服务保障的条款。 ORT (SLA) 通常规定了服务提供商须要提供的服务级别,例如客户反对响应工夫、零碎可用性、故障修复工夫等,以及因而须要承当的责任和惩办。它是为了确保客户可能取得高质量的服务而制订的。 ORT (SLA) 能够帮忙服务提供商和客户建设清晰的沟通渠道,并确保单方都理解服务的冀望程度。它也能够作为一种掂量服务提供商绩效的指标,因为客户能够通过查看服务提供商是否履行其承诺来评估其体现。 总之,ORT (SLA) 是企业管理软件 Support 畛域中一份重要的协定,它规定了服务提供商须要提供的服务水平和客户的冀望,帮忙确保客户取得高质量的服务并掂量服务提供商的绩效。

April 16, 2023 · 1 min · jiezi

关于sap:让-Spartacus-服务器端渲染引入-long-API-调用超时机制的两种配置方法

两种办法,应用 config.backend.timeout = { 浏览器:...,服务器:...} ,或者能够更具体地配置,即基于 Request 粒度,通过将 HTTP_TIMEOUT_CONFIG HttpContextToken 传递给 Angular HttpClient 的办法来针对每个具体申请进行配置。 在SSR(Node.js)中,超时解决耗时过长的内部http调用是一项尤为重要的改良,因为在Node.js中,与浏览器不同,Node.js 运行环境下并没有默认的内部http调用超时工夫(浏览器通常会在长时间后超时长时间的http调用,例如1分钟)。 这种可配置的超时逻辑当初曾经在Spartacus中的 Angular Http拦截器层面上实现。也就是说,在 Spartacus SSR long API timeout 性能公布之前,客户能够本人实现相似的逻辑,例如通过本人实现 Angular Http 拦截器来实现。 配置代码: provideConfig({ backend: { timeout: { server: 3_000, browser: 3_000 } }})如何应用代理服务器制作后盾 API 响应的延时成果首先Install http-proxy tool:npm install -g http-proxy 而后开发一个 http-proxy.js server file const httpProxy = require('http-proxy');const http = require('http');const proxy = httpProxy.createProxyServer({ secure: false });const ENDPOINT_FOR_DELAY = 'consenttemplates';const BACKEND_BASE_URL = 'https://jerry:9002';const DELAY = 3000; // 手动硬编码的延时/** custom predicate, whether we should delay a request */const shouldDelay = (req) => { // Note: In browser there are 2 requests: preflight (OPTIONS) and actual request (GET). const result = req.url.includes(ENDPOINT_FOR_DELAY); result && console.log({ delay: DELAY, url: req.url, method: req.method }); return result;};http .createServer(function (req, res) { const forwardRequest = () => proxy.web(req, res, { target: BACKEND_BASE_URL }); const delay = shouldDelay(req) ? DELAY : 0; setTimeout(forwardRequest, delay); }) .listen(9002);而后启动这个代理服务器:node http-proxy.js ...

April 16, 2023 · 1 min · jiezi

关于sap:关于在执行-SAP-ERP-MM-模块-Post-Goods-Issue-时修改-Material-Cost-的讨论

我的常识星球里有敌人向我发问: Material PGI(601 movement) will calculate the material cost from material master data. My question is: is there any ways to change the material cost when PGI?(Except enhancement)在SAP ERP MM模块中,Material Post Goods Issue (PGI)是指从库存中挪动物料的过程。这通常是指从公司的仓库或物流核心向客户或生产线发送产品或原材料。在这个过程中,物料的数量会被从库存中扣除,因而也称为“物料扣减”。 通常,在客户下订单后,销售订单的交货日期就会被确认,并且物料筹备好被运输。在执行PGI之前,必须确保物料准确无误,并且合乎订单中指定的数量和质量标准。 在SAP ERP零碎中,执行PGI是通过在销售订单中输出物料发货量和相干的运输信息来实现的。一旦PGI实现,零碎会自动更新库存和销售订单状态,并生成发货告诉和运输文件。这些文档将被用于跟踪和监控物料的运输和交付过程。 在SAP ERP中,Movement Type是一个标识物料挪动的三位数字代码。物料的挪动能够是外部的,例如从一个库存地位到另一个库存地位,也能够是内部的,例如向客户发货。 601 Movement Type是指从库存中发货的规范挪动类型。这意味着在执行Material PGI时,SAP零碎会主动将库存中的物料数量从发货库存地位扣减,并将该数量转移至老本核心/销售老本核心。此外,SAP零碎还会主动将相干文档(如发货告诉和运输文件)与该挪动类型相关联,以便在跟踪和监控物料的挪动和交付过程中应用。 因而,能够说Material PGI和601 Movement Type是相关联的概念,它们独特指代了库存物料的发货过程。在SAP ERP中,有许多不同的Movement Type可用于标识不同类型的物料挪动。这些Movement Type是可配置的,并能够依据特定业务需要进行自定义设置。 在执行PGI的过程中,通常不倡议批改物料老本(Material Cost),因为这可能会导致财务数据的不统一。然而,在某些特定状况下,可能须要批改物料老本。上面是一些可能用于批改物料老本的办法: 手动更改物料老本能够通过以下步骤手动更改物料老本: 进入MM02(更改物料主数据的屏幕)抉择“Accounting 1”选项卡更改老本字段(如规范老本)的值保留更改这种办法非常简单,但须要手动输出数据,并且不适用于自动化场景。 通过MR21来更改物料老本MR21是用于更改物料老本的规范SAP事务。它能够依据不同的条件(如物料和老本类型)更改物料老本。 应用BADI来批改物料老本BADI(Business Add-Ins)是一种用于在SAP ERP零碎中自定义业务逻辑的技术。能够应用BADI来自动化批改物料老本。以下是一个示例BADI类,可用于在执行PGI时主动更改物料老本: CLASS ZCL_PGI_MATERIAL_COST_CHANGE IMPLEMENTATION. METHOD IF_EX_MATERIAL_MASTER~POST_GOODS_ISSUE. DATA: LV_MATERIAL TYPE MARA-MATNR. LV_MATERIAL = I_BSEG-MATNR. "依据你的业务逻辑,计算出新的老本 DATA: LV_NEW_COST TYPE MBEW-STPRS. LV_NEW_COST = <计算出的新老本>. "更新物料老本 UPDATE MBEW SET STPRS = LV_NEW_COST WHERE MATNR = LV_MATERIAL. ENDMETHOD.ENDCLASS.请留神,这只是一个示例代码,具体的实现可能须要依据特定的业务需要进行自定义。此外,在应用BADI时,还须要思考到相干的平安和稳定性问题。 ...

April 8, 2023 · 1 min · jiezi

关于sap:SAP-ABAP-释放-TR-遇到错误消息-ended-with-return-code-8-的含义和处理办法

我的常识星球里有敌人发问: se09开释申请号报错:ended with return code :===>8<===这个问题该如何解决? 这是 ABAP Transport Request 开释时的一个 Generic 谬误音讯。相熟 ABAP 编程的敌人都晓得,很多 ABAP 关键字执行后,通过零碎变量 sy-subrc 的值来判断是否执行胜利,0 代表胜利,4 或者 8 代表失败。 这个零碎变量在笔者这篇 ABAP 教程里有具体介绍: ABAP 编程语言中的零碎字段(System Fields) ABAP 传输申请的开释也不例外。ABAP Transport Request(ABAP传输申请)是SAP零碎中用于将开发人员在开发零碎中创立和批改的ABAP对象(例如程序、表、视图、函数模块等)从一个零碎传输到另一个零碎的一种机制。 ABAP Transport Request的次要作用是帮忙开发人员将他们在开发零碎中创立和批改的ABAP对象传输到测试零碎和生产零碎中,以便在这些零碎中进行测试和应用。传输申请容许开发人员将多个相干的ABAP对象打包到一个独自的申请中,并将这些对象一起传输到另一个零碎中。 当传输申请从 A 零碎传输到 B 零碎后,申请内蕴含的 ABAP 对象(比方 ABAP 类,ABAP 数据字典元素,ABAP 报表等)须要被激活才可能失常应用。如果激活过程中出错,就会遇到 ended with return code x 的谬误音讯,此时 x 是一个大于零的整数。 引起传输申请在 B 零碎激活出错后的最常见起因,就是传输申请的依赖关系没有正确保护好。 比方申请 A 和 B,A 申请里蕴含了一个 ABAP class a,其代码应用了一张数据库表 b,而 b 被蕴含在传输申请 B 内。在理论开发过程中,申请 A 和 B 很可能是不同的开发团队负责。 ...

April 8, 2023 · 1 min · jiezi

关于sap:SAP-CRM-WebClient-UI-支持的一些-url-参数

上面是 SAP CRM webclient ui 的一个链接: https://host:44356/sap(bD1lbiZjPTAwMSZkPW1pbg==)/bc/bsp/sap/crm_ui_start/default.htm 其中 sap前面括号里蕴含的 bD1lbiZjPTAwMSZkPW1pbg== 是什么意思? 括号中的字符串 bD1lbiZjPTAwMSZkPW1pbg== 是一个BASE64编码后的字符串,其中蕴含了URL的参数信息。具体来说,这个字符串是由以下内容编码而来: bD1lbiZjPTAwMSZkPW1pbg== 解码后的字符串是: l=en&c=001&d=min这个字符串中的每个参数都示意了SAP CRM webclient ui中的一些设置信息,如下: l=en:示意界面语言为英语。c=001:示意CRM组件的ID号,这里的001代表了特定的组件,不同的组件会有不同的ID号。d=min:示意CRM webclient ui的显示模式,这里的min示意“minimal”,即最小化显示模式。因而,括号中的字符串实际上是用于传递参数信息的,让CRM webclient ui可能正确地显示并设置界面。 SAP CRM webclient ui中的参数d除了能够设置为min,还能够设置为其余的值,具体取值如下: d=def:示意默认的显示模式。d=nomenu:示意暗藏菜单栏。d=nosearch:示意暗藏搜寻框。d=nocancel:示意暗藏勾销按钮。d=nobrowser:示意暗藏“浏览器”按钮。d=nothtml:示意以纯文本形式显示。除了以上列举的参数取值之外,也能够依据具体需要进行自定义。在SAP CRM webclient ui中,通过在URL中增加参数的形式,能够灵便地管制显示和设置界面,进步用户的应用体验。 SAP CRM WebClient UI 除了下面介绍的 c,l 和 d 三个参数外,还反对哪些参数? 除了下面介绍的 c、l 和 d 三个参数之外,SAP CRM WebClient UI还反对以下参数: app: 指定SAP CRM WebClient应用程序的名称。例如,app=BTADMINH示意进入SAP CRM WebClient后盾管理应用程序。session=SID: 指定SAP CRM WebClient会话的ID。sap-client=client: 指定SAP零碎的客户端号。sap-language=language: 指定应用的语言。sap-theme=theme: 指定应用的主题。sap-locale=locale: 指定应用的本地化信息。sap-system=system: 指定应用的SAP零碎名称。sap-client-cert=true: 启用客户端证书验证。sap-client-cert-issuer: 指定客户端证书的颁发机构。sap-client-cert-subject: 指定客户端证书的主题。sap-keep-alive=true: 启用长连贯,放弃与SAP零碎的连贯。sap-secure=true: 启用SSL平安连贯。sap-icm-https-only=true: 强制应用HTTPS协定。sap-exit-url=url: 指定用户退出SAP CRM WebClient后要跳转的URL地址。这些参数能够通过在URL中增加相应的键值对来设置。应用这些参数,用户能够依据本人的需要,灵便地配置SAP CRM WebClient UI。 ...

April 8, 2023 · 1 min · jiezi

关于sap:SAP-ABAP-Gateway-系统里-HTTP-请求响应头部字段-DataServiceVersion-的可能取值范围

SAP ABAP Gateway 零碎里 HTTP 申请的响应头部字段汇合里,DataServiceVersion 这个字段的作用是什么,蕴含哪些可能的值? 如下图第 178 行代码所示。 在 SAP ABAP Gateway 零碎中,DataServiceVersion 是 HTTP 响应头部字段汇合中的一个字段,用于指定 OData 服务的版本信息。 具体来说,DataServiceVersion 字段的作用是通知客户端以后 OData 服务所遵循的版本标准,以便客户端可能正确地解析和解决 OData 服务返回的数据。如果客户端不反对 OData 服务所指定的版本标准,则客户端能够抉择相应地调整其行为或向用户收回正告。 DataServiceVersion 字段的可能取值如下: "1.0": 示意服务遵循 OData 1.0 版本标准。"2.0": 示意服务遵循 OData 2.0 版本标准。"3.0": 示意服务遵循 OData 3.0 版本标准。"4.0": 示意服务遵循 OData 4.0 版本标准。 通常状况下,DataServiceVersion 字段的值应该与服务所实现的 OData 版本相匹配。如果服务反对多个版本的 OData 标准,则能够通过应用 Accept 头部字段来指定客户端冀望的版本标准。 截至 2021年9月,OData 协定的最新版本号为 OData 4.01。OData 4.01 于2019年6月公布,是 OData 4.0 的修订版,包含一些新性能、性能优化和标准的改良,同时修复了一些破绽和问题。 在 SAP ABAP Gateway 零碎中,cache handshake 是一种用于治理缓存的机制。当客户端向 Gateway 发送 OData 申请时,如果 Gateway 发现所申请的资源曾经被缓存,它会返回一个非凡的响应头部,其中蕴含无关缓存的信息。客户端能够应用这些信息来判断是否应用缓存数据,以及何时须要更新缓存。 ...

April 8, 2023 · 1 min · jiezi

关于sap:SAP-ABAP-中ifhttpextension-接口的flowrc-字段含义

咱们在 SAP ABAP Gateway 零碎的框架实现代码,/iwfnd/cl_sodata_http_handler 的 handle_request 办法里,能看到代码第 55 行对 if_http_extension 这个接口的属性字段 flow_rc 进行赋值。 在 SAP ABAP 中,if_http_extension 接口是用于解决 HTTP 申请和响应的标准接口。其中,flow_rc 是一个接口办法的参数,其含意是 HTTP 申请/响应的状态代码。 HTTP 状态代码是一个 3 位数字,用于示意 HTTP 申请的处理结果。常见的状态代码包含 200(示意胜利)、404(示意未找到申请的资源)、500(示意服务器外部谬误)等等。 在 if_http_extension 接口中,flow_rc 参数能够用于设置 HTTP 响应的状态代码,以便告诉客户端申请的处理结果。同时,该参数也能够用于读取客户端发送的 HTTP 申请的状态代码,以便在解决申请时依据申请的处理结果进行相应的操作。 总之,flow_rc 参数是 if_http_extension 接口中十分重要的一个参数,它与 HTTP 申请/响应的状态代码严密相干,能够帮忙开发者更好地解决 HTTP 申请和响应。 sap abap 里有一个接口 if_http_extension, 这个接口有一个字段叫做 lifetime_rc, 其含意是什么? 在 SAP ABAP 中,if_http_extension 接口是用于解决 HTTP 申请和响应的标准接口。其中,lifetime_rc 是一个接口办法的参数,其含意是 HTTP 会话(Session)的状态代码。 HTTP 会话是指客户端与服务器之间的一段持续时间,客户端在该会话期间能够发送多个申请,而服务器会为每个申请提供相应的响应。在 HTTP 会话中,lifetime_rc 参数能够用于设置会话的状态代码,以便告诉客户端会话的状态,例如会话过期、会话终止等等。 ...

April 8, 2023 · 1 min · jiezi

关于sap:SAP-ABAP-报表几个事件的先后执行顺序和作用

ABAP 报表源代码: REPORT zappointment_dis_attachment.PARAMETERS: desc TYPE crmd_orderadm_h-description OBLIGATORY DEFAULT 'Jerry 2015-07-20 13:17PM'.START-OF-SELECTION. WRITE:/ 'start of selection'.AT SELECTION-SCREEN. WRITE:/ 'at selection screen'.at SELECTION-SCREEN OUTPUT. WRITE:/ 'at selection output'.F8 执行后,首先触发的是 AT SELECTION-SCREEN OUTPUT 持续 F8,看到 parameter 窗口: 再次执行,触发 AT SELECTION-SCREEN 再次触发,执行 START-OF-SELECTION: 最初看到 list 输入: 点 F3 回退,触发 at SELECTION-SCREEN OUTPUT: 再次看到 parameter 界面: 在 ABAP 报表中,AT SELECTION-SCREEN OUTPUT 事件处理程序用于在抉择屏幕被显示后对屏幕进行自定义操作。它在抉择屏幕被显示后被激活,并容许你对抉择屏幕的布局、外观和其余属性进行调整。 以下是 AT SELECTION-SCREEN OUTPUT 事件处理程序的一些常见用处: 调整屏幕布局:你能够应用 AT SELECTION-SCREEN OUTPUT 事件处理程序来调整屏幕布局,使其更合乎用户需要。例如,你能够重新排列屏幕上的字段,扭转它们的大小和地位,或者更改它们的字体和色彩。设置屏幕默认值:你能够应用 AT SELECTION-SCREEN OUTPUT 事件处理程序来设置屏幕字段的默认值,以便用户更容易地填写屏幕。例如,你能够将某个字段的默认值设置为上个月的日期,或者将另一个字段的默认值设置为以后用户的 ID。显示帮忙信息:你能够应用 AT SELECTION-SCREEN OUTPUT 事件处理程序来在屏幕上显示帮忙信息,以便用户更好地了解屏幕上的各个字段。例如,你能够在屏幕上增加一个“帮忙”按钮,当用户点击按钮时,弹出一个帮忙文档或提示框。增加自定义控件:你能够应用 AT SELECTION-SCREEN OUTPUT 事件处理程序来增加自定义控件,以便用户更不便地应用屏幕。例如,你能够在屏幕上增加一个下拉框或日期选择器,以便用户更容易地抉择屏幕上的值。

April 6, 2023 · 1 min · jiezi

关于sap:Spartacus-40-升级到-50-后-checkout-library-的设计变化

在 Spartacus 4.0 中,通过从原始 storefront 库中提取 checkout 性能,创立了一个新的 checkout library 实现。 然而,这个新的库只有一个蕴含所有结帐流程的入口点,即便它们未被应用(例如scheduled replenishment flow)。 然而,在 Spartacus 5.0 中,checkout 库已进一步拆散为不同的业务逻辑性能,目标是使构建出的 Application Bundle 尺寸更小。 除了创立不同的入口点以减小 Application bundle 大小之外,NgRx 依赖项已大部分被删除(除了一些在事件侦听器中隔离的 NgRx 操作),这是通过将它们替换为 Commands and Queries 来实现的。 从 NgRx 转换为 Commands and Queries 的益处如下: 所有性能都在类中,因而更容易扩大。这一点与 NgRx 不同,在 NgRx 中,咱们如果没有破费精力去拆除 Spartacus 中深度嵌套的 NgRx 模块,就无奈真正扩大 reducer 或 Effect.命令可能以更具 reactive 的个性去构建,并将执行后果作为同一办法调用的一部分返回。和命令相似,监听loading、error、数据状态的变动都更简洁,只须要调用一个办法,查问一次就能够失去所有后果。dismantling module是一种将软件系统中的功能模块合成为更小、更独立的局部的过程。在这个过程中,大型功能模块会被合成为更小的、更具体的子模块,每个子模块都有本人的职责和性能。 dismantling module有助于改善软件系统的可维护性、可重用性和可测试性。通过将大型功能模块拆分成更小、更独立的局部,能够使代码更易于了解、批改和保护。此外,子模块的复用性也失去了进步,因为它们能够被其余模块所应用。 在软件开发中,dismantling module通常是一个迭代过程,能够通过屡次合成和重组模块来逐渐改善软件系统的构造和品质。在这个过程中,开发人员须要认真评估每个模块的职责和性能,并思考如何将其拆分成更小、更具体的子模块。最终,通过一直的改良和优化,能够构建出高效、可保护和可扩大的软件系统。

April 6, 2023 · 1 min · jiezi

关于sap:SAP-Commerce-Cloud-里的-jsapps-和-jsappsssr-容器

SAP Commerce Cloud Version 2,简称 SAP CCV2, 下面有两种 container,jsapps 和 jsapps-ssr, 二者区别是什么? SAP Commerce Cloud Version 2(简称SAP CCV2)是SAP提供的一款云端电商解决方案。在SAP CCV2中,"jsapps"和"jsapps-ssr"都是用于部署Web应用程序的容器,但它们之间存在一些区别。 "jsapps"容器是用于部署客户端(即浏览器端)渲染的Web应用程序的容器,即 nginx 和 csr. 在这种状况下,Web应用程序的所有代码和资源都由客户端的Web浏览器下载和执行。这种模式的长处是客户端渲染速度快、交互性强。它实用于一些简略的、对性能要求不高的电商场景。 "jsapps-ssr"容器则是用于部署服务器端渲染的Web应用程序的容器。在这种状况下,Web应用程序的初始渲染是由服务器端实现的,而后将HTML代码发送到客户端浏览器进行显示。这种模式的长处是能够进步Web应用程序的性能和SEO体现,尤其是在大型电商场景下。 总之,如果你的SAP Commerce Cloud利用须要疾速、简略的前端利用,那么能够抉择应用"jsapps"容器。如果你须要更好的性能和SEO体现,尤其是在大型电商场景下,那么你应该抉择"jsapps-ssr"容器。 "jsapps-ssr"容器中通常会应用PM2作为Node.js应用程序的过程管理器。PM2是一个开源的Node.js过程管理器,它能够让您轻松地治理和监控Node.js应用程序的运行状态。 在SAP Commerce Cloud的"jsapps-ssr"容器中,PM2通常会主动装置和配置。您能够应用"pm2"命令来启动、进行、重启和治理Node.js应用程序的运行状态。例如,要启动一个名为 "myapp" 的Node.js应用程序,能够运行以下命令: pm2 start myapp.js这将启动一个名为 "myapp" 的过程,并将其作为后盾服务在运行。您能够应用"pm2 status"命令来查看所有运行的过程的状态,并应用"pm2 logs"命令来查看过程的日志输入。 总之,"jsapps-ssr"容器通常会应用PM2作为Node.js应用程序的过程管理器,您能够应用"pm2"命令来治理和监控应用程序的运行状态。

April 4, 2023 · 1 min · jiezi

关于sap:将-SAP-ABAP-内表内容本地导出成-Excel-文件试读版

本教程有学习者向我发问,询问如何将 ABAP 某某函数的某某输入参数的值,导出老本地 Excel 文件。 比方 BAPI BAPI_XBP_JOB_SPOOLLIST_READ_20 的名为 SPOOL_LIST 这个参数。 本教程之前花了两篇文章的篇幅,介绍了 ABAP 里的 Excel 文件读写操作: 42. 用 ABAP 新建本地 Excel 文件并写入数据SAP ABAP 解决 Excel 的规范函数 TEXT_CONVERT_XLS_TO_SAP 介绍本文再介绍一种将 ABAP 内表内容导出老本地 Excel 文件的简便做法,须要通过过 csv 文件作为直达桥梁。 假如咱们 ABAP 内表的构造如下,蕴含三列,别离存储一本图书的书名,作者和销量, 字段名称为 name,author 和 sells: 接着我在内表变量 lt_books 里,插入三本书的数据。 下一步咱们就须要调用 ABAP 函数 GUI_DOWNLOAD 把这个内表的内容,下载到本地,以本地文件的形式保留。 在本教程之前的文章里,咱们学习了本地文件上传到 ABAP 服务器的办法: 16. 用 ABAP 读取本地文本文件内容上传场景里,应用的 ABAP 函数是 GUI_UPLOAD. 本文咱们来学习与这个上传函数绝对于的下载函数,GUI_DOWNLOAD 的用法。 最初导出的成果: 具体解说参考笔者这篇文章。

March 30, 2023 · 1 min · jiezi

关于sap:SAP-ABAP-MIME-Repository-和-API-介绍

本教程之前介绍过在 SAP ABAP 零碎创立数据库表的步骤: 14. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)15. 如何创立最简略的 ABAP 数据库表,以及编码从数据库表中读取数据 (下)有个学习者学完了这两篇之后,征询我一个问题: 如果我有一些 Excel,PDF,MP4 文件,能够把它们也依照这种形式,存储到 ABAP 数据库表里吗?答案是技术上能够,然而不举荐。理由如下: ABAP 数据库表通常用于存储结构化数据,例如订单或客户信息。传统的关系型数据库,原本就不是为了存储文件这种非结构化数据而设计的。出于数据库的大小限度和性能问题思考。如果将大型多媒体文件存储在传统数据库里,可能会导致数据库表的规模变得十分大,从而引发性能问题,例如升高查问速度。数据库备份和复原:在备份和复原数据库时,大型多媒体文件可能会减少备份和复原工夫。此外,如果须要复原一个蕴含大型多媒体文件的表,可能须要更长的工夫。数据查看艰难。文件存储在数据库之后,要查看其内容的惟一办法,就是编写程序或者应用专门工具,将文件从数据库表读取到本地而后查看。数据库不反对 Excel,PDF, MP4 等文件的预览。正因为应用传统的数据库来存储文件的内容有以上这些缺点,SAP ABAP 引入了一个叫做 ABAP MIME Repository 的概念,这是一个存储仓库,专门用来存储 MIME 类型的文件。 MIME 的全称是 Multipurpose Internet Mail Extensions,这是一种规范,用来示意文档、文件或字节流的性质和格局。 咱们常见的 MIME 类型有以下这些: text/plaintext/htmlimage/jpegimage/pngaudio/mpegaudio/oggaudio/*video/mp4application/*application/jsonapplication/javascriptapplication/ecmascriptapplication/octet-streamSAP ABAP 里寄存这些 MIME 类型文件的场合,就叫做 ABAP MIME Repository. 上面是 ABAP MIME API 具体介绍。

March 30, 2023 · 1 min · jiezi

关于sap:SAP-UI5-表格-Click-to-Select-文本的来源

如下图所示,文本起源:sap/ui/table 下的 messagebundle_en_US.properties 文件内。 SAP UI5是一款用于开发企业级Web应用程序的框架,messagebundle_en_US.properties 是SAP UI5中用于国际化的资源文件之一。 messagebundle_en_US.properties文件中蕴含了SAP UI5应用程序中用到的所有文本信息的键值对,其中键是一个字符串,代表应用程序中应用的文本标识符,值则是该文本标识符所对应的文本内容,通常是英文。在SAP UI5应用程序中,能够通过指定文本标识符来获取该文本标识符所对应的文本内容,从而实现应用程序的国际化反对。为了反对不同的语言版本,开发人员须要为每种语言编写一个对应的资源文件,例如messagebundle_zh_CN.properties文件用于中文(简体)语言环境。 须要留神的是,在SAP UI5应用程序中,通常会应用多个不同的资源文件来实现不同的性能和页面,每个资源文件都会蕴含与之相干的文本信息。开发人员须要依据应用程序中应用到的不同文本信息来抉择适合的资源文件,从而实现应用程序的国际化反对。 用什么工具能够生成 messagebundle_en_US.properties 文件? messagebundle_en_US.properties文件通常是由开发人员手动创立和保护的。在创立messagebundle_en_US.properties文件时,能够应用任何文本编辑器,如记事本、Sublime Text、Notepad++等。开发人员能够依照Java属性文件的格局编写文本信息,即应用键值对的形式将应用程序中应用的文本标识符与文本内容进行映射。例如: welcomeMessage=Welcome to my application!submitButton=SubmitcancelButton=Cancel以上是messagebundle_en_US.properties文件的一个示例,其中蕴含了三个键值对,别离对应应用程序中的三个文本标识符及其对应的文本内容。 另外,有些集成开发环境(IDE)或SAP UI5应用程序的开发工具,如SAP Web IDE、Eclipse等,也提供了一些不便的工具和插件来辅助开发人员创立和治理国际化资源文件。例如,在SAP Web IDE中,开发人员能够应用i18n资源编辑器来创立和编辑多语言资源文件,包含messagebundle_en_US.properties文件。

March 26, 2023 · 1 min · jiezi

关于sap:澄清一些对-SAP-UI5-响应式表格-sapmTable-的常见理解误区试读版

本教程有个学习者和我探讨对于 sap.m.Table 这个控件的响应式个性(responsiveness). 所谓响应式设计(Responsive Design),是指一种前端开发畛域的设计办法,它的目标是让网站或应用程序,可能主动适应不同的设施尺寸和屏幕分辨率,从而提供更好的用户体验。 那么该如何了解 可能主动适应不同的设施尺寸和屏幕分辨率 这句话的具体含意?这也是该学习者向我提出,心愿我具体论述的问题。 响应式设计通过应用 CSS 媒体查问技术,依据不同的设施屏幕尺寸和分辨率,主动调整网站或应用程序的布局、字体大小、图片尺寸等元素的大小和地位,以适应不同的设施,包含台式电脑、笔记本电脑、平板电脑和智能手机等。 对于 CSS 媒体查问技术,即 Media Query,笔者在本教程这篇文章里介绍过: SAP UI5 利用开发教程之一百三十五 - SAP UI5 利用的屏幕尺寸检测工作原理深刻分析媒体查问技术基于 window.matchMedia(), 这个函数由浏览器提供原生实现,用于查看以后浏览器是否匹配指定的媒体查问条件。该函数接管一个字符串参数作为输出参数,该参数示意要查看的媒体查问条件。 媒体查问条件通常用于在 CSS 中定义响应式布局,依据设施的屏幕宽度或其余个性来利用不同的款式。同时,window.matchMedia() 函数也能够在 JavaScript 代码中应用,用于依据设施属性或窗口大小等条件执行不同的操作。 window.matchMedia() 函数返回一个 MediaQueryList 对象,该对象蕴含一个 matches 属性,批示以后浏览器是否匹配指定的媒体查问条件。如果匹配,则 matches 属性的值为true;否则为 false. 本教程后续咱们也会再次复习这个技术。 SAP UI5 弱小之处就在于它在命名空间 sap.m 之下提供的很多控件,自身就曾经反对响应式设计了。这意味着 SAP UI5 开发人员,不须要再去操心不同屏幕大小的设施上运行 SAP UI5 利用的适配性问题。应用 sap.m 命名空间下的控件,实践上咱们只须要在桌面浏览器上开发测试,在其余设施上的自适应体现行为,曾经由 SAP UI5 框架控件的实现人员,帮咱们包办了。 回到这位敌人的问题: 我用 sap.m.Table 控件,绘制了一个表格,蕴含了几个列。我发现这个表格每一列的宽度,的确随着屏幕宽度的变动而变动。 然而我在 Chrome 开发者工具里通过设施模拟器测试发现,就算屏幕宽度变得再小,sap.m.Table 也总是将所有表格列全副从左到右顺次显示进去,如下图所示,在 iPhone 12 Pro 设施上,这 6 列仍然被全副显示了进去,不少列的题目文本和值,都呈现了显示的单词被截断成两行显示的情景,很影响应用体验。 ...

March 26, 2023 · 1 min · jiezi

关于sap:SAP-UI5-里响应式表格的-minScreenWidth-属性讲解

响应式网页设计 (Responsible Web Designer) 的最大挑战之一是出现表格数据。 蕴含很多列的大表格基本不适宜较小的屏幕,并且没有简略的办法应用 CSS 和 Media Query 从新格式化表格内容,以取得可承受的视觉显示。 为了解决这个问题,SAP UI5 框架提供了基于列的解决方案(列暗藏)和基于行的解决方案(弹出行为)以响应式显示表格,并且这两个选项同时实用。这听起来可能相当简单,让咱们通过一个具体例子来理解: 在挪动设施上,咱们晓得咱们没有足够的空间来显示所有这些列,所以咱们须要问问本人哪些列最重要。 比方说: 产品和价格是最重要的。 所以他们不应该被暗藏。供应商、尺寸和分量不是特地重要,因而咱们只会在弹出区域显示它们。因而这个表格在手机上显示如下: Responsive Column Control咱们能够应用 sap.m.Column 的 API 来管制响应式表格设计。 此控件提供两个属性来解决列暗藏和弹出行为。 minScreenWidth:此值定义列可见性的断点。 例如:Apple iPhone 5 设施具备 568px x 320px 分辨率(dip/设施宽度),因而如果咱们调配 400px(或基于 16px 的 25em),则此列对于纵向(portrait)模式(宽度 320px)将不可见,但会在横向模式下可见(宽度 568px)。除了以 px 或 em 为单位指定之外,您还能够调配预约义的 sap.m.ScreenSize 类型之一,例如平板电脑(600 像素)或桌面电脑(1024 像素)。 此属性的默认值为空字符串,这意味着此列将始终可见。 demandPopin:依据你的minScreenWidth,能够在不同的屏幕尺寸下暗藏该列。 将此属性设置为 true 会在弹出区域中显示此列而不是将其暗藏。 默认值为 false.

March 24, 2023 · 1 min · jiezi

关于sap:SAP-Fiori-设计准则里的-Responsive-表格不太适合的场景介绍

sap.m.Table 是 SAP Fiori 利用默认的响应式表格控件。在下列场合中,SAP 不举荐大家应用 Responsive Table. 次要用例是从极少数我的项目中抉择一项,而不查看其余详细信息。 在这种状况下,抉择框或组合框可能更适合。次要用例是从多个我的项目中抉择一个我的项目,能够只查看每个我的项目的一些细节。 在这种状况下,列表(List) 可能更适合。 留神列表项的布局以确保其外观令人愉悦。单元格级别和单元格之间的空间关系比行我的项目更重要。在这种状况下,请应用剖析表或网格表。示例包含电子表格剖析和瀑布图。 请留神,剖析表和网格表都不是齐全响应的。 两者都仅实用于台式机和平板电脑,因而利用开发人员,须要采取自适应办法,为智能手机提供额定的 UI。 用户心愿该表蕴含超过 1,000 行左右。在这种规模的数据量下,尝试改用剖析表或网格表; 它们更易于解决,性能更好,并且针对解决大规模进行了优化。行我的项目间的比拟是一个次要用例。在这种状况下,剖析表或网格表可能更适合,因为每个单元格只蕴含一个数据点。 相比之下,响应式表格在订单项中提供了更大的灵活性,包含可能为每个单元格增加更少数据点和弹出性能——但这也是一柄双刃剑,使比拟变得更加艰难。数据须要以分层形式构建。 在这种状况下,树表可能更适合。尽管剖析表能够有多个分组档次,然而当多个档次的节点都蕴含子节点时,就不那么灵便了。须要对大量数据进行概览。在这种状况下,请应用图表。只是出于布局起因须要它。 在这种状况下,请改用程度布局或垂直布局等布局容器。须要只读或可编辑的字段值对。 在这种状况下,请改用 Form 控件。 响应表未针对相似表单的输出导航进行优化。

March 24, 2023 · 1 min · jiezi

关于sap:sapmTable-和-sapuitableTable-两个控件的功能对比

SAPUI5和OpenUI5都提供了两种齐全不同的数据表控件:在Fiori styleguide中称为“网格表”(sap.ui.table.Table)和“响应式表”(sap.m.Table)。 顾名思义,前者是响应式的,更适宜挪动应用程序,而另一种则更面向桌面。 留神对于这两个控件的具体应用差别,请查问我的 一套适宜 SAP UI5 开发人员循序渐进的学习教程里的对应文章,近期会发表。 简而言之,对于较大的数据集(> 1000 行)倡议应用 ui 表 (sap.ui.table.Table),而在所有其余状况下应用响应式 m 表 (sap.m.Table) - 后者看起来更灵便简洁。 从技术上讲,这两个表格控件截然不同。 ui表是一个典型的有行和列的数据表,而m表实际上是一个列表(基于sap.m.ListBase),每个列表项被拆分成列。 API 也齐全不同。 SAP UI5 利用无奈从一张表的设计疾速切换到另一张表,因而如果我的项目施行过程中发现自己须要另一张表的性能——基本上不得不从新编写所有代码。 咱们冀望从数据表中取得的所有不便的性能,如题目排序、列过滤器、列大小调整等,仅在 ui-table 中可用。 另一方面,ui-table 没有列宽优化器,所以基本上所有的列要么太宽要么太窄。 反过来,此性能仅在 m 表中可用, 这意味着后者不能手动调整列宽。 ui-table 应用虚构滚动:当数据从一行跳到另一行时,网格放弃不变。 这不适用于单元格中的图像,如果多行具备类似数据,这看起来也很奇怪。 另一方面,ui-table 能够主动调整它的高度以适宜容器,而 m-table 不能。 当波及到列、单元格或行分组等更高级的性能时,事件就变得复杂了。 出于某种原因,行分组只在 m 表中失去正确反对,而在 ui 表中则不反对。 合并单元格也是如此。 另一方面,分组列仅实用于 ui 表(只管十分无限)。 列总计在任何状况下都是一个问题:尽管 m-table 基本不反对它们,但 ui-table 至多有粘底行,您能够在其中应用脚本搁置总计。些固定行会受到所有内置排序和过滤性能的影响,因而应用 for totals 的确不是一件容易的事。 然而,两个表格都有页脚栏,所以如果您只须要一个总值,将它放在那里是相当容易的。 留神对于这两个控件的具体应用差别,请查问我的 一套适宜 SAP UI5 开发人员循序渐进的学习教程里的对应文章,近期会发表。

March 24, 2023 · 1 min · jiezi

关于sap:SAP-后端开发的初学者除了掌握-ABAP-之外还需要学习什么知识

有敌人征询: 我是一名新从事 sap 后端的小白人员,想请问您从事后端开发除了要熟练掌握 ABAP 以外,还须要具备什么常识作根底呢?我的答复: 你说的后端开发,我能了解成 SAP 后端开发,也就是 SAP ABAP 后端开发,对吗? 你具体要学习的常识,取决于你具体要做的后盾开发内容。当然 ABAP 是所有以 ABAP 为技术栈的 SAP 产品后盾开发所具备的基础知识。 我本人写过一套面向 ABAP 初学者的开发教程,你能够参考一下。 还有这篇文章:想比拟全面地学习 SAP XXX,能领导下从哪儿开始学习吗? 如果你从事的是 SAP S/4HANA 后盾开发,你可能还要学习把握 CDS view(core data service)的用法,这是 S/4HANA 后盾重要的建模形式,同 ABAP 不同。 如果你从事的是 SAP CRM / SRM 产品的后盾开发,那可能还要理解一些 ABAP webdynpro / WebClient UI 的基础知识。 总之,你要学习的常识取决于你具体的工作内容。 另外,我说的这些货色都只是工具,SAP 行业和其余行业比方互联网行业相比,就是它的业务知识绝对稳固和保值。因而做 ABAP 开发的时候切勿只钻到技术细节中去而漠视了这些开发背地的业务需要和业务流程常识。 当你做了一段时间的 SAP 开发后,你可能就会逐步明确,这些编程语言只是工具,如何利用手里把握的技术,开发出适合的应用程序进去,满足客户理论的业务需要,才是最有价值的。

March 24, 2023 · 1 min · jiezi

关于sap:关于-SAP-UI5-MessageProcessor-消息创建的问题

咱们在单步调试 SAP UI5 OData 模型或者 JSON 模型初始化代码时,都会发现 sap.ui.model.Model 结构函数调用了其基类 MessageProcessor 的构造函数,如下图所示: MessageProcessor 是 SAP UI5 对立存储和治理各种类型的 Message 的实现类之一。 以下是在 SAP UI5 里手动创立音讯或扩大框架提供的消息传递性能的一些办法: 能够通过地方 sap.ui.core.message.MessageManager API 手动创立自定义音讯。 对于这些手动创立的音讯,应用程序必须确保适当的音讯生命周期。对于自定义指标格局,能够应用自定义音讯处理器。 本人的音讯处理器要继承类sap.ui.core.message.MessageProcessor。如果应用的后端以非凡形式提供音讯,能够应用本人的sap.ui.core.message.MessageParser 实现。Message Model通过调用 getMessageModel() 办法从音讯管理器中检索音讯模型。能够间接在应用程序中应用它,也能够将它用作参考实现。 能够像应用任何其余模型一样应用音讯模型将聚合绑定到根门路(/),例如列表中的我的项目,并增加过滤器和排序器。 /汇合中的每个我的项目都代表一个 sap.ui.core.message.Message 对象,因而能够绑定到为此类对象指定的所有属性。 MessagePopover 控件用于向用户显示音讯。 示例代码如下: // "Button" required from "sap/m/Button"// "MessagePopover" required from "sap/m/MessagePopover"// "MessagePopoverItem" required from "sap/m/MessagePopoverItem"var oMessagePopoverButton = new Button({ text: "Show MessagePopover", type: "Accept", press: function() { oMP.openBy(this); }});var oMP = new MessagePopover({ items: { path:"message>/", template: new MessagePopoverItem({ description: "{message>description}", type: "{message>type}", title: "{message>message}"}) }});oMP.setModel(sap.ui.getCore().getMessageManager().getMessageModel(),"message");oMessagePopoverButton.placeAt("content");OData V2 MessagesOData V2 音讯要么由 sap.ui.model.odata.ODataMessageParser 主动创立并由 sap.ui.model.odata.v2.ODataModel 解决,要么能够由应用程序手动创立。 ...

March 13, 2023 · 1 min · jiezi

关于sap:ChatGPT-勘误-SAP-UI5-的-sapuibaseObject

ChatGPT 对 SAP UI5 sap.ui.base.Object 作用的解答: 在SAP UI5中,sap.ui.base.Object是所有UI5对象的根底类。该类提供了一个通用的、灵便的根底框架,可用于构建SAP UI5应用程序。该类提供了许多办法和属性,包含但不限于以下内容:getId():获取该对象的惟一ID。getMetadata():获取该对象的元数据,包含对象的名称、属性、办法等信息。addEventDelegate():注册一个或多个事件委托。attachEvent():注册事件处理程序。detachEvent():登记事件处理程序。fireEvent():触发事件。 通过继承sap.ui.base.Object类,其余SAP UI5类能够利用其提供的根底框架和办法,疾速构建SAP UI5应用程序。 这个答复不正确。 从 SAP UI5 官网文档 得悉,sap.ui.base.Object 并没有 ChatGPT 提到的 getId 等办法,不过 getMetadata 办法的确存在。 值得一提的是,sap.ui.model.Model 的父类是 MessageProcessor, 如下图所示: SAP UI5 中的音讯可用于告诉用户无关应用程序的特定状态,并可帮忙用户更正他们的谬误输出。 用于存储音讯的地方 MessageManager 可通过调用 sap.ui.getCore().getMessageManager() 在全局范畴内应用,而用于治理音讯的地方 MessageModel 可通过调用 sap.ui.getCore().getMessageManager().getMessageModel() 取得。 sap.ui.core.message.Message 实例的以下属性是理论我的项目中常常应用到的: Target:形容音讯实用的应用程序局部。 如果指标为空,则音讯实用于整个应用程序。 指标格局取决于应用的音讯处理器。目前,SAPUI5 反对两种类型的指标: (1) 具备控件属性的控件 ID:sap.ui.core.message.ControlMessageProcessor 将这些音讯流传到受影响的控件。 (2) 绑定门路:sap.ui.model.Model 将这些音讯流传到受影响的绑定。 Message Processor:解决应用程序中的音讯并将音讯流传到正确的控件、绑定或其余对象的对象,请参阅 API 参考中的 sap.ui.core.message.ControlMessageProcessor。Type:定义音讯的严重性; 可能的类型有:谬误、正告、信息和胜利,请参阅 API 参考中的 sap.ui.core.MessageType。Message Text:形容问题的理论音讯文本。 此文本显示给用户。Persistent:此属性影响音讯的生命周期。 非长久音讯由框架消息传递生命周期革除,长久音讯必须由应用程序手动删除。

March 13, 2023 · 1 min · jiezi

关于sap:通过-SAP-官方帮助网站自学-SAP-业务知识的一种办法

知乎上有敌人向我征询本文题目的问题,所以我专门写一篇文章。 和本主题相干的历史文章: 想比拟全面地学习 SAP XXX,能领导下从哪儿开始学习吗?英语不好,对 SAP 英文文档有所畏惧,该怎么办?不懂技术有机会进 SAP 吗? 本文以 SAP Business ByDesign 为例,向那些想自学 SAP 产品中业务知识的敌人们,介绍一种通过 SAP 官网帮忙文档来学习的办法。 抉择 SAP Business ByDesign,是因为这是笔者大学毕业后,进入 SAP 成都研究院后负责开发的第一款产品,这款产品也带着我迈进了 ABAP 开发的大门。 SAP Business ByDesign 是一款面向中小型企业的云端 ERP(Enterprise Resource Planning)解决方案。它提供了一套集成的业务管理工具,包含财务、洽购、销售、供应链、客户关系治理(CRM)、人力资源和项目管理等,涵盖了企业在经营过程中所需的所有方面。它的设计思路是以中小型企业的需要为核心,帮忙企业简化业务流程、提高效率和降低成本。 SAP Business ByDesign 采纳云计算模式,用户能够通过互联网随时随地拜访零碎,无需装置任何软件或硬件。这使得企业能够疾速部署零碎,疾速响应市场变动,并可能灵便地调整零碎性能以适应业务需要的变动。 对于 SAP 初学者来说,通过 SAP Business ByDesign 而不是 SAP 旗舰级产品 S/4HANA 的文档来学习业务,上手难度要低一个品位。 关上 SAP 官网帮忙文档首页:https://help.sap.com: 在产品名称里,输出搜寻关键字 SAP Business ByDesign: 只有一条匹配的搜寻后果: 点击上图超链接,在 Additional Information 里,抉择 Business Scenarios Explorer,关上这款业务场景浏览工具: Business Scenario Explorer 是 SAP Business ByDesign 零碎中实现的所有业务场景的一个可视化展示工具。Business Scenario Explorer 具体概述了每个业务场景中的业务流程和流程步骤。 ...

February 23, 2023 · 1 min · jiezi

关于sap:sapuicoreConfiguration-的作用简析

这个类的帮忙文档链接如下,继承自:sap.ui.base.Object 这个类用于收集并存储 SAP UI5 利用以后环境的配置。 Configuration 在创立 sap.ui.core.Core 时初始化一次。 有不同的形式来设置环境配置,列举如下,按优先级升序排列: 零碎定义的默认值服务器范畴的默认值,从 /sap-ui-config.json 读取全局配置对象 window["sap-ui-config"] 的属性bootstrap 标记的 data-sap-ui-config 属性中的配置字符串。bootstrap 标签的各个 data-sap-ui-xyz 属性应用 url parameter此 Configuration 对象中的 Setter(仅针对某些参数)也就是说,DOM 援用的属性笼罩零碎默认值,URL 参数笼罩 DOM 属性(其中空 URL 参数将参数设置回其零碎默认值)。 在运行时调用 setter 将笼罩在对象创立期间计算的任何先前设置。 参数的命名约定是: 在 URL 中:sap-ui-PARAMETER-NAME="value"在 DOM 中:data-sap-ui-PARAMETER-NAME="value"其中 PARAMETER-NAME 是小写的参数名称。布尔参数的值不辨别大小写,其中 true 和 x 被解释为 true.一些例子如下: data-sap-ui-async: 此配置设置使模块加载器可能异步加载模块和库预加载文件。bindingsyntax:此配置参数定义是应用简略绑定语法还是应用简单绑定语法。 该参数仅影响定义为字符串的绑定,例如在控件的构造函数中,或者在申明性视图(如 XML 视图)中指定绑定时。frameOptions:用于避免点击劫持等安全漏洞。 应用 frameOptions 配置,开发人员能够定义是否容许 SAPUI5 在框架中嵌入运行,或者仅从受信赖的起源运行,或者基本不容许。Configuration 有个办法 applySettings:一次对配置利用多项更改。 如果更改的设置蕴含本地化相干设置,如语言或日历类型,则只会触发一个 localizationChanged 事件。 因为框架必须告诉所有现有组件、元素、模型等本地化更改,应用 applySettings 能够显着缩小屡次更改的开销,尤其是当它们在曾经创立 UI 之后产生时。 ...

February 23, 2023 · 1 min · jiezi

关于sap:SAP-ABAP-方法调用里传值Pass-Value和传引用Pass-Reference的区别试读版

笔者这篇教程ABAP function module 的应用,有敌人在评论区留言: 想问问对于function module 外面的导入和导出参数外面,有传递值一项,让你勾选,想求教下这个是何种状况下要勾选,何种状况下无需勾选,有啥区别? 本文就来探讨这个问题:ABAP 编辑器里办法调用指定参数里这个 Pass Value 的选项,什么时候须要勾上,什么时候不须要? 在 SE37 函数编辑器的界面里,咱们选中 Pass Value,而后按 F1,查看其帮忙文档: 在 SE24 ABAP 类编辑器里,同样选中 Pass Value,查看 F1 按下后弹出的帮忙文档,内容略有不同。 本文余下局部以及教程后续步骤,咱们将会别离就 ABAP 函数和 ABAP 类的调用两方面来具体论述。教程的书写,还是秉承笔者一贯的格调,即通过具体例子来解说。

February 18, 2023 · 1 min · jiezi

关于sap:Spartacus-payment-types-在-checkout-步骤中发送-HTTP-put-请求的实现明细

我在我本地的开发环境,执行批处理程序 b2c.bat 能够失常运行 4.3.x 这个版本的 Spartacus,然而 5.0 即 develop 分支就不行,报这个谬误: $ info "fsevents@2.3.2" is an optional dependency and failed compatibility check. Excluding it from installation. error @typescript-eslint/utils@5.37.0: The engine "node" is incompatible with this module. Expected version "^12.22.0 || ^14应用命令行 where ng,发现 Angular CLI 的可执行文件 ng 的地位,是基于 node v14 这个版本的文件夹上面。 环境变量如下,PATH 环境变量的值: 我在上图将 path 环境变量里的 Node.js 配置成 16,然而 Angular CLI 依然是老的 12 版本,所以须要降级。 应用命令行 npm uninstall -g @angular/cli 将 Node.js 16 文件夹下的 ng 先卸载。 ...

February 18, 2023 · 1 min · jiezi

关于sap:SAP-官方的在线课程网站Open-SAP

我从 2007年大学毕业退出 SAP 成都研究院,在这个行业工作曾经16年了。我第一次据说 SAP 这个公司的名称,还是 SAP 到大学开校园宣讲会的时候,所以我也是零根底 SAP 入门。 我从一个 SAP 菜鸟开始的成长史,能够参考这篇文章: 一个 SAP 开发工程师的成长史 集体的感触是,如果英语的浏览能力尚可,那么最权威的 SAP 相干资源,当然就是 SAP 官网的帮忙文档,https://help.sap.com: 如果说 SAP 官网帮忙文档是一部大而全的字典的话,SAP 官网的在线课程学习平台 https://open.sap.com 就是对 SAP 初学者十分敌对的一个学习场合。这个官网里的每一个课程都由 SAP 员工来讲授,课程内容都是 SAP 精心筹备过,由浅入深,不少课程之前互相连接和关联。 这些课程以视频授课为主,大家如果对本人的英文听力不够自信的话也没关系,因为网站反对把课程的视频,Powerpoint 课件,以及视频的字幕全副下载到本地,所以大家能够将这些资料下载到本地后重复学习。 咱们轻易关上一门课程,屏幕右边的列表是该门课程的内容组织列表,个别状况下一门课程的学习工夫至多为 4 周,每周又蕴含若干单元(Unit). 屏幕左边工具栏,如下图黄色高亮区域所示,标有显示器图标的代表视频课程,灯泡图标代表每单元的课后练习,文档图标代表本周所有的学习资源的下载链接。 下图高亮区域即是每个单元的视频,音频和课件的下载方式。 总之,在我成长过程中,Open SAP 这个网站给我提供了很多帮忙,也祝福大家都能在这个网站上学到对本人有帮忙的常识。

February 18, 2023 · 1 min · jiezi

关于sap:SAP-OData-开发实战教程从入门到提高

@TOC 本教程依据笔者在 SAP 研究院工作多年的实战经验,打算通过 300 篇以上的文章篇幅,深刻介绍 SAP 三大支流的 OData 开发技术: SEGW(Gateway Service Builder)RAP - Restful ABAP Programming 模型CAP - Cloud Application Programming 模型心愿这套教程对应用 ABAP,Java 和 Node.js 开发 OData 服务的从业人员的入门和进步都能有所帮忙。点击文末浏览原文取得本教程。 笔者之前的文章 SAP OData 编程指南 已经提到过,OData(Open Data) 是 SAP 旗舰级产品 S/4HANA 里宽泛应用的一种前台 Fiori 利用(SAP UI5 前端框架开发而成)同后盾 S/4HANA ABAP 服务端通信的协定。通过这种交互方式,实现了 SAP Fiori 利用的前后端拆散。 OData(Open Data Protocol)协定是一个凋谢的工业规范,用于 RESTFul API 的设计和应用。OData 是一种协定而不是一门具体的编程语言,咱们能够用市面上风行的任何高级语言,比方 Java,Node.js,Go,Python 等实现 OData 服务。目前支流的编程语言,均提供了各自的软件开发工具包(SDK),对底层的 OData API 开发提供了封装,进步了开发人员编写 OData 服务的效率和代码品质。 在 SAP 产品里,也存在多种 OData 服务的开发方式,其中最典型的三类,就是笔者在本教程里会为大家分享和解说的内容。 ...

January 30, 2023 · 3 min · jiezi

关于sap:SAP-Corbu-Theme-在浏览器和-SAPGUI-应用中的使用场景

SAP Corbu Theme 是一种清爽、古代且独特的视觉标识。 它以瑞士建筑师兼设计师 Charles-Édouard Jeanneret,又名 Le Corbusier 的名字命名。 该设计无意保持中立,以与各种遗留内容(Legacy content)融为一体。 预约义的色彩是灰色和红色背景,带有彩色题目和橙色和蓝色高光。 视觉辨认协调了基于不同技术和框架构建的 SAP Business Suite 产品的外观和感觉。 不同产品之间的整体导航由 SAP NetWeaver Business Client 提供,这是一个桌面或 Web 利用的 navigation shell,反对选项卡式浏览行为和传统的基于角色的导航。 Gold Reflection 和 Corbu 具备十分类似的视觉设计语言。 除了一些概念和框架相干的差别外,UI 控件的可视化是雷同的。 次要的视觉差别是图标的应用和应用程序外壳的外观。 Corbu 主题采纳清爽、中性的设计,减少了与其余设计的兼容性。更大的字体和 UI 元素的框架和内容之间的宽敞间距晋升了界面的可读性。 信息和可能的用户操作被安顿在宽敞的区域,浅灰色和红色的均衡混合,而不是像块一样的框架。Corbu 应用更大更亮的图标(16x16 像素)。 SAP Corbu Theme 下的 SE80 事务码: 应用 SAP UI 主题设计器(UI Theme Designer),客户能够创立本人的主题以适应应用程序的视觉外观。这是一款用于主题化和品牌化 SAP 要害用户界面的工具,利用于客户企业品牌并关注应用 SAP UI 技术构建的应用程序。 UI 主题设计器是一个基于浏览器的跨主题场景工具。 通过批改 SAP 提供的主题模板之一,能够轻松构建客户的企业标识主题。例如,能够更改配色计划,或增加公司的徽标。该工具针对不同的用户群,包含开发人员、视觉设计师和管理员。

January 23, 2023 · 1 min · jiezi

关于sap:SAPGUI-里运行的老程序如何对新的-SAP-Fiori-Belize-Theme-进行适配

为了尽快使现有应用程序的外观适应 Fiori 2.0 设计和可用性范例,而无需在技术上切换到 Fiori 框架,SAP 引入了一个所谓的 SAP Fiori themes for SAPGUI 的概念。 SAPGUI 里的 Belize Theme 如下图所示: 基于 SAP GUI for Windows 或 SAP GUI for HTML 中显示的经典 dynpros 的应用程序,能够通过应用这个 Theme 来适应 Fiori 2.0 的设计和可用性范例。 为了尽可能靠近实在的 Fiori 应用程序,必须施行一些更改。 这些导致某些显示行为与迄今为止可用的所有其余主题基本不同。例如,字段标签通常显示为右对齐,而不是像其余主题中那样左对齐。 依据应用程序的现有布局,切换到 Fiori 2.0 可能意味着应用程序开发人员之后必须对底层屏幕进行更改。 如果在这些调整的上下文中,应用程序从 SAP GUI for Windows 转换为 SAP GUI for HTML,则必须牢记一些根本限度。 原则上,每个应用 SAP GUI for HTML 运行的应用程序也能够应用新的 Belize 主题,然而须要记住下列一些限度。 无奈应用拖放将文件从文件资源管理器复制到 SAP 屏幕。浏览器在 iOS 和 Android 上的行为不同。 它们短少一些性能,例如 Java 运行时或导航概念,例如鼠标右键单击和双击。无奈从浏览器管制 OLE 自动化服务器。这也是集成 Microsoft Office 应用程序存在限度的起因。在 SAP GUI for HTML 中打印基于 PDF 文档,这些文档在 SAP 零碎中创立并发送到浏览器。 能够应用规范的 PDF 显示程序在那里显示和打印文档。F4 搜寻帮忙目前有一些限度。通常无奈显示较旧的 R/3 业务图形。某些 SAPGUI 的控件应用受到限制。具体的限度列表能够查看 sap note. ...

January 23, 2023 · 1 min · jiezi

关于sap:SAPGUI-里的-Belize-Theme

为了可能尽快使现有 SAPGUI 中运行的应用程序的外观和感觉适应 Fiori 2.0 设计和可用性范例——从技术上讲,即便无需转换为 Fiori 框架,也能够随便应用 SAP Fiori 主题。SAP GUI for Windows 的经典应用程序能够通过应用 SAP GUI 的 Belize 主题来实现这所有。 以下列表概述了 Belize 主题中各种屏幕元素显示的一些重要变动,这些变动与其在 SAP GUI for Windows 以前可用的主题中的出现相同: 为了更好地理解屏幕上的各种性能,Fiori 2.0 设计发明了一种全新的性能显示构造。 删除了常见的 dynpro 栏,例如菜单栏、功能键栏、标题栏、应用程序工具栏和状态栏,并重新分配了其中的性能。 Fiori 设计仅提供页眉栏和页脚栏。 许多不太重要的性能都集中在一个菜单项中。 题目中的非流动按钮不会显示。 Belize 主题应用另一个指标,该指标出现比以后主题更大的各种屏幕元素。 这可能会导致某些元素对于原始屏幕布局显得太大,导致用户必须程度或垂直滚动能力查看残缺屏幕。 Belize 主题的显示变动极大地加强了屏幕可读性,并更加关注罕用性能。 通过 tab 键挪动 focus: 色彩格调批改成绿色: 批改之后的成果: 应用 SAPGUI 关上的 Main Session 的序号,能够在小括号里找到: 要显示零碎所有会话的列表,请在命令字段中输出 /o 并确认。 例子: 在要敞开的会话的命令字段中输出 /i; 要敞开特定会话,请在任何会话的命令字段中输出 /i,而后输出要敞开的会话编号。 示例:例如,/i3 敞开第三个会话。

January 23, 2023 · 1 min · jiezi

关于sap:SAP-云平台从-Neo-到-MultiCloud-的演化历史

过来几年,SAP 始终遵循多云优先(multi-cloud first)策略,确保咱们的 SAP Cloud Platform 产品组合在多云根底上可用。 为了给咱们的客户基于 SAP Cloud Platform 的扩大和集成解决方案提供更多区域和操作抉择,咱们将咱们最罕用的服务带到 Cloud Foundry 环境中,其中以下服务在性能上简直等同于他们在 Neo 环境中提供的服务: SAP Cloud Platform Integration:Cloud Integration 作为 SAP Cloud Platform Integration Suite 的一部分提供。无关与 Neo 环境相比的现有束缚的概述,请参阅 SAP Note 2752867。 如果想将 Neo 环境中的 CPI-PI 迁徙到 CF 环境中运行的 CPI-PI,能够在此处找到迁徙加速器指南。 SAP Cloud Platform Mobile Services:Cloud Foundry 环境中的 SAP Cloud Platform Mobile Services 与其在 Neo 环境中的前身在很大水平上雷同。对于二者的细微差别,参考这个链接。SAP Cloud Platform Portal:SAP Cloud Platform Cloud Foundry 环境中的服务限度列表(与 Neo 环境相比)能够在 SAP Note 2902576 中找到。无关最新的产品路线图,请参阅 SAP Cloud Platform Portal RoadmapSAP Cloud Platform SAP HANA service:自 2020 年 3 月下旬起,SAP HANA Cloud 可作为 SAP HANA 服务的继任者应用。 无关所有 SAP HANA Cloud 性能的概述,请参阅 SAP HANA Cloud 的性能范畴阐明。无关 SAP HANA Cloud 和 SAP HANA Platform for SQL、SQLScript 和 SAP HDI(SAP HANA 部署基础设施)之间差别的概述,请参阅 SAP Note 2868742。 ...

January 19, 2023 · 1 min · jiezi

关于sap:SAP-BTP-的-ABAP-Environment-和-CloudFoundry-环境的关系

从帮忙文档看,这四个环境仿佛是并列的: CloudFoundry EnvironmentABAP EnvironmentKyma EnvironmentNeo Environment 咱们看其中的 ABAP Environment: Within the Cloud Foundry environment, you can create a new space for ABAP development.在 CloudFoundry 环境内,能够为 ABAP 开发工作创立一个新的 Space. 这句话是否暗示了ABAP Environment 是嵌套在 CloudFoundry 环境里的? This is what we refer to as the ABAP environment. It allows you to create extensions for ABAP-based products, such as SAP S/4HANA Cloud, and develop new cloud applications. CloudFoundry 环境里为 ABAP 开发创立的 space,就是咱们所说的 ABAP Environment.在这个 ABAP Environment 里,容许咱们为基于 ABAP 技术栈的 SAP 产品,比方 S/4HANA Cloud 创立 extensions, 以及创立新的云利用。 ...

January 19, 2023 · 1 min · jiezi

关于sap:什么是-SAP-云平台的-multicloud-architecture

当 SAP 向市场公布 SAP Cloud Platform 的多云架构(multi-cloud architecture)时,指标是为咱们的客户开拓一条路线,让客户可能在他们抉择的云基础架构上取得平台的劣势。 SAP 的指标过来是,当初依然是,利用云基础设施合作伙伴的投资,并以更大的灵活性(抉择云供应商、更大的可用区域网络)、可靠性(应用超大规模基础设施及其性能)和敏捷性(更宽泛的范畴)为咱们的客户提供服务范畴的开发服务和反对的开发范例。 自最后公布以来,SAP Cloud Platform 团队始终致力于将这一策略付诸实践。 SAP Cloud Platform 多云环境在寰球 14 个地区和 4 大云提供商——亚马逊 AWS、微软 Azure、谷歌云平台、阿里云上可用(点击此处查看详情)。 SAP 正在与数据中心合作伙伴单干,依据客户和市场需求进一步构建该网络。 那些关注 SAP Cloud Platform 的人都晓得咱们的产品最后是基于专有堆栈(proprietary stack)。 咱们当初曾经达到这样一种状态,咱们的客户和合作伙伴将可能涵盖他们过来可能在 Neo 环境中涵盖的雷同场景,并将他们的注意力转移到咱们的多云环境中基于规范的办法。 多云环境的范畴不仅仅是 Neo 服务的复制。 新的 SAP Cloud Platform 服务和翻新(例如 SAP Cloud Platform ABAP Environment、SAP Cloud Platform Integration Suite、Business Application Studio 或最近公布的 SAP CP Extension Factory、Kyma Runtime)专用于多云环境。 SAP 本人的产品,比方 SAP Analytics Cloud、SAP Cloud ALM 或 SAP For Me 都在多云环境上运行。 ...

January 19, 2023 · 1 min · jiezi

关于sap:SAP-S4HANA-Group-Reporting-功能概述

SAP Group Reporting 在本地(local)和团体结算流动之间提供无缝流程,因为两者都在 SAP S/4HANA 外围中。 本地和组结算流动也应用雷同的数据库和用户界面。 这放慢了结算过程,以提供更多工夫来剖析后果并依据后果采取行动。 SAP S/4HANA Group Reporting (Financial Consolidation) 在向企业提供信息方面施展着至关重要的作用。 客户能够实时执行合并工作,还能够提供该期间任何工夫点的业务详细信息。 它还有助于在单个应用程序中整合和布局。公司受害于这种减速的过户流程。 左侧框显示 SAP Group Reporting Data Collection Box。 它是一种基于云的解决方案,可用于外部部署和云解决方案。 它有助于拜访不在 S/4HANA 中的数据并进行数据转换。Group Reporting Suite 不仅仅是一个合并引擎,它并不是任何现有 SAP Consolidation 应用程序的简略继承者。 Group Reporting 的数据模型理论过帐存储在通用日记账分录表中:ACDOCA打算数据存储在打算数据行我的项目中: ACDOCP存储在 ACDOCU 中的 SAP Universal Consolidation 日记账分录。数据定期存储。 FINCS* Tables 是 Group Reporting 相干的数据库表。 SAP Group Reporting 有助于整合存储在扩散在不同地位的多个零碎中不同业务部门的财务数据。 收集数据后,客户将可能进行整合。 SAP S/4HANA Finance for group reporting 帮忙用户为其客户提供许多开箱即用的性能(预配置内容)。 客户能够依据 SAP 交付的内容进行本人的定制和配置设置。此内容可帮忙客户放慢团体报告的施行过程。 客户能够复制和更改内容,也能够按原样应用内容。 ...

January 19, 2023 · 1 min · jiezi

关于sap:使用-SAP-ABAP-Memory-Inspector-对应用程序消耗内存进行检测时常犯的错误试读版

本教程后面的步骤,咱们花了 4 篇文章的篇幅,来系统阐述了 ABAP 程序运行时耗费内存的话题。 77. 简略聊聊 ABAP 变量耗费的内存空间这个话题78. 浅谈 ABAP 程序运行时呈现『内存耗尽』谬误的问题79. 应用 OPEN CURSOR 和 FETCH NEXT CURSOR 对 SAP 数据库表进行分块读写80. 应用事务码 SAT 比拟传统的 SELECT SQL 语句和 OPEN / FETCH CURSOR 分块读取 ABAP 数据库表两种形式的性能差别咱们之前提出了一个理论工作中遇到的场景,即如何从一张蕴含海量记录的数据库表里,取出以后登录零碎的用户具备权限拜访的数据集。 咱们采纳了传统的 SELECT OPEN SQL,以及 OPEN CURSOR / FETCH NEXT CURSOR 两种形式对数据库表进行读取操作。在前一步骤也就是本教程第 80 篇文章,咱们介绍了应用事务码 SAT 度量两种不同实现形式的性能差别。 本文咱们介绍如何应用 SAP ABAP 零碎提供的另一个有用的工具,ABAP Memory Inspector,来度量应用程序在运行过程中的 ABAP 内存耗费状况。 ABAP Memory Inspector 的事务码是 S_MEMORY_INSPECTOR, 在理论工作中笔者常常收到共事的征询:为什么这个工具不能依照我冀望的形式工作? 本文就来具体介绍这个工具应用过程中的一些常犯的谬误。

January 16, 2023 · 1 min · jiezi

关于sap:什么是-ABAP-编程语言的-Used-Memory-和-Allocated-Memory

ABAP 必须在间断的内存空间中存储 Internal Table 和字符串。 出于这个起因,ABAP 总是为这些类型对象调配比理论须要更多的存储空间。额定的存储容许高效地增长表和字符串。如果没有额定的空间,ABAP 将不得不在第一次向表中增加新行或缩短字符串时,将内表或字符串复制到更大的间断内存空间。因而,ABAP 这种激进的内存调配策略,是一种典型的空间换取工夫的思路。 对于字符串和外部表,Memory Inspector 会显示对象理论应用的存储空间和已调配给对象的存储空间。并且理论应用的存储空间总是小于曾经调配的空间,所以下图第二列的值总是小于第一列,第四列的值总是小于第三列。 一个 Memory Object 的 Bound(Allocated) 区域,意思就是该 Memory Object 独占的一块内存区域。 对于 Bound Memory,这篇 ABAP 帮忙文档有具体介绍。 In ABAP Memory Management, bound storage is the amount of main memory that would be released if the object that uses the storage were deleted or cleared.如果一块内存区域 A 被对象 B 占用,并且对象 B 被革除时,区域 A 就主动被 ABAP 零碎开释并回收,此时咱们就说 A 是 B 的 Bound Memory. ...

January 16, 2023 · 1 min · jiezi

关于sap:ABAP-编程语言里的-Reference-Semantic-引用语义

ABAP 编程语言里,对 ABAP 类实例(类对象)或匿名数据对象的多个援用,应用援用语义(Reference Semantic)解析。 这意味着: 援用单个类对象或匿名数据对象的所有变量,在内存中共享该对象的单个正本。将这样的对象调配给变量会创立一个援用,而不是援用内存对象的独自正本。 通过特定变量对类对象或匿名数据对象的更改对于援用同一对象的所有其余变量都是可见的。与表、字符串和 boxed Component 不同,类或匿名数据对象的实例不能在增加援用和更改对象时忽然体现为独自的内存对象。 类对象和匿名数据对象没有援用计数器。 因为不晓得是否存在对此类对象的任何援用,因而由 ABAP 垃圾收集器查找和删除不再被援用的内存对象。 上面是一个例子: DATA co_1 TYPE REF TO cl_1.DATA co_2 TYPE REF TO cl_1.CREATE OBJECT co_1.co_2 = co_1.变量 CO_1 和 CO_2 当初都指向内存中的单个类对象。 假如当初更改类 CL_1 的 ATTR1 的值。 co_1->attr1 = 'ABC'.那么 co_2 的 attr1 属性也变成 ABC 了。 因为 co_1 和 co_2 实际上指向内存中同一个变量。 下图是 ABAP memory Inspector 工具的 Ranking List 的截图。假如咱们在 t1 和 t2 两个时间段,别离采集了两个内存快照。其中红色高亮区域显示的是在 t1 工夫点并不存在的变量,在 t2 工夫点新呈现的。这种类型的内表后面用 + 标识。 ...

January 16, 2023 · 1 min · jiezi

关于sap:Standard-ABAP-Debugger-和-Classic-ABAP-Debugger-的实现差异

这两种 ABAP 调试器,能够在 SAPGUI 里这个菜单的地位进行切换: Standard ABAP 调试器有时候又称为新调试器。 新的 ABAP 调试器在一个同被调试的 ABAP 程序齐全不同的 External Session 内运行。 对于 External Session 的含意,请参阅笔者的教程: 58. 通俗易懂的 SAP ABAP 会话治理(Session Management)概念解说,蕴含具体的实例 而被新 ABAP 调试器剖析的应用程序(调试对象),应用另一个 External Session 运行(双过程架构)。新的调试器显示在它本人的 SAP GUI 窗口中。 例子:这是一个待调试的 ABAP 报表。 设置好断点,点击 F8 按钮之后,弹出一个新的 SAPGUI 窗口,这个窗口运行着调试器过程,自身也要占用一个 External Session: 另一方面,Classic ABAP 调试器在与剖析的应用程序雷同的 Roll Area 中运行。 因而,它与应用程序显示在同一窗口中。上面是一个例子: Standard 调试器为用户提供了一个灵便的界面,能够依据须要进行配置,并领有超过八个桌面。 通过这种形式,用户能够同时显示和排列最多四个他们抉择的工具。 这些桌面和工具通过 ABAP 调试器里的 TabStrip 控件的标签页提供: 在经典的 ABAP 调试器中,古代和个性化的用户界面设计是不可能的。 ...

January 16, 2023 · 1 min · jiezi

关于sap:使用事务码-SAT-比较传统的-SELECT-SQL-语句和-OPEN-FETCH-CURSOR-分块读取的性能差异

从 77 开始的间断三篇文章,咱们理解 ABAP 程序中变量占用内存空间的话题。通过一位读者敌人向我征询过的理论问题,介绍了应用 OPEN CURSOR 和 FETCH NEXT CURSOR 这组 ABAP 关键字来实现 ABAP 数据库表分块读取的办法。 77. 简略聊聊 ABAP 变量耗费的内存空间这个话题78. 浅谈 ABAP 程序运行时呈现『内存耗尽』谬误的问题79. 应用 OPEN CURSOR 和 FETCH NEXT CURSOR 对 SAP 数据库表进行分块读写本教程第 79 个步骤,咱们别离用两种不同的形式实现了一个从数据库表 TADIR 中读取指定数目的 ABAP 函数。 第一种形式实现的函数名称:ZSELECT_FILTER,实现思路: 第二种形式实现的函数名称:ZBLOCK_FILTER, 实现思路: 从实践上讲,第二种实现不须要将 TADIR 数据库表里的全副数据读取到 ABAP 应用层,所以函数执行的性能,以及在 ABAP 应用层耗费的内存空间,都要优于办法1. 但这仅仅是咱们的实践剖析,本文咱们就来通过应用一些 SAP 提供的规范工具,来主观比拟两种实现的性能和内存耗费方面的差别。 具体操作步骤参考这篇文章。

January 16, 2023 · 1 min · jiezi

关于sap:SAP-UI5-应用-manifestjson-文件里-Routes-数组元素的相对顺序不可忽视的试读版

本教程第 77 篇文章发表之后,一位学习十分认真的敌人发现了一个问题: SAP UI5 利用开发教程之七十七 - SAP UI5 动静页面路由的高级用法:路由记录 routes 和 target 的一对多关系Hi,Jerry,我在复刻这个篇章的代码的时候遇到了一个问题:在mainfest.json文件中配置routes时,若把该篇的新的路由门路写在最初,点击Home对应的按钮会跳转到Employee视图去,然而浏览器上的路由门路又是正确的,相干的起因和原理能够讲讲吗? 简要回顾步骤 77 实现的开发内容在步骤 77,咱们在 UI 上削减了一个新按钮: 这个按钮的事件响应函数:this.getRouter().navTo("employeeOverview") 这个 navTo 办法的输出参数 employeeOverview,定义在 manifest.json 的 routes 区域里,位于第 85 行的 employees 记录之后。 点击 Show Employees Overview 按钮之后,SAP UI5 路由框架从 manifest.json 文件 routes 区域解析出的记录里,找到路由 target,即上图高亮区域所示的配置信息,而后依照下图所示的程序加载三个对应的 XML 视图文件: 最初实现页面渲染: 这位敌人遇到的问题如果成心把步骤 77 新增加的 routes 数组里的元素,不放在正确的如图例 1 所示的地位,即位于 employeeList 这条记录之后,而是作为最初一条记录,放在 routes 开端,如下图所示: 为了不影响步骤 77 的学习,我把文件夹 77 拷贝了一份进去,重命名成 77-A,而后将上图的改变,实现在了 77-A 文件夹的 manifest.json 外面。 ...

January 16, 2023 · 1 min · jiezi

关于sap:使用-OPEN-CURSOR-和-FETCH-NEXT-CURSOR-对-SAP-数据库表进行分块读写试读版

@TOC 在本教程前一步骤,咱们介绍了须要对 ABAP 数据库表进行分块读写的场合,这是来自一个敌人向我征询的理论问题。 78. 浅谈 ABAP 程序运行时呈现『内存耗尽』谬误的问题开发工作开发一个 ABAP 函数: 输出参数为 iv_count, 指定该 ABAP 函数的调用者,冀望函数返回的记录个数。输入参数为 et_data, 这是一张内表,蕴含了满足指定条件的来自数据库表 A 里的记录数。et_data 的记录数,小于等于 iv_count.指定条件意思是,对于每条从数据库表 A 取回来的记录数,调用另一个 ABAP 函数 C,进行权限查看,如果以后用户没有足够的权限查看这条记录,就疏忽这条记录,持续解决下一条。如果有权限查看,就把这条记录增加到输入参数 et_data 里。 当 et_data 的行数等于 iv_count 或者数据库表里的全副数据都被循环解决后,完结循环。 ABAP Function Module C 的逻辑比较复杂,没方法在数据库层面进行权限查看,所以只好把数据从数据库表取出来之后,在 ABAP 层进行查看。 第一版实现:将数据库表的全部内容,读取到 ABAP 应用层进行解决向我征询的敌人第一版的 ABAP 代码实现流程如下: 依照这个实现思路,写进去的 ABAP 函数残缺源代码如下: FUNCTION zselect_filter.*"----------------------------------------------------------------------*"*"Local Interface:*" IMPORTING*" REFERENCE(IV_COUNT) TYPE INT4 DEFAULT 100*" EXPORTING*" REFERENCE(ET_DATA) TYPE STRING_TABLE*"---------------------------------------------------------------------- DATA: lt_data TYPE TABLE OF tadir, ls_data TYPE tadir, lv_can_access TYPE abap_bool. SELECT * INTO TABLE lt_data FROM tadir. LOOP AT lt_data INTO ls_data. PERFORM authorization_check USING ls_data CHANGING lv_can_access. IF lv_can_access = abap_true. APPEND |{ ls_data-object }-{ ls_data-obj_name }| TO et_data. ENDIF. IF lines( et_data ) = iv_count. EXIT. ENDIF. ENDLOOP.ENDFUNCTION.FORM authorization_check USING is_data TYPE tadir CHANGING cv_result TYPE abap_bool. cv_result = abap_true.ENDFORM.输出参数: ...

January 16, 2023 · 1 min · jiezi

关于sap:浅谈-ABAP-程序运行时出现『内存耗尽』错误的问题试读版

本专栏打算的文章数在 300 篇左右,到 2023年1月8日为止,目前曾经更新了 78 篇,专栏完成度为 26%笔者这套零根底疾速学习 ABAP从 2021年4月10日写下第一篇文章以来,感激宽广学习者判若两人的反对。本教程打算破费 150 左右的篇幅,向大家具体介绍 SAP ABAP 开发的方方面面。 大家在学习教程过程中,如果有任何对于 SAP ABAP 开发方面想理解的内容,能够间接在教程各篇文章下评论留言,也能够在《零根底疾速学习 ABAP 读者意见反馈和下一步写作计划表》里留言。我会将大家的意见对立汇总,作为我更新教程的内容参考起源之一。 零根底 ABAP 学习教程系列文章的目录0. 自学 ABAP 和自学 SAP 的差异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 是一门反对面向过程和面向对象的混合型编程语言,理论开发中用哪种?57. SAPGUI 里 F1 功能键的用法专题解说58. 通俗易懂的 SAP ABAP 会话治理(Session Management)概念解说,蕴含具体的实例59. 案例剖析 - 如何通过 F1 和单步调试,找到 SE10 事物码里用户名字段的初始值填充逻辑61. 如何应用 Java 程序通过 SAP Java Connector 调用 ABAP 零碎的函数62. 如何通过加强(Enhancement) 的形式给 SAP ABAP 规范程序削减新性能63. 如何应用 Visual Studio Code 查看和浏览 ABAP 代码64. 如何在浏览器里执行 SAPGUI 的事务65. 应用事物码 SAT 查找某个 SAPGUI 事物码操作调用的 Function Module 列表66. SAP ABAP Function Module 的动静调用形式应用形式介绍67. SAP ABAP 监控用户事物码和程序执行的工具介绍68. 对于 SAP ABAP 报表的多语言显示问题71. SAP ABAP 报表屏幕输出字段如何实现联动成果73. 如何手动通过加强的形式,给 SAP ABAP 数据库表削减新的字段74. 学会应用 SAP ABAP Application Log 在代码里增加利用日志记录性能75. SAP ABAP 一个有用的程序正确性辅助工具,Checkpoint group 的应用办法介绍76. 如何应用 ST05 事物码,疾速找到拜访指定数据库表的 ABAP 代码77. 简略聊聊 ABAP 变量耗费的内存空间这个话题78. 浅谈 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 事物码69. 利用 ALV 实现增删改查系列之一:让 ALV 报表进入可编辑状态70. 利用 ALV 实现增删改查系列之二:仅让 ALV 报表某一列容许被编辑72. 利用 ALV 实现增删改查系列之三:如何给 SAP ABAP ALV 报表的批改性能增加自定义校验逻辑更多文章正在写作中咱们用一个简略的 ABAP 程序来引出本文的解说。 ...

January 16, 2023 · 3 min · jiezi

关于sap:简单聊聊-ABAP-变量消耗的内存空间这个话题的试读版

本教程之前的文章介绍了 ABAP 调试器的用法: 13. 最浅显易懂的 SAPGUI 里 ABAP 调试器的应用办法介绍有敌人向我征询:ABAP 调试器里变量显示标签里,如果对于一个内表变量,Val 栏下的 [1x3(28)]Standard Table 是什么意思? 为了精确答复这个问题,咱们就得简略理解下 ABAP 程序里的变量,在运行时耗费的内存空间这个问题。 在本教程第四篇文章,咱们学习了 ABAP 编程语言里根本的数据结构: 4. ABAP 规范培训教程 BC400 学习笔记之四:ABAP 编程语言的数据类型回到本文开始的疑难。 看这段简略的 ABAP 代码: TYPES: BEGIN OF ty_data, name TYPE c, age TYPE c LENGTH 2, score TYPE c LENGTH 11, END OF ty_data.DATA: ls_data TYPE ty_data, lt_data TYPE TABLE OF ty_data.ls_data-name = 'c'.ls_data-age = 'ab'.APPEND ls_data TO lt_data.定义了一个内表变量 lt_data, 其行类型为一个构造,蕴含名叫 name,age 和 score 这三个字段,字段类型都为 c,长度别离为 1,2 和 11. ...

January 16, 2023 · 1 min · jiezi

关于sap:英语不好对-SAP-英文文档有所畏惧该怎么办

有敌人在我的 [零根底疾速学习 ABAP]()这套教程的其中一篇文章ABAP 编程语言中的零碎字段(System Fields)里留言: 哪里不懂点哪里。可是总是对英文文档有畏惧心理,汪老师有没有啥倡议呀 ?感觉想要做好这一行这一点还是挺重要的。如果条件容许,笔者真的倡议大家间接浏览 SAP 原版的英文文档。起因如下: SAP 原版的英文文档最为权威,而官方网站上其余语言比方中文版的帮忙文档,有些是机器翻译的,咱们读起来可能感觉怪怪的,局部句子甚至不太通顺,词不达意,影响咱们的了解。各种 SAP 技术和产品的最新资讯,都能够在 SAP 官网社区 获取,这些资讯绝大多数都是英文博客。尽管 SAP 中国研究院也有很多产品的开发团队,包含笔者在内的很多 SAP 员工也会在社区上应用中文公布博客,然而这些中文博客在 SAP 社区总共 14 万篇博客里,只占极小一部分。 其实大家真的没必要对 SAP 英文文档有所畏惧。咱们能够升高预期:不须要能用英文写文档,也不须要把握英文据说能力,仅仅可能看懂 SAP 官网的英文文档就行了。而 SAP 英文文档其实蕴含的专业术语,生词量,翻来覆去也就那么多。大家能够这样想,假如 SAP 专业术语的单词只有 500 个,那我每天学习 5 个,100 天就能学完,不过三个月的功夫而已。 还有些敌人可能对 SAP 英文文档的语法有点头痛。 Hardware, operating system, and database-independent platform (virtual machine) of an ABAP program. Processes of the ABAP runtime environment control the execution of an ABAP program by calling the processing blocks of the program. The ABAP runtime environment is provided by the Application Server ABAP. ...

January 16, 2023 · 1 min · jiezi

关于sap:SAP-UI5-Fiori-应用在启动时向-ABAP-后台发起的-OData-请求序列的顺序和作用分析试读版

本文的写作动机,来源于我的常识星球里一位敌人的发问: 咱们当初在 BTP 上给 successfactors 加强一个性能,画面 fiori ,针对画面上的fo 字段或者 picklist 类型字段,为了不便画面比拟容易输出值,下拉框外面的值个别通过什么形式做成,而且不影响性能,当初咱们思考通过追加代码去获得下拉框的值,然而画面初期关上的时候,如果这样我的项目特地多,特地影响性能,想问一下有什么好的方法?或者这样例子应该怎么去实现?谢谢 我的一些回复: 首次关上画面的时候,能不能做到下拉框的提早加载呢?也就是说,首次关上时,页面是只读模式的,此时下拉框的地位,仅仅须要显示下拉框里默认抉择的 key 值对应的形容信息,此时下拉框进化成一个 Text Field.仅仅当切换到编辑模式时,才从数据库读取 key 和 description. 这种形式在点 Edit 按钮切换成编辑模式时,也会感到一点提早。 更高级一点的做法,就是在只读模式下,没等点击 Edit 按钮,就开始异步的去后盾读取 key 和 description. 这个问题促使我去思考一个问题:SAP 规范的 Fiori 利用,在启动时是如何治理和解决发送到后盾的 ABAP HTTP OData 申请的? 带着这个问题,我找了一个 SAP 规范的 Fiori 利用,CRM 畛域的 My Opportunity,钻研了这个利用关上时往 ABAP 后盾发送的全副 OData 申请,并逐个剖析了每个 OData 申请的发送起因,对每个申请的 HTTP 申请和 HTTP 响应的头部字段和注释负载(payload),也做了具体的阐述。 咱们在 SAP CRM Fiori Launchpad 里点击 My Opportunity 的 tile: 这个 Fiori 利用得以启动,看到如下的界面: ...

January 16, 2023 · 1 min · jiezi

关于sap:SAP-ABAP-一个有用的程序正确性辅助工具Checkpoint-group-的使用方法介绍

本教程前一篇文章介绍的内容: 74. 学会应用 SAP ABAP Application Log 在代码里增加利用日志记录性能有读者向我发问:一个 ABAP 程序植入了利用日志的记录性能之后,有没有方法临时 deactivate 程序里这些日志记录的行为? 答案是不能。只有咱们在代码里编写了利用日志的记录性能,每次 ABAP 程序执行,就会忠诚地将日志记录下来,从而供用户在事物码 SLG1 里查看。 有两个形式能够进步开发和反对人员,从海量的利用日志里查问和剖析问题的效率: (1) 在用日志查看器 SLG1 里指定尽可能具体的查问条件,从而让利用日志的显示范畴尽可能准确,从而放大日志显示的后果集: (2) 应用事物码 SLG2,保护定期删除过期的利用日志的后台作业调度。 本文介绍 ABAP 另一种有用的程序运行时执行信息的记录工具,叫做 Checkpoint group. 什么是 Checkpoint GroupCheckpoint group 和 Application Log 相比,相同点是二者都须要开发人员在 ABAP 源代码里冀望进行记录的地位,手动编写信息的记录代码。不同点是,Checkpoint group 记录信息的行为,能够通过叫作 Activation Variant 的对象,来有选择性地启用和敞开。 本文目录: 什么是 Checkpoint Group如何查看 Checkpoint Group 里记录的内容如何创立 activation variant有选择性地管制 ABAP 程序里断点的触发与否总结

January 16, 2023 · 1 min · jiezi