如何实现业务数据中,某个属性动态更新
需求:合同的业务数据中,需要销售代表的字段,合同的标准数据源中虽然含有0SALESEMPLY,但是如果该员工离职,这个字段不会随之修改为新的销售代表。因为员工离职后,所做修改的是客户的主数据,并不会改动合同。
问题来了,这样就导致了我们不能简单的增强在合同的数据源中,因为即便是初始化的时候数据对当时来说是正确的,但是,当今天是做的时候,新的输入任然不会进Delta队列,而被更新过来,因为合同并没有被修改。
解决办法:新建一个客户的IO(或者使用系统的0CUST_SALES,不过这里没用的属性太多,所以我自建了一个),将销售代表维护为IO的导航属性,通过自建的数据源每天FULL上载,并做Change Run,最后,只需要在模型中将客户的ID与我们自建的IO做Mapping,就可以方便的通过客户ID得到动态的属性。
总结:想要动态,就得独立出来做,绕过标准的数据源,要么是做个DSO,然后用Infoset做inner join,要么就做成导航属性吧,既简单,又灵活。