如何从SAP脚本调用子例程

2020-09-01 00:41发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)朋友, 谁能告诉我如何从sap...

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

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


朋友,

谁能告诉我如何从sap脚本中调用子例程。

谢谢。

马赫什语

5条回答
CJones
2020-09-01 01:29

PERFORM ... ENDPERFORM命令

SAP注释号:41302

症状

使用新的Release 3.0C命令PERFORM .. ENDPERFORM从SAPscript布局集中调用的FORM例程的接口语法应如何显示?

在表单程序中如何处理输入值或返回值?

其他关键字

PERFORM,ENDPERFORM,SAPscript,用户出口

原因和先决条件

在CD在线文档中,描述了从SAPscript启动FORM例程,但没有描述ABAP/4程序中FORM例程定义的确切语法。

解决方案

ABAP/4中的表单例程,可通过以下命令行调用:

/:在程序prog/中执行表格:使用&invar1&

/:使用&invar2&.../:更改&outvar1&/:更改&outvar2&.../:ENDPERFORM

必须在ABAP/4报告中定义如下:

FORM表格表格IN_TAB结构ITCSY OUT_TAB结构ITCSY .... ENDFORM。

重要:

以'/:USING ...'传递的变量invar1,invar2等是任何类型的SAPscript符号。 它们的名称和值可以在内部表IN_TAB中找到。 请记住,由于字段VALUE在结构ITCSY中拥有域TDSYMVALUE,因此将这些值作为字符串传输到FORM例程。 在FORM例程中访问变量invar1的示例; 然后将invar1的值以例程形式传递给变量LOC_INVAR1:

...使用键名='INVAR1'读取表IN_TAB.LOC_INVAR1 = IN_TAB值。

重要:

内部表OUT_TAB包含PERFORM命令中CHANGING参数的名称和值。 这些参数是本地文本符号,即字符字段。

在FORM例程中返回变量OUTVAR1的示例; 值outvar1的值来自LOC_OUTVAR1:

...使用键名='OUTVAR1'读表OUT_TAB。

如果SY-SUBRC =0。OUT_TAB-VALUE = LOC_OUTVAR1。 修改OUT_TAB索引SY-TABIX。ENDIF。

重要:

在SAP脚本替换模块(例如TEXT_SYMBOL_REPLACE或TEXT_INCLUDE_REPLACE)中未执行PERFORM命令。 替换模块只能替换符号值或扩展包含文本,但不能解释SAPscript控制命令。

警告:您不应该在ITCSY-VALUE字段中使用数字字段(例如,键入I),因为这些字段在此处显示为右对齐。 为了安全起见,请限制长度

致谢

sathish

一周热门 更多>