BizTalk Developer Interview Questions and Answers - Map

BizTalk Developer Interview Questions and Answers - Map


Introduction

This article intends to cover the answers to the mapping related questions, which a BizTalk developer can face during an interview.

Questions and Answers

  1. What are maps?
    Maps are graphical representations of XSLT (Extensible Stylesheet Language Transformation) documents that allow us to perform, in a simple and visual manner, transformations between XML messages. A map file basically is the XML file that defines the correspondence between the records and fields in one schema and the records and fields in another schema. You create a map when you want to transform or translate data that you receive or send from one schema to another. See more here.

  2. Can we have map without any links on it?
    Yes. But to do so custom XSLT is to be provided to the map.

  3. How do we provide/include custom XSLT in map?
    Click on the map grid and in properties tab specify the location where custom XSLT is stored against the property "Custom XSLT path".

  4. Is it possible to have global variable in a map?
    Yes. Choosing inline code allows us to declare global variables outside the method declaration. These are accessible throughout the map from within all inline code scripting functoids.

  5. What are the places map can be used?
    Receive Port, Orchestration, Send Port

  6. Can we have map chaining on ports?
    Not on the same port, only the first that matches the received message type will execute.  You can have a map execute on a Receive Port and then have another map execute on the Send Port (or have multiple maps in an Orchestration, or use the ESB Toolkit to achieve this.

  7. What is limit of maps on ports?
    There is no limit.

  8. Is it possible to generate XSLT from the map?
    Yes, right click the map and select Validate Map. The output window will include "The output XSLT is stored in the following file:" and the location of the XSLT file.

  9. Is it possible to use untyped message in map?
    No

  10. Is it possible to create map for schema's with unknown structure?
    Yes its possible. It can be done by including the <Any> element in map.

  11. Where are transformations are more flexible?
    Transformations are more flexible and fast when they are executed from a send or receive port.

  12. Is it possible to override the mapping of Mass copy?
    It can be done on line by line basis. Example a field need to be passed a current date , then have the Date functoid placed  link to destination field this will override mass copy. 


  13. Is there limit on number of pages on Map grid?
    There is no limit, it depends on the requirement and complexity of the map.

  14. Why should pages to be added to Map Grid  if all can be done on single page?
    Multiple pages enable you to organize your links so that any one page does not become too cluttered and confusing.It is also very helpful to label the pages and the links.

  15. Is there a way to add custom logic required in Map?
    Yes its possible and it can be done with the help of Scripting functoid.

  16. Can value from Orchestration variable be passed to destination field in Map?
    Yes it can be done , by creating a new schema which will contain fields for capturing values from Orchestration variable and with the help of LoadXml  to load the values. This schema can be used along with other source schema and mapping can be done.

  17. Is it possible to have map with n incoming messages to n outgoing messages?
    Yes, but only inside Orchestrations! This type of maps must be created using the Transform shape within an Orchestration.

  18. Is it possible to have map with n incoming messages to 1 outgoing messages?
    Yes. And the only place that map can be created with multiple schemas is in a Transform shape within an Orchestration.

  19. Is it possible to have map with 1 incoming message to n outgoing messages?
    Yes, but only inside Orchestrations! This type of maps must be created using the Transform shape within an Orchestration.


  20. Can functoids and external XSLT be used in single map?
    No. As everything which we see on Map grid (links,functoids) are overwritten when external XSLT is used .

  21. Can we debug Map just like .Net code?
    Yes. Right click the map to debug and select "Debug Map".

  22. What is a .btm File?
    .btm is a BizTalk Server map file.

  23. What is BizTalk Mapper Designer and were I can find it?
    It is a tool that runs within the Microsoft Visual Studio .NET environment after you install BizTalk Server. You use Mapper to create and edit maps to translate or to transform messages.

  24. What kind of transformation can we accomplished using maps?
    Using maps he can accomplished Semantic Transformations. This type of transformation usually occurs only in BizTalk maps but also can be perform inside pipelines. Here the document maintains the same syntax that is represented (XML), but changes its semantics (data content). This type of transformation are typically one-way, since that when we added and aggregate small parts of the information, that compose the document into another differently document, we may miss important details for its reconstruction.

  25. What is grid pages and how many can we have?
    The mapper grid plays a critical role in the definition of maps, containing the links and functoids that control how data in a source instance message is transformed into an instance message that conforms to the destination schema.
    The grid view can have multiple layers, called grid pages, allowing you to organize complex maps into logical subdivisions of mappings. BizTalk 2010 no longer has the limitation of 20 grid pages that exist in the previous versions of the product.


  26. Is it possible to pass the output of a functoid(on map grid it is placed on right side) to other functoid(on map grid it is placed on left  side)? 
    No it is not possible as grid follows left to right precedence. So to link output of first functoid it has to be placed to left of second functoid. After linking is done then placement of functoids does not matter.


Author

Maheshkumar S. Tiwari
iVision Software Pvt Ltd
http://tech-findings.blogspot.com/

Contributors


See Also

Read suggested related topic:

Another important place to find a huge amount of BizTalk related articles is the TechNet Wiki itself. The best entry point is BizTalk Server Resources on the TechNet Wiki.
Leave a Comment
  • Please add 3 and 5 and type the answer here:
  • Post
Wiki - Revision Comment List(Revision Comment)
Sort by: Published Date | Most Recent | Most Useful
Comments
Page 1 of 3 (26 items) 123
Wikis - Comment List
Sort by: Published Date | Most Recent | Most Useful
Posting comments is temporarily disabled until 10:00am PST on Saturday, December 14th. Thank you for your patience.
Comments
  • Maheshkumar S Tiwari edited Original. Comment: [toc]

  • Colin Dijkgraaf edited Revision 1. Comment: Formating

  • Maheshkumar S Tiwari edited Revision 2. Comment: added answers to Q 8,9 and 10

  • Steef-Jan Wiggers edited Revision 3. Comment: Fixed HTML

  • Steef-Jan Wiggers edited Revision 4. Comment: Fixed HTML

  • Steef-Jan Wiggers edited Revision 5. Comment: Formatting

  • Steef-Jan Wiggers edited Revision 8. Comment: Formatting

  • This article has everything to be a great article, but needs to be improved with more content.

    Just to notes:

    1- Question 9 doesn't fit in this article and would be better to move it to the orchestrations

    2- Question 10: Where are transformations are more efficient? just because they are processed faster since they do not have the overhead of putting the orchestrations in memory, does not mean that they are more efficient!

  • Maheshkumar S Tiwari edited Revision 11. Comment: changed Q 9 and added answer

  • Question 10 should be reworded as Sandro indicates that transformation are not more efficient. Having transformations in ports means less overhead in orchestration and more flexibility when changes on mappings have to be applied.

    From 8 Tips And Tricks For Better BizTalk Programming (msdn.microsoft.com/.../cc163423.aspx):

    Don’t put maps in Orchestrations, unless you need to map multiple incoming messages into one message, or generate a new message using the modified (mapped) contents of an existing message as the base. For simpler deployment, it’s better to put your maps on Receive and Send ports. If your business partner revises their schema, or if you add a new partner that requires a new map, you don’t want to be forced to update both your schema and your orchestration.

  • Maheshkumar S Tiwari edited Revision 12. Comment: Added Q11 and answer

  • Maheshkumar S Tiwari edited Revision 13. Comment: Q12 & 13 and answer

  • Maheshkumar S Tiwari edited Revision 14. Comment: Q14 and answer

  • Maheshkumar S Tiwari edited Revision 15. Comment: added Q15,16 and 17 with answers

  • Maheshkumar S Tiwari edited Revision 16. Comment: minor edit

Page 1 of 3 (32 items) 123