我想在指定历史表中添加不同持续时间的多个工作角色。我怎样才能在 ABAP 中获得它?

Posted

技术标签:

【中文标题】我想在指定历史表中添加不同持续时间的多个工作角色。我怎样才能在 ABAP 中获得它?【英文标题】:I want to add multiple job roles for different durations in designation history table . how can i get it in ABAP? 【发布时间】:2022-01-07 20:32:59 【问题描述】:

我有 2 个表格,即员工详细信息和员工指定历史记录。

Employee details table - EMPID , Name , Age ,Gender. (EmpID - Primary Key)

Designation history table - EMPID , Startdate , Enddate , JobRole.

我知道指定历史表中还需要一个键来为给定的员工 ID 添加多条记录,我应该使用哪一个?

这样我就可以得到这样的输出 - Sumedh 于 2021 年至 2022 年担任 SAP 助理开发人员 然后从 2022 年到 2024 年,他担任高级工程师。开发商 然后在 2024-25 年再次被降级为助理 sap 开发人员。

【问题讨论】:

请提出您尝试过的代码,告诉我们您遇到的问题。 Stack Overflow 不接受寻求建议的问题。 很抱歉,我真的想要推荐。 【参考方案1】:

为了简洁起见,我假设您只是省略了 MANDT 字段。如果您希望您的表是客户端指定的,它必须是每个表的第一个主键。接下来是什么?好吧,有几种选择:

选项 1:使用 EMPIDStartdate 作为主键。您会看到在较旧的 SAP 数据库模式中使用了很多,例如表 ADRP。这当然假设没有人每天被重新分配超过一次。

选项 2:添加另一列来计算该员工的分配。那么主键是EMPIDASSIGNMENT_NUM

选项 3:像 BOPF 那样做。与其想知道主键应该是什么,不如给每个表一个主键字段DB_KEY,它是一个UUID,在生成数据库条目的那一刻生成(您可以使用类@ 987654329@ 用于生成它们)。然后再也不用担心主键了。

哪一个是“最佳”选项?抱歉,这更像是一个宗教问题。

【讨论】:

我也想过将 Startdate 作为主键,但我想我在某处读到,将日期作为主键不是一个好主意?这是真的吗? @sumedhpatil 在软件架构中没有绝对的真理。每个设计都有优点或缺点,这可能对您的特定用例很重要,也可能无关紧要。 那么我将使用 startdate 作为主键。非常感谢。

以上是关于我想在指定历史表中添加不同持续时间的多个工作角色。我怎样才能在 ABAP 中获得它?的主要内容,如果未能解决你的问题,请参考以下文章

如何在垫表中使用滑动切换?

Hibernate:防止角色表中有多个相同的条目

将行添加到多个工作表时清除错误

使用数据可视化扩展在不同时间添加多个精灵的问题

使用表格将对象/图像添加到视图

我想在 prisma orm 中使用多个数据库