将带有内置函数的计算值传递给TYPE数据导入参数语法错误

2020-09-20 05:12发布

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

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


我想使用CL_DEMO_OUTPUT显示一些调试值。 一个是内部表的行数。 我写了这样的东西:

数据:gt_tab TYPE字符串标签。

 cl_demo_output => new(
   )-> write_data(行(gt_tab)
   )-> display()。

我很惊讶地发现语法上不正确并且不能编译(751SP02)。

作为类型确定失败或没有足够信息时的首选方法,我调整了行以提供一些帮助:

 cl_demo_output => new(
   )-> write_data(CONV i(lines(gt_tab))
   )-> display()。
 

这现在会导致语法警告:

这对我来说似乎很奇怪,因为如果多余的话,我应该可以将其忽略。

我查看了write_data的参数接口,试图找出它是通过值传递还是通过引用传递通用导入参数是否有所不同,但这似乎没有任何区别。 尽管使用TYPE ANY而不是TYPE数据(?!),但有什么不同。 我的印象是它们的作用相同,如今数据将成为使用的数据(如果您必须使用通用参数)。 在文档中,我也找不到关于它们行为不同的任何提示:

"任何泛型都可以像此处列出的所有泛型一样,除了数据和对象之外,只能在TYPE之后直接指定,并且在那里具有与泛型数据完全相同的效果。" (

https ://help.sap.com/http.svc/rc/abapdocu_752_index_htm/7.52/zh-CN/index.htm?file = abenbuilt_in_types_generic.htm )

(1.9 kB)

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

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


我想使用CL_DEMO_OUTPUT显示一些调试值。 一个是内部表的行数。 我写了这样的东西:

数据:gt_tab TYPE字符串标签。

 cl_demo_output => new(
   )-> write_data(行(gt_tab)
   )-> display()。

我很惊讶地发现语法上不正确并且不能编译(751SP02)。

作为类型确定失败或没有足够信息时的首选方法,我调整了行以提供一些帮助:

 cl_demo_output => new(
   )-> write_data(CONV i(lines(gt_tab))
   )-> display()。
 

这现在会导致语法警告:

这对我来说似乎很奇怪,因为如果多余的话,我应该可以将其忽略。

我查看了write_data的参数接口,试图找出它是通过值传递还是通过引用传递通用导入参数是否有所不同,但这似乎没有任何区别。 尽管使用TYPE ANY而不是TYPE数据(?!),但有什么不同。 我的印象是它们的作用相同,如今数据将成为使用的数据(如果您必须使用通用参数)。 在文档中,我也找不到关于它们行为不同的任何提示:

"任何泛型都可以像此处列出的所有泛型一样,除了数据和对象之外,只能在TYPE之后直接指定,并且在那里具有与泛型数据完全相同的效果。" (

https ://help.sap.com/http.svc/rc/abapdocu_752_index_htm/7.52/zh-CN/index.htm?file = abenbuilt_in_types_generic.htm )

(1.9 kB)
付费偷看设置
发送
5条回答
小熊yu生菜
1楼 · 2020-09-20 06:15.采纳回答

我会说错误。 TYPE数据和TYPE any的行为应相同。 作为CL_DEMO_OUTPUT的作者,我永远不会想到该语法错误。 我将其报告给内核开发,并希望进行更正。 如果没有,则必须记录数据和任何数据之间的差异,我将在CL_DEMO_OUTPUT中键入的参数更改为任何。

ZJXianG
2楼-- · 2020-09-20 06:03

您能否以文本形式提供代码,以便我们可以在不同版本上进行测试? 谢谢!

蓋茨
3楼-- · 2020-09-20 06:17
wang628962
4楼-- · 2020-09-20 05:52
谢谢。 与7.31和7.52完全相同。
我是小鹏鹏啊
5楼-- · 2020-09-20 06:12

您还可以使用WRITE和DISPLAY方法。 它们已经使用ANY输入了。

一周热门 更多>