left-icon

BizTalk Succinctly®
by Rui Machado

Previous
Chapter

of
A
A
A

CHAPTER 7

Pipelines

Pipelines


Introduction

Pipelines are powerful BizTalk artifacts used to standardize inbound and outbound messages for pre-processing in receive ports or post-processing in send ports (for example, as parsing operations, validations, or schema evaluation before storing a message in MessageBox or sending a message to external systems or to a destination system). BizTalk divides pipelines into two distinct types: receive pipelines and send pipelines. These two types of pipelines differ from each other in the number of stages they have.

A receive pipeline has four different stages:

  1. Decode—This stage is used to perform decoding or decryption of a message. This stage is used for components that decode or decrypt the message. The MIME/SMIME Decoder pipeline component or a custom decoding component should be placed in this stage if the incoming messages need to be decoded from one format to another.
  2. Disassemble—This stage disassembles messages into XML format. Out-of-the-box BizTalk brings two disassemblers: XML and Flat File. This stage is used for components that validate the message format. A pipeline component processes only messages that conform to the schemas specified in that component. If a pipeline receives a message whose schema is not associated with any component in the pipeline, that message is not processed. Depending on the adapter that submits the message, the message is either suspended or an error is issued to the sender.
  3. Validate—Validates the XML contents, verifying the schema conformance. This stage is used for components that validate the message format. A pipeline component processes only messages that conform to the schemas specified in that component. If a pipeline receives a message whose schema is not associated with any component in the pipeline, that message is not processed. Depending on the adapter that submits the message, the message is either suspended or an error is issued to the sender.
  4. Resolve Party—Determines to which party this message will be sent after being transformed. This stage is a placeholder for the Party Resolution Pipeline Component.

Receive Pipeline

Send pipelines will make the opposite of receive pipelines, making any post transformation processing’s needed before sending it. If for instance your trading-partner requires a Flat File, BizTalk must transform its internal XML message format to this expected one. These pipelines consist of three stages:

  1. Pre-Assemble—This is a custom stage, as BizTalk doesn’t bring any out-of-the-box component. This stage is executed before the message enters the Pipeline. This stage is a placeholder for custom components that should perform some action on the message before the message is serialized.
  2. Assemble—Converts the XML message into the flat file format needed. BizTalk brings two components for this stage, XML assembler and Flat File Assembler. Components in this stage are responsible for assembling or serializing the message and converting it to or from XML
  3. Encode—Used for encrypting the message or adding any signature to it. BizTalk brings the MIME/SMIME encoder to use in this stage. This stage is used for components that encode or encrypt the message. Place the MIME/SMIME Encoder component or a custom encoding component in this stage if message signing is required.

Send Pipeline

At this point you might be asking yourself why have I been talking about available components to use in these stages. This is because it’s you as a developer that is responsible for developing any custom pipelines if needed, as BizTalk only brings four default pipelines to use in receive and send Pipelines, and these are meant for simple scenarios. They are the following:

PassThruReceive

This is a Pipeline meant to be applied to a receive port, and has no component in it. You can see an example of this Pipeline structure in Figure 47. It allows any message to enter your port without any processing.

XML Receive

This is a Pipeline meant to be applied to a receive port and has only the XML Disassembler and the Party Resolution component. This is a nice Pipeline for starts as it disassembles your XML input (must be XML) and evaluates which partners will receive it.

PassThruTransmit

This is a Pipeline meant to be applied to a send port and as no component in it. You can see an example of this Pipeline structure in Figure 48. Allsow any message to be sent through your port, and without any processing.

XML Transmit

This is a Pipeline meant to be applied to a send port, and has only the XML Assembler. If you are sending an XML document through your port without any post processing, keep in mind that BizTalk internal message format in XML, so a PassThruTransmit pipeline will be enough for you.

These Pipelines will become available when you start configuring your physical ports in the BizTalk administrator.

Available pipelines in BizTalk Administrator

Custom Pipelines

Developing custom pipelines is about adding components from those available in the Pipeline Editor to the available stages, according to your pipeline type (receive or send). To start creating your own pipelines, right-click in your project in Visual Studio, select Add, New Item, and select Receive Pipeline or Send Pipeline, according to your development needs. After that, BizTalk will show you the Pipeline Editor.

Pipeline Editors

In the toolbox, you will find all the components we have already talked about. To add them to their corresponding stage, just drag and drop them to the appropriate stage. After you drop the component, the stage will appear as shown in Figure 50.

Pipeline Stage

Scroll To Top
Disclaimer
DISCLAIMER: Web reader is currently in beta. Please report any issues through our support system. PDF and Kindle format files are also available for download.

Previous

Next



You are one step away from downloading ebooks from the Succinctly® series premier collection!
A confirmation has been sent to your email address. Please check and confirm your email subscription to complete the download.