我不熟悉应用程序引擎或PeopleCode,但在有人离开时继承了这个项目。看起来很简单,但我不确定如何处理。
我必须加载一个有5个字段的CSV文件。最后一个字段有多个值,用逗号分隔,并用引号限定。
文件示例:
ID , YEAR, VALUE1 , VALUE2, CODE
87778, 2022, processed, none , 100,40
93332, 2022, processed, none , 60
76633, 2022, error , none , 55,35,9
我已经创建了一个文件布局定义并设置了限定符,我可以将文件加载到临时表中,但现在我想将最后一列(CODE
(拆分为单独的代码。
我创建了两个具有父子关系的PeopleTools记录定义:
- 具有
ID,YEAR,VALUE1,VALUE2
的父记录定义,以及 ID,YEAR,CODE
的子记录定义
我发现可以使用PeopleCode split函数将CODE
列分解为一个数组,该数组包含元素中的每个值。不过,我不确定构建程序的最佳方式是什么。
- 是否需要暂存表
- 或者,当我在中读取CSV文件并更新父/子表时,我可以使用拆分函数吗
- 还是我需要保留暂存表,然后读出父记录的字段,并将它们移动到永久表中,然后在使用split函数后对子记录执行同样的操作,然后在数组中循环
只是寻求一些指导,这样我的第一个AE项目就不会一团糟。
IMO,总是有多种方法可以实现相同的事情(尤其是在AE中(。我们根据自己的要求和效率来选择。
对于临时表:在您的情况下,您可以忽略临时表,除非您希望每次都加载大量数据或希望进行并行处理。换言之,如果您认为加载需要花费大量时间,并且不想冒由于其他错误而导致失败的风险,那么您可以拥有临时表。
您甚至可以在一个peoplecode操作中实现这一切,而不需要临时表。
或者,
- 将数据加载到暂存表中并提交
- 循环执行AE中暂存表中的数据(数据处于rec状态(
- 根据需要使用peoplecode操作执行转换
- 在必要的表中插入数据
- 更新暂存表中的状态(在暂存表中有一个字段(字段,这可能对生产中的任何分析/问题都很有用