如果使用通用报表工具,例如 SAP 查询和信息集查询,则使用查询生成器自动生成源代码。以这种方式生成的源代码受"查询生成器"和"查询定义"的生成逻辑控制。
使用 SAP 查询中提供的查询生成器,您可以在信息集级别配置查询逻辑。当您想要定义查询以满足不同要求时,这将为您提供更大的灵活性。
您可以使用切换进行设置,查询生成器会对其进行处理。可以使用常规切换和信息类型特定的切换。
查询生成器自动生成源代码。
开关具有以下类型:
- 常规切换:
常规切换用于控制对整个信息集有效的设置。
- 信息类型特定切换:
信息类型特定的开关控制为每个信息类型定义的设置。
常规切换
以下列表包含常规开关及其描述的示例:
常规切换
| 常规切换 | 描述 |
|---|---|
| BL_ALLOW DUP_LINES | 在基本清单中输出相同(双)行 |
| REPORT_CLASS | 设置报表类别(PNP 和 PNPCE) |
| PROCESS_LOCKED_RECORDS | 处理锁定的数据记录(PNP 和 PNPCE) |
| PROC_PERNR_PARTIAL_AUT | 处理仅部分授权可用的人员(PNP 和 PNPCE) |
| PERSON_ONLY_ONCE | 每个人员仅处理一次 (PNPCE) |
信息类型特定切换
以下列表包含信息类型特定切换及其描述的示例:
| 信息类型特定切换 | 描述 |
|---|---|
| LAST_RECORD_ONLY | 仅处理最后一个数据记录 |
| 提供 | 合并相邻或重叠数据记录 |
| PROVIDE_FIELD | 选择合并数据记录的相关字段 |
| PRIMARY_INFTY | 确定与主要信息类型(信息类型视图)的信息类型关系 |
| TIME_DEPENDENCE | 确定时间相关性 |
| DATA_REQUIRED | 确定所需数据记录的存在 |
| SPLIT_DATA_REQUIRED | 确定拆分期间所需的数据记录是否存在 |
| NO_INDIRECT_EVALUATION | 指定不计算间接报告的工资项 |
| IGNORE_WAGE_TYPE_OPERA | 忽略操作标识(针对扣减工资项) |
| NO_DUPLICATE_LANGU | 仅用一种语言确定要输出的数据记录。 |
| CASE_SENSITIVE_SEL | 确定区分大小写的选择 |
| ADD_FIELDS_SPLIT_DEP | 确定视为与拆分相关的 HR 附加字段 |
| SPLIT_DEPENDENT_AF | 确定与拆分相关的 HR 附加字段的技术名称 |
| SPLIT_INDEPENDENT_AF | 确定与拆分无关的 HR 附加字段的技术名称 |
有关开关及其使用方式的详细信息,请参阅定制活动 为 HR 创建信息集 的文档。要访问这些定制活动,请选择 → 人事管理 → 人力资源信息系统 → SAP 查询的 HR 设置 → 为 HR 创建信息集 。
- "请两人一组通过私聊讨论下列问题"。
- "您将有 5 分钟的时间与您的搭档进行讨论,然后我们会按组进行简要总结"。
- 向两人团队签字。
- 提醒学员如何使用私聊功能。
- 说明此活动的目的是讨论白板或 PPT 幻灯片上的问题。
- 提问多组回答问题,当组开始重复其他组表达的内容时停止,以此方式进行总结。
- 提醒学员积极参与课堂讨论,并在学员手册中记录感兴趣的信息。
- 在白板上写出组名。
- 在整个组总结期间,在白板上记录学员的建议,用于即时讨论以及日后参考或分发。
示例 - 常规切换
REPORT_CLASS 开关用于定义报表类别,以控制选择屏幕的结构。此报表类别概念适用于逻辑数据库 PNP 和 PNPCE。基于两个逻辑数据库中的任何一个的每个报表,都可以分配到特定的报表类别。
在定制中维护报表类别,路径为 人事管理 → 人力资源信息系统 → 报告 → 调整标准选择屏幕 → 创建报表类别 。
根据信息集所基于的逻辑数据库,在标准系统中分配缺省报表类别。如果信息集基于逻辑数据库 PNP,则使用报表类别 ___X2001。如果此报表类别不存在,则使用报表类别 ___22002。如果信息集基于逻辑数据库 PNPCE,则使用报表类别 QUEPNPCE。
由于 PNP 和 PNPCE 使用不同的报表类别,因此必须确保为信息类型中使用的逻辑数据库创建指定的报表类别。
注意
- REPORT_CLASS 开关不能用于基于逻辑数据库 PNP 和 PNPCE 以外的数据库的信息集。
- 由于每个查询都是生成的报表,因此也可以将报表类别分配给查询。
- 特殊查询不使用逻辑数据库的数据选择屏幕来定义选择条件。特殊查询中报表类别的说明没有明显的影响。
开关示例如下:
- *$HR$ [COMMON]
- *$HR$ REPORT_CLASS = ’0MYREPCL’
示例 - 信息类型特定切换

查询中显示的所有信息类型并不总是存在数据。缺省情况下,查询显示不存在数据记录的人员或对象的初始值。或者,您可以选择不显示不存在数据记录的人员或对象。为此,请使用 DATA_REQUIRED 开关。如果设置此开关,则仅当评估期间内至少存在一个数据记录时才会显示人员或对象。
DATA_REQUIRED 开关可设置为以下任意一个值:
- "X"= 仅显示评估期间内至少具有一个数据记录的人员和对象。
- ""= 这是默认值。显示满足选择条件的所有人员和对象。如果这些人员或对象之一不存在数据记录,则会显示初始值。
DATA_REQUIRED 开关的示例如下:
类似的开关 SPLIT_DATA_REQUIRED 允许更多控制。
- *$HR$ [P0004]
- *$HR$ DATA_REQUIRED = ’X’
在信息集中切换的使用 - 步骤 1
输入短文本并选择创建。然后选择逻辑数据库 PNPCE。
在信息集中使用切换 - 步骤 2
要进行信息集特定设置,请在 更改信息集 <信息集名称> 屏幕上选择 转到 → 代码 → 数据 。
在信息集中切换的使用 - 步骤 3
在右侧屏幕区域(编码标签或编码部分 DATA)中,输入所需设置的开关和值。请参阅定制中的文档,路径为 SAP 查询的 HR 设置 → 为 HR 创建信息集 。
常规开关具有以下语法:
- *$HR$ [COMMON]
- *$HR$ NAME_OF_SWITCH = "VALUE"
信息类型特定切换(NNNN = 信息类型编号)具有以下语法:
- 信息类型的定义
- *$HR$ [PNNNN]
- *$HR$ NAME_OF_SWITCH = "VALUE"
- 不同信息类型的说明
- *$HR$ [P0000, P0004, P0006]
- 范围说明
- *$HR$ [P0006 # P0009]
- 模板或占位符(+ 代表一个字符,* 代表多个字符)
- *$HR$ [P00++]
- *$HR$ [P*]
- *$HR$ [P0+1*]
在信息集中使用切换 - 步骤 4
检查生成的查询代码。
在查询的维护事务中,选择 查询 → 更多功能 → 显示报表名称 。
在 ABAP 编辑器中,输入 <报表名称> → 显示并查找 "HR-LOG"。