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程序中声明并填写。
  • 注意,FIELD语句不会传输屏幕字段的内容到 ABAP 程序中的 PROCESS ON HELP-REQUEST 事件。它只显示帮助文档。就是这样。

模块在 ABAP 程序中定义,就像普通的 PAI 模块一样。模块的处理逻辑必须确保为相关字段显示足够的帮助。您不应使用文本字段调用额外的屏幕,而应使用以下函数模块之一来显示合适的 SAP脚本文件

帮助对象显示字段

  • 此功能模块显示来自 ABAP 词典的任何结构或数据库表的组件的数据元素文档。
  • 将组件和结构或表的名称传递给导入参数 FIELD 和 TABLE。

帮助对象显示

  • 使用此功能模块显示任何 SAP脚本文档。
  • 您必须将文档类别(例如,TX 表示一般文本,DE 表示数据元素文档)和文档名称传递给导入参数 DOKCLASS 和 DOKNAME。
  • 由于技术原因,您还必须将行类型为 TLINE 的空内部表传递给功能模块的表参数。

价值流程(POV):F4

  • 当用户选择功能“可能的条目”(F4)时,系统将显示字段的可能输入值(值、检查表、匹配代码),前提是它们由开发人员存储。
  • 如果用户调用了“可能的条目”,则始终会处理事件 PROCESS ON VALUE-REQUEST。
  • 要定义屏幕上字段的可能值,您需要在屏幕流逻辑的 POV 事件中定义以下内容:
PROCESS ON VALUE-REQUEST

FIELD field name MODULE module name
  • 对于可能的值,在上面定义的模块中,您应该使用通用函数模块 帮助值获取表 从 ABAP 字典中获取可能的值。

还有一些其他函数也可用于输入帮助:

F4IF_FIELD_VALUE_请求

  • 动态调用 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_值_请求

  • 此函数模块显示您在 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 的全部内容。如有任何疑问,请留下您的评论。