Answered by:
Does an adapter change force change on dependent adapters?

Question
-
Say Adapter A sends data called "First Name" through BizTalk.
Say Adapter B and C receive Adapter A information but Adapter B uses "Name" instead of "First Name" and Adapter C uses "FName" instead of "First Name".
If Adapter A changes "First Name" to "Full Name", do Adapters B and C have to change, too?
I'm new to BizTalk; I want to understand the maintenance effort for adapter and business rule changes.
Thanks.- Edited by jcairns Thursday, August 13, 2009 3:45 PM
Thursday, August 13, 2009 1:49 PM
Answers
-
Adapter A is a Publisher to the BizTalk message box, Adapters B and C are Subscribers.BizTalk uses a combination of the top-level XML node and namespace (if it is used) to identify messages (MessageType).For example, NameInfo#http://www.abc.comIn your scenario, if you are subscribing to NameInfo in B and C, and A now sends Name_Info, the message will be suspended (no subscribers found). If the change is below the top-level node, B and C will still receive the message, however they may not be able to interpret it correctly.One way to deal with this is to declare a generic schema, e.g. CommonName, and map to it at the adapter or orchestration level. Incidentally, orchestration receive ports are subscribers and send ports are publishers. Or, you can design a custom pipeline that will 'massage' your messages to the generic format. Hope this makes sense.
- Proposed as answer by Andrew_Zhu Wednesday, August 19, 2009 8:42 AM
- Marked as answer by Andrew_Zhu Thursday, August 20, 2009 3:27 AM
Wednesday, August 19, 2009 5:17 AM
All replies
-
I think you have your terminology mixed up. Adapters does not reveive things per se, they translate data to and from different systems.
I think you mean receive ports, receive ports use adapters to read data, and send ports that also uses adapters.
So what you are saying is:
You have a predefined schema for A. The same schema is used in other places to map data from "First Name" into "FName" and "Name".
You then change schema A from "First Name" to "FullName".
Then effect (in this very simple design) is that you have to change the two maps that mapped from "First Name" into "FName" and "Name" so that it maps from "FullName" into "FName" and "Name".
This is way we BizTalk developers are so adement about our schemas and really newer want them to change.
A way to work around this (if you expect incoming schemas to change at some frequency) is to map into an internal format and then map into "FName" and "Name". Now if the incoming data updates it's definition you only have to change one map instead of two.
This is why planning and design is so inportant in BizTalk.
Hope this helps and good luck with understanding the maintenance effort.
//Mikael Sand (MCTS) - http://tinyurl.com/mikaelsand Logica SwedenFriday, August 14, 2009 2:09 PM -
Adapter A is a Publisher to the BizTalk message box, Adapters B and C are Subscribers.BizTalk uses a combination of the top-level XML node and namespace (if it is used) to identify messages (MessageType).For example, NameInfo#http://www.abc.comIn your scenario, if you are subscribing to NameInfo in B and C, and A now sends Name_Info, the message will be suspended (no subscribers found). If the change is below the top-level node, B and C will still receive the message, however they may not be able to interpret it correctly.One way to deal with this is to declare a generic schema, e.g. CommonName, and map to it at the adapter or orchestration level. Incidentally, orchestration receive ports are subscribers and send ports are publishers. Or, you can design a custom pipeline that will 'massage' your messages to the generic format. Hope this makes sense.
- Proposed as answer by Andrew_Zhu Wednesday, August 19, 2009 8:42 AM
- Marked as answer by Andrew_Zhu Thursday, August 20, 2009 3:27 AM
Wednesday, August 19, 2009 5:17 AM