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.  group properties: tracking

    Posted 07/23/10 11:41 AM

    Originally posted by: SystemAdmin


    I have a type tree generated from a db query. The default for row is track by places and that is what I would expect, with all columns set with a range of (0:1), also as I would expect.

    The data retrieved from db is returned correctly, if the column in the db is empty (null) the delimited group is has the ||.

    When mapping an optional column in the output rule (on an optional output object) the output object is created with blanks. If I use any rule such as EITHER, TRIMRIGHT, TEXT, IF(PRESENT()..., or a call to a f_map with the db column as arg the output object is not created. I don't understand why any conditional logic or a function call is needed here.

    I turn trace on and I don't understand why the validation behavior:

    (Level 2: Offset 489, len 0, comp 19 of 45, #1, DI 00000000009D:)
    COMPONENT number 19 of TYPE X'0004' (Row usp_WTXMap_Export_835 Data):
    occurrence 1 is optional and has no content.

    (Level 2: Offset 489, len 0, comp 19 of 45, #2, DI 00000000009D:)
    Data at offset 489 ('|||||||||||20100') was found to be of TYPE
    X'0018' (rms_835_ELEMENT_05 Column usp_WTXMap_Export_835 Data).

    Why is a second instance being reported for an component that has a range of 0:1?

    If I change the track to content from places the straight map of the optional input object only creates output when there is data, no function or logic wrapping the input is required and the trace is as follows:

    (Level 2: Offset 489, len 0, comp 19 of 45, #1, DI 00000000005D:)
    COMPONENT number 19 of TYPE X'0004' (Row usp_WTXMap_Export_835 Data):
    occurrence 1 is optional and has no content.

    (Level 2: Offset 490, len 0, comp 20 of 45, #1, DI 00000000005D:)
    COMPONENT number 20 of TYPE X'0004' (Row usp_WTXMap_Export_835 Data):
    occurrence 1 is optional and has no content.

    Can anyone tell me why I need to change the track for this to work? Does not make sense based on my understanding of the content vs places track property.
    #DataExchange
    #IBMSterlingTransformationExtender
    #IBM-Websphere-Transformation-Extender


  • 2.  Re: group properties: tracking

    Posted 07/26/10 04:27 AM

    Originally posted by: SystemAdmin


    WTX has decided that the field exists but is empty (because it's looking for places rather than content) - therefore it will be used for any mapping rules.

    I think you've discovered one way round this, i.e. change the DB generated tree. From what I remember, a mapping work-around would be to use:
    
    EITHER(db field:row, NONE)
    

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


  • 3.  Re: group properties: tracking

    Posted 07/26/10 02:22 PM

    Originally posted by: SystemAdmin


    I guess that leads to another question, if the EITHER works (and it does) that means arg1 ("db field:row") is evaluating to NONE, so why doesn't the rule "=db field:row" evaluate to none?
    #DataExchange
    #IBM-Websphere-Transformation-Extender
    #IBMSterlingTransformationExtender


  • 4.  Re: group properties: tracking

    Posted 07/27/10 03:42 AM

    Originally posted by: SystemAdmin


    The input field is not NONE/null but is zero length.

    EITHER() works in this case because it decides to ignore the first parameter as it is zero length (not because it's null).

    I guess it's a quirk of the way it works - in your case this is a good thing and helps your mapping.

    Databases are also inconsistent with nulls and zero length strings - e.g. Oracle breaks the standard by treating a zero length string as a null when they should be separate.
    #IBM-Websphere-Transformation-Extender
    #DataExchange
    #IBMSterlingTransformationExtender