首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

增强开发指南:使用自开发程序同步IT0001中员工岗位分配到IT1001人岗分配关系

在SAP HCM系统中使用LSMW或者Batch Input程序批量处理员工入职或者员工异动时,时常会出现员工在IT0001组织分配信息类型中有岗位和组织单元分配,但却没有相应的职位(S)和员工之间的分配关系(A/B 008)关系建立。这种情况会对系统的使用造成以下的影响:

1)用TCODE PPOME/PPOSE在相应的组织机构下看不到该员工;

2)结构化授权不能控制和分配该员工的访问权限;

3)使用PCH逻辑数据库开发的报表,通过组织机构和评估路径也检索不到该员工;

4)使用PNP/PNPCE逻辑数据库开发的报表,如果在应用工具条中选择组织机构作为选择条件,也检索不到该员工。

通常情况下,可以使用以下办法解决上述问题:

1)如果批量倒入数据,可以单独导入岗位和员工之间的任职关系分配记录到IT1001;

2)手工运行TCODE OOPH,通过员工IT0001 的职位数据自动建立IT1001中人岗分配记录,但TCODE OOPH的界面选择条件很多,普通用户很难正确使用。而且该程序生成的批输入会话还需要使用TCODE SM35去运行才能真正更新数据库记录。

3)也可以手工使用PO13建立IT1001 中S-A008-P关系数据,但如果批量倒入数据,数据量比较大,该方法手工维护的工作量比较大。

4)在批输入程序中编写代码在CALL TRANSCATION PA40 后再使用函数RH_INSERT_INFTY 插入一条S-A008-P的记录。

最近在一个SAP HR 优化项目上,应该几个统计分析报表都是基于PCH逻辑数据编写,所以对于没有S-P 关系记录的员工就无法读取个统计, 造成漏统计的情况,特地开发了一个工具程序,可以让用户方便地查询哪些员工在IT0001中有职位,但没有IT1001中的 S-A/B008-P 关系,同时可以自动一键生成关系数据。

该程序首先检查该员工是否在IT0001中有职位分配(不是虚拟职位99999999),如果有职位分配,使用函数RH_READ_INFTY_1001读取并查询是否有IT1001 的人岗关系记录。如果没有,则列表显示。如果选择生成记录,在IT0001 中有多条记录的情况下,程序选择屏幕选择期间内有效的最后一条IT0001的记录,使用函数RH_INSERT_INFTY去生成IT1001记录,记录的开始日期可以为IT0001记录的开始日期,或者屏幕上输入的开始日期,结束日期可以为99991231。

该工具程序的选择屏幕界面如下:

用户选择日期区间和员工选择条件,如果选择测试运行,可以查询哪些员工存在没有人岗分配关系记录。

如果发现有存在这个情况的员工,可以去选择测试运行,程序自动根据IT1001中职位信息,自动插入IT1001中的人岗分配关系信息,并提示用户关系的更新状态。

在以下情况下,程序会阻止更新并提示相关信息:

1)岗位(S)或者员工(P)被另外一个用户锁定,导致IT1001记录不能插入;

2)员工所在的工资范围的控制记录处于发布工资核算状态。

3)新的IT1001的关系(S-P)记录的开始时间在员工工资核算最早回算日期之前;

对于情况1)可以等用户解锁该员工,再次运行该程序;对于情况2),可以选择工资数据修正,然后再次运行该程序;对于情况3),可以在选择屏幕上输入一个晚于工资核算最早回算日期作为新关系的开始日期。此时系统并不会自动在IT0001 中同步创建新开始日期的记录,也不会触发工资的自动回算。

附:程序代码(略)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181226G1JL5Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券