为什么在大多数ECC HCM表中将开始日期/结束日期设计为默认主键?

2020-09-01 12:18发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我看到许多与人相关的信息类型(例如0185-记录文件)默认情况下以开始日期/结束日期作为主键的一部分。 从我的观点来看,日期有两种要求

1。 日期跟踪-对于一些关键信息,我们需要有效日期才能跟踪数据更改

2。 自然信息-一些业务实体具有自然的日期信息,但是日期与日期跟踪无关,有时日期是该实体的一部分。

所以我无法完全理解为什么0185(记录文件)需要以开始/结束日期作为主键-0185有两组日期字段,一组字段属于#2(上面),但是0185也有 开始日期/结束日期,其功能为#1。 对于0185中的开始日期/结束日期,它们被标记为主键。 我对此表示怀疑。 我认为0185(记录文件)不需要按日期跟踪,因此我们不需要将开始日期/结束日期作为PK。

我曾经使用过Oracle产品,同样,Oracle的数据结构看起来很合理

唯一约束:PERSON_ID,DOCUMENT_TYPE_ID,DOCUMENT_CODE

日期字段(Date From和Date To)表示此文档的有效期限。

有人可以帮助我解决这个疑问吗? 谢谢。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我看到许多与人相关的信息类型(例如0185-记录文件)默认情况下以开始日期/结束日期作为主键的一部分。 从我的观点来看,日期有两种要求

1。 日期跟踪-对于一些关键信息,我们需要有效日期才能跟踪数据更改

2。 自然信息-一些业务实体具有自然的日期信息,但是日期与日期跟踪无关,有时日期是该实体的一部分。

所以我无法完全理解为什么0185(记录文件)需要以开始/结束日期作为主键-0185有两组日期字段,一组字段属于#2(上面),但是0185也有 开始日期/结束日期,其功能为#1。 对于0185中的开始日期/结束日期,它们被标记为主键。 我对此表示怀疑。 我认为0185(记录文件)不需要按日期跟踪,因此我们不需要将开始日期/结束日期作为PK。

我曾经使用过Oracle产品,同样,Oracle的数据结构看起来很合理

唯一约束:PERSON_ID,DOCUMENT_TYPE_ID,DOCUMENT_CODE

日期字段(Date From和Date To)表示此文档的有效期限。

有人可以帮助我解决这个疑问吗? 谢谢。

付费偷看设置
发送
2条回答
昵称总是被占用
1楼 · 2020-09-01 12:50.采纳回答

您是正确的。...在某些情况下需要开始/结束日期,而在某些情况下则不需要。...这是SAP的灵活性。 如您所说,您不会在其他产品中看到这一点……。即使在SuccessFactors中,也没有分隔日期或时间限制的概念。

在SAP中,您需要查看的一个关键组件是特定信息类型和子类型的"时间限制"设置。 基于此"时间限制"设置,开始/结束日期可能会重叠,并允许多个相同类型的记录(例如,我可能有许多子代都具有不同的日期)。 其他人则不允许重叠(例如,我可能在2012年5月15日至2018年9月22日之间拥有一个职位,但是在2018年9月23日至12/31/9999中有一个新记录/职位... 取决于我正在查看的"参考"日期,我的职位信息...以及所有相关的....薪水,工作时间表等...在不同的时间点可能会非常不同....尤其是 在报告中很重要)。 有几个"时间限制"选项可用。 正如您指出的那样,这是非常以SAP为中心的事情。

请注意,您引用的"主键"结构.....如果仔细看,它内置于每个信息类型中 ...其中的每一个....因为它们使它们保持一致.....每个信息类型都将包含其自己的结构以进一步定义表元数据。 这是理解SAP HR表的重要组成部分。 就像您说的那样,对于每个表(例如您的IT0​​185)来说,可能并没有意义,但它可以使它们保持一致并且访问/交互保持一致(例如,将其视为OO编程中的通用接口)。

空代码
2楼-- · 2020-09-01 13:13

谢谢克里斯托弗。

一周热门 更多>