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

 

导读

时间冲突: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请事假

图片

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

图片

图片

图片

图片

图片

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/493923.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《庐山派从入门到...》板载按键启动!

《庐山派从入门到...》板载按键启动! 《庐山派从入门到...》板载按键启动! 视频内容大致如下 我们之前了解了GPIO的输出模式使用方法,并且成功点灯,很明显本篇要来分享的自然是GPIO的输入模式 正好回顾一下之前学的python基础包…

分布式协同 - 分布式事务_TCC解决方案

文章目录 导图Pre流程图2PC VS 3PC VS TCC2PC(Two-Phase Commit,二阶段提交)3PC(Three-Phase Commit,三阶段提交)TCC(Try-Confirm-Cancel)2PC、3PC与TCC的区别2PC、3PC与TCC的联系 导…

新版国标GB28181设备端Android版EasyGBD支持国标GB28181-2022,支持语音对讲,支持位置上报,开源在Github

经过近3个月的迭代开发,新版本的国标GB28181设备端EasyGBD安卓Android版终于在昨天发布到Github了,最新的EasyGBD支持了国标GB28181-2022版,还支持了语音对讲、位置上报、本地录像等功能,比原有GB28181-2016版的EasyGBD更加高效、…

YOLO-World:Real-Time Open-Vocabulary Object Detection

目录 摘要 Abstract YOLO-World 1 模型架构 1.1 Text Encoder 1.2 YOLO Backbone 2 RepVL-PAN 2.1 T-CSPLayer 2.2 I-Pooling Attention 2.3 预测 3 消融实验 3.1 预训练数据 3.2 RepVL-PAN的消融实验 3.3 文本编码器 4 效果展示 4.1 零样本 4.2 根据词汇表检…

MySQL -- 库的相关操作

目录 查看数据库 创建数据库 直接创建: 加约束条件 if not exists 字符集和校对规则 什么是字符集 什么是校对规则 校对规则的主要功能 校对规则的特性 查看指定的数据库使用的字符集和校对规则: 比较是否区分大小写字母差异 显示创建语句 …

【spring-cloud-gateway总结】

文章目录 什么是gateway如何导入gateway依赖路由配置gateway配置断路器导包配置 什么是gateway 在微服务架构中,gateway网关是一个服务,它作为系统的唯一入口点,处理所有的客户端请求,然后将这些请求路由到适当的服务。提供了几个…

mac iterm2 使用 lrzsz

前言 mac os 终端不支持使用 rz sz 上传下载文件,本文提供解决方法。 mac 上安装 brew install lrzsz两个脚本 注意:/usr/local/bin/iterm2-send-zmodem.sh 中的 sz命令路径要和你mac 上 sz 命令路径一致。 /usr/local/bin/iterm2-recv-zmodem.sh 中…

数智化医院分布式计算框架融合人工智能方向初步实现与能力转换浅析

人工智能中心计算机 一、引言 1.1 研究背景与意义 近年来,人工智能(Artificial Intelligence,AI)与大数据技术的迅猛发展为医疗行业带来了前所未有的变革机遇。医疗领域积累了海量的数据,如电子病历(Elec…

airflow docker 安装

mkdir -p /root/airflow cd /root/airflow && mkdir -p ./dags ./logs ./plugins ./configcd /root/airflow/ wget https://airflow.apache.org/docs/apache-airflow/2.10.4/docker-compose.yaml nano docker-compose.yamlAIRFLOW__CORE__LOAD_EXAMPLES: false #初始化…

【数据安全】如何保证其安全

数据安全风险 数字经济时代,数据已成为重要的生产要素。智慧城市、智慧政务的建设,正以数据为核心,推动城市管理的智能化和公共服务的优化。然而,公共数据开放共享与隐私保护之间的矛盾日益凸显,如何在确保数据安全的…

springboot463学生信息管理系统论文(论文+源码)_kaic

摘 要 使用旧方法对学生信息管理系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在学生信息管理系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的学…

postman读取文件执行

要从文件获取的变量 text 在pre-request 中写从文件获取数据的脚本。脚本实现了,设置了text默认值,从文件读取text列,将text存入环境变量 //获取text参数 var text "济南天气"; if(data.text){ text data.text } pm.environment.…

我的个人博客正式上线了!

我的个人博客终于上线啦点此访问 经过一番折腾,我的个人博客终于上线啦!这是一个属于我自己的小天地,可以用来记录生活点滴、技术分享以及一些随想。 在这里,我想分享一下搭建博客的整个过程和心得体会。 为什么要搭建博客&…

摩尔信使MThings的逻辑控制功能范例

数值自增控制 数值自增/自减控制流程可广泛应用于生产线控制、工业机器人轨迹跟踪、输送带速度调整、空间环境模拟、炼油厂加热炉温度控制、啤酒和制药发酵过程控制、造纸机水分和基重控制以及多回路瞬态热流跟踪控制等多个领域,通过精确调整和优化关键参数&#xf…

高效处理PDF文件的终极工具:构建一个多功能PDF转换器

在日常工作中,处理PDF文件几乎是每个人都不可避免的任务。无论是从PDF中提取数据、合并多个PDF文件,还是处理文件中的敏感信息和图像,PDF文件的处理都可能成为繁琐且耗时的工作。如果你是数据分析师、工程师,或者从事文档管理的工…

ROS1入门教程3:自定义消息

一、新建项目 # 创建工作空间 mkdir -p demo3/src# 创建功能包 catkin_create_pkg demo roscpp rosmsg message_generation# 打开功能包 cd src/demo 二、创建自定义消息 # 创建消息目录 mkdir msg# 打开消息目录 cd msg# 创建消息文件 vim User.msg# 定义消息字段 string n…

《Java核心技术I》Swing的滑动条

滑动条 组合框在离散值中选择,滚动条从连续值中选择。 构造滑动条最常用方法:var slider new JSlider(min,max,initaValue); 如果忽略参数,最大值,最小值,初始值分别为0,100,50. 垂直滑动条,new JSlid…

STM32单片机使用CAN协议进行通信

CAN总线(控制器局域网总线) 理论知识 CAN总线是由BOSCH公司开发的一种简洁易用、传输速度快、易扩展、可靠性高的串行通信总线 CAN总线特征 两根通信线(CAN_H、CAN_L),线路少,无需共地差分信号通信&…

基础爬虫案例实战

我们已经学习了多进程、requests、正则表达式的基本用法,但还没有完整地实现过一个爬取案例。这一节,我们就来实现一个完整的网站爬虫,把前面学习的知识点串联起来,同时加深对这些知识点的理解。 准备工作 我们需要先做好如下准备工作。 安…

网络安全防范

实践内容 学习总结 PDR,$$P^2$$DR安全模型。 防火墙(Firewall): 网络访问控制机制,布置在网际间通信的唯一通道上。 不足:无法防护内部威胁,无法阻止非网络传播形式的病毒,安全策略…