首页 > 编程语言 >SAP HCM 考勤时间冲突到分 源码分析

SAP HCM 考勤时间冲突到分 源码分析

时间:2024-12-22 12:28:52浏览次数:5  
标签:请假 约束 00 考勤 源码 时间 主键 SAP 下图


导读

时间冲突:SAP实施顾问应该都知道时间约束的概念,时间约束是按照主键作为分隔,其中信息类型有个seqnr的流水号字段,是控制时间约束的主要条件,今天分析的2001信息类型,如果日期相同,请假的开始时间与结束时间也相同(这两个字段不是主键),系统如何解决冲突问题。

作者:vivi,来源:osinnovation

一、首先了解下时间冲突的基本配置

下图是信息类型中时间限制选择Z的选项,如果选择Z选项就会读取配置表T554Y的配置,也许很多人看不懂右边表结构的含义,我在截一张图,相信大家就能明白

图片

相信很多人看到下图就应该知道这个地方的含义。这个地方有嵌套两层,最外层是下图显示的地方,我们还可以双击进去,首先介绍下下图的含义,下图是把2开头的考勤信息类型都罗列出来,时间约束类是和缺勤类型关联的。注意看这个地方一定要结合下图与下下图看,因为这两个图片是有关联的。我举个例子说明下,例如我请假是放入2001信息类型,出差是2002信息类型,我事假的时间约束类是01,我出差的时间约束类也是01,那么我们就要考虑出差与请假是否能同时存在,如果不能同时存在我就要双击下图第一行,然后找到2005,时间约束是01,后面对应的反应标志,我设置成A就是相同覆盖,设置E就是不允许保存,如果设置成N就说明没关系。这就是考勤时间冲突的逻辑。

图片

图片

现在我举个例子说明下上面的逻辑,比如我有个缺勤类型名称是事假-》配置缺勤类型的地方有个时间约束,就是对应上图的时间约束类

图片

上面就是考勤信息类型时间冲突系统配置的地方,现在的问题是,系统是如何匹配新的请假时间与老的请假时间是一样的逻辑,原来一直以为系统是根据主键匹配,因为开始时间与结束时间不是联合主键,在加上原来项目的客户说配置不生效,就没深入研究,今天客户说接口遇到同样的问题,今天就认真分析下源代码,看看系统的逻辑是如何把开始时间与结束时间也考虑的,首先是通过函数HR_TIME_COLLISION开始,这个函数是开始时间冲突校验的开始地方,然后关注着函数的form physical_collis,然后在看ts_check_intersection这个form,这个form就是日期与时间都要同时校验。这个form会同时传输ts_new与ts_old两个内表数据,一个是新的数据,一个是老的数据,系统会匹配新来数据的差异。包含开始时间与结束时间。

图片

图片

图片

我们看到源代码在这里会单独去匹配时间,所以不是简答的匹配主键。这里是双层LOOP,一层是新的数据,一层是老的数据,上图红色圈的就是把开始时间与结束时间一并考虑,ge是大于等于意思,gt是大于意思,员工请假时间是2024-12-26 09:00-12:00,WA-ENDUZ=120000,WB-BEGUZ=090000,WB-ENDUZ=120000,WA-BEGUZ=090000。12点是大于9点,所以条件是满足的,intersect就会赋值,如果我新的请假时间是下午14:00-15:00 WA-ENDUZ=150000 WB-BEGUZ=090000 WB-ENDUZ=120000 WA-BEGUZ = 140000,这时候wb-enduz gt wa-beguz就不满足,所以intersect就不会有值,也就是不会冲突。所以系统就能保存成功。

二、现在用一个例子分析下:例如员工请假是2024-12-26 09:00-12:00请事假

图片

现在我复制这条数据保存,所以的数据都是一样,看看下图地方匹配。

图片

图片

图片

图片

图片

图片

标签:请假,约束,00,考勤,源码,时间,主键,SAP,下图
From: https://blog.csdn.net/wl8511/article/details/144644343

相关文章

  • MyBatis-Plus分页拦截器,源码的重构(重构total总数的计算逻辑)
     1.1创建ThreadLocal工具类(作为业务逻辑结果存放类)packageorg.springblade.sample.utils;publicclassQueryContext{ privatestaticfinalThreadLocal<Long>totalInThreadLocal=newThreadLocal<>(); publicstaticvoidsetTotalIn(longtotalIn){ totalInT......
  • 毕业设计-可白嫖源码-springboot校园二手商城(案例分析)
    摘要科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。现代社会越来越多的人追求便捷购物,购买各种各类的商品已经是人们......
  • 武理多媒体信息共享平台(源码+数据库+报告)
    360.基于SpringBoot的武理多媒体信息共享平台,系统包含两种角色:管理员、用户,系统分为前台和后台两大模块二、项目技术编程语言:Java数据库:MySQL项目管理工具:Maven前端技术:Vue后端技术:SpringBoot三、运行环境操作系统:Windows、macOS都可以JDK版本:JDK1.8以上都可以开发......
  • 无人智慧超市管理系统(源码+数据库+报告)
    一、项目介绍基于SpringBoot的无人智慧超市管理系统,系统包含两种角色:管理员、用户,系统分为前台和后台两大模块二、项目技术编程语言:Java数据库:MySQL项目管理工具:Maven前端技术:Vue后端技术:SpringBoot三、运行环境操作系统:Windows、macOS都可以JDK版本:JDK1.8以上都可......
  • 毕业设计-springboot高校二手交易平台管理系统(案例分析)-附源码
    摘 要目前在大学校园内有很多物品可以被再次使用(如:书籍、自行车、电子产品、体育用品、乐器、生活用品等)同时许多同学希望买便宜的商品,这些物品往往得不到很好的处理。而随着Internet的普及,网上购买商品或获取信息已成为现代人的一种生活习惯,高校二手交易平台就是提供了......
  • springboot基于物联网的农产品冷链物流体系研究源码毕设+论文
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着农业产业化的快速发展和消费者对食品安全及品质要求的日益提高,农产品冷链物流体系的建设与完善显得尤为重要。农产品在采摘、加工、储存、运输直......
  • springboot粮仓视频监控系统设计源码毕设+论文
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着农业现代化的不断推进,粮仓作为粮食储存的关键环节,其安全性、效率性和智能化水平日益受到重视。传统的粮仓管理往往依赖于人工巡检,这种方式不仅耗......
  • springboot基于高可用集群的校园博客的搭建与实现源码毕设+论文
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,校园信息化建设日益成为提升教育质量和学生学习体验的重要手段。博客作为一种便捷的信息发布和交流平台,在校园环境中具有广......
  • springboot社区药店系统源码毕设+论文
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着社区医疗服务的不断完善和居民健康意识的日益增强,社区药店作为基层医疗服务的重要组成部分,其运营效率和服务质量直接关系到社区居民的健康福祉。......
  • springboot458家教管理系统(论文+源码)_kaic
    摘 要传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装家教管理系统软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作可以系统化和程序化,同时,家教管理系统的有......