SAP HR 逻辑数据库PNP简单说明

        逻辑数据库是专门在逻辑数据库生成器中编辑的开发对象,其核心价值在于为其他ABAP程序提供来自分层树结构节点的数据访问能力。尽管在SAP的最新帮助文档中,逻辑数据库被标记为已过时的,但是在HR模块中仍然被广泛使用,提供读取和处理人力资源相关数据所需的基本功能。此处仅针对人事管理PNP逻辑数据库做说明。

PNP逻辑数据库特点:

        1. 选择屏幕可根据需要进行配置,其中已预置了常用的人员相关的筛选字段(事件AT SELECTION-SCREEN OUTPUT下通过代码控制也能实现,不建议),配置路径如下

程序->属性->下图

在如下页面,可以选择新建或者使用标准报表类

        2. GET PERNR 节点

该节点在START-OF-SELECTION和END-OF-SELECTION事件流之间,逻辑数据库的筛选逻辑以及信息类型取值逻辑均在这一步骤处理,使用REJECT语句可直接终止该节点,执行END-OF-SELECTION事件流。

虽然GET PERNR节点是循环执行,但是和LOOP不一样,在该节点下对逻辑数据库选择屏幕参数进行更改会生效,但是不是立即生效;该步骤内部逻辑是将员工分包处理,更改选择屏幕参数后,当前包内的员工执行完,进行下一个包的处理时会生效。

毕竟是被标记为过时的语法,在逻辑数据库中对大数据量表取值效率并不能得到很好的优化,还有比如大量使用如下语法时,会在某些场景下出现一些奇怪的现象,比如extliml大于extlimu

PROVIDE {*|{comp1 comp2 ...}} FROM itab1

        BETWEEN extliml AND extlimu.

常用如下宏获取信息类型在某个时间段最新的分段数据

rp_provide_from_last p0001 space pn-begda pn-endda.

一般结合字段pn-sw-found判断宏是否有取到值

常用参数:

pnp_sw_skip_pernr 在GET PERNR 之前使用

默认 'Y'  只要没有该人员任何信息类型任何一条数据的权限,则该人员不会出现在pernr 节点下。

'N'. 该人员会出现在pernr 节点下,但是无权限的数据 不回 出现在信息类型的数据表中。

当pnp_sw_skip_pernr = 'N'.时,如果需要使用逻辑数据库权限过滤人员,由于此时所有人均会走GET PERNR节点,所以需要增加人员过滤逻辑。pnp_sw_skip_pernr = 'Y' 时会过滤人员,因此无需增加逻辑,但是会弹出页面显示无权限人员条目数。

pn-begps   pn-endps 人员名单筛选期间-选择屏幕参数

pn-begda   pn-endda 数据筛选期间-选择屏幕参数

pnpselop 逻辑数据库选择屏幕控制-选择屏幕参数

pnptimed 控制时间选项-选择屏幕参数

CASE pnptimed.

    WHEN space. pnptimr6 = 'X'.

    WHEN 'D'.   pnptimr1 = 'X'.

    WHEN 'M'.   pnptimr2 = 'X'.

    WHEN 'Y'.   pnptimr3 = 'X'.

    WHEN 'P'.   pnptimr4 = 'X'.

    WHEN 'F'.   pnptimr5 = 'X'.

  ENDCASE.

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值