点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的专家,
我正在尝试为Fiori工作清单页面中的多个实体运行自定义操作。 我发现以内联方式(针对1个实体)运行动作可以正常工作,但是对多个选定实体全局注释动作却无法实现。
这是我的服务定义:
service ResellerService @(path:'manage-packages'){ 实体Apps作为db.Apps上的投影; 实体Orders作为db.Orders上的投影; 实体OrderItems作为db.OrderItems上的投影 动作{ 动作包装()返回字符串; } ; }
以下是带有内联渲染的操作的Fiori工作清单注释:
用@(注释ResellerService.OrderItems 用户界面:{ 订单项:[ {$ Type:" UI.DataField",值:ID,标签:" {i18n> ID}"}, {$ Type:" UI.DataField",值:parent.externalreference,标签:" {i18n> Order Reference}"}, {$ Type:'UI.DataField',值:app.app,标签:'{i18n> App}'}, {$ Type:'UI.DataField',值:app.description,标签:'{i18n> Description}'}, {$ Type:'UI.DataField',值:数量,标签:'{i18n>免费数量}'}, {$ Type:'UI.DataFieldForAction', 标签:" {i18n>创建许可证包}", 行动:" ResellerService.EntityContainer/OrderItems_packaging", 内联:true} ] } );
这将按预期方式进行渲染,并在行基础上调用动作按预期方式工作-有点奇怪的行为是,实体ID是在查询参数中而不是在有效负载中提交的,但是它可以工作。
但是,如果我将操作注释更改为非内联:
{$ Type:'UI.DataFieldForAction', 标签:" {i18n>创建许可证包}", 行动:" ResellerService.EntityContainer/OrderItems_packaging", 内联:false}
该元素确实通过全局操作呈现了预期的效果:
但是,如果我现在在工作清单中选择一行或几行,那么在将任何内容发送到后端之前,都会出现以下错误(例如,选择了2行)。
如果我仍然选择继续,则将调用该操作,但是有效载荷为空且没有查询参数,因此我的后端无法知道用户为该操作调用的行。
由于该操作旨在将不同的项目捆绑在一起,因此内联调用是不可行的。
任何人都可以帮助调用多个实体的动作吗? 我有什么想念的吗?
最诚挚的问候,
Manuel
(50.0 kB)
因此,根据我自己的尝试和错误,看来我所缺少的是:
1。 无法为Fiori中的多个实体调用绑定动作(不确定,但无法使其起作用)
2。 Fiori Elements仅将实体关键字段自动映射到动作参数(不会弹出用户),而不会将非关键字段映射到动作参数
我得到了以下解决方法:
将操作定义为未绑定,并向Fiori WorkList模板添加ListReport控制器扩展,以便我可以对操作参数进行客户端控制。 我正在使用
从UI5扩展API调用操作https://sapui5.hana.ondemand.com/#/api/sap.suite.ui.generic.template.ListReport.extensionAPI.ExtensionAPI%23methods/invokeActions
你好 曼努埃尔,
我也一直在研究动作,发现您的问题和答案是有帮助的。 感谢您为撰写问题和发表您自己的发现而付出的努力。 享受CAP!
一周热门 更多>