SAP请假使员工和经理能够执行管理请假和其他缺勤所需的所有任务。SAP请假请求数据存储在不同的透明表中,而不是存储在SAP时间信息类型表(如PA2001、PA2002、PA2003)和CATS数据库表CATSDB中。
在所有三个应用程序并行运行的应用程序环境中,这暂停了同步所有三个数据库的一些挑战。我在这里描述我们在最近的实现中采用的方法。我希望在我们所采用的方法的局限性/优点的表格中对此场景有更多的输入,数据和大数据,这将有助于社区。
将休假申请数据转移到HR时间信息类型表。
使用程序RPTARQPOST。这个程序读取请假数据并相应地更新PA2001。例如,如果员工已批准从2014年7月1日到2014年7月5日的休假,则该计划将在PA2001中创建一个从2014年7月1日到2014年7月5日的条目。每天或定期安排此计划不是一个理想的解决方案,因为在这种情况下,人力资源信息类型不会随休假数据实时更新,而是根据计划计划在延迟后更新。我们用定义休假审批工作流最后一步的方法调用了一个SUBMIT语句来更新数据库,
***调用report RPTARQPOST将数据传输到infotype PA2001(如果有)
SUBMIT RPTARQPOST WITH ppernr=ls\u leave\u data-owner-pernr
WITH ign='X'并返回。
在上述语句中,IGN='X'指示程序仅向HR时间信息类型发送批准的休假。
将休假申请数据传输到CATSDB。
使用BAPI\u CATIMESHEETMGR\u INSERT更新CATSDB。这里需要注意的要点是,
1)请假数据不按天存储在请假表中。例如,对于5天休假,休假表中不会有单独的条目(每天一条)。而在CATSDB表中,数据是每天存储的,因为它是时间表数据。
2)SAP应用程序会自动更正申请的多天休假的错误时间。例如,如果员工从2014年3月1日开始连续8天的工作计划是6、12、12、10、10、10、10、10、10小时,那么他/她从3月1日到3月8日申请的假期将累计到每个工作计划的80小时假期。我们的假期少于或超过80小时将被SAP标准应用程序更正回80小时。SAP休假申请在执行上述检查时还考虑了替代(PA2003)。
3)对于单日休假,员工可以根据公司政策预订半天或全天休假。但是,标准应用程序不会阻止员工输入8小时工作日的6小时休假。
4)员工或其主管可以编辑或删除已批准的休假,包括员工可以延长休假、提前休假、,增加或减少休假天数。
应相应制定更新CATSDB和分配CATSDB每天休假时间的逻辑。在休假删除场景中,BAPI\u CATIMESHEETMGR\u DELETE非常有用。应在CATSDB中创建状态为30(已批准)的新条目。对于已批准休假的任何新更改,首先删除现有记录(不进行物理删除,但使用BAPI将CATSDB条目的状态标记为60),然后创建新条目。删除现有条目时,使用BAPI\ U CATIMESHEETRECORD\ U GETLIST读取现有条目(特别是计数器)。
使用FM HR\ U PERSOL\ U work\ U schedule读取员工的工作日程。在返回工作进度表时,此FM还考虑了替换。它在确定如何分配每天的休假时数时很有用。
可以在工作流步骤内调用上述BAPI进行数据更新。
为什么不先更新CATSDB,然后运行CAT6将CATSDB数据传输到HR信息类型?
CAT6将时间表数据移动到HR信息类型,而不是休假数据。在CATSDB表中,条目是每天存储的,采用这种方法将在PA2001中为休假的每一天创建多个条目,因此员工将在休假请求中看到多个行(例如,5天休假应用了5行)。这是不方便和不准确的,因为申请将显示每天作为一个单独的假期。
如果有一些缺勤是直接从猫,而不是从休假申请?在这种情况下运行CAT6会影响PA2001条目吗?
如果在CATS中直接输入某个A/A类型,然后运行CAT6来更新HR数据,它将覆盖RPTARQPOST创建的现有PA2001条目。遗憾的是,SAP没有提供CAT6上的选择标准,以允许传输选择性的a/a类型。
为了避免CAT6选择使用BAPI创建的条目,在更新CATSDB的工作流方法中,我们将BAPI创建的条目的状态更改为"1",即传输。以这种方式更新暂存表PTEX2000确保CAT6不会从休假审批工作流中选择BAPI更新的条目。
PTEX2000-STATUT2='1'。
PTEX2000-statu3='1'。
谢谢Parag,这是一个非常有用的博客!
我有一个小问题,
"4)员工或其主管可以编辑或删除已经批准的休假,
在IT-2001中更新/发布休假申请后,批准状态将变为预订状态,
员工是否可以取消预订的休假申请?如果是,是否需要主管批准取消?
Hi Moon,
是的,我们可以使用CATS\u APPR\u LITE,使用处理状态:30,已批准并执行,在下一屏幕中,选择时间条目并单击删除。
感谢
Siva
Hi Siva,实时数据采集系统,
感谢您的回复。
"我们可以使用CATS\u APPR\u LITE,使用处理状态:30,已批准并执行,在下一个屏幕中,选择时间条目并单击删除。"
您的意思是当员工取消预订的休假请求时,员工的经理需要执行您上面提到的操作来批准员工的取消吗?
谢谢
月亮
根据标准惯例,请假申请
a)只能由经理批准或拒绝;审批人的安全配置文件、工作流程和屏幕属性应据此建立。
b)审批人采取行动后,将反馈给请求人,请求人可以取消/修改请假申请-修改后的申请将被取消返回给审批人。
c)审批后,请假请求将更新IT 2001至解锁。
感谢Jagan的回复。
审批后的请假请求状态将在发布后更改为已预订。
可能这就是您所说的"c)审批后,请假请求将更新IT 2001至解锁。",物联网应用,您能告诉我您的想法吗"解锁"是什么意思?
谢谢
月亮