SAP价值流程&帮助请求流程-011
首先,如果您对屏幕流逻辑及其在SAP中的用法一无所知,我们建议您查看我们的对话程序教程
现在,让我们详细研究一下POH和POV
帮助请求 (POH) 流程 : F1 帮助
- 每当按下 F1 时,都会执行指定数据元素的 POH 事件。
- 如果屏幕的流程逻辑中不存在“HELP 请求上的流程”事件,则 ABAP 字典中该字段的文档将作为基础并显示。即使没有退出,也不会显示任何帮助。
- 若要显示字段帮助文档,必须在 POH 事件中对以下屏幕流逻辑进行编码:
PROCESS ON HELP-REQUEST
FIELD <f> [MODULE <mod>] WITH <num>
- 如果字段 具有特定于屏幕的数据元素文档,则可以通过指定其编号来显示它。
- 数字 可以是文本或变量。必须在相应的 ABAP 程序中声明并填写该变量。
- 请注意,FIELD 语句不会将屏幕字段 的内容传输到“处理帮助请求”事件中的 ABAP 程序。它只是显示帮助文档。就是这样。
模块在 ABAP 程序中定义,就像普通的 PAI 模块一样。模块的处理逻辑必须确保为相关字段显示足够的帮助。与其调用带有文本字段的额外屏幕,不如使用以下函数模块之一来显示合适的 SAPscript 文档
HELP_OBJECT_SHOW_FOR_FIELD
- 此函数模块显示 ABAP 字典中任何结构或数据库表的组件的数据元素文档。
- 将组件和结构或表的名称传递给导入参数 FIELD 和 TABLE。
HELP_OBJECT_SHOW
- 使用此功能模块可以显示任何 SAPscript 文档。
- 必须将文档类(例如,TX 用于常规文本,DE 用于数据元素文档)和文档名称传递给导入参数 DOKCLASS 和 DOKNAME。
- 出于技术原因,还必须将行类型为 TLINE 的空内部表传递给函数模块的 tables 参数。
值处理 (POV):F4
- 当用户选择可能条目(F4)功能时,系统将显示字段的可能输入值(值,校验表,匹配码),前提是它们由开发人员存储。
- 如果用户调用了“可能的条目”,则始终处理值请求上的事件进程。
- 要定义屏幕上字段的可能值,您需要在屏幕流逻辑的 POV 事件中定义以下内容:
PROCESS ON VALUE-REQUEST
FIELD field name MODULE module name
- 对于可能值,在上面定义的模块中,应使用常规函数模块HELP_VALUES_GET_WITH_TABLE从 ABAP 字典中获取可能的值。
还有一些其他功能也可用于输入帮助:
F4IF_FIELD_VALUE_REQUEST
- 动态调用 ABAP 字典的输入帮助。
- 可以将 ABAP 字典的结构或数据库表的组件名称传递给导入参数 TABNAME 和 FIELDNAME 中的函数模块。
- 函数模块启动此组件的 ABAP 字典输入帮助。读取所有相关的屏幕字段。
- 如果指定导入参数 DYNPPROG、DYNPNR 和 DYNPROFIELD,则用户的选择将返回到屏幕上的相应字段。
- 如果将表参数指定RETURN_TAB,则所选内容将返回到表中。
MODULE VALUE_CARRIER INPUT.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
TABNAME = 'DEMOF4HELP'
FIELDNAME = 'CARRIER1'
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD= 'CARRIER'.
ENDMODULE.
F4IF_INT_TABLE_VALUE_REQUEST
- 此函数模块显示您在 ABAP 程序中创建的值列表。
- 值列表作为表参数传递给函数模块VALUE_TAB。
- 如果指定导入参数 DYNPPROG、DYNPNR 和 DYNPROFIELD,则用户的选择将返回到屏幕上的相应字段。
- 如果将表参数指定RETURN_TAB,则所选内容将返回到表中。
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'CONNID'
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD = 'CONNECTION'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = VALUES_TAB.
这就是POH和POV的全部内容。如有任何疑问,请留下您的评论。
参考:https://www.guru99.com/process-on-value-help.html