功能模块问题

2020-08-19 02:07发布

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

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


嗨,阿帕,

我有SAP BW背景。我使用过一个功能模块,但有一个问题。functiom模块用于拼写输入的数字,例如213,如果输入,输出必须为213

我执行它时收到错误消息:

类型1以外的程序的参数只能在screenFUNCTION zspellamount的开始/结束之间使用。

下面是代码


*" ------------------------------------------ ----------------------------
*" *"本地接口:
*" ------- -------------------------------------------------- -------------

数据结果类型拼写。
参数num_1类型i。


调用函数'SPELL_AMOUNT'
导出
数量= num_1
currency =''
填充=''
语言= sy-langu
IMPORTING
in_words =结果。

如果sy-subrc < >0。

写:"返回的值是:",sy-subrc。
ELSE。
写:"字数是:",结果字。
ENDIF。< br>。
ENDFUNCTION。

请帮助

谢谢你们

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

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


嗨,阿帕,

我有SAP BW背景。我使用过一个功能模块,但有一个问题。functiom模块用于拼写输入的数字,例如213,如果输入,输出必须为213

我执行它时收到错误消息:

类型1以外的程序的参数只能在screenFUNCTION zspellamount的开始/结束之间使用。

下面是代码


*" ------------------------------------------ ----------------------------
*" *"本地接口:
*" ------- -------------------------------------------------- -------------

数据结果类型拼写。
参数num_1类型i。


调用函数'SPELL_AMOUNT'
导出
数量= num_1
currency =''
填充=''
语言= sy-langu
IMPORTING
in_words =结果。

如果sy-subrc < >0。

写:"返回的值是:",sy-subrc。
ELSE。
写:"字数是:",结果字。
ENDIF。< br>。
ENDFUNCTION。

请帮助

谢谢你们

付费偷看设置
发送
5条回答
野沐沐
1楼-- · 2020-08-19 02:59

您的错误与标准功能模块SPELL_AMOUNT没有关系。 它与您的自定义功能模块ZSPELLAMOUNT中的语法错误有关。 您不能在功能模块中分配选择屏幕参数。

>>类型1以外的程序的参数只能在屏幕的开始/结束之间使用

可以这样解决:

数据结果类型拼写。
 "参数num_1 TYPE i。"您在这里不能拥有!
 数据num_1类型i。  "用这个代替!
 现在,您需要在功能模块界面中导入参数
 ",然后将该值移至变量num_1
 "(或直接使用FM SPELL_AMOUNT使用该导入参数代替num_1)
代楠1984
2楼-- · 2020-08-19 02:51

sivarama krishna murthy ,请继续回答您的公开问题。

  • 评论答案或您的问题是否还有未解决的问题。
  • 否则将答案标记为接受,如果它可以帮助您解决问题
  • 或发布您自己的答案并接受 如果您自己找到了另一个有用的解决方案
  • ,或者将您的问题重定向到另一个相关且对解决您的问题有用的问题
  • 最后,请关闭您的问题
奄奄一息的小鱼
3楼-- · 2020-08-19 03:02

sivarama krishna murthy

我在下面使用了以下代码 正常的报告程序及其对我的正常工作。

数据结果类型拼写。
 参数num_1 TYPE i。

 通话功能" SPELL_AMOUNT"
   出口
     数量= num_1
     货币=''
     填充=''
     语言= sy-langu
   输入
     in_words =结果。

 如果sy-subrc <> 0。
   WRITE:"返回的值是:",sy-subrc。
 其他。
   写:"字数为:",结果字。
 ENDIF。

现在的问题是,您在哪里编写了此代码?

您是否已在任何Class方法或功能模块中编写了此代码? 然后您就完全错了,不应该在那里声明任何参数,而是需要使用那里可用的IMPORT/EXPORT参数。 建议您阅读同一文档。

致谢!

南山jay
4楼-- · 2020-08-19 02:50

sivarama krishna murthy ,如果您因其他错误而陷入困境,请告诉我,但您需要做的第一件事是通过DATA而不是PARAMETERS声明num_1变量。

然后,当然,您需要为ZSPELLAMOUNT函数使用输入和输出参数(IMPORTING,EXPORTING),以便使用例如" 输入NUM_1,然后以"导出"一个单词,例如 输入STRING。 查看功能SPELL_AMOUNT如何定义其导入和导出参数,并尝试对您的功能模块以及报表RF_SPELL进行类似操作,以了解在该报表中如何使用FM SPELL_AMOUNT。

侧 注意:在为函数定义IMPORTING和EXPORTING参数时,它们是从内部函数模块视图中命名和使用的

  • 我要导入以处理请求的内容以及要导出以给出响应的内容 ?

从其他程序调用或使用功能模块时(例如 另一个报表,功能模块或类方法),则导出和导入是相反的,从外部功能模块视图查看被调用的FM

  • 我该导出到该FM以处理我的请求的内容 我应该从FM导入什么以获取响应?
哎,真难
5楼-- · 2020-08-19 02:49
sivarama krishna murthy ,如果要创建功能模块,请确保将输入定义为导入参数的一部分,并 输出定义为导出参数的一部分。 您甚至可以引用任何简单的标准功能模块并检查其设计方式。

一周热门 更多>