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

网站建设_河北云服务器_优惠

小七 141 0

通常,SAP最终用户无权访问SE16或SE16n。这个程序允许分析人员通过指向现有的CDS视图、视图或SAP表来配置自己的报告,而无需编写代码。他们通过导入Excel电子表格来配置他们的选择屏幕。最后,创建一个指向报表的SAP事务代码,并为新事务分配特定用户的授权。此程序适用于那些安装了HANA的SAP。

在我以前的博客中,这里…

https://blogs.sap.com/2018/10/18/dynamic-selection-screen-with-alv-ida-and-excel/

…我们结合了Excel上传、动态选择选项生成,在弹出屏幕上显示,并在为HANA创建的ALV IDA中显示结果。要完全理解这个博客,52返现网,建议你先阅读上面的博客。但是,如果您想跳过详细信息,只需转到下面的"程序演练"部分,了解其工作原理,然后获取代码。

在本博客中,我们将从上述博客中增强此程序,使其可以重新运行,而无需每次重新导入Excel文件。我们还将添加一个新的列,您可以在其中指定一个事务代码,以允许程序根据输入的事务代码动态生成报告,并在您的配置表中存储许多报告。

此博客的组织方式如下:

软件版本:

S/4HANA(SAP_BASIS 752,SAP_ABA 75C)SAPGUI版本750Eclipse版本:Oxygen.3a发行版(4.7.3a)Microsoft Excel(.xlsx支持)

原始程序流程图

新程序流程图

Excel文件格式

Excel文件将包含一个表、视图或CD视图,其中包含您希望在弹出窗口中显示为选择选项的字段。作为对上一个程序的增强,我们将为事务代码添加新行。这将允许我们通过事务代码执行报告,而无需每次重新加载Excel电子表格。此外,我们可以存储多个报表的配置设置及其对应的事务代码。

包含3个报表的Excel文件示例:

A列将包含每个报表的3个标签:

事务代码表、视图或视图名称选择字段

B列包含实际交易代码、表/视图/CDS视图名称以及要作为弹出窗口上的选择选项包含的字段列表。

例如,第一个报表:

B1=自定义SAP交易代码B2=表、视图或CDS视图名称B3+=要作为选择选项包括的字段列表

对于CDS视图"S\U BOOKINGS",每当我们执行自定义SAP事务代码ZBOOKINGS时,在弹出窗口中作为选择选项包括CARRIERID、FLIGHTDATE、CUSTOMERID、LOCALCURRENCYAMOUNT字段。

上述的弹出窗口,如下所示:

新建Z表

首先,为了支持这些新特性,让我们创建一个新的Z表,它将保存报表的配置。对于单个报表,我们的Excel输入有以下格式:

让我们将结构展平,创建一个模式,如下:

您可以转到SE11并以经典方式创建表。本着使用最新工具的精神,让我们将Eclipse IDE与ABAP开发工具(ADT)结合使用:

在项目浏览器中,右键单击"Dictionary"节点和菜单路径"New">"Database Table"

输入以下内容并单击"Finish":

注意,物联网+,您可以选择ZREPORT以外的其他表名。如果是这样,您可以简单地更新这个表名,不管它在代码中引用到哪里。

我们现在得到一个新表的通用模板:

用以下数据定义覆盖上面的表:

保存并激活

您现在可以转到SE11,查看我们刚刚创建的上面的表:

查看我们表中的数据,我们可以进入我们的Eclipse项目浏览器,右击表名和菜单路径"Open with>Data Preview":

当然,人工智能有哪些领域,我们的表当前是空的,但是稍后我们可以在这里查看导入的记录:

除了上面提到的,创建一个名为ZTTY_REPORT的表类型,其中包含作为线型ZREPORT的上述内容:

我们将在方法参数中使用此表类型ZTTY_REPORT,以提高可读性。

新方法和代码

接下来,让我们添加程序所需的附加代码。

首先,我们需要屏幕上的一些新选择选项来支持我们的操作新功能。我们的新选择屏幕将是:

选项将执行以下操作:

仅运行报告:报告将通过读取ZREPORT中输入的事务代码的现有配置表条目来运行。如果选中,我们将隐藏"Excel SelOpt File"和"Refresh Table(all entries)"参数

只更新表:读取Excel文件,更新表ZREPORT。如果选中,我们将隐藏"交易代码"选择参数

更新表和运行报告:执行上述两个选项–更新表并运行输入的任何交易代码的报告

刷新表(所有条目):

选中:如果启用复选框,则首先删除ZREPORT表中的所有条目。接下来,将插入Excel文件中的所有条目。也就是说,从Excel文件进行完全刷新。未选中:如果复选框被禁用–如果Excel文件中的条目在ZREPORT表中尚不存在,则将插入它们(即添加新报告)。如果条目已经存在,它们将用相应的条目更新(覆盖)。

新的选择屏幕代码是:

在初始化部分,为新的选择屏幕元素添加标签:

根据我们选择的单选按钮,让我们隐藏不相关的选择。初始化事件之后,将新事件"AT SELECTION-SCREEN OUTPUT"添加到程序中,并添加以下代码:

在我们原来的程序中,我们只是传递了Excel文件,并通过以下调用运行了报表:

为了支持我们的新选项,让我们添加一个可能传递给execute方法的新结构。在类的public部分,添加以下代码:

重命名execute方法的import参数并使用此类型:

调整execute方法对以下对象的调用:

我们将为该类提供2个入口点,执行方法和执行报告方法。

新执行方法:

这里是我们新执行方法的代码:

当从常规选择屏幕(即SE38)运行程序时调用此方法。

新执行报告方法:

每当用户输入事务代码时调用此方法。然后,它将通过读取该TCode的config表来自动启动报告。此方法的代码是:

我们只是实例化报表,但只有TCode和run\u only选项。

有关所有其他更改,请参阅完整程序,包括以下方法:

BUILD\u SELECT\u options:调整此方法以处理表格,而不是Excel电子表格。

GET\u CONFIG\u table:获取内容的新方法配置表(ZREPORT)的一部分,将被传递到更新的BUILD\u SELECT\u OPTIONS方法。

EXECUTE\u REPORT:一个新的公共类方法,允许从事务代码执行程序。稍后我们将演练此设置。

更新配置数据:读取Excel输入文件后更新ZREPORT配置表的新方法。

运行报告:我们原来的执行方法被重命名为此方法。我们新的EXECUTE方法将评估select选项,并执行各种方法,见下文。

初始设置