在“原系统-STG”抽取数据的过程中,会遇到“源系统中按日期分表存储”的情况,如销售数据(SALE_YYYYMM),正常抽取时,我们采用“日期变量、组合表名”的方式定位到具体的抽取表格。但在数据初始化时,我们在一个连续的过程中,依次抽取不同表中的数据。解决该类问题的基本思路:
- 使用持久变量控制初始化时间范围;
- 使用Assignment控件,改变增量变量;
- 使用调度类型实现Workflow的循环执行;
- 使用Decision控件,终止初始化执行;
具体的处理流程如下:
流程说明:
- 变量初始化,在WorkFlow的参数定义中,初始化边界变量(Init_Start_Date、Init_End_Date);
- Mapping变量赋值,根据Init_Start_Date的值使用Assignment控件对Mapping变量进行赋值;
- 调用Session,使用Session控件,调用初始化表数据的Session或Worklet;
- 增量赋值,使用Assignment控件,将Init_Start_Date按照增量规则赋新值;
- 判断执行路径,根据初始化边界,使用Decision控件,判断初始化是否完成(Init_Start_Date < Init_End_Date),未完成,则循环,否则使用Control控件终止;
- 循环调度:在Workflow设计开发完成后,在Workflow的Schedule中,设置循环调度。