CDS视图激活错误(教程)

2020-08-26 06:57发布

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

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


大家好,

我刚刚安装了AS ABAP 752 SP04开发人员版本,并开始通过制作此处提供的教程来尝试创建CDS视图:

https://help.sap .com/viewer/cc0c305d2fab47bd808adcad3ca7ee9d/1709.000/zh-CN/a7ef7d66047e4a779c0d5f996b8fcc34.html

不幸的是,当尝试激活CDS视图时,出现以下错误消息。

DDLS ZDEMO_CDS_SALESORDERITEM未激活

还有我第一次尝试中没有的第二个错误:

DDL源ZDEMO_CDS_SALESORDERITEM包含错误

有人知道出什么问题吗? 我感到困惑是因为我复制了源代码1并粘贴了它们。

--------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---

源代码:

@ AbapCatalog.sqlViewName:'ZDEMO_SOI_001'
@ AbapCatalog.compiler.compareFilter:true
@ AbapCatalog.preserveKey:true
@ AccessControl.authorizationCheck:#CHECK
@ EndUserText.label:' 销售订单项目的列表报告'
@ OData.publish:正确

将视图ZDEMO_CDS_SalesOrderItem定义为从SEPM_I_SalesOrderItem_E中选择的项目{
key Item.SalesOrder作为SalesOrderID,
key Item.SalesOrderItem作为 ItemPosition,
Item._SalesOrder._Customer.CompanyName作为CompanyName,
Item.Product作为产品,
@ Semantics.currencyCode:true
Item.TransactionCurrency作为CurrencyCode,
@ Semantics.amount。 currencyCode:'CurrencyCode'
Item.GrossAmountInTransacCurrency作为GrossAmount,
@ Semantics.amount.currencyCode:'CurrencyCode'
Item.NetAmountInTransactionCurrency作为NetAmount,
@ Semantics.amount.currencyCode:'CurrencyCode'< br> Item.TaxAmountInTransactionCurrency作为TaxAmount,
Item.ProductAvailabilityStatus作为ProductAvailabilityStatus

非常感谢!

最诚挚的问候。

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

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


大家好,

我刚刚安装了AS ABAP 752 SP04开发人员版本,并开始通过制作此处提供的教程来尝试创建CDS视图:

https://help.sap .com/viewer/cc0c305d2fab47bd808adcad3ca7ee9d/1709.000/zh-CN/a7ef7d66047e4a779c0d5f996b8fcc34.html

不幸的是,当尝试激活CDS视图时,出现以下错误消息。

DDLS ZDEMO_CDS_SALESORDERITEM未激活

还有我第一次尝试中没有的第二个错误:

DDL源ZDEMO_CDS_SALESORDERITEM包含错误

有人知道出什么问题吗? 我感到困惑是因为我复制了源代码1并粘贴了它们。

--------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---

源代码:

@ AbapCatalog.sqlViewName:'ZDEMO_SOI_001'
@ AbapCatalog.compiler.compareFilter:true
@ AbapCatalog.preserveKey:true
@ AccessControl.authorizationCheck:#CHECK
@ EndUserText.label:' 销售订单项目的列表报告'
@ OData.publish:正确

将视图ZDEMO_CDS_SalesOrderItem定义为从SEPM_I_SalesOrderItem_E中选择的项目{
key Item.SalesOrder作为SalesOrderID,
key Item.SalesOrderItem作为 ItemPosition,
Item._SalesOrder._Customer.CompanyName作为CompanyName,
Item.Product作为产品,
@ Semantics.currencyCode:true
Item.TransactionCurrency作为CurrencyCode,
@ Semantics.amount。 currencyCode:'CurrencyCode'
Item.GrossAmountInTransacCurrency作为GrossAmount,
@ Semantics.amount.currencyCode:'CurrencyCode'
Item.NetAmountInTransactionCurrency作为NetAmount,
@ Semantics.amount.currencyCode:'CurrencyCode'< br> Item.TaxAmountInTransactionCurrency作为TaxAmount,
Item.ProductAvailabilityStatus作为ProductAvailabilityStatus

非常感谢!

最诚挚的问候。

付费偷看设置
发送
6条回答
haha101010
1楼 · 2020-08-26 07:31.采纳回答

1。 尝试从以下位置更改代码:@ AbapCatalog.sqlViewName:'ZDEMO_SOI_001'

至:@ AbapCatalog.sqlViewName:'ZDEMO_SOI'

*

因为:

您的代码说:@ AbapCatalog.sqlViewName:'ZDEMO_SOI_001'

但是示例代码说:@ AbapCatalog.sqlViewName:'ZDEMO_SOI'

2。 您有2条额外的语句(不在示例代码中)。

您是否尝试过删除多余的2行(示例代码中没有这些行)?

@ AbapCatalog.preserveKey:true
*

*
@ OData.publish:正确

3。 您是否曾尝试将此语句放在示例代码的两行中(而不是代码中的一行):

定义视图ZDEMO_CDS_SalesOrderItem

从SEPM_I_SalesOrderItem_E中选择作为项

4。 在代码之后,在示例代码末尾的自己的全新行上插入右括号:

}

5。 另外,我建议您使间隔看起来与示例代码中的间隔完全一样

6。 您是否应该创建一个视图:view ZDEMO_CDS_SalesOrderItem

7。 启用; 确保您的代码成功激活,没有错误/信息消息

半个程序猿
2楼-- · 2020-08-26 07:45

您是否可以尝试提供错误屏幕截图和代码屏幕截图。

何必丶何苦呢
3楼-- · 2020-08-26 07:49

您好 乔安娜,

非常感谢您的快速回复。 很有帮助

无论如何,我无法输入'ZDEMO_SOI',因为它已经存在于系统中,所以我收到了错误消息" ZDEMO_SOI已被定义为结构或表"

但是将其重命名为ZDEMO_SOI2确实有帮助。

您的其他观点很有帮助。 该错误已修复。 无论如何,仍然存在一个错误,我正在尝试解决:
没有对实体ZDEMO_CDS_SALESORDERITEM的访问控制。 创建DCL或使用annot。 AccessControl [访问控制管理]

源代码:

@ AbapCatalog.sqlViewName:'ZDEMO_SOI2'
@ AbapCatalog.compiler.compareFilter:true
@ AccessControl.authorizationCheck:#CHECK
@ EndUserText.label:'销售订单项目的列表报告'

将视图ZDEMO_CDS_SalesOrderItem
定义为SEPM_I_SalesOrderItem_E作为项{
键Item.SalesOrder作为SalesOrderID,将
键Item.SalesOrderItem作为ItemPosition,将
Item._SalesOrder._Customer.CompanyName作为CompanyName,
Item.Product作为产品,
@ Semantics.currencyCode:true
Item.TransactionCurrency作为CurrencyCode,
@ Semantics.amount.currencyCode:'CurrencyCode'
Item.GrossAmountInTransacCurrency作为GrossAmount,< br> @ Semantics.amount.currencyCode:'CurrencyCode'
Item.NetAmountInTransactionCurrency作为NetAmount,
@ Semantics.amount.currencyCode:'CurrencyCode'
Item.TaxAmountInTransactionCurrency作为TaxAmount,
Item.ProductAvailabilityStatus作为 ProductAvailabilityStatus
}

微wx笑
4楼-- · 2020-08-26 07:48

这只是警告,无法实施授权 因为未创建访问控制。 如果未定义访问控制,请使用以下注释。

 @ AccessControl.authorizationCheck:#NOT_REQUIRED 
Climb_Ma
5楼-- · 2020-08-26 07:27

data-definition-zdemo-cds-salesorderitem-npl.jpg

//@ Mahesh Kumar Palavalli:这是屏幕截图!

Violet凡
6楼-- · 2020-08-26 07:29

太好了! 谢谢!

一周热门 更多>