首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PeopleSoft精华之生效日期

1概念...1

2相关字段...1

2.1生效状态(EFF_STATUS)1

2.2生效序号(EFFSEQ)2

3生效日期逻辑...2

3.1放大镜中PeopleTools自动增加的生效日期逻辑...3

3.2编写自己的生效日期逻辑...4

3.2.1常见错误...5

3.2.2正确示例...5

在PeopleSoft的应用中,生效日期(EFFDT)贯穿始终,成为数据模型中管理带时间线对象的利器。它言简意赅却又威力无比。

1概念

生效日期字段把信息分成历史的,当前的和将来的[1]。我们用一个表来解释,

通过生效日期,您可以按时间线维护数据。这样就可以追溯历史信息,也可以安排将来的事件。

通过生效日期,您可以准确地维护数据。例如,以2018年6月1日为生效日期新创建了一个部门A,在职务数据页面上,如果某行数据的生效日期在2018年5月30日,那么对于此行数据来说部门A就是将来的数据,此行数据是无法看到尚未生效的部门A的。

2相关字段

2.1生效状态(EFF_STATUS)

生效状态用来指示某生效日期对应数据行的状态。例如在下面的部门表中,加入了EFF_STATUS。一般情况EFF_STATUS不作为key。

对应的前台页面,

2.2生效序号(EFFSEQ)

当同一个生效日期下有多行数据的时候,使用生效序号来区分。例如在JOB表中,职务数据在一天之内的多个变化可以用EFFSEQ来表达,EFFSEQ也是4个key之一。

对应的前台页面

3生效日期逻辑

关键点有3个

子查询(select max(effdt…)选择最接近某个日期的数据,对标的日期可以是今天,也可以是某个业务发生的日期。

在PeopleTools自动附加生效日期逻辑的时候,如果当前页面有一个生效日期,那么会以这个生效日期为对标日期,放大镜中选取的对象是这个日期之前的生效对象。

状态检查(eff_status = ‘A’ or eff_status ‘I’)正确做法是必须放到子查询的外面。这是一个常见的错误。我们用接近业务一点的语言说就是,进行生效日期检查的时候,先要看有没有当前数据,再看这行数据状态是不是有效。

Let’s go,让我们进入实战吧!

3.1放大镜中PeopleTools自动增加的生效日期逻辑

在后台中,我们看到JOB表中的字段DEPTID有放大镜对应的表是DEPT_TBL,DEPT_TBL也是用EFFDT去管理的。

在职务数据页面,当我们打开放大镜,选择部门的时候,会自动加上生效日期的过滤。

我们Trace一下打开放大镜时候的SQL(如何Trace暂且不表)会发现PeopleTools自动增加了生效日期过滤,对标时间就是职务数据的业务发生日期– 2009/01/26。这和我们在前文的概念中讲的是一致的。

打开放大镜时的两个绑定变量分别是SHARE和2009-01-26

3.2编写自己的生效日期逻辑

编写自己的生效日期逻辑的时候也需要和标准功能的逻辑保持一致。最常犯的错误就是把生效状态的检查和生效日期逻辑耦合到一起,实际上这两者是分开的。

3.2.1常见错误

下图中的生效日期是不了解生效日期逻辑的开发者常犯的错误。

假如今天是2018年5月12日,部门表中有如下数据

以当前日期为对标日期,按照正确的生效日期逻辑,我们会看不见13100这个部门,因为它的生效状态是I (Inactive)。如果我们按照上面的错误示例逻辑,我们会找到2018-01-01(财务服务部)这行数据。这违背了生效日期的概念。

3.2.2正确示例

系统中有一个极好的学习生效日期写法的例子就是record.JOB_CURR_VW。

%CurrentDateIn代表当前日期

红色框中的是生效日期的逻辑,蓝色的是生效序号逻辑,黄色的是hr状态,可以替换成生效状态。

总结一下,生效日期是一个非常基础非常易懂,但又是极其重要的概念。它的威力非常强大,可以说,没有了生效日期,PeopleSoft就不再是PeopleSoft了。

[1]Effective Dates

https://docs.oracle.com/cd/E95227_01/hcm92pbr26/eng/hcm/hhaf/concept_EffectiveDates-e329a3.html?pli=ul_d45e32_hhaf

----------本公众号二维码------------

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180512G1T0S800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券