Biztalk Interview Questions

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 39

BizTalk Developer Interview Questions

and Answers - Schema


Table of Contents
 Introduction
 Questions and Answers
 Author
 Contributors
 See Also

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

Questions and Answers


1. What is the purpose of a document schema?
The schema is basically a contract of your message and defines it. The XML Schema definition (XSD)
language defines the structure of an XML instance message, and this is the intended purpose of XSD, such
schemas use XSD in a straightforward way.

A schema is a term borrowed from the database world to describe the structure of data in relational tables.
In the context of XML, a schema describes a model for a whole class of documents. See MSDN Different
Types of BizTalk Schemas .

2. What is the purpose of a property schema?


Property schema is a special type of schema, not created to describe messages. Instead, it describes context
properties. It consists of only child node under a root node. See MSDN Different Types of BizTalk Schemas
.

3. What is the purpose of an envelope schema?


An envelope schema is a special type of XML schema. Envelope schemas are used to define the structure of
XML envelopes, which are used to wrap one or more XML business documents into a single XML instance
message. When you define an XML schema to be an envelope schema, a couple of additional property
settings are required, depending on such factors as whether there is more than one root record defined in
the envelope schema. See MSDN Different Types of BizTalk Schemas .

4. What is the purpose of a Flat File schema?


A flat file schema defines the structure of a class of instance messages that use a flat file format, either
delimited or positional or some combination thereof. Because the native semantic capabilities of XSD do not
accommodate all of the requirements for defining the structure of flat file instance messages—such as the
various types of delimiters that might be used for different records and fields within the flat file. BizTalk
Server uses the annotation capabilities of XSD to store this extra information within an XSD schema. BizTalk
Server defines a rich set of specific annotation tags that can be used to store all of the required additional
information. See MSDN Different Types of BizTalk Schemas .

5. What is the target namespace for schema?


Target Namespace is to schema what a namespace is to .Net Object and root node as a class name.

6. Is it possible to create a custom data type and use it in a schema?


Yes, it's possible to create custom data types and it can be used across the schema. See Can We Have
Custom Data Type.

7. Can schema have two nodes with the same name and different datatypes?
Yes, as long as they are not in the same scope.

8. Can schema have multiple root nodes?


Yes, a schema (XSD) can have multiple root nodes. In case you have a schema with multiple root nodes you
will end up with multiple message types declared in BizTalk, one for every root node. So when you want to
create a message you will need to specify exactly which message type you are going to use!

9. Is it possible to include and import in a single schema?


Yes, it is possible, both are the ways to utilize already existing schema. The only condition is the schema
which is included should have same TargetNamespace or no namespace.

10. By default, what is the data type of elements in a schema?


xs:string

11. What is the difference between Group Max occurs, Group Min Occurs and Max occurs, Min Occurs?
These are all node properties. See MSDN Node Properties .
Group Max Occurs: Specifies the maximum number of times that to the underlying group content of the
selected All Group node can occur.
Group Min Occurs: Specifies the minimum number of times that the underlying group content of the
selected All Group node can occur.
Max Occurs: Specifies the maximum number of times that the element corresponding to the selected
Record node can occur.
Min Occurs: Specifies the minimum number of times that the element corresponding to the selected
Record node can occur.

12. What is BlockDefault property used for?


Use the BlockDefault property to prevent or restrict the types of derivations that can be used in instance
messages for all data types defined by the schema being edited. See MSDN BlockDefault (Node Property of
All Schemas) .

13. What is a canonical schema?


A canonical schema is a design pattern, which is applied within a service oriented paradigm, and within
BizTalk server context establish the loose coupling between systems. Through performing the transformation
of messages from one system to canonical schema and from the canonical schema to message of another
system, systems have no direct relation with each other. The canonical schema can also be viewed as an
internal schema in BizTalk and aid you in structuring your solution through best practice of creating separate
projects for maps, orchestrations, internal and external schemas. Another advantage of using a canonical
schema is that it reduces the number of transformations you need. If you need a to map a few types of
inbound message coming from different parties to a few outbound messages, you can create a map to your
canonical schema for each inbound schema and then a map from your canonical schema to each outbound
schema. If for example you have three types of incoming that needs to be mapped to three types of
outgoing messages you will only need to build and maintain six maps instead of nine.
14. What is the correlation property schema?
Correlation types define a set of properties on which you will be correlating messages. These can be any
properties which were previously defined in a property schema (see question 2) and deployed with some
BizTalk Project including "system" properties deployed with the GlobalPropertySchemas which is installed
as part of the base BizTalk install. A correlation set defines a set of properties and values for these properties
that a message must contain to be processed by a particular orchestration. See MSDN Correlation Sets .

15. Difference between Flat File Schema and XML schema?


A flat file schema defines the structure of a class of instance messages that use a flat file format, either
delimited or positional or some combination thereof. Because the native semantic capabilities of XSD do not
accommodate all of the requirements for defining the structure of flat file instance messages—such as the
various types of delimiters that might be used for different records and fields within the flat file—BizTalk
Server uses the annotation capabilities of XSD to store this extra information within an XSD schema. BizTalk
Server defines a rich set of specific annotation tags that can be used to store all of the required additional
information. See MSDN Different Types of BizTalk Schemas .

An XML Schema is basically a contract of your message and defines it. The XML Schema definition (XSD)
language defines the structure of an XML instance message, and this is the intended purpose of XSD, such
schemas use XSD in a straightforward way. See MSDN Different Types of BizTalk Schemas .

16. Can we have schema without a target namespace? What will be its MessageType?
Yes, we can have a schema without target namespace and it's message type will be the Root node.

17. Which property is only available for the flat file schema?
Custom Date/time property is only available for flat file schema.

18. What is the Message?


Each message in BizTalk Server is considered a multi-part message and is made up of zero or more parts.
Each message with one or more parts has one of these parts identified as the body part. Each part consists
of a binary chunk of data which can represent an XML document, a flat file, a serialized .NET class, or other
binary stream of data. You use the body part of the message to identify the type of the message that can be
used for routing. See MSDN The BizTalk Server Message .

19. What is the difference between BizTalk (Schema) Editor and BizTalk Schema Generator?
BizTalk Editor resides within the Microsoft Visual Studio shell. Some of the functionality within BizTalk Editor
relies upon existing user interface elements within the Visual Studio shell. See Using BizTalk Editor .

BizTalk can automatically create the schema from DTD, well formed XML, XDR. To do this schema generator
is used.

20. How is schema generator invoked?


Right-click the project in Solution Explorer and select Add Generated Items --> Generate Schemas.

21. What is InstallWFX.vbs script?


It is a script which when run installs the BizTalk Schema Generator. It is used when generating a schema from
existing items. It's likely to get error first time or after updates "WFX to XSD Schema generation module is
not installed". Then this script can be used to install the schema generator.

22. Can "EDI" be a part of Namespace?


It can be but it should be avoided in the projects that uses BizTalk EDI engine as during run time there can
be conflicts with this and expected results might not be seen.

23. Is it possible to promote XML record of ComplexContent ?


No. To promote XML record its ContentType property should be set SimpleContent.
24. What is the maximum length allowed for promoted properties?
255 characters

25. What is the maximum length allowed for Distinguished fields?


It can be of any length, no limits.

26. How to create an XPath alias to a field which can be used in decision making in Orchestration?
The Distinguished field is an XPath alias to the field.To create it , right-click the element-->Promote-->Show
promotion-->Add

27. What is <Any> element?


An <Any> element in a schema designates a specific location in the schema where new elements
or attributes can be added. When BizTalk uses the schema to process a message containing
unknown elements or attributes in the designated location, the schema will still consider the message valid.

28. What is the Root Node?


It's a node within a BizTalk Server schema that represents the outermost XML element in the business
document specified by the schema.

29. How BizTalk engine identifies a unique schema?


BizTalk uses a combination of namespace#rootnode to define the schema type of a message, thereby
making a MessageType unique (for example: http://mynamespace.com#MyRootNode). In other words,
BizTalk uses this combination to identify and resolve schemas references.

30. How BizTalk engine performs a validation of an instance of the message against the Schema?
By default, BizTalk Server will examine only the namespace and the root node name of a message to identify
and validate the schema, and will not detect extra elements in the message body. To perform a deep
validation of a message format, you have to create a Custom Pipeline with the XML Disassembler
component. See more here .

31. What are encoding options available used by BizTalk when creating schema?
There are various options but BizTalk always uses UTF-16 encoding for their schemas. See more.

32. Does BizTalk add any namespaces when creating schema?


Yes. http://schemas.microsoft.com/BizTalk/2003
and http://www.w3.org/2001/XMLSchema are added by BizTalk when creating a schema.
See more.

33. How is schema namespace added by BizTalk when creating schema?


By default, the BizTalk Editor will set the namespace of a schema to http://ProjectName.SchemaName.

34. What is the difference between XSD and DTD? Difference between XSD and DTD are listed below:

o XSD are written in XML.


o XSD support data types.
o XSD support namespaces.
o XSD is extensible to future additions.
o XSD is richer and more powerful than DTDs.
BizTalk Developer Interview Questions
and Answers - Map
Table of Contents
 Introduction
 Questions and Answers
 Author
 Contributors
 See Also

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 a 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 the 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 a global variable in a map?


Yes. The 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 the untyped message in the map?


No

10. Is it possible to create a map for a schema with unknown structure?


Yes, its possible. It can be done by including the <Any> element in the map.

11. Where are transformations more flexible?


Transformations are more flexible and fast when they are executed from a send or receive port. We can
replace map on the ports without any development effort. But if we replace map in orchestration we have to
recompile and redeploy the orchestration assembly.

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 a link to destination field this will override mass copy.

13. Is there a limit on a 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 a 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 a Map?


Yes, it's possible and it can be done with the help of Scripting functoids or creating the custom functoids.

16. Can value from Orchestration variable be passed to the destination field in the 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
an other source schema and mapping can be done. The variable also can be passed inside the Assign shop
in an expression.

17. Is it possible to have a map with n incoming messages to n outgoing messages?


Yes, but you need to create these kind of maps inside Orchestrations only! This type of maps must be
created using the Transform shape within an Orchestration. Orchestration Editor creates an envelope schema
which includes all nested message schemas. Once created you can use this map on ports as well.

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 a 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 the graphic map representation and external XSLT be used in a single map?
No. As everything which we see in 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 the BizTalk Mapper Designer and where I can find it?
It is a tool that runs within the Microsoft Visual Studio .NET environment after you install BizTalk Server. We
use the Mapper to create and edit maps.

24. What kind of transformation can we accomplish using maps? [Controversial]


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

25. What are 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 link the output of a functoid placed on the right side of the map grid with a functoid
placed on the left side of the map grid?
No, it is not possible as grid follows left to right precedence. An output link of the first functoid has to be
placed into an input of the second functoid.

BizTalk Developer Interview Questions


and Answers - Orchestration
Table of Contents
 Introduction
 Questions and Answers
 Author
 Contributors
 See Also

Introduction
This article intends to cover the answers to orchestration related questions, which a BizTalk developer can face during
an interview.
Questions and Answers
1. How are messages created in an orchestration?
You construct a message any time that you introduce a message into your orchestration, either by receiving
it or by assigning values to a message variable (see MSDN Constructing Messages ). There are several
ways to create a new instance of a message in an orchestration, see Michael Stephenson blog post Message
Construction in an Orchestration .

2. Where is information about promoted properties stored?


The information about the promoted properties is extracted and stored in the bts_DocumentSpec table in
the Management database.

3. What is message metadata?


The message metadata is called Context Properties and on receiving the message, both the adapter and the
pipeline will add information to the context.

4. Can we use message metadata in Orchestration?


Yes

5. How does Orchestration subscribes to messages?


In Orchestration, the first Receive shape is responsible for creating a subscription. Following two properties
are involved in it,
o Message : This tells what message this Orchestration is subscribing to
o Activate : This tells to consume the message when found in a MessageBox

6. Design patterns in Orchestration?


One of the best practices when implementing orchestrations is to use orchestration patterns when possible.
These patterns are basically design pattern, which is a general reusable solution to a commonly occurring
problem within a given context of BizTalk orchestration. This article will provide some useful resource links to
aid you in using patterns when implementing an orchestration. See TechNet Wiki articles BizTalk Server 2010:
Orchestration Patterns and BizTalk: Enterprise Integration Patterns.

7. Types of messages?
Two types of message
o Typed message : A message created in Orchestration is bound to the schema
o Untyped message : A message is bound to System.Xml.XmlDocument instead of the schema.

8. How to load message in a variable?


It can be done using the LoadXml method. Say xmlDoc is a variable then following is done to load employee
message.

xmlDoc.LoadXml("<Employee><first_name>Joe</first_name><last_name>Smith</
last_name></Employee>");
9. Can recursion be achieved in Orchestration?
No

10. What is binding?


The term binding refers to the configuration of orchestration ports in order to control the creation of
subscriptions and/or promoted properties. Binding is used to control how messages will be routed to or
from orchestration ports by the subscription mechanism.

11. To which scope compensation block can be added?


A scope configured as Atomic or Long running can have compensation blocks added, but scopes that are
configured with no Transaction type cannot.

12. Is it necessary for all .Net components being called from orchestration to be serializable?
Yes it is necessary (good practice) for all .Net components being called to be serializable. If not then Atomic
scope is to be used which has its own limits.

13. Is it possible : Orchestration A calls another Orchestration B and vice versa?


No it is not, since it forms cyclic dependency.

14. What is XLANG and where it is used?


XLANG/s can be viewed as a messaging language with some of the expression capabilities of C#. However,
code is not portable between XLANG/s and C#. The language is used for orchestrations. XLANG/s statements
generally fall into one of two categories: simple statements that act on their own, such as receive or send,
and complex statements that contain or group either simple statements or other complex statements, such
as scope, parallel, and listen. The semantics embodied in XLANG/s are a reflection of those defined in the
Business Process Execution Language for Web Services (BPEL4WS) specification published by Microsoft, IBM,
and BEA for the definition of business process semantics. See MSDN XLANG/s Language .

15. Can we prevent Orchestration from entering a suspended state?


Any exception which is not caught within the exception handlers of the orchestration causes the
orchestration instance to be moved to the Suspended state. By applying the appropriate error handling in
an orchestration it can be prevented entering the Suspended state.

16. What is persistence point?


At various points within a running orchestration the state can persist. See MSDN Persistence and the
Orchestration Engine .

17. XMLDocument is non-serializable still it's called without atomic scope with no error, why?
It is the only exception to the requirement of types for variables having to be serializable and treated
as special case. See more here

18. What is the maximum number of properties that can be used in correlation set?
The correlation set can have a maximum of three properties used for correlation on the receive shapes.

19. Can an Atomic scope can have an exception handler of their own?
No, it can only have a Compensation Block.

20. Pro's and Con's of Direct binding?


Pro's:
a. Loose coupling
b. Not bounded to any physical port (explicitly)

Con's:
c. Can lead to subscribing to messages published by another publisher

21. Can orchestration use components other than listed in Toolbox?


Yes. It is possible to use components like pipeline, business rule policy, .net component etc.

22. When is convoy used?


The convoy is used to receive multiple messages in sequence or parallel to achieve a goal/result.

23. Is it possible to enforce Orchestration to behave in singleton way?


Yes it is possible with the help of correlation.

24. Where is BTS.SPID and BTS.ReceivePortID used?


It is used in Specify Later port binding option. In this model the orchestration ports are bound to messaging
ports using BTS.SPID,BTS.ReceivePortID or other related properties.

25. When is property "Synchronized=true" used?


When a variable is shared across the branches of parallel shape.

26. What is the maximum number of branches that can be used in a parallel shape?
There are no limitations on the number of branches which can be used in a parallel shape.

27. Which language does expression shape support?


Expression shape allows for writing XLANG/S statements that provide C# -like coding capabilities.

28. What is relation between Orchestration instance and correlation?


Correlation is the process of matching an incoming message with the appropriate instance of an
Orchestration.

29. What are the ways to add properties in context?


Promoting a node to a property field means to make a node value available in the context of the
message.Adapters and pipeline components write in the context.

30. What is the difference between written property and promoted property?
Promoted properties can be used as criteria in message routing while written properties cannot. Property
field is a Promoted Property in the context. Distinguished field is a Written property in the context.

31. What is correlation type?


A correlation type is a list of properties that eventually populates with values for use in routing messages.

32. What are conditional persistence points?


The Receive shape, Listen Branch and Delay shape are conditional persistence points.

33. What are Scopes used for?


Scopes are used for following reasons:
. To configure transaction (long running and atomic)
a. To handle exceptions
b. To trigger compensating logic
34. Which shapes are used to implement "AND" and "OR" situation in Orchestration?
Parallel Action shape is used for a AND situation whereas Listen shape is used for OR situation.
35. Which scope can have an Exception Handling?
A scope configured with the transaction type of None or Long running can have exception handling added
but not Atomic scope.

36. Is it possible to get an exception object from General Exception?


No. General exception in BizTalk is similar to writing a Try-Catch block but without the exception object thus
not possible to get the exception object.

37. What's the main difference between Call and Start Orchestration?
Calling an orchestration will use the same thread to run another orchestration while using Start
Orchestration will create a new thread to run the started orchestration.
A Call Orchestration returns the control back to the caller. A Start Orchestration shape starts the
orchestration in a non-deterministic way.
As a conclusion, Calling an Orchestration will be synchronous operation where the caller waits for a
response, while Start Orchestration is asynchronous operation. See more here .

38. What are the different types of transactions available for orchestration?
Unlike traditional programming, BizTalk Server supports two distinct types of transactions: atomic and long-
running. See more here .

39. Is it possible to skip any particular orchestration from getting compiled?


Yes it is possible. You can do so by setting "Build Action" property of that orchestration to "None". By default
value of this property is "BtsCompile".

40. When a persistence point occurs at the Orchestration level?


The engine will save the state of an orchestration in the following circumstances:
o Send Shape (after a message is sent)
o Start Orchestration Shape
o Suspend Shape
o End of a Transactional Scope (atomic or long-running)
o An Orchestration Debugger breakpoint is hit
o Orchestration Engine determines that the instance needs to be dehydrated
o When the Orchestration Engine is shut down; through the controlled shutdown of the host or
abnormal circumstances. The engine tries to persist but if that fails, the Orchestration instance will
resume from the last successful persistence point.

See more here .

41. Can persistence point occur in the Delay or Receive shape?


Yes, but only if the Orchestration Engine determines that the instance needs to be dehydrated.

42. Is it possible to use Message Assignment shape and Transform shape individually?
No, it is not possible, Transform and Message assignment shape must run under construct shape.
43. Is it possible to use IF Then Else logic inside the Message Assignment?
No, It is not possible to use the If Then Else Logic inside the message Assignment. It has to be used in the
expression shape.
44. How to Promote Property inside an Orchestration?
The Orchestration can not promote the properties to message context by default like pipelines can do by
using the msg.Context.Promote() method. Inside Orchestration one has to create a correlation set and
intialize that correlation set while publishing the message. Then the BizTalk Engine will promote the property
to the message context.
BizTalk Developer Interview Questions
and Answers - BizTalk Application
Table of Contents
 Introduction
 Questions and Answers
 Author
 Contributors
 See Also

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

Questions and Answers


1. What is MessageBox?

 MessageBox is a SQL server database along with messaging agent. See MSDN MessageBox .

2. What is the purpose of MessageBox?

 Store all messages and context received.


 Stores all subscriptions.
 Stores all Host Queues.

3. What happens to the messages coming into MessageBox?

 Checking the subscription table is the First thing when messages come in MessageBox and a copy of the
message is sent to the subscriber.

4. How does MessageBox treats messages without subscriber?

 The message is suspended when there are no subscribers found for it.

5. How many receive locations can a single receive port have?

 Receive port can have any number of receive location.

6. Types of subscription in BizTalk?


 Two types of subscription

1. Activation
2. Instance

Instance subscriptions are removed from the message box while Activation subscriptions remain active as long as
the orchestration or send port is enlisted.

Instance subscriptions are removed from the message box while Activation subscriptions remain active as long as
the orchestration or send port is enlisted.

7. Is it possible to have various ports with the same name in two applications?

 No. The names of the various ports must be unique, not just inside an Application but for the whole BizTalk
group.

8. In which state can a send port does not subscribe to a message?

 In Unlisted state send port does not subscribe to any messages and no messages will be sent through the
port.

9. What could be the reason for having multiple receive locations inside one Receive port?

 The reason for having multiple receive locations inside one Receive port is to have the ability to receive
different messages from different locations and having BizTalk treat them as if they were received from the
same place and/or had the same message type.

10. How can we check what's going on inside BizTalk Server?

 The group hub gives the user an overview of what is currently going on inside BizTalk.

11. Can a send group be a part of multiple send group?

 No only static send ports can be part of send group.

12. Ordered delivery on send port has serious performance impact, why?

 Because only one thread can submit messages through the port and each message has to wait for messages
through the port and each message has to wait for the message before it can be processed.

13. Ordered delivery does not have an effect even after it is set, when this might happen?

 When back up transport is also applied.

14. Can a message in a MessageBox be changed?

 Messages in BizTalk are immutable after constructed and the message is considered constructed after it is
placed into the MessageBoxDatabase.

15. What happens when we run MSI package?


 When we run MSI packages, it will register the application with Windows Operating System and then load
any related assemblies in the Global Assembly Cache.

16. In how many ways can we do the BizTalk Application deployment?

 BizTalk Application deployment can be done using the following:

a. Deploying from Visual Studio


b. Building a Microsoft Installer (MSI) package that can be exported or imported between
environments.
c. Using command line-based tools such as MSBuild and BtsTask.
d. Using community frameworks, such as BizTalk Deployment Framework and NANT.

17. How it's possible to work with several pipelines as soon as new Application is created?

 BizTalk.System is already referenced in all new applications, as a result of this we can work with several
pipelines as soon as a new application is created.

18. What happens to message when all subscribers have received their message?

 BizTalk will no longer need to hold on the message and the message will be removed from BizTalk.

19. What can be done to avoid loss of messages in a scenario where we know beforehand unavailability of the
destination system, but source system is publishing messages?

 In this scenario we can stop the send port bound to the destination system. This way the messages will lie in
a queue inside Messagebox. Subsequently, we can start the send port when the destination system is
available.

20. When do Error Report properties get promoted?

 When Failed message routing is enabled and if an error occurs at the port, then the message will have all the
regular context properties unprompted and instead have some error-specific context properties promoted -
all in the ErrorReport Namespace e.g. ErrorReport.ErrorType, ErrorReport.ReceivePortName etc.

21. Which is the first step to enable Subscription?

 A filter on the send port is the first step to enable subscriptions in BizTalk.

22. Can Application be in start state when host is Offline?

 Yes. But this application will not function properly.

23. When don't filters on send port apply?

 If a send port is directly bound to an orchestration port,then filters do not apply.

24. How to apply maps on send port group?

 Maps can't be applied to Send Port Group.


BizTalk Developer Interview Questions
and Answers - Business Activity
Monitoring
Table of Contents
 Introduction
 Questions and Answers
 See Also

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

Questions and Answers


1. What is BAM and whats the benefits of using it?
Business Activity Monitoring (BAM) is used to monitor business milestones and key metrics in near real-time
throughout a process in BizTalk. Business Activity Monitoring (BAM) is a module in BizTalk that captures
business data and process milestones to allows business decision makers to gain insight of their in-flight
processes. Using BI tools to derive up-to-date metrics and key performance indicators from the BAM
databases, users can forecast process trends and monitor processes in real-time. BAM also provides a
mechanism to alert users to situations that require their intervention to prevent undesirable outcome or to
encourage a beneficial result.

2. Is it possible to integrate BAM installed on server1 and BizTalk installed on server2?


Yes its possible with a condition that BAM server has to be part of the BizTalk group. See more here.

3. What is the difference between TrackingProfile DB and DTADB?


Both are same and terminology is used interchangeably.

4. What is an Activity and an Alert?


BAM Activities identify the milestones and tracking data an individual is interested in tracking. Milestones are
the steps in an activity that are measured in time, and tracking data are the key data points in a process you
are interested in tracking (such as a customer ID or name).

BAM alerts allow you to configure and receive alerts related to specific changes in business data. Alerts are
set up per BAM view.

5. What is ContinuationID?
Continuation is the ability to contribute to a single BAM activity from different applications by using two
different unique identifiers as the ActivityID. For example, in one part of a business process, a customer’s PO
number might be used to track an activity. In another part of the process, an internal order fulfillment
number might be used to track the same activity. You could enable continuation and relate the PO number
and the order fulfillment number, so that both parts of the process could add information to the same
activity.

6. What is TDDS?
Tracking Data Decode Service or TDDS, is a service that moves event data from the MessageBox database to
the BAM Primary Import database. This service processes and persists both Business intelligence and BizTalk
Health Monitoring data.

7. What are the various types of BAM Interceptors available?


The BAM Interceptor is an object that lets you instrument your application to capture data of interest. See
morehere .
o BAM WCF interceptor: BAM can capture data from SOAP envelope in a WCF request, response or
fault message. The data is specified using interceptor configuration (IC) file (XML file created
by developer). The service’s app.config must be modified to load the BAM components at runtime.
o BAM WF interceptor: like WCF Services, BAM can also capture milestones from WF Activities. Am IC
file is used to specify the data that must be captured. BAM components must also be loaded at
runtime.

8. What is Activity Relationship ?


An activity relationship exists when an activity relates to one or more other activities. An example of this is
having multiple Shipment activities related to a single Purchase Order activity, or one Shipment activity
containing items from two Purchase Order activities.

To indicate that two activities are related, you need to know both names and have the
corresponding ActivityIDsin memory in order to call AddRelatedActivity. This API creates the link between
the corresponding activity records. See more here .

9. What is a BAM View?


A BAM view is a representation of the milestones and business data tracked in one or more activities on the
BAM Portal.

10. Can we have multiple views created on single Activity?


Yes its possible to have multiple views on single Activity.

11. Where BAM collects raw tracking data?


BAM collects raw tracking data from the BAMPrimaryImport (BAM Primary Import) Database.

12. Is BAM Tools a prerequisite for EDI/AS2 Runtime in BizTalk Server 2010?
That depends on the functionalities (features) you want to install, but for me the correct answer is no. See
morehere .

13. How many database are used by BAM?


BAMPrimaryImport, BAMStarSchema, BAMAnalysis, BAMArchive, BAMAlertsApplication and
BAMAlertsNSMain.

14. What is this tool BM.EXE and why do I need it?


BAM Management utility or “bm.exe” provides for end-to-end management and deployment of BAM. You
can use the BAM utility to perform the following tasks:
o Consume BAM definition and BAM configuration XML as input.
o Deploy the run-time infrastructure on the server, which includes the BAM Primary Import database,
BAM Star Schema database, BAM Analysis database, and corresponding Data Transformation
Services (DTS) packages.

15. Where the data came from, what the BAM Data Sources?
The most commonly data sources used with BAM are:
o BizTalk Application
o BAM API
o WCF Services (WCF Interceptor)
o WF Workflows (WF Interceptor)

See more here .

16. What is BAM Portal?


It is a Web-based feature that consists of a collection of ASP.NET pages, it portal provides real-time, end-to-
end visibility into a business process.

17. It is required to track custom code used in application, which can be used TPE/BAM API or both can
be used?
TPE can't be used here as it can only be used to capture data from BizTalk artifacts, thus BAM API have to be
used.

18. Is there any shape in Orchestration which can't be tracked?


Yes. There are some shapes like:
a. Terminate
b. Throw Exception
c. Group
d. Loop
e. Message Assignment
f. Suspend
g. Transform

19. What are various event streams used in BAM API?


Orchestration Event Stream (OES)

Asynchronous, participates in BizTalk orchestration transactions.

Buffered Event Stream (BES)

Asynchronous, high throughput, some latency.

Direct Event Stream (DES)

Synchronous, no latency and directly written to the BamPrimaryImportDb.

Messaging Event Stream (MES) Asynchronous, participates in BizTalk Server pipeline transactions.

20. Is it possible to apply BAM on the retry mechanism of Send Port?


No, Because the code execution for retry happens in adapter which is out of the BAM tracking scope.
21. What is the dfference between Real Time Aggregation and Scheduled Aggregations used in BAM?
The storage of RTA is a SQL table and the aggregation is updated and maintained by SQL trigger. The event
importing and aggregation update are completed in the same transaction, therefore its data latency is
negligible and almost real-time. The scheduled aggregation is saved in Olap cubes which need to be
processed periodically by the cubing DTS package

BizTalk Developer Interview Questions


and Answers - Pipeline
Table of Contents
 Introduction
 Questions and Answers
 Author
 Contributors
 See Also

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

Questions and Answers


1. Why do we need a custom pipeline when we have default pipelines?
BizTalk Server provides a few out of the box pipeline components. For instance the S/MIME components for
encrypting or decrypting messages. In case you need to do some pre or post processing on a message and
the functionality is not offered through the provided pipeline components you will need to built your own
custom pipeline component. The pipeline component(s) can then be used within a custom pipeline. See also
TechNet Wiki Article BizTalk: List of Custom Pipeline Components.

2. What is the maximum message size supported by XML send an XML receive pipeline?
This depends on infrastructure specifications (CPU, Memory, Disk) and on specific (possible) bottlenecks in
your Microsoft BizTalk Server system (see MSDN How BizTalk Server Processes Large Messages ). While
BizTalk Server imposes no restriction on message size, practical limits and dependencies might require you
to minimize the size of your messages because large messages require more processing resources (see
MSDN Message Considerations ).

3. What is the minimum number of components allowed in pipeline stage?


Minimum is zero components, example PassThru pipeline.

4. What is the maximum number of components allowed in pipeline stage?


All stages in the pipeline can take maximum of 255 components, except the assemble stage that has a
maximum of one.

5. Does Flat file assembler pipeline component validates the incoming XML message?
No
6. What is a .btp File?
.btp file is a BizTalk Server pipeline file.

7. How many states have the Receive Pipelines and the Send Pipelines?
The receive pipeline consists of four stages
o Decode Stage: This stage is used for components that decode or decrypt the message.
o Disassemble Stage: This stage is used for components that parse or disassemble the message.
o Validate Stage: This stage is used for components that validate the message format.
o Resolve Party Stage: This stage is a placeholder for the Party Resolution Pipeline Component.

Regarding to the send pipelines, they consist of three stages:

o Pre-assemble Stage: This stage is a placeholder for custom components that should perform some
action on the message before the message is serialized.
o Assemble Stage: Components in this stage are responsible for assembling or serializing the
message and converting it to or from XML.
o Encode Stage: This stage is used for components that encode or encrypt the message.

8. Is there any Visual Studio Wizard to create custom pipeline components?


Yes there is. The Pipeline Component Wizard is intended to ease development of pipeline components used
within a BizTalk Server environment. Supports both C# and VB.NET. See more here .

9. What's the difference between Default Pipelines and Custom Pipelines?


When you create a new application, the default pipelines are created and deployed by default and appear in
the Microsoft.BizTalk.DefaultPipelines assembly in the \References folder for every BizTalk project. The
default pipelines cannot be modified in Pipeline Designer. These pipelines can be selected when configuring
a send port or receive location in BizTalk Explorer.

Pipelines and pipeline components present out of the box can do most of the tasks for you. But sometime
specific message processing or messaging requirements encourage developers to develop custom pipeline
components. You can create three types of pipeline components: general, assembling, and disassembling.
Each of the three types can additionally implement probing functionality. Each type of pipeline component
has an associated interface that must be implemented for the component to be plugged into the BizTalk
Messaging Engine; the pipeline interfaces that distinguish the types of components are IComponent,
IAssemblerComponent, and IDisassemblerComponent. A custom pipeline component is just a plain .NET
class that implements several BizTalk interfaces.

10. Is there an error handling functionality to handle error on pipelines?


Yes. Error-handling functionality called error reporting which enables handling pipeline errors. Error
reporting isspecified on receive and send ports within the BizTalk Administration console.

11. When is filter used to create a subscription?


Filters are used to create subscription when orchestrations are not part of the scenario.

12. Which property is required when using Flat file Disassembler component?
Setting the Document Schema property is required, all other properties are optional.

13. What if Document Schema property is not specified when using Flat file Disassembler component?
A runtime schema discovery will be attempted, Biztalk Server attempts to determine the correct flat file
schema to assemble the message with, based on the namespace and the root node of the message.
14. Which API is used to implement Pipeline?
To implement pipeline we have to use the API in the Microsoft. BizTalk. Component. Interop namespace.

15. What are types of pipeline components?


o General
o Assembling
o Disassembling
o Probing

16. Why attributes are added to class while developing a custom component?
To indicate that the component is a custom pipeline component and in which stage it can be used, couple of
attributes are added to the class.
[ComponentCategory(CategoryTypes.CATID_PipelineComponent)] -- This attribute tells that the component
is cutom pipeline component
[ComponentCategory(CategoryTypes.CATID_Any)] -- This attribute tells that the component
can be used at any stage
OR
[ComponentCategory(CategoryTypes.CATID_DisassemblingParser)] -- This attribute tells that the component
can be used only on Disassemble stage

17. Custom Component is not visible in Toolbox, even after adding the assembly to GAC?
Just adding assembly is not sufficient, it needs to be added to component dll at location : C:\Program
Files\Microsoft BizTalk Server
2010\PipelineComponents and then reset the toolbox, it will be visible and ready to use.

18. What interfaces are used in developing a general custom pipeline component?
IBaseComponent,IComponentUI,IComponent,IPersistPropertyBag

19. What interfaces are used in developing a custom dis-assembler component?


IBaseComponent,IComponentUI,IDisassemblerComponent,IPersistPropertyBag

20. What interfaces are used in developing a custom assembler component?


IBaseComponent,IComponentUI,IAssemblerComponent,IPersistPropertyBag

21. What interfaces are used in developing a custom Probing component?


IProbeMessage

BizTalk Developer Interview Questions


and Answers - Visual Studio
Table of Contents
 Introduction
 Questions and Answers
 Author
 Contributors
 See Also
Introduction
This article intends to cover the answers to Visual Studio related questions, which a BizTalk developer can face during
an interview.

Questions and Answers


1. What purpose does Visual Studio serve?
Development for BizTalk Server is done through Visual Studio <version> (depends on BizTalk version). Visual
Studio has templates for BizTalk artifacts like orchestration, pipelines, schemas and maps, so a BizTalk
solution can be created (design time) and deployed to the BizTalk runtime. Besides artifacts .NET
development can be done in creating pipeline components, custom functoids, custom adapters, and .NET
helper classes to aid in orchestrations. As a BizTalk professional Visual Studio is your friend and required to
build BizTalk solutions.

2. What is strong name key?


A strong name ensures that each assembly name is unique. Each assembly in your BizTalk project requires a
strong name in order to deploy successfully. See also MSDN How to Configure a Strong Name Assembly Key
File .

3. How is strong name key generated?


At the command prompt, from the folder where you want to store the key file, type the following command,
and then press ENTER: sn /k file_name .snk. In Visual Studio Solution Explorer, right-click the project and
then clickProperties. Click the Signing tab and choose Browse in the Choose a strong name key file drop
down box. See also MSDN How to Configure a Strong Name Assembly Key File.

4. Difference between Build and Rebuild?


Build means compile and link only the source files that have changed since the last build,
while Rebuild means compile and link all source files regardless of whether they changed or not. See also
MSDN Building and Cleaning Projects and Solutions in Visual Studio .

5. What are the actions in order to deploy from Visual Studio?


o Sign the project with strong name key
o Give the name to the Application

6. Can I create or configure Receive Ports or Send Ports through Visual Studio?
That depends of the BizTalk Version/Visual Studio that you are using! In previous version you could create
and configure port through the BizTalk Explorer view in Visual Studio, but since BizTalk Server 2010 the
BizTalk Explorer view was removed from Visual Studio.

7. What is a .btproj File?


.btproj is a Visual Studio BizTalk project file.

8. Are all the BizTalk development tools embedded in Visual Studio?


No. Indeed BizTalk Mapper Editor, Schema Editor, Orchestration editor and Pipeline editor are embedded in
Visual Studio. However BAM and BRE tool are not embedded.
9. Why we get the error "Unexpected error writing metadata to file <filename>"?
It is a known issue of Visual Studio. Visual Studio will not successfully compile a project if it would result in
an assembly larger than 75 megabytes (Mb).

10. Where can we see assembly information in Visual Studio?


AssemblyInfo.cs contains information about assembly, like name, description, version, etc. It can be located
under Project-->Properties-->AssemblyInfo.cs

11. What is Build Order and can it be changed?


Build Order is the sequence in which the projects will be build when the whole solution is build and yes it can
be changed.

12. What is option Clean used for?


Clean Solution is used to delete any intermediate and output files (mostly assemblies). With only the project
and component files left, new instances of the intermediate and output files (mostly assemblies) can then be
built.

BizTalk Developer Interview Questions


and Answers - Business Rule Engine
Table of Contents
 Introduction
 Questions and Answers
 Author
 Contributors
 See Also

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

Questions and Answers


1. What is a Business Rules Engine?
A run-time inference engine that can link highly readable, declarative, semantically rich rules to any business
objects (.NET components), XML documents, or database tables. It can evaluate rules against facts and
initiate actions based on the results of that evaluation.

2. What is the tool that I need to use to create Business Rules?


You need to use the Business Rules Composer. This is a graphical tool used for authoring, versioning, and
deploying policies and vocabularies.
3. What is a Business Rule Language?
It is a rule markup language in XML format for declarative rule definitions.

4. How can I execute a Business Rule in my orchestration?


Using the Call Rules Shape. See more here .

5. What is used to create new vocabulary definition?


The Vocabulary Definition Wizard is used to create vocabulary definitions.

6. What is a Policy?
A policy is a logical grouping of rules. You compose a version of a policy, save it, test it by applying it to the
facts, and, when you are satisfied with the results, publish it and deploy it to a production environment. See
more here .

7. Is it possible to change Business Rule policy after it was published?


No. After policies are published it can't be edited. But if there is a need to have a change in policy then new
version of policy is to be created.

8. Does rule composer have provision of adding ELSE logic?


No, there is no provision of adding ELSE but else logic can implemented with extra IF.

9. What is Long term fact and Short Term fact?


The fact is the user data to which rule conditions are applied. At design time a fact is a reference to that data.
Facts have two categories – Short Term Facts and Long Term Facts. Consider a loaning process of any Bank.
We can think a “loan application” as short term fact. Short team facts are business information which
changes per occurrence. On the contrary, “interest rates” do not change very regularly. This business
information is steady and we can consider it a long term fact. See more here .

10. What is the difference between Publishing and Deploying the Rule?
Rule alone cannot be published or deployed, it has to be wrapped under Policy and then published and
deployed. When a policy is deployed it is ready to use and can't be edited whereas when published, policy
aren't ready for use.

11. Can we call policies from .Net code?


Yes. Firstly it needs to be declared (policy name which is to be called), passed in the fact instance and finally
executed.

12. Can we call a specific version of Policy using Call rule shape in Orchestration?
No, as the call rules shape calls the latest version of the policy deployed.

13. What is purpose of BizTalkRuleEngineDb?


This database is a repository for:
o Policies, which are sets of related rules
o Vocabularies, which are collections of user-friendly, domain-specific names for data references in
rules.

14. Is there limit for versions of policies?


No.
15. What is Rete Algorithm, does it have any relation with BRE?
Rete Algorithm is an efficient pattern matching algorithm for implementing production rule systems. BRE's
inner working is based on the Rete algorithm.

16. How does it differ, calling the policy in Call Rules Shape and in Expression?
The Call Rules shape in the Orchestration calls only the latest version of the policy. To call an older (specific)
version from within an orchestration, the Business Rules Framework APIs is used, which can be called from
within an expression.
17. How to test specific rules (not all) defined under one policy?
To be answered

BizTalk Developer Interview Questions


and Answers - XSLT
Table of Contents
 Introduction
 Questions and Answers
 Author
 Contributors
 See Also

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

Questions and Answers


1. What is XSLT?
XSLT or Extensible Stylesheet Language Transformations is a style sheet language for XML documents
(stands for XSL Transformations), it defines the transformation rules of the messages.

2. Where does XSLT come into the picture in BizTalk?


When a developer faces a complex mapping (problem) and to solve it requires a substantial amount of logic
he/she can use custom XSLT. See TechNet Wiki article BizTalk Virtual Mapper VS Custom-XSLT.

3. What is Muenchian method?


The Muenchian Method is an algorithm for grouping of data used in XSL Transformations that identifies keys
in the results and then queries all nodes with that key. It can be applied with custom XSLT within a BizTalk
Map. See MSDN Blog Muenchian Grouping and Sorting in BizTalk Maps .
4. Which version of XSLT is supported by the BizTalk mapper?
BizTalk Mapper supports XSLT 1.0. Using XSLT 2.0 in BizTalk Mapper is not supported (See MSDN Creating
Maps Using BizTalk Mapper ).

5. Can I use Custom XSLT inside a BizTalk mapper?


Yes, by making use of the scripting functoid.

6. Is it possible to exclude xml declaration <?xml...?> in the ouptut file?


Yes. To exclude xml declaration, the attribute "omit-xml-declaration" is to be set as "yes."

7. Can the filter be applied to the output from the xml file?
Yes. It can be done by adding a criterion to the select attribute in the <xsl:for-each> element.Filter operators
which can be used are:
o =(equal)
o != (not equal)
o &lt; less than
o &gt; greater than

8. How to traverse through the repeating node the input file?


The XSL <xsl:for-each> element can be used to select every XML element of a specified node-set.

9. Is it possible to have custom functions?


Yes, it can be done in script blocks which can be done using <msxsl:script> element.

10. Is it possible to use the method from an assembly available in GAC?


It can be done using <msxsl:assembly> element and it has to be child of <msxsl:script>element.

BizTalk Developer Interview Questions


and Answers - Helper Class
Table of Contents
 Introduction
 Questions and Answers
 Author
 Contributors
 See Also

Introduction
This article intends to cover the answers to the developer related questions on Helper classes with BizTalk, which a
BizTalk developer can face during an interview.
Questions and Answers
1. What is a helper class?
A .net helper class with the context of BizTalk is a class (library) that can support an orchestration with extra
functionality. It can enhance an orchestration in tracing, error handling, caching, and
serialization/deserialization. See TechNet Wiki article BizTalk Server 2010: .NET Helper Classes.

2. Where can the helper class be used?


.NET (helper) classes can be used inside an orchestration. See TechNet Wiki article BizTalk Server 2010: .NET
Helper Classes.

3. A helper class which is not marked serializable , can it be used in Orchestration?


Yes, it can used in orchestration but in an atomic scope only.
4. Why is it required that helper class/.net assembly to be marked serializable?
When creating an assembly that will be used by BizTalk, it is appropriate to mark all classes as serializable.
Since BizTalk is stateless and makes use of persistence points, which details are stored in BizTalk SQL Server
databases by serializing all the data. Therefore non-serializable Classes or Types cannot be used directly in
Orchestrations.

5. What does property "copy local" indicates?


"Copy Local" property indicates whether the assembly referenced should be copied into the local bin
directory when a project is built.

6. Is it possible to create a .Net class variable in BizTalk if property "Use default constructor" is set to
false?
Yes it is possible, in this case the variable will need to be instantiated in an Expression shape through the
new keyword.

7. What is Gacutil.exe?
The Global Assembly Cache tool allows you to view and manipulate the contents of the global assembly
cache and download cache. See MSDN GacUtil.exe .

8. Is there a way to automate the process of adding assembly in GAC?


Yes. Right click the project, go to properties and select Build Events
And add following in the Post-Build event command line:

"C:\Program files\Microsoft Visual Studio 8\SDK\v2.0\Bin\GacUtil.exe" -


u $(TargetName)
9. Is helper class deployed like BizTalk application?
No, it is added to GAC on the machine where it is used.

10. Why helper class/.Net assembly doesn't list in the Resources of Application, in spite of having
reference to it and used in the application?
Because resources are meant to hold only BizTalk resources.

11. How helper class or .net assembly is added to GAC?


With the use of gacutil.exe and following command:

gacutil /i assemblypath

12. There is a .net helper class which suits to a requirement (in Orchestration) of an application but it is
Non-Serializable, how can it be used?
Below are the steps :
a. Add Reference
b. Make Orchestration as Long running
c. Add Atomic Scope
d. Add Expression shape
e. Orchestration variable of class inside scope
f. Instance of object inside the scope
g. Call method

BizTalk Developer Interview Questions


and Answers - Adapter
Table of Contents
 Introduction
 Questions and Answers
 Author
 Contributors
 See Also

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

Questions and Answers


1. What is an Adapter?
An adapter is a software component (COM or .NET-based) that enables you to easily send messages out of
or receive messages in BizTalk Server with a delivery mechanism that conforms to a commonly recognized
standard, such as SMTP, POP3, FTP, or Microsoft Message Queuing (MSMQ). As Microsoft BizTalk Server has
evolved, the need for adapters that quickly enable connectivity with commonly used applications and
technologies has increased. BizTalk Includes over 25 multi-platform adapters that simplify the integration
with Line of Business (LOB) Applications (such as Siebel, SAP, JD Edwards, Oracle, and Dynamics CRM),
database (Microsoft SQL Server, Oracle, DB2) and other technologies (Tibco, Java EE). (See more here )

2. What is required for a developer to create a custom adapter?


A developer can receive requirements for building a custom adapter in case there are no out-of the box or
commercial available to fulfill certain functionality. This can be done by using the Microsoft Windows
Communication Foundation Line of Business Adapter SDK. See MSDN Microsoft Windows
Communication Foundation Line of Business Adapter SDK .

3. What is the purpose of Adapter?


Adapters are the components that enable the BizTalk to interface with the external communications
protocol.They mediate between the protocol and the messaging pipeline in use.

4. Does an adapter write to content of the message?


No. The adapter only writes data in the context of the message which is further interrogated by another
component of BizTalk.

5. What are the native adapters in BizTalk?


"Native" or "integrated" adapters in BizTalk are: FILE, FTP, HTTP, MQSeries, MSMQ, POP3, SMTP, SOAP,
Windows Sharepoint Services, and the seven WCF adapters (WCF-WSHttp, WCF-BasicHttp, WCF-NetTcp,
WCF-NetMsmq, WCF-NetNamedPipe, WCF-Custom, and WCF-CustomIsolated)
(MSDN Adapters in BizTalk Server , BizTalk 2010) or the ten WCF-based in BizTalk Server 2013 if you
include WCF-BasicHttpRelay, WCF-NetTcpRelay, WCF-WebHttp and two other new ones SB-Messaging and
SFTP adapter.

6. Which port do you need configure in a firewall for in and outbound traffic when using the FTP
Adapter?
For the FTP adapter you will need to configure port 20 and/or 21. See MSDN Ports for the Receive and Send
Servers .

7. What happens to file when message is suspended in a MessageBox?


The file adapter deletes the file from disk.
8. What does "Public address" property defaults to?
This property defaults to file://{Receive folder value}/{file mask value}. The literal prefix file:// is required so as
to communicate the protocol in use. It is string from 0 to 255 characters.

9. What is the default value of Retry count and Retry interval (min)?
The default value is "5". This can be altered through the Advanced Options Tab of the Transport Properties
of a Send Port. See MSDN How to Configure Transport Advanced Options for a Send Port .

10. What is an Adapter Handler?


An adapter handler is an instance of a BizTalk host in which the adapter code runs. When you specify a send
or receive handler for an adapter you are specifying which host instance the adapter code will run in the
context of. An adapter handler is responsible for executing the adapter and contains properties for a specific
instance of an adapter. A default BizTalk Server configuration will create adapter handlers for all of the
installed adapters, but you may want to create additional adapter handlers for purposes of load balancing or
to provide process isolation for a particular adapter handler. (See more here )

11. What Is the Adapter Framework?


The BizTalk Adapter Framework offers a stable, open mechanism for all adapters to implement or access
work from the BizTalk Server Messaging Engine. The interfaces described in the
Microsoft.BizTalk.Adapter.Framework namespace enable adapters to provide a means to modify
configuration property pages. It also is a means to import services and schemas into the BizTalk project.
(See more here )

12. What you mean with Native Adapters and Custom Adapters?
Native adapters are those that are shipped with the product and there are more than 25 multi-platform
adapters. But in some cases a BizTalk Server may need to transport messages to a specific custom
application or use a protocol for which a native adapter does not exist. If you are unable to locate an adapter
to support your communication requirements, BizTalk Server provides a framework for developers so that
you can develop your own custom adapter.

13. I've heard the term connector in BizTalk. So what's the difference between an adapter and a
connector?
Probably the same thing. In BizTalk, we can call a connector as a software component that enables you to
easily exchange messages between BizTalk Server with different systems, i.e, it's an adapter- a
communications service used to exchange documents with your trading partners or your internal systems.

14. What can we expect when Propagate fault message is enabled?


The fault message will be published to subscribing applications. If it is not enabled then any fault messages
will end up being suspended and are available in the BizTalk Administration Console.

15. What is an Isolated Receive Adapter?


The receive adapter that is hosted in a process other than a BizTalk Server process. This adapter is created
and controlled by an external process and it registers with BizTalk server at run time to submit messages.

16. What is journal queue?


The journal queue is a system queue that is automatically created when MSMQ is installed and is meant
to contain copies of messages that are sent or received.

17. What is dead queue?


The dead letter queue is a system queue that is automatically created when MSMQ is installed and is meant
to contain undelivered messages.
BizTalk Developer Interview Questions
and Answers - Functoid
Table of Contents
 Introduction
 Questions and Answers
 Author
 Contributors
 See Also

Introduction
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:
o When there is no out of box functoids which can be used to complete the logic.
o 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?
o Value Mapping: When both the source and the destination schemas define parallel repeating
structures between which the relevant data is mapped.
o 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):

o Directly by using inline code


o 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.,

o Advanced
o Conversion
o Cumulative
o Database
o Date and Time
o Logical
o Mathematical
o Scientific
o 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.
BizTalk Developer Interview Questions
and Answers - EDI
Table of Contents
 Introduction
 Questions and Answers
 Author
 See Also

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

Questions and Answers


1. What is EDI?

 Electronic data interchange (EDI) is a document standard which when implemented acts as common
interface between two or more computer applications in terms of understanding the document transmitted.
It is commonly used by big companies for e-commerce purposes, such as sending orders to warehouses or
tracking their order.

2. What are the things which make EDI solutions differ from standard XML solutions?

 EDI solutions are on the same line as XML solutions but involved more complexities in schema, maps etc.
Also few more things are to be done like setting up and configuring the trading partners (business profiles,
parties, agreements etc.).

3. How to create the EDI schema?

 BizTalk already ships with the standard EDI schemas. To use it we need to extract the schemas using the
MicrosoftEdiXSDTemplates.exe file, located in the root of the XSD_Schema\EDI folder.
o

4. What is the default character set supported by EDI pipeline?

 UTF-8 is the default Character set supported and it is used for run-time validation and applies only to EDI
X12.

5. How does BizTalk resolves Agreement?


 BizTalk requires the qualifier and identifier fields for sender and receiver in order to perform agreement
resolution. It will match the values of ISA5, ISA6, ISA7, and ISA8 in the interchange header with those in the
properties of an agreement.

6. When does fallback agreement properties come into the picture?

 When BizTalk is not able to resolve the agreement, then it uses the fallback agreement properties.

7. It is required to use EDI Pipeline in the EDI solution, but I can't see in the options?

 EDI pipelines are not included in the Application as XML and Pass Thru pipelines are available. A reference to
the BizTalk EDI Application is to be explicitly added so as to use EDI pipelines.

8. What are the values which Segment Separtor Suffix and Segment Terminator Suffix can have?

 Either of the following : None,CR,LF or CRLF

9. Are there a relation between EDI sending pipeline and Parties?

 The EDI sends pipeline performs a party lookup by performing a series of steps to determine whether there
is a match between the outgoing interchange and the properties of a party.

10. What are the options to release EDI Batch messages to destination?

 There are four options which can be used as deciding factor and then release:
o Schedule : At regular intervals
o Maximum Number of Transaction Sets :Fixed number of transactions within an Interchange
o Maximum Number of Characters in an Interchange : Number of characters
o External Release Trigger : Whenever a Trigger Message is given to BizTalk

11. Is it possible to receive Multiple Interchanges in a Single Message and parse it?

 Yes it's possible to receive Multiple interchange in a single message and to parse it, the pipeline property
calledDetectMID is to be set as True.

12. Can we access EDI message context properties in orchestration?

 Yes it's possible. To do so reference to Microsoft.BizTalk.Edi.BaseArtifacts.dll should be added.

BizTalk Developer Interview Questions


and Answers - BizTalk Database
Table of Contents
 Introduction
 Questions and Answers
 Author
 See Also
Introduction
This article is intended to cover the answers to BizTalk Database related questions which a BizTalk developer can face
during an interview.

Questions and Answers


1. What effect does creating a new Host have on the Database?
When the new host is created it results in a new entry in the Host table in the Management database and
also a new Host queue in the MessageBox.

2. The MessageBox database holds all the messages that are processed, what about messaging Objects?
Messaging objects viz. Receive Ports, Receive Locations, Send ports, etc. are stored in the Management
Database.

3. Is there any change in the database when the filter is added to Send port or when Activate property
of Receive shape is set to true?
Yes. An entry is added in subscription table.

4. What databases are part of every solution?


BizTalk Server Management database, MessageBox databases, Tracking database, and SSO database are four
databases which are used by BizTalk server runtime operations. It is the component that encapsulates and
abstracts the database component and is the interface used by BizTalk Server to interact with the
MessageBox. The Message Agent is a Component Object Model (COM) component that provides interfaces
for publishing messages, subscribing to messages, retrieving messages, and so on. This interface is the only
mechanism used by other BizTalk Server components, including the adapter framework and orchestrations,
to interact with the MessageBox.

5. Which service looks after known issues in the database?


Monitor BizTalk Server, this job scans the BizTalkMgmtDb, BizTalkMsgBoxDb and BizTalkDTADb database for
any known issues, including orphaned instances.

6. How would you define database role in context to BizTalk?


The database is used to store the data about the Message and other data required for processing it, along
with the help of SQL Server Agent Jobs.

7. Which SQL Agent job runs continuously?


MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb is the job which runs continuously in spite of
scheduled to run once per minute.

8. Messages without subscribers are removed, how?


MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb determines when a message is no longer
referenced by any subscriber. When no subscriber found it starts
MessageBox_Message_Cleanup_BizTalkMsgBoxDb which removes the unused message.
9. Does implementing BAM require more database?
Yes. BAM Analysis, BAM Archive, BAMAlertsApplication, BAMAlertsNSMain, BAM Primary Import database
and BAM Star Schema can be used to implement BAM solution.

10. Which database stores the configuration information for receive locations?
Single Sign-On database (SSODb) securely stores the configuration information for receive locations, other
known secret information is stored in the BizTalkMgmtDb.

11. How many databases are used for implementing BRE?


In addition to the default 4 databases only one database, i.e. Rule Engine Database.

12. What are the options for upgrading BizTalk Server Database?
There are two ways for upgrading
1.In Place upgrade
2.Transfer Upgrade.
See More

BizTalk Developer Interview Questions


and Answers - HL7
Table of Contents
 Introduction
 Questions and Answers
 See Also

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

Questions and Answers


1. What happens when the HL7 accelerator is installed?
The installation of the HL7 accelerator results in one or more of these items, depending on the selection during
installation:

 Schemas: Contains the XSD representation of HL7 messages which are in flat file format in version v2.x
 Pipelines: Converts HL7 messages in flat file format into XML on receive and XML to flat file when sending
messages and validates the HL7 message
 Adapter: Minimal Lower Layer Protocol (MLLP) adapter enables BizTalk to receive or send HL7-based
messages, which BizTalk Server typically transports using the MLLP protocol. The MLLP adapter ensures that
BizTalk Server and BTAHL7 are interoperable with HL7-based messaging applications.Generates
acknowledgements for received messages
 Tools and Utilities: Configuration Explorer, MLLP Test Tool, SDK, Logging framework

2. What does BTAHL72VXCommon project contain?


It contains Schema for MSH segent and HL7 acknowledgements.
3. What does BTAHL7231common project contain?
It contains the definitional schema referred to by all version 2.31 message schemas.
4. Is it mandatory to configure party for HL7?
Yes, you need to add a party for each application that sends data into BizTalk server.
5. Is it required to specify schema per pipeline?
Unlike default flat file DASM that BizTalk server provides, the HL7 does not require that a schema be specified per
pipeline.
6. What consideration is to be taken while dealing with MSH entries?
Entries in MSH are case sensitive.
7. When does DASM generate acknowledgements?
If configured for Acknowledgement or if MSH.15 and MSH16 request them, the DASM generates one or more
acknowledgements.
8. Why is it required to have party configured?
The HL7 parser is designed to check the party configuration for each HL7 message. It reads the MSH.3 and checks for
whether a party has been defined. If it has then HL7 parser follows the configuration supplied via HL7 configuration
explorer.
9. HL7 accelerator runs in which mode?
HL7 accelerator runs only in 32-bit mode. (64-bit support is available in BizTalk 2013).
10. Can we override values in the MSH segment of the outgoing message?
Yes, it is possible to override certain field values in MSH segment of outgoing message.
11. Can we alter the namespace in the MSH schema?
We can, but do not alter because the HL7 parser only looks for single MSH, the standard one that the HL7 accelerator
provides.
12. What is the difference between BTAHL72XReceive and BTAHL7XMLReceive?
Both are used to receive HL7 message but former one used to receive HL7 message as flat file and later one to receive
HL7 message as XML.
13. What are the acknowledgement types defined by HL7?
The ACK code is found in the MSA-1 field of the ACK message. The following codes are supported by HL7:

 AA – Application Accept
 AE – Application Error
 AR – Application Reject

BizTalk Developer Interview Questions


and Answers - ESB Toolkit
Table of Contents
 Introduction
 Questions and Answers
 See Also
Introduction
The purpose of this article is to cover possible Interview questions that a BizTalk Developer can face during an
interview. In additional, this can help to brush-up some theoretical answers to the topic which is being used in day to
day work.

Questions and Answers


1. What is ESB Toolkit and why do we need it?
BizTalk ESB Toolkit provides a set of services on top of the existing BizTalk Server 2010 architecture to enable
service consumers and service providers to be part of a loosely-coupled but mediated environment. Using
ESB toolkit, it helps to enable Dynamic Routing, Transformation and Exceptions handling and considered to
be a platform to realize a service-oriented architecture and by solving the problems of point-to-point service
connectivity with the help of a common mediation layer (the "bus").

2. What is the ESB Toolkit version shipped with BizTalk Server 2013 R2 ?
2.3

3. Can there be any drawbacks which you need to take care before deciding to implement ESB Toolkit ?
It is a security issue that can happen while doing ESB Toolkit setup in a multi-server configuration. This
happens when ESB Portal web application refused to forward the impersonated credentials to the SQL Server
since it is on another server. An identity delegation rights should be given to the application pool. Refer
this to know more details.

4. Can you highlight the features of ESB Toolkit?


Below are are some underline features of ESB toolkit:
> Location & Version Transparency
> Transport Protocol Conversion
> Dynamic Data / Format Transformation
> Lightweight Service Composition
> Error Handling & Repair
> Service Interactions Support

5. Does ESB Toolkit improves BizTalk performance?


ESB Toolkit doesn't address to improve run-time performance.

6. How you can use ESB Toolkit and BRE for BizTalk application development ?
We can have BRE resolver to achieve more dynamic routing approach. Rules can be configured not only for
transport or transformation but also for itinerary itself.

7. What are the ESB toolkit Core components?


> Itinerary Services
> Resolver, Adapter Provider Frameworks
> Exception Management Framework

8. What is an Itinerary?
Itinerary (also described as "Routing slip") is a mediation Policy which can be attached to a message which
comes to the ESB dynamically. Itinerary provides pictorial view of message flow with On/Off Ramp
9. Can we encrypt Itinerary?
Yes, in fact, visual studio default option is to enforce encryption. Since Itineraries may potentially contain
sensitive configuration information, “Itinerary Encryption”was introduced to encrypt your itineraries with a
certificate before exporting them.

10. What is resolver, and can you list out the ESB toolkit provides?
A component which feeds runtime configuration values to the Adapter provider the so that it can
dynamically configure the Dynamic Adapter at run-time. It is a .NET component having a collection of entries
which tells what values to use for various BizTalk components.
Example: STATIC, UDDI, XPATH, BRE, BRI, ITINERARY, ITINERARY-STATIC, LDAP

11. What are On/Off Ramps?


> On-Ramp is receive location which provides esb context (Corresponds to Receive port)
> Off-Ramp (typically dynamic) is send port with respect to esb context (Corresponds to the send port)
Refer MSDN Article for details

12. What is ESB Management Portal?


The ESB Management Portal provides views of fault information that make it easy to monitor, manage, and
debug ESB applications. It also provides features that you can use to manage alerts, publish UDDI
information, and administer the portal. To open the portal, navigate to http://localhost/ESB.Portal/. Refer
MSDNfor details .

13. What is Routing Slip pattern? How ESB toolkit supports it?
Routing Slip pattern is widely used message routing pattern and used when a message is routed through a
series of components in a pre-defined order (may be unknown during design time). ESB provides this
pattern via Itinerary-based processing. A business rule can be used to select an Itinerary for a message
dynamically. See How to in msdn .

14. Can we develop a custom itinerary resolver?


Yes, by implementing IResolverProvider interface. Refer Creating a custom resolver .

15. What is the use of Export Mode property in?


Export Mode property can be used to define where the service will execute.
Strict: ensures that the itinerary service executes in its prescribed container; itinerary has a stage property
that specifies the pipeline in which the service executes.
Default: the itinerary service executes in the order prescribed, but not necessarily in the pipeline stage
desired.

16. I can see my Itinerary in the EsbItineraryDb database and set the correct resolver connection string in
the pipeline but I still see the error "The itineraryESBTransformServiceItinerary was not found in the
repository. ", why??
The Itinerary need to be in the Deployed status in order to use it. To verify this, you can either
check nStatus column value "1? in Itinerary table or ItineraryStatus column in Visual Studio by selecting
Model Exporter as Database.
You won't be able to call the itinerary in Published status.

17. Why there is no Itinerary status option when choosing XML Itinerary Exporter?
Because you have chosen to export your Itinerary in XML for moving it to a different environment. Once you
are importing it to the targeted environment, you have an option for "Publish" / "Deploy".

18. How to move itineraries from one environment to another (e.g. QA to Production)?
An EsbImportUtil.exe utility tool is a good option used to publish or deploy the itinerary XML into the
ESBItineraryDB database.
19. What is ESB Dispatcher?
It sets endpoint location properties for the outbound message using ESB resolution guidance.

20. Can you summarize a typical Message Life Cycle in ESB Toolkit?
On-Ramp -> ESB Pipeline (ESB Context promotion) -> Itinerary -> MessageBox -> Queue message for
subscriber -> Subscriber (Orchestration / Off-Ramp). Referthis MSDN Article for details

21. Can we On-Ramp / Off-Ramp message with message box?


Yes (with some trick), a message created within BizTalk Orchestration can promote properties with ESB
context and published to MessageBox.

22. Can we perform multiple transformations in sequence inside Itineraries?


Yes, you need to add multiple Itinerary Services in sequence to achieve this.

23. How can you call an Orchestration inside the Itinerary ?


Using Orchestration Service Extender.

24. What are the three commonly used promoted properties to subscribe correct message of an itinerary
service?
ServiceName, ServiceState, ServiceType

25. What are the common patterns implemented in Itineraries?


Message Routing
-> Message Router : determines the recipient of the message based on a set of conditions
-> Content-Based Router : determines the recipient of a message based on message content
-> Routing-Slip : a message must be routed through a series of components in a pre-defined order, which
may not be known at the design time.
-> Recipient List: a message is routed to one or more recipients (static / dynamic)
-> Splitter : Breaking one message to multiple chunks
Message Transformation
-> Translator : Solves the problem of translating incompatible data formats between two systems
-> Normalizer : Solves the problem when messages received from different sources are semantically
equivalent but format is different
-> Content Enricher : Solves the problem by furnishing additional data to the received message required by
target system
Service Mediation
-> VETO / VETRO : Solves the problem using esb pipelines for Validate, Enrich, Transform, Route, Operate
-> Request-Response: Solves the problem of two-way communication
Service Management
-> Repair and Resubmit: Solves the problem with the use of ESB Management Portal
26. Is it possible to implement service chaining in itineraries (i.e.sending a message to a service and
feeding the response received from that service as input to the next service and so on...)?
Yes. It is possible in itineraries.

You might also like