是否可以在CDS视图定义中取消CAST警告? (NW 7.5)

2020-08-27 11:33发布

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

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


我们使用的是Netweaver 7.5。 我只是从使用CDS进行生产应用开始。 我在使用CAST的地方有一个简单的CDS视图。 在ADT中,我收到警告:

从CHAR转换为NUMC类型的USRID:目标类型长度太小,数据丢失。

仅源字段应具有目标类型和长度。 我已经对各种不良数据进行了测试,并且对它们的处理方式(截断)也很好。

是否可以禁止显示警告? 为此是否有一些实用的东西? 还是永远不要做一个坏主意,这意味着我应该更改视图并处理CDS以外的内容? (最后一个听起来不正确...)

请对我保持温柔,因为我说我才刚刚开始。 :)

谢谢!

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

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


我们使用的是Netweaver 7.5。 我只是从使用CDS进行生产应用开始。 我在使用CAST的地方有一个简单的CDS视图。 在ADT中,我收到警告:

从CHAR转换为NUMC类型的USRID:目标类型长度太小,数据丢失。

仅源字段应具有目标类型和长度。 我已经对各种不良数据进行了测试,并且对它们的处理方式(截断)也很好。

是否可以禁止显示警告? 为此是否有一些实用的东西? 还是永远不要做一个坏主意,这意味着我应该更改视图并处理CDS以外的内容? (最后一个听起来不正确...)

请对我保持温柔,因为我说我才刚刚开始。 :)

谢谢!

付费偷看设置
发送
3条回答
DafaDDDa
1楼 · 2020-08-27 12:02.采纳回答

知道了...首先使用子字符串:

 cast(substring(usstring(usrid,1,8)as abap.numc(8))as my_field,

这解决了语法警告并给出了预期的结果。

感谢任何对此有所考虑的人,希望我的解决方案对您有所帮助。

spaceman01
2楼-- · 2020-08-27 11:54

感谢您的链接。 是的,这是我正在执行的语法警告,但我认为我确实希望视图中的结果字段强制转换为较短的类型。 由于结果集中的该字段预期为PERNR,因此它将用作PERNR,有可能在程序的下一步中从另一个PA表中进行选择。

问题是,是否有其他方法可以得到结果但避免语法错误? 或者我是否可以使用诸如pragma这样的语句来抑制语法错误,即:"嘿,我已经考虑过这一点,而且我真的很想这样做?"

槿木_熙
3楼-- · 2020-08-27 11:53

嗨,

您应该阅读 cast_expr,转换规则

源类型CHAR和SSTRING

  • 类似字符的目标类型
可能的目标类型是CHAR,SSTRING,NUMC,CLNT,LANG,DATS,TIMS,UNIT和CUKY。
  • 将字符串作为左对齐的字符串(包括前导空格)写入目标字段。 如果目标类型太短,则字符串将在右侧被截断,并出现语法检查警告。 如果目标字段太长,则会在右边用空格填充。
  • 对于数字文本NUMC的特殊目标类型以及DATS和TIMS的日期/时间类型,没有特殊处理。 建议仅转换有效值。 对于目标类型NUMC,可以使用内置函数LPAD创建前导零。

一周热门 更多>