通过选择屏幕将表参数传递给FM

时间:2016-08-25 10:38:41

标签: report sap abap function-module

我需要在程序中调用一个具有表类型作为导入参数的函数。我想过用选择屏幕做这个,但我不能用深层结构作为参数。当我'TEST'那个功能模块它向我展示了一个我可以添加多个条目并最终提交所有内容的东西。我可以在执行程序时得到类似的东西吗? 编辑:我必须提供一个调用功能模块create_skill_profile的程序。 function module import 1

function module code 1 2

function module code 2 3

2 个答案:

答案 0 :(得分:1)

您可以在报告中调用功能模块RS_COMPLEX_OBJECT_EDIT以编辑复杂结构。这是用于在功能模块单次测试中编辑测试数据的相同功能模块。

因此,在您的报告中,您可以询问所需类型的名称(如果必须是动态类型),然后,在选择开始时,您可以创建此类型的数据对象,将其传递给RS_COMPLEX_OBJECT_EDIT,让用户填写它。

RS_COMPLEX_OBJECT_EDIT的严重限制是它无法处理已排序或散列的表作为输入。因此,复杂结构的所有组件,如果它们是表类型,则必须是标准表。

答案 1 :(得分:0)

我的理解:你想调用一个需要一个表作为导入参数的功能模块。表格的行由用户输入填充。行数是动态的。

的方法: 1)使用具有预定义输入字段的选择屏幕并通过PAI动态显示/隐藏它们(AT SELECTION-SCREEN(在xxx上)。在屏幕上循环。)然后构建你的表并在START-OF-SELECTION上调用你的功能模块。

2)显示带表结构的可编辑ALV网格。实现应用程序工具栏按钮或使用SAVE按钮让用户在完成插入输入后调用功能模块。

虽然自定义输入验证有点棘手,但我确实更喜欢2)。但是,如果所需的用户输入与ddic定义的表结构相同,则输入验证会自动发生。