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 class derived from Microsoft. BizTalk. BaseFunctoids. However, the easiest 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 the 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 the 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 functiods can be integrated into a 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 the maximum is 100.
       12. How can we get the count of the repeating node or repeating element?
              Record Count Functoid can be used here, the input to this is the looping record/element.

       13. Is it possible to know the index of the 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


See Also

Read suggested related topics:

