云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

分布式存储_阿里云代理服务器_好用

小七 141 0

您好,

在一个客户项目中,我们被要求为客户"Factsheets"的显示增加一些灵活性:抑制某些部分的能力,以及更改显示部分顺序的可能性。

"Factsheet"是一个SAP SmartForm,以PDF格式提供客户对各种数据的概述,包括销售、市场营销、,服务和物流数据。从Fiori应用程序中请求Factsheet,并通过在线或电子邮件提供。

在我们的情况下,大数据app,"Factsheet"SmartForm由总共20个部分/文件夹("报价"、"销售详情"、"最新投诉"等)组成,但只有这些部分的子集可能对特定销售人员感兴趣,云服务器推荐,对于特定的客户,

虽然很容易管理节的抑制,但序列更改更具挑战性。这篇文章的目的是介绍我们开发的解决方案。

从最终用户的角度来看,这就是解决方案的样子:

在前端,大数据数据,我们用jQuery实现了拖放功能,但从版本1.56开始,它现在在标准的所有UI5控件中都启用了。用户选择的排序顺序使用自定义oData实体保存到一个透明的后端表中。

在后端,目标是模仿用户选择的文件夹顺序。虽然smartform设计器工具(事务"smartforms")允许轻松更改文件夹的顺序,但这仅适用于设计阶段。一旦生成smartform,它就变成静态的(关于文件夹序列)。

从技术上讲,smartform生成创建了一个函数组和一个函数模块,用于在运行时调用smartform。

我们决定操作函数组的代码,并在运行时使用ABAP语句"generate SUBROUTINE POOL"生成一个临时程序。一个限制是,返利手游平台,我们必须将函数模块转换成一个窗体,以便触发更改的ABAP代码。

此解决方案的优点是,更改的序列仅在运行时对特定用户有效。每个最终用户都可以拥有自己的文件夹序列,并且可以随时更改它。

在SmartForm定义中,要排序的数据块需要显示在根文件夹下(在主窗口下定义)。文件夹名称(这里是:文件夹\u A、文件夹\u B和文件夹\u C)被SmartForm处理程序例程用作锚点,以重新排列文件夹序列。根文件夹下定义的所有smartform元素都参与序列更改。支持嵌套文件夹。

限制:不支持根文件夹级别的文件夹条件。并且,在表单界面中,只支持"type"类型的表赋值(不支持"LIKE"赋值)。

这是一个测试报告,使用一个表单子例程,将通过功能模块生成的SmartForm的经典版本与更改文件夹顺序后"动态"生成的自定义版本进行比较。

对于希望测试此解决方案的人在他们自己的SAP Netweaver环境中,这里提供了3个文件:https://github.com/Walter-B/sap-smartforms

测试程序。使用事务SE38创建报表ZSMARTFORM\u SECTION\u RT\u SORT,并将上面的代码(或Github上提供的代码)粘贴到其中。在"文本元素"下添加以下文本符号,并激活

Sym text001生成类型002标准(SmartForm函数)003排序(动态子程序)004首选区段顺序005文件夹\u A006文件夹\u B007文件夹\u C

一个smartform XML文件,zz\u demo\u sf\u 1.XML。在Github中,单击"Raw"按钮,选择整个XML代码,云端云服务器,并将其保存到记事本文件zz\u demo\u sf\u 1.XML中(注意扩展名)。在SAP transaction SMARTFORMS中,创建新的表单ZZ\u DEMO\u SF\u 1,然后转到"实用程序">"上载",接受警告并激活。

包含排序魔法的类。在事务SE24中,在内存编辑器中创建类ZSMARTFORM,选择对象类型"class",添加描述,按"Save"。在类生成器中,按"基于源代码"按钮,进入编辑模式,然后用内存编辑器中的ZSMARTFORM文件中的Github代码覆盖。激活。

现在,您可以在一个简单的智能窗体上测试解决方案。选择单选按钮"排序(动态子例程)"时,您可以指定运行时将呈现的任何文件夹序列。

我希望这篇文章能帮助其他技术顾问使用ABAP和SAP SmartForms构建灵活的解决方案。