SAP 进程:关于值与帮助请求

首先,如果您对屏幕流逻辑及其在 SAP 中的用法一无所知,我们建议您查看我们的对话程序教程

现在,让我们详细了解 POH 和 POV。

帮助请求处理 (POH):F1 帮助

  • 每当按下 F1 键时,就会执行指定数据元素的 POH 事件。
  • 如果屏幕处理逻辑中不存在 PROCESS ON HELP-REQUEST 事件,则以 ABAP 字典中字段的文档为基础并显示。即使不存在,也不会显示帮助。
  • 要显示字段帮助文档,您必须在 POH 事件中编写以下屏幕流逻辑:
PROCESS ON HELP-REQUEST
FIELD <f> [MODULE <mod>] WITH <num>
  • 如果字段 有屏幕专用数据元素文档,您可以通过指定其编号 来显示它。
  • 编号 可以是字面量或变量。变量必须在相应的 ABAP 程序中声明和填充。
  • 请注意,在 PROCESS ON HELP-REQUEST 事件中,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)功能时,系统会显示字段的可能输入值(值、检查表、匹配码),前提是它们已由开发人员存储。
  • 如果用户调用了“可能的值”,则始终会处理 PROCESS ON VALUE-REQUEST 事件。
  • 要定义屏幕字段的可能值,您需要在屏幕流逻辑的 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 的全部内容。如有任何疑问,请在评论区留言。