1 Nisan 2016 Cuma

ODI 12c - Implementing For Loops

Hi

in  previous versions of ODI   i had a chance to create  "for loops"  in packages , so now i am gonna explain how we can implement a for loop in ODI 12c universe.

First i am gonna reverse a table that contains branch information.


Table structure as follows:



















What i want to do is  to get all data except for the one with maximum ORDER_NUM ( Normally we can do this by using bulk SQL but this time i am gonna create  a for loop and making  row by row insertion.  )

As usual i need variable objects  to implement a standart for loop.

Variable:MAX_COUNT ( holds total number of rows in our source table )
























Variable: ORDER_ID_VAR ( set to 0 )






























and now I am gonna create an interface that let me transfer data one by one into my target table.Inside the mapping , filter object help me to associate interface with my variables.












Lastly i will create a package to implement my for loop.As you can see below , at first  i am refreshing my variables to assign initial values then ORDER_ID_VAR_INC object ( set variable ) is used for incrementing ORDER_ID_VAR.





















ORDER_ID_CHECK_1 (Evaluate variable)  is used for checking whether ORDER_ID_VAR less than MAX_COUNT or not. If it is true , our interface will be called for execution otherwise beep object will be started to finish execution.












target table will be look like this















and operator log for execution












1 yorum:

  1. I have created a procedure in ODI that contains a loop and inside the loop I want to use the odisendmail to notify each user the I'm selecting in my cursor. Is it possible to call odisendmail from inside a ODI procedure. Thank you

    YanıtlaSil