BizTalk Developer Interview Questions and Answers - Functoid

BizTalk Developer Interview Questions and Answers - Functoid


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

Questions and Answers

  1. What is functoid?
    The term functoids refers to predefined functions within the BizTalk Mapper tool set. Functoids support a 
    number of useful translations and transformations.

    We can consider functoids, as pre-defined functions that we can use to perform complex data manipulations and transformations. Typically on a map, the data is copied from source to destination by dragging links between elements of the two schemes. Functoids stays in the middle of these operations and apply an operation on the incoming data in order to transform them to the requirements of the destination. BizTalk Mapper Designer represents a functoid as a box in the middle of the link or links between the processing elements. As a point of interest, functoid is a term coined by Microsoft and is commonly described as “functions on steroids.”

  2. What is required for a developer to create a custom functoid?
    Basically you need to Create a new class library project using the .NET language of your choice and create a classes derived from Microsoft.BizTalk.BaseFunctoids. However the easy way is to use the BizTalk MapperExtensions Functoid Wizard. See more here.

  3. Why would a developer create a custom functoid ?
    Below scenarios can tempt developer to create custom functoid:
    • When there is no out of box functoids which can be used to complete the logic.
    • When the number of functoids used to implement the logic goes on increasing and becomes difficult to follow and manage.

  4. What is the difference between Value Mapping and Value Mapping Flattening functoid?
    • Value Mapping: When both the source and the destination schemas define parallel repeating structures between which the relevant data is mapped.
    • Value Mapping (Flattening): When the source schema defines a repeating structure and the destination schema defines a flat structure, such that different instances of the repeating structure in the source schema are intended to be mapped into unique elements in the flat structure in the destination schema.

  5. How can you build an if-then-else construction with functoids?
    To build if-then-else it will need any of the Logical functoid (depending upon the requirements, e.g., if value is to be matched then Equal Functoid) and a Value mapping functoid. The combination (Logical Functoid and Value Mapping Functoid) will repeat, firstly to implement IF condition and secondly to implement ELSE condition.

  6. Is it possible to reuse method of a Scripting Functoid in other Scripting Functoid?
    Yes, it is possible. To do so the method at first place should be declared as public and then it can be called from other scripting functoid.

  7. What is Microsoft.BizTalk.BaseFunctoids.dll?
    This DLL implements all the base classes which are needed to create a functoid.

  8. What are the ways to integrate custom functoid into solution?
    Custom functiod can be integrated in solution using two ways (in both BizTalk.BaseFunctoid is derived):

    • Directly by using inline code 
    • Indirectly by reference to a method in a class library deployed into the global assembly cache.
        9. What can be done using Scripting Functoid?
             Custom code or custom scripts can be added .

      10. How many categories are functoids divided in Tool Box?
 There are 9 categories available in Toolbox viz.,
    •  Advanced
    •  Conversion
    •  Cumulative
    •  Database
    •  Date and Time
    •  Logical
    •  Mathematical
    •  Scientific
    •  String
       11. Can we concatenate 200 input parameters using String Concatenate functoid?
              No. As the minimum input parameter accepted is 1 and maximum is 100.
       12. How can we get the count of the repeating node or repeating element?
              Record Count Functoid cab be used here, the input to this is the looping record/element.

       13. Is it possible to know the index of current record in looping structure?
             Yes with the use of Iteration functoid. Iteration functoid gives  the index of the current record in a looping structure


Maheshkumar S. Tiwari
iVision Software Pvt Ltd


See Also

Read suggested related topics:

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 6 and 6 and type the answer here:
  • Post
Wiki - Revision Comment List(Revision Comment)
Sort by: Published Date | Most Recent | Most Useful
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.
  • Maheshkumar S Tiwari edited Original. Comment: Added [toc]

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

  • Steef-Jan Wiggers edited Revision 3. Comment: Fixed HTML, TOC, and formatting

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

  • Steef-Jan Wiggers edited Revision 6. Comment: Errata

  • Steef-Jan Wiggers edited Revision 10. Comment: Added two questions

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

  • Maheshkumar S Tiwari edited Revision 13. Comment: updated answer 5

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

  • Maheshkumar S Tiwari edited Revision 15. Comment: corrected typo error  

  • Maheshkumar S Tiwari edited Revision 16. Comment: Added a question and answer

  • Maheshkumar S Tiwari edited Revision 18. Comment: Added answer to Q 5  

  • Maheshkumar S Tiwari edited Revision 20. Comment: added Q8 and answer

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

  • Maheshkumar S Tiwari edited Revision 29. Comment: Added question 9

Page 1 of 2 (27 items) 12