在智能模板中使用BOPF操作

2020-08-30 01:04发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我目前正在尝试使用基于CDS视图的BOPF模型(包括一个简单的操作)来创建BO。 基于此,我想使用智能模板创建一个Fiori应用程序。 BO似乎还可以。 我能够使用BOPF测试ui对其进行测试并执行操作。

使用智能模板生成Fiori应用程序也可以正常工作。 但是,当我尝试执行该应用程序时,没有任何反应。 我进行了更详细的调查,并在Chrome开发人员工具中注意到以下错误消息:

未捕获(承诺)错误:" TestFioriProgModel :: sap.suite.ui.generic.template.ListReport。 view.ListReport :: Zcd_C_Salesorder--action :: ERROR:"未找到强制性的操作值"是无效的ID。

潜在的错误似乎是对服务的调用

/sap/opu/odata/IWFND/CATALOGSERVICE; v = 2/Annotations(TechnicalName ='ZCD_C_SALESORDER_CDS_VAN',Version ='0001')/$ value/

已经从后端返回错误。 返回的文档包含以下值:

 
     
     
     
  

这是我的oData和对象模型注释的样子:

 @ OData.publish:true

 @ ObjectModel.semanticKey:['SalesOrderID']
 @ ObjectModel.representativeKey:'SalesOrderID'
 @ ObjectModel.createEnabled:是
 @ ObjectModel.updateEnabled:是
 @ ObjectModel.deleteEnabled:是
 将视图Zcd_C_Salesorder定义为从Zcd_I_Salesorder中选择
     将[0 .. *]与Zcd_C_Salesorder_Item关联为$ projection.SalesOrderID = _Item.SalesOrderID {
     @ UI.lineItem.position:10
     @ UI.lineItem:[
         {类型:#FOR_ACTION,位置:1,dataAction:'BOPF:SET_OVERALL_STATUS_TO_PAID',标签:'将生命周期状态设置为Paid'}
     ]
     @ Search.defaultSearchElement:true
     @ UI.identification:{职位:10,重要性:#HIGH}
     @ UI.selectionField:{位置:10}
     关键Zcd_I_Salesorder.SalesOrderID,

有人知道这个错误的根本原因是什么以及如何解决它?

谢谢

基督徒

(99.8 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我目前正在尝试使用基于CDS视图的BOPF模型(包括一个简单的操作)来创建BO。 基于此,我想使用智能模板创建一个Fiori应用程序。 BO似乎还可以。 我能够使用BOPF测试ui对其进行测试并执行操作。

使用智能模板生成Fiori应用程序也可以正常工作。 但是,当我尝试执行该应用程序时,没有任何反应。 我进行了更详细的调查,并在Chrome开发人员工具中注意到以下错误消息:

未捕获(承诺)错误:" TestFioriProgModel :: sap.suite.ui.generic.template.ListReport。 view.ListReport :: Zcd_C_Salesorder--action :: ERROR:"未找到强制性的操作值"是无效的ID。

潜在的错误似乎是对服务的调用

/sap/opu/odata/IWFND/CATALOGSERVICE; v = 2/Annotations(TechnicalName ='ZCD_C_SALESORDER_CDS_VAN',Version ='0001')/$ value/

已经从后端返回错误。 返回的文档包含以下值:

 
     
     
     
  

这是我的oData和对象模型注释的样子:

 @ OData.publish:true

 @ ObjectModel.semanticKey:['SalesOrderID']
 @ ObjectModel.representativeKey:'SalesOrderID'
 @ ObjectModel.createEnabled:是
 @ ObjectModel.updateEnabled:是
 @ ObjectModel.deleteEnabled:是
 将视图Zcd_C_Salesorder定义为从Zcd_I_Salesorder中选择
     将[0 .. *]与Zcd_C_Salesorder_Item关联为$ projection.SalesOrderID = _Item.SalesOrderID {
     @ UI.lineItem.position:10
     @ UI.lineItem:[
         {类型:#FOR_ACTION,位置:1,dataAction:'BOPF:SET_OVERALL_STATUS_TO_PAID',标签:'将生命周期状态设置为Paid'}
     ]
     @ Search.defaultSearchElement:true
     @ UI.identification:{职位:10,重要性:#HIGH}
     @ UI.selectionField:{位置:10}
     关键Zcd_I_Salesorder.SalesOrderID,

有人知道这个错误的根本原因是什么以及如何解决它?

谢谢

基督徒

(99.8 kB)
付费偷看设置
发送
10条回答
当学会了学习
1楼 · 2020-08-30 01:07.采纳回答

大家好,

在无法解决问题之后,我尝试使用另一个后端系统再次实现该方案。 这一切都按预期进行。 我收到错误的系统是SAP NW ABAP开发版(7.50 SP2)。 对于工作版本,我使用了SAP NW ABAP 7.50 SP4系统。

因此,我怀疑错误的原因是后端系统的版本。

希望这会有所帮助,

基督徒

路亽曱_Ryan
2楼-- · 2020-08-30 01:13

嗨,马丁,

感谢您的回复。 但是,BOPF操作本身可以。 我可以使用BOPF测试工具执行它。 在这种情况下不会发生错误。

似乎不起作用的是调用目录服务(/sap/opu/odata/IWFND/CATALOGSERVICE)时对注释的解释。

克里斯蒂安

大家好,

我也必须处理这个问题。

看来注释模型已被同步损坏。

注意2820290解决了该问题

克劳斯

Baoming ROSE
4楼-- · 2020-08-30 01:12

您好,托马斯,蒂尔曼,

我检查了您的两个建议。 一切似乎都还可以。 导出类型为"节点",导出多样性为" 1:1"。 动作名称也与CDS注释中的名称相同。

还有其他想法吗? 也许我需要从头开始构建一个示例,而不是尝试遵循教程...

基督徒

xfwsx85
5楼-- · 2020-08-30 01:08

嗨,基督徒,

我 建议在执行BOPF操作时调用的框架方法中设置一个断点:

/BOBF/CL_FRW

/BOBF/IF_FRW_SERVICE_LAYER〜DO_ACTION

如果这样做没有帮助,您还可以检查是否引发了BOPF异常。 要在BOPF异常根类

/BOBF/CX_FRW

的构造函数中设置一个断点,希望对您有所帮助!

干杯,

马丁

ZJXianG
6楼-- · 2020-08-30 01:26

嗨,克里斯蒂安,

对不起,您回答的太迟了。 没有电子邮件通知;-)

不幸的是,我不知道从哪里开始。 也许BOPF团队的成员之一可以给我们提示吗?

顺便说一句:答案中不可能提到其他用户吗?

马丁

ZJXianG
7楼-- · 2020-08-30 01:23
# p#

你好,克里斯蒂安,

能否请确保将BOPF操作配置为导出类型"节点"和导出多重性" 1:1"?

最诚挚的问候
Tilmann

一周热门 更多>