Originally posted by: SystemAdmin
the issue you encounter is called "data binding".
I'm not all that comfortable explaining it also, and I've had to resloved it so many times years ago, I just don't code like that anyomre, and I can't recall what happens in the situation. There is some info in the Functions And Expressions guide if you do a search for bind.
Anyway, overall, when you reference an object in an expression in a map rule, it binds that object to that expression, and if you try to use that object again, you don't get the results you expect.
What Laurent mentions is one way to get around it, and it's probably how I would handle it.
F_map( Value.Street.AddressInfo.OrganizationInfo.etc, Value.Street.AddressInfo.OrganizationInfo.etc)
Then in the F_map you have two instances, one lookup on one card, the second lookup on the other card.
What I used to to was,
IF(NOT(PRESENT(LOOKUP(Value.Street.AddressInfo.OrganizationInfo, type .AddressInfo.OrganizationInfo="PO BOX")), then do this
else,
f_map2(Value.Street.AddressInfo.OrganizationInfo, type .AddressInfo.OrganizationInfo)
and in the second funtional map,
IF(NOT(PRESENT(LOOKUP(Value.Street.AddressInfo.OrganizationInfo, type .AddressInfo.OrganizationInfo="street address"),
do this, else
f_map3(Value.Street.AddressInfo.OrganizationInfo, type .AddressInfo.OrganizationInfo)
Notice the "NOT(PRESENT" as opposed to "!=none".
#IBMSterlingTransformationExtender#IBM-Websphere-Transformation-Extender#DataExchange