HRMD IDOC modification - date fields in E1PITYP and E1Pnnnn lead to errors

本文详细解析了SAP系统中IDOC数据同步的工作原理及结构组成。重点介绍了更新模式下IDOC如何处理HR主数据与组织数据,包括数据删除与插入的过程。并通过示例展示了IDOC层次结构及各段落的功能。


It is caused by improper IDOC data, please refer to SAP Note 1795606 & 134085.


Below are main points of these 2 notes:

In general terms, when an iDoc is posted in UPDATE mode, for each infotype and subtype sent, the data existing in the target between E1PITYP-BEGDA and E1PITYP-ENDDA will be DELETED. Then, the data contained below in the corresponding E1Pnnnn segment(s) is INSERTED in the database (please note that idocs with INSERT mode do not behave like that: they will first delete the full object, and then will create it again from the data contained in the idoc, if that is possible).


The IDoc for HR master and organistion data is set up in a hierarchy such as the following example shows:
IDoc 0000000000100030 Current status: 64
     |__ Control record direction: Inbound sender: LS/  /AHRCLNT003
     |__ Data records total number: 000018
     |   |__ E1PLOGI segment: 000001 header for an HR object
     |      |__ E1PITYP segment: 000002  HR: HR: trasported
     |      |     |__ E1P0000 segment: 000003  HR: Infotyp 0000
     |      |__ E1PITYP segment: 000004  HR: HR: transported
     |      |     |__ E1P0001 segment: 000005  HR: Infotyp 0001
     |      |__ E1PITYP segment: 000006  HR: HR: transported
     |      |     |__ E1P0002 segment: 000007  HR: Infotyp 0002
     |      |__ E1PITYP segment: 000008  HR: HR: transported
     |      |     |__ E1P0006 segment: 000009  HR: Infotyp 0003
     |      |__ E1PITYP Segment: 000010  HR: HR: transported
     |      |     |__ E1P0006 segment: 000011  HR: Infotyp 0006
     |      |     |__ E1P0006 segment: 000012  HR: Infotyp 0006
     |      |     |__ E1P0006 segment: 000013  HR: Infotyp 0006
     |      |__ E1PITYP segment: 000014  HR: HR: transported
     |      |     |__ E1P0006 segment: 000015  HR: Infotyp 0006
     |      |__ E1PITYP segment: 000016  HR: HR: transported
     |            |__ E1P0009 segment: 000017  HR: Infotyp 0009
     |__ status records

For each object to be distributed (for example for each person or for each organizational unit), there is an E1PLOGI segment, which contains the key of the object (plan variant that must be active, object type (=P for a person) and Object ID = Personnel no.), a proof flag should remain empty and the type of operation (U for Update- and I for the Insert mode to be used, see documentation RHALEINI).

Under every E1PLOGI segment, an E1PITYP segment hangs for every infotype and subtype to be distributed for the object described in the E1PLOGI. This segment again contains the entire key (same one!) of the object (plan version, object type and object ID). It also contains the infotype and the subtype, for which the data in the E1Pnnnn segment (located below) follows, as well as starting and ending dates of the maximum change period.
The change period has the following significance: In the update mode the data records, which are complete between E1PITYP-BEGDA and E1PITYP-ENDDA, are deleted in the target system first for the entered Infotype/subtype. (Relationships are then deleted if they were created at an earler time via the distribution). Then the data records are created from the IDoc.
The low date (18000101) and high date (99991231) should be in the insert mode.
Several E1Pnnnn segments can hang for precisely the same infotype nnnn under an E1PITYP segment. 'nnnn' stands for the number of the infotype, which was reported in the previous E1PITYP segment. Data is stored this way for the infotype 0006, for example, in segments E1P0006, namely one for every address record (a person could have moved several times). (For a possible temporary residence, a new E1PITYP segment is needed because it deals with another subtype.) The E1Pnnnn segments are set up as follows: The personnel number, the infotype and the subtype must again contain the same values as in the respective E1PITYP segment. The other two obgligatory fields are the beginning and the end of the validity for the data in this segment, (which must not be identical to the period of validity in the E1PITYP segment). The fields follow (they are naturally different for every infotype) which are filled with the values in the corresponding infotype fields on the HR database.
Ultimately you are responsible for consistency of this data. SAP saves this data directly on the database without checking the single fields and consistency of the data records (time constraints check, writing change pointers, value check) because the consistency for an R/3 - R/3 lingage is of course ensured.
As of Release 4.6 another E1PORIG segment hangs if distributed organistion management is activated (flag ALE REPLI and/or ALE REPPA
in table T77S0) under each E1PLOGI. The IDoc hierarchy then looks as follows:

IDoc 0000000000100030 current status: 64     |__ Control record direction: Inbound sender: LS/  /AHRCLNT003
    |__ Data records total number: 000017
    |   |__ E1PLOGI segment: 000001  header for an HR object
    |      |__ E1PORIG segment: 000002  HR: Original system for
    |      |__ E1PITYP segment: 000003  HR: HR: tranported
    |      |     |__ E1P0000 segment: 000004  HR: Infotyp 0000
    |      |__ E1PITYP segment: 000005  HR: HR: transported
    |      |     |__ E1P0001 segment: 000006  HR: Infotyp 0001
    |      |__ E1PITYP segment: 000007  HR: HR: transported
    |      |     |__ E1P0002 segment: 000008  HR: Infotyp 0002
    |      |__ E1PITYP segment: 000009  HR: HR: transported
    |      |     |__ E1P0003 segment: 000010  HR: Infotyp 0003
    |      |__ E1PITYP segment: 000011  HR: HR: transported
    |      |     |__ E1P0006 segment: 000012  HR: Infotyp 0006
    |      |     |__ E1P0006 segment: 000013  HR: Infotyp 0006
    |      |     |__ E1P0006 Segment: 000014  HR: Infotyp 0006
    |      |__ E1PITYP segment: 000015  HR: HR: transported
    |      |     |__ E1P0006 segment: 000016  HR: Infotyp 0006
    |      |__ E1PITYP segment: 000017  HR: HR: transported
    |            |__ E1P0009 segment: 000018  HR: Infotyp 0009
    |__ status records

The E1PORIG segment again contains the key of the object (plan variant, object type, object ID), as well as the start and end date of the period when it is valid in the original system, the other user and the original system containing the maintenance authorization for the object.


在信息技术快速发展的背景下,构建高效的数据处理与信息管理平台已成为提升企业运营效能的重要途径。本文系统阐述基于Pentaho Data Integration(简称Kettle)中Carte组件实现的任务管理架构,重点分析在系统构建过程中采用的信息化管理方法及其技术实现路径。 作为专业的ETL(数据抽取、转换与加载)工具,Kettle支持从多样化数据源获取信息,并完成数据清洗、格式转换及目标系统导入等操作。其内置的Carte模块以轻量级HTTP服务器形态运行,通过RESTful接口提供作业与转换任务的远程管控能力,特别适用于需要分布式任务调度与状态监控的大规模数据处理环境。 在人工智能应用场景中,项目实践常需处理海量数据以支撑模型训练与决策分析。本系统通过整合Carte服务功能,构建具备智能调度特性的任务管理机制,有效保障数据传递的准确性与时效性,并通过科学的并发控制策略优化系统资源利用,从而全面提升数据处理效能。 在系统架构设计层面,核心目标在于实现数据处理流程的高度自动化,最大限度减少人工干预,同时确保系统架构的弹性扩展与稳定运行。后端服务采用Java语言开发,充分利用其跨平台特性与丰富的类库资源构建稳健的服务逻辑;前端界面则运用HTML5、CSS3及JavaScript等现代Web技术,打造直观的任务监控与调度操作界面,显著提升管理效率。 关键技术要素包括: 1. Pentaho数据集成工具:提供可视化作业设计界面,支持多源数据接入与复杂数据处理流程 2. Carte服务架构:基于HTTP协议的轻量级服务组件,通过标准化接口实现远程任务管理 3. 系统设计原则:遵循模块化与分层架构理念,确保数据安全、运行效能与系统可维护性 4. Java技术体系:构建高可靠性后端服务的核心开发平台 5. 并发管理机制:通过优先级调度与资源分配算法实现任务执行秩序控制 6. 信息化管理策略:注重数据实时同步与系统协同运作,强化决策支持能力 7. 前端技术组合:运用现代Web标准创建交互式管理界面 8. 分布式部署方案:依托Carte服务实现多节点任务分发与状态监控 该管理系统的实施不仅需要熟练掌握Kettle工具链与Carte服务特性,更需统筹Java后端架构与Web前端技术,最终形成符合大数据时代企业需求的智能化信息管理解决方案。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值