IBM Sterling Transformation Extender

Sterling Transformation Extender

Come for answers, stay for best practices. All we're missing is you.


#Sterling
#Supplychain
 View Only
  • 1.  LOOKUP and data binding

    Posted 07/11/06 03:32 AM

    Originally posted by: SystemAdmin


    Hey all,

    Could anyone please explain me the (technical) difference between the execution of the two following map rules. There are 2 input cards called "lookupFile" and "inputFile":

    1)
    =
    code:1:1060f8befcIF(
    LOOKUP(row:lookupFile, field1:lookupFile = field:inputFile) != NONE &
    field2:lookupFile = "value",
    F_MAKE(row:inputFile)
    )[/code:1:1060f8befc]

    2)
    code:1:1060f8befcIF(
    LOOKUP(row:lookupFile, field1:lookupFile = field:inputFile & field2:lookupFile = "value") != NONE,
    F_MAKE(row:inputFile)
    )[/code:1:1060f8befc]

    Both compile and seem to produce similar results, but the 2. one is way faster.

    Thanks.
    #IBMSterlingTransformationExtender
    #DataExchange
    #IBM-Websphere-Transformation-Extender


  • 2.  Re: LOOKUP and data binding

    Posted 07/11/06 06:24 AM

    Originally posted by: SystemAdmin


    Best way to tell would be to use 8.0.1 and the map profiler to see what is taking longer in the first rule.
    #DataExchange
    #IBMSterlingTransformationExtender
    #IBM-Websphere-Transformation-Extender


  • 3.  Re: LOOKUP and data binding

    Posted 07/11/06 09:11 AM

    Originally posted by: SystemAdmin


    Perhaps because the first method is executing 3 functions, the second 2?. Method one performs a LookUp and an equivalence test and then ANDs the results of the first two functions. The second method does a LookUp and an equivalence test. I suspect the AND is slowing things down. Jeff's suggestion to use the Map Profiler is the way to know for sure.

    You might also want to try:

    code:1:2bd6d1b5dcIF(PRESENT(
    LOOKUP(row:lookupFile, field1:lookupFile = field:inputFile & field2:lookupFile = "value") ), [/code:1:2bd6d1b5dc]
    #IBM-Websphere-Transformation-Extender
    #DataExchange
    #IBMSterlingTransformationExtender


  • 4.  Re: LOOKUP and data binding

    Posted 07/11/06 09:59 AM

    Originally posted by: SystemAdmin


    You might get some additional info looking at it in debug mode. Put a breakpoint on that rule. Then iterate through the rule one step at a time. I have not tried it with a rule like this but you may see how many time it calculates the separate values in the rule. I suspect that what Jim says is correct and I would think you do not have to "get" the value twice in the first instance.
    #DataExchange
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender


  • 5.  Re: LOOKUP and data binding

    Posted 07/11/06 10:07 AM

    Originally posted by: SystemAdmin


    I havent had the time to look at the profiler, but what I suspect is the following.

    I believe if you use a LOOKUP function, internally there is a cartesian product done on the driving inputFile and the lookupFile, and then the tuples that dont match the lookup condition are removed, right? (case 2)

    So if you move one part of the condition out of the LOOKUP function (case 1), could it be that the cartesian product will be:

    inputFile X lookupFile (lookup function) X lookupFile (condition in root maping rule)

    This would be quite some more data to sift through...
    #DataExchange
    #IBMSterlingTransformationExtender
    #IBM-Websphere-Transformation-Extender