SuccessFactors-cpi-SAP 错误重复机制

news2024/11/27 23:57:28

系统做复杂的模型不是全量传输,最复杂的是增量模型,增量模型的设计完善,程序的复杂度几何倍增长,今天就讨论下SuccessFactor与HCM集成的增量原理。

    首先我们看看同步步骤,见下图

 

fe51a1d9dc2ae05f8f519eba55bbd5dc.png

同步过程中有多次数据交互,所以同步的日志不仅能在HCM系统中查询,在SuccessFactors中也能查询相关数据,而且还有相关报表导出,方便数据核对。

首先我们看看从HCM发送抽取命令, 发送语句如下:

 

a256b6d71922d72c765808f675b809e0.png

 

SELECT  associated_employee_information,email_information,employment_information,job_information,payment_information,person,personal_information,phone_information from CompoundEmployee WHERE replicationTargetSystem = 'CLNTHMDxxx' AND replicationContentType IN ('EMPLOYEE_MASTER_DATA','EMPLOYEE_ORG_ASSIGNMENT') AND   last_modified_on >= to_datetime('2022-06-30T14:10:43Z')  AND isContingentWorker IN ('0') AND effective_end_date >= to_date('2021-05-01') AND hiringNotCompleted = 'false'

 

注意:SF的API分两种一种是SFAPI,一种是ODATAAPI,SFAPI基本用于标准集成CPI包,其他基本都是用odataapi.

问题:系统为什么会用SFAPI,下面分析下使用sfapi的的场景。

 

我们可以用soupui工具验证SFAPI的使用场景,

步骤是:①登入获取session;

            ②通过session查询数据。

中国的API地址是:https://api15.sapsf.cn/sfapi/v1/soap?wsdl 

 

67d0647f20bee329f6eb1ce1acbd1587.png

 

确定后右边会有树形结构,其中核心方法就登入login与查询query

 

 

00d8dabc53207aad40f063eb2895fb85.png

 

我们先登入,登入需要输入公司标识,用户名,密码相关输入参数,点上面绿色的执行,就能获取到session信息。

 

 

0a57b1dc8ba044856c83438e4b0014e3.jpeg

 

然后复制session信息到下图红色方框内并输入查询语句,右边就是返回的数据

 

 

ccb9ca5547e71250ca452e8943ab3f27.png

 

 

8bfd1a0b54bf720eb19447402e3710e7.png

 

 

现在我们做一次测试,我在前台修改Email相关信息,修改时间是2022-07-01-23点左右,格林威治标准时间2022-07-01T14:59:29.000Z

 

 

5f3c9b5b0dc5af96448ee955229ec568.png

 

如果我多一秒,数据就无法获取到,

 

 

6505404a14197602e8d879f10a4dbdfd.png

 

CompoundEmployee是一个汇总表,select后面的每个表的last_modified_on的时间都会和HCM发送过来的SQL语句对比,只要其中一张表的数据满足条件,这个人相关的信息都会组装成XML文件传输回来,select后面的表名,就是配置的模板对象。

 

6330ae5b91d957bf379561b84f3e3248.png

所以为什么CPI的集成包用SFapi,就是因为封装一层。

-----------------------------------------------------------------------------

下面看看HCM发送query语句界面,不输入修改日期与输入修改日期,sql是如何组装,首先是不输入日期,SAP每次发送query,都有一张表存储发送的状态并记录发送时间与接受时间,如果收到的数据在SAP中处理完毕,状态就会更新成成功,下次发送query就会以这个时间作为基准。

 

7390f78fff66c1dac0799902c5b8b08c.png

 

cdd8b4b3cbe3f7dd3d197b64711639e5.png

 

41548d41ec0273b7da61190b2fdd13e7.png

 

然后是输入修改日期,因为没输入分秒,所以就是24小时内的都获取

 

51a1807ce6551eec383c113dd7b63468.png

 

 

cb4fb6f0e854f6207648ed3302b530bf.png

所以上述就是增量模式的概念,每次发送query并不是获取全量数据,如果把下面的时间全部删除,系统其实就是全量抽取,前提是配置模板时候有个初始化时间

 

41548d41ec0273b7da61190b2fdd13e7.png

----------------------------------------------------------------------------

上面描述的API的区别,下面介绍的是HCM处理数据后,需要把员工状态返回给EC,这样下次HCM发送query语句的时候,除根据时间,SF还会抓取失败的员工,因为员工在HCM复制失败后,ec有个状态存储。

发送消息需要单独配置,配置步骤如下:

1 需要在CPI中单独复制一个场景包并配置相关参数

 

 

7033a9bc190f3bcecc2d0c42fe459c01.png

 

eb58e343ef1a3136dfdd5f2a9b1e05cd.png

 

299d3bb256b99ce7c2f9c1b168a1e256.png

 

7b477bd446f26ecd1dc027d2b54a943e.png

2 需要在HCM端激活相关的webservice

 

3619955b5e13c9e71214661b99601cc6.png

 

 

46278ed5ae9edd445ad7392e7c8bf086.png

 

3 需要配置是否开启通知开关,在这里找很久

 

 

346c8816ce4f32f0955174945ab37aca.png

4 t77s0需要新增一个配置选项

 

 

e722ea3779e04609ff2458a5ff7b4f0a.png

以上是相关的配置工作。

 

下面是程序源代码位置,有兴趣可以研究下,我开始配置一直没反应,就是通过这段源代码去查,有个表的激活没打上。

 

 

f2fc024b5a4df451d6126f2d4444b076.png

 

 

4205be95ca4d69d8dacd2f07764bc0b1.png

在配置过程中,SF段也需要配置相关参数,这里就不描述,因为涉及到后台,没权限。下图是CPI报错的提示,涉及到部分SF的配置问题

 

bc64a11f270ec8b627a29bc97750e623.png

 

 

04831a962246c4d02db1f7db07265996.png

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时序预测 | Python实现VMD-CNN-LSTM时间序列预测

时序预测 | Python实现VMD-CNN-LSTM时间序列预测 目录 时序预测 | Python实现VMD-CNN-LSTM时间序列预测预测效果基本介绍模型描述代码设计预测效果 基本介绍 VMD-CNN-LSTM 是一种混合深度学习模型,结合了变分模态分解(VMD)、卷积神经网络(CNN)和长短期记忆网络(LSTM)的…

探索创新前沿,ATFX出席CriptoSummit峰会,共商数字资产市场生态构建

发现、连接并转变您的数字金融愿景。3月20日,以数字资产生态构建和多元化配置为主题的CriptoSummit峰会在智利首都圣地亚哥盛大召开。大会汇聚了智利和拉丁美洲的领导人、学术专家和数字资产爱好者,历时8小时的深度对话与交流,不仅吸引了500余…

Sublime Text4 4169 安装激活【亲测可用】

此教程用于Windows 下Sublime Text4 4169版本的安装和激活。 无需安装其他软件,无需下载替换文件,无需注册机等。 官网: https://www.sublimetext.com 下载地址 64位:https://download.sublimetext.com/sublime_text_build_41…

使用Redis集合List实现消息队列

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型…

人体姿态识别项目 | 在EdgeTPU平台部署人体姿态识别算法

项目应用场景 面向 EdgeTPU 边缘计算设备平台上部署人体姿态识别算法 项目效果: 项目细节 > 具体参见项目 README.md (1) 安装依赖 sh install_requirements.sh (2) 执行图片检测示例 python3 simple_pose.py (3) 执行视频检测示例 python3 pose_camera.py# …

与鲸同行,智领未来!和鲸科技“人工智能+X”学科建设合作交流会(北京站)圆满结束!

在国家加快发展新质生产力的大背景下,3月25日下午,和鲸科技 2024 年“人工智能X”学科建设合作交流会(北京站)暨“AIX”实验室建设与供应商选型座谈会顺利召开。为提供更为集中和专业的讨论环境,本次会议特别采取闭门审…

JUC:java内存模型(如何保证?可见性、原子性、有序性)

文章目录 java内存模型可见性解决方法 原子性有序性流水线技术 模式之Balking(犹豫) java内存模型 JMM 即 Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着 CPU 寄存器、缓存、硬件内存、CPU 指令优化等。 JMM 体现在以下几个方面 &#x…

从0到1:兼职招聘小程序开发笔记(一)

可行性分析 兼职招聘小程序:为雇主和求职者提供便利的平台,旨在帮助雇主招聘兼职员工,并让求职者寻找合适的兼职工作。提供简单、快捷的方式来匹配兼职岗位和候选人,节省了招聘和求职的时间和精力。其主要功能模块包括&#xff1…

C语言数据结构易错知识点(6)(快速排序、归并排序、计数排序)

快速排序属于交换排序,交换排序还有冒泡排序,这个太简单了,这里就不再讲解。 归并排序和快速排序都是采用分治法实现的排序,理解它们对分支思想的感悟会更深。 计数排序属于非比较排序,在数据集中的情况下可以考虑使…

详细分析Mysql中的STR_TO_DATE基本知识(全)

目录 前言1. 基本知识2. Demo3. 实战Demo4. Sql彩蛋4.1 LPAD函数4.2 SUBSTRING_INDEX函数 5. Java彩蛋 前言 对于该知识点,主要因为数据库类型为String(类似2024-03-26),放置于后端操作后,需要自定义比较,…

LLaMA-Factory微调(sft)ChatGLM3-6B保姆教程

LLaMA-Factory微调(sft)ChatGLM3-6B保姆教程 准备 1、下载 下载LLaMA-Factory下载ChatGLM3-6B下载ChatGLM3windows下载CUDA ToolKit 12.1 (本人是在windows进行训练的,显卡GTX 1660 Ti) CUDA安装完毕后&#xff0c…

HCIP---MGRE和GRE实验

一、配置ip R1: [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [R1-GigabitEthernet0/0/0]int s4/0/0 [R1-Serial4/0/0]ip add 15.1.1.1 24 [R1]ip route-static 0.0.0.0 0 15.1.1.5 R2: [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip add 192.168.2.2…

GROBID库文献解析

1. 起因 由于某些原因需要在大量的文献中查找相关内容,手动实在是太慢了,所以选择了GROBID库进行文献批量解析 2. GROBID介绍 GROBID是一个机器学习库,用于将PDF等原始文档提取、解析和re-structuring为结构化的XML/TEI编码文档&#xff0…

C++第十四弹---模板初阶

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、泛型编程 2、函数模板 2.1、函数模板的概念 2.2、函数模板的格式 2.3、函数模板的原理 2.4、函数模板的实例化 2.5、模板参数的匹配原则 …

【学习】如何成为资深的软件测试工程师“大神”?

一个优秀的软件测试工程师不仅需要有深厚的技术知识和经验,还需要有良好的沟通能力、分析能力和问题解决能力。总的来说,一个"大神"一样的软件测试工程师应该是一个全面的技术专家,同时还需要有出色的沟通和问题解决能力&#xff0…

Mac 版 IDEA 中配置 GitLab

一、安装Git 在mac终端输入Git检测指令&#xff0c;可以通过git命令查看Git是否安装过&#xff0c;如果没有则会弹出安装按钮&#xff0c;如果安装过则会输出如下信息。 WMBdeMacBook-Pro:~ WENBO$ git usage: git [--version] [--help] [-C <path>] [-c namevalue][--…

ubuntu23.10配置RUST开发环境

系统版本: gcc版本 下载rustup安装脚本: curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh下载完成后会自动执行 选择默认安装选项 添加cargo安装目录到环境变量 vim ~/.bashrc 默认已添加 使用环境变量立即生效 source ~/.bashrc 执行rust开发环境,在终端输入…

深度剖析:计算机集群在大数据体系中的关键角色和技术要点

什么是计算机集群&#xff1f; 计算机集群是一组相互连接的计算机&#xff08;服务器&#xff09;&#xff0c;它们协同工作以完成共同的任务。集群中的每个计算机节点都可以独立运行&#xff0c;但它们通过网络连接在一起&#xff0c;以实现更高的可靠性、性能和可扩展性。 典…

给虚拟机配置静态IP并使用FileZIlla在虚拟机和Windows之间传输文件(ssh和ftp两种方法)

一、配置操作系统网络 &#x1f338;下面的步骤主要是配置虚拟机的静态IP&#xff0c;方便后续用 FikeZilla 在windows和虚拟机之间传输文件&#xff08;否则用默认的ip分配方案为 DHCP ,每一次开机时的ip都是有可能不同的,这样就会导致每次远程连接都需要查看ip地址.&#xf…

Python | 非规则矩形投影添加斑马线边框

前言 在地图绘制领域&#xff0c;非规则投影的示例相对较少&#xff0c;通过几个python的示例可以更好地理解如何在不同投影类型和边界形状下绘制地图。 以下提供了一系列示例&#xff0c;演示了如何在地图中添加非规则边界和边框。这些示例涵盖了不同的投影类型和边界形状&a…