要从CSV文件加载的PeopleCode,并将1个字段拆分为多列



我不熟悉应用程序引擎或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操作中实现这一切,而不需要临时表。

或者,

  1. 将数据加载到暂存表中并提交
  2. 循环执行AE中暂存表中的数据(数据处于rec状态(
  3. 根据需要使用peoplecode操作执行转换
  4. 在必要的表中插入数据
  5. 更新暂存表中的状态(在暂存表中有一个字段(字段,这可能对生产中的任何分析/问题都很有用

最新更新