2016-03-02 93 views
3

後Pentaho的變換使用水壺勺子5.1,我有一個變換:繼續回滾

  1. 拉從一個數據庫(Oracle)的一排
  2. 將該行發送到一個REST API(通過REST 客戶端)
  3. 使用Switch/Case步驟查看結果。如果結果是好的,我從數據庫中刪除記錄(Execute SQL),否則,我回滾事務

請注意,回滾取決於結果而不一定是錯誤/異常。 如果一個特定的事務回滾,我仍然想繼續處理其他行(不希望變換停止)。

兩個問題:

  1. 有沒有乾淨的方式來強制回滾? (目前我有一個「扔」
  2. 如何強制事務回滾後繼續一個javascript一步?

回答

2

在一個轉型,Pentaho的流內同時處理行,都在。同樣的事務回滾單行,你需要一個單獨的事務的每一行,這Pentaho的不支持

我建議用另一種方法來達到同樣的效果有兩種可能:。

  1. 不要製作數據庫直到接收到REST結果之後。那樣,沒有東西可以回滾。當然,您可以在內存中(在流式字段中)或臨時數據庫表中進行更改,以便您確切知道它們會是什麼。
  2. 以某種方式跟蹤您所做的數據庫更改,以便在REST結果表明您應該這樣做時撤消它們。根據您的工作方式,您可以跟蹤流字段或臨時數據庫表中的更改。