Tweaking Oracle B2B CONTRL
Oracle B2B supports EDIFACT and can of course generate CONTRL messages out of the box. However, by default in some versions a generated CONTRL message will not contain routing address or reverse routing address. These fields are also known as sub-addresses and are part of the interchange sender and recipient, as shown in the figure.
For example, if an inbound message has the interchange sender 9990022:ZZ:XYZ the generated CONTRL contains 9990022:ZZ, both in the UNB and UCI segments. That is clearly a problem. Luckily it is easy to fix.
First of all set
$ORACLE_HOME/ip/config/tip.properties. Second, edit
$ORACLE_HOME/ip/oem/edifecs/XEngine/config/AckCode-CONTRL.xml. Backup the original file and add:
<CodeList Name="InternalPropertyList"> <Code Key="InterchangeReceiverID" Value="InterchangeSenderID"/> <Code Key="InterchangeReceiverQual" Value="InterchangeSenderQual"/> <Code Key="InterchangeSenderID" Value="InterchangeReceiverID"/> <Code Key="InterchangeSenderQual" Value="InterchangeReceiverQual"/> <Code Key="InterchangeSenderInternalID" Value="InterchangeSenderInternalID"/> <Code Key="InterchangeReceiverInternalID" Value="InterchangeReceiverInternalID"/> <Code Key="GroupReceiverID" Value="GroupSenderID"/> <Code Key="GroupSenderID" Value="GroupReceiverID"/> <Code Key="InterchangeReceiverAddress" Value="InterchangeSenderAddress"/> <Code Key="InterchangeSenderAddress" Value="InterchangeReceiverAddress"/> </CodeList>
The lines with InterchangeSenderInternalID and InterchangeReceiverInternalID will do the trick. Restart B2BServer and everything should work.