简介
我们中的许多人已经知道著名的GOS GUI功能。我们必须使用它在GUI中添加附件的许多标准应用程序。它不仅可用于标准应用程序,也可用于基于GUI的自定义应用程序,只需最少的编码。那么,如果这种功能可用于基于Fiori的应用程序呢?是的,它是通过附件服务提供的。
我以前是如何处理附件的
我们大多数人在UI5和ABAP中都有一个或其他与附件相关的问题,并且会尝试许多不同的方法来保存和阅读附件。到目前为止,我尝试了以下两种方法。
你可以看到第二种方法非常干净,大数据挖掘,重量很轻,对吗?
附件服务为我们提供了可重用的ui5组件和一些API,以非常简单的方式处理这个问题,这几乎不需要15行代码就可以实现端到端的工作。让我们看看它的实际操作。
架构
SAP帮助,链接
演示
让我们首先在下面的视频中看到附件服务的演示以及它是如何工作的,然后转到开发部分。
实现
让我们分多个步骤来做。
这个步骤是验证GUI中的GOS附件和添加的附件是否正确通过Fiori Element应用程序中的附件服务是相同的。
在这一步中,让我们创建一个虚拟报告,在其中我们可以输入"承运商ID"(航班表),在结果页中,我们应该看到GOS工具栏,在那里可以添加/查看附件。
因此我创建了一个新的业务对象(SWO1,显然,这也适用于现有的业务对象)ZCAR2020,它在scarr表中只有一个关键字段"carid"。
然后我创建了一个报告,它只需要一个输入参数"carrid",并将it和上面创建的业务对象链接到GOS工具栏。
检查下面的代码:参考取自Naimesh Patel blog
非常简单的代码。输出将是:
在F8之后
现在点击上面突出显示的按钮将显示GOS菜单,点击附件将显示附件弹出窗口。
所以现在我们看到添加GOS工具栏是多么简单,它将为我们处理附件。这就是它在其他标准应用程序中通常的工作方式。因此,让我们使用相同的BO并将其集成到附件服务中。
现在我将为carrier表创建一个列表报告应用程序,这是一个启用草稿的应用程序。我根据下面的博客参考创建了草稿CD查看BO。
https://blogs.sap.com/2019/01/09/abap基于非guid键的sapfiori draft编程模型/
不过帐代码,云服务器比较,因为它是一个基本草稿启用的CDS视图,带有基本注释。
从上述CDS生成的最终列表报告应用程序视图。
添加附件服务库的依赖项("sap.se.mi公司.plm.lib.attachmentservice附件服务"
"现在的想法是将附件组件显示为对象页中的节。因此,我们需要在object页中添加一个部分,但它将是一个通过embeddedComponents方法重用的组件。有关更多信息,请查看UI5文档。
将重用附件组件添加为对象页中的一部分的代码。
因此,在上面的代码中,我们可以看到我们包含了对象页中的嵌入组件以及附件服务的组件名称和设置。
设置来自附件服务,而不是特定于重用组件(文档链接)。
mode=>告诉我们它是创建模式还是显示模式,我们正在使用与模型的绑定-"UI"模型,它是列表报表模板的一部分,其值"C"表示创建模式,"D"表示显示模式,附件服务将对此进行解释,软件企业条件,以显示/隐藏用于添加附件的+图标。
这是一个常见设置,我们可以在所有应用中复制粘贴此设置
objectType=>这是业务对象,可以是标准的或自定义的
objectKey=>在这里我们将传递密钥,在我们的情况下,它将是"carrid"。但如果是create场景,则不会有key字段,key将是"Draft ID"。所以我们是用格式化程序来动态创建密钥的
格式化程序代码=>它是用来在组件中创建密钥
的。j,只需要提到依赖项:
最后一步,但是只是为了在WEBIDE中进行测试,我们需要更新neo-应用程序.json文件。(添加在结尾)
现在,剩下的是我们要测试的。
查看上面的演示视频了解更多细节。
我们可以看到添加了一个新的"附件"部分,它显示了附件重用组件。它还获取了我在GOS gui应用程序中添加的附件,非常酷,淘客返利系统,只是做了很小的更改。
从技术上讲,淘客佣金,对于Create/Edit,这也可以工作,但附件不会保存到GOS,而是在一些临时表中。因此,我们需要调用attachments api的save方法将附件保存到draft类中的GOS中。
就是这样,只需在自定义GUI应用程序中使用GOS工具栏即可。所有的功能都是由SAP自己以组件可重用性的形式提供的。
感谢所有在SAP开发这个漂亮的可重用应用程序的开发人员!!
代码参考取自供应商Fiori App.
附件服务帮助:
https://help.sap.com/viewer/4c3d1c6b3d744f84aab4c273f979f430/1909.000/en-US/b821e557b83a1070e10000000a44147b.html