如果Pentaho水壶中的子项为空,则回滚/删除父项

时间:2018-05-29 20:30:04

标签: parent-child pentaho transformation kettle

我正在使用Pentaho Kettle 8.0,并且我已经创建了一个转换来在postgresql数据库之间迁移数据。此转换读取有关订单(父)及其项(子)的信息,并插入或更新目标数据库。但是我遇到没有物品的订单或转换无法插入物品的问题。我需要的是,每个订单必须至少有一个项目。 我设计了转换来查找订单数据并插入/更新目标表,然后查找项目。如果在这些步骤中出现错误,我该如何回滚/删除父项?

目标表是这样的:

订单 - Order_ID,Value,Qty,Customer_ID
OrderItems - Item_ID,Value,Qty,Order_ID

1 个答案:

答案 0 :(得分:1)

我建议你分两步完成。首先,您完全按照以下方式执行操作:插入父级和子级,而不必担心插入错误。一旦完成,其他转换将清除任何没有孩子的父母。

如果您需要一步完成(例如,如果系统正在生产中),我将生成订单和物料流。然后,对于每个订单查找,如果有一个(或多个)项目,并在写入数据库之前过滤这些订单。像这样:

enter image description here

您也可以按订单计算商品数量,然后过滤掉没有任何商品的订单。