Calling a custom pipeline programmatically from within a BizTalk Orchestration

Interfaces often times are required to process email attachment received thru the POP3 adapter. While recently working on a project with a use case such as this we came across a requirement where the attachment not only had to be separated/detached from the email as a body part but also then had to be reformatted/transformed from a CSV file to a standard BizTalk XML message format.

Typically the best practice and approach to parsing a flat file is with the Flat File wizard using an example of your file to generate the appropriate xml schema. You would then create a custom pipeline and place a flat file dissembler component in the disassembly section configuring the component with the FF generated schema produced by the flat file wizard:

FFWizardPicforBlog

Read More »

Posted in BizTalk, Biztalk Tutorial | Leave a comment

Embedding Power View Reports Into Your Blog/Site

For all of you out there who have had challenges with embedding your Power View dashboards into your public-facing websites, here is the fruits of my labors attempting to and finally achieving success in doing just that. There’s no new revelations here, consider this to be more of a compendium of all the important information that’s out there on this subject.

Making your Power View Report Available to the Public

This was one of the biggest challenges I encountered. While there are many examples of how to create a guest link, all the resources I found did not give the full picture of what you need to do to make this possible.

Read More »

Posted in Business Intelligence, PowerView, SharePoint | Tagged , , , , | Leave a comment

Dynamics CRM2013 Reporting: Error Pre-Filtering Report w/ Multiple DataSources

On a recent client I had the task of making one of our already existing Dynamics CRM reports use pre-filtering. This is normally a very straight forward procedure and you can find steps to do this on the following link: https://msdn.microsoft.com/en-us/library/bb955092.aspx.

Now given the complexity of the query used to populate this specific report I needed to use explicit pre-filtering. Once again, this is something that should be fairly straight forward to do. After I finished adjusting the report to use explicit pre-filtering I then deployed my report out to CRM. But when I tried running the report I got the following error: The expected parameter has not been supplied for the report

Read More »

Posted in Dynamics CRM, Reporting Services | Leave a comment

BizTalk Orchestration handling webHttp REST GET requests

Consider the following scenario: you have a tested BizTalk Orchestration that effectively takes a parameter (say, a message identifier) and returns the message from a database for consumption.  Now you want to expose a WCF Service for consumers of that orchestration to use.  While you could design a SOAP based interface, a simple RESTful interface that accepts a GET verb would do the trick more elegantly (and in a way that would be much easier for clients to work with). It also may meet a requirement when you already have clients that expect a RESTful interface for data retrieval.

There’s plenty out there on handling REST GET requests using BizTalk Orchestrations as a consumer:

Unfortunately, the same can’t quite be said about handling REST GET requests as a provider; there are resources:

…but this side of the equation tends to focus on POST and PUT verbs where there will be a message body.  The GET verb is not going to provide a message body (only parameters).

Using the above two articles should be enough to get a WCF webHttp service deployed and ready, and I’m not going to rehash every step of that process (MSDN and Richard Seroter provide excellent instructions including pictures and diagrams).

However, when you get to the configuration of the receive location, there is some additional work needed to properly handle GET requests:

Read More »

Posted in BizTalk, Biztalk Tutorial | Tagged , , , , , | Leave a comment

BizTalk WCF Timeout Issue

Background

On a recent engagement, I was developing a BizTalk 2013 solution that received XML-based data from several sources and ultimately inserted rows into a SQL Server database using a stored procedure. An additional requirement was that the database connection had to be dynamic.

As with most development, everything worked fine in the development environment and even in initial UAT testing. A timeout issue started to appear intermittently as the size of the data being processed increased and the content of the database grew. Rerunning the same test data through would often complete successfully. The details of the message logged to the Windows Logs was:

A message sent to adapter “WCF-Custom” on send port “WCF.Timeout_1.0.0.0_WCF.Timeout.ProcessDataToSQL_Dyn_WCFTest_c495b1996f35b303″ with URI “mssql://xxxx//Test?” is suspended.

Error details: System.Data.SqlClient.SqlException (0×80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. —> System.ComponentModel.Win32Exception (0×80004005): The wait operation timed out

I captured a SQL Profile for the offending stored procedure and reran it in SSMS. For one of the test cases, I noticed the processing time took between 50 seconds and 1 minute and 10 seconds and I immediately remembered that the default timeout on WCF adapter calls is 1 minute.

Since the send port is dynamic, there are no binding configuration properties to set so I added the following line to the message assignment shape:

SQL_Request(WCF.SendTimeout)= “00:10:00″;

I then redeployed the solution, sent a test message and received the exact same timeout message! Next I figured maybe it was one of the “other” timeout settings that was getting triggered so I added the following additional lines to the message assignment shape:

SQL_Request(WCF.OpenTimeout)= “00:10:00″;

SQL_Request(WCF.CloseTimeout)= “00:10:00″;

I then redeployed the solution, sent a test message and received the same message again. That wasn’t it. What to do now?

Read More »

Posted in BizTalk, Biztalk Tutorial | Tagged , , , , , , , , | Leave a comment

Introducing the T-Connect EDI Validator!

All of us who have worked on EDI integration know the pain of maintaining the integrity of the EDI messages coming into the system, as well as the value of validating them right from the pipeline-gate. To aid in this, Microsoft BizTalk Server supports out of the box verification of structural integrity with extended schema validation settings.  The great part about this is that it allows us to reject any incoming EDI transactions right out of the gate and return those results in the generated ACK file. This way, we ensure that we don’t let invalid data into the system, while also making the sender aware of our “bad data” rejection.

However, as great as this feature is, it still leaves a major validation pain point.

Let’s consider following scenario.

  1. Let’s say in the case of EDI 837 transactions, we consider REF*D9 as the claim identifier within our system and we want to ensure that there are no duplicate claims within a given interchange.
  2. In the same transaction assume the trading partner is sending some other custom information like a Return Date with an NTE Segment, which has a specific format.
  3. Since we are talking about HIPAA Claims, our organization only processes claims that are higher than a certain threshold.

Read More »

Posted in Announcements, BizTalk | Leave a comment

Validating an untyped XML message in a BizTalk Orchestration

Receiving an untyped message (a System.Xml.XmlDocument) in a BizTalk orchestration offers a lot of flexibility in design.  The same code can be used for many different message types, and schema changes don’t require reworking your ports and receive shapes.  However, you lose some of the advantages of working with strongly typed messages – your orchestration could very well get a malformed message that is invalid by structure or content, and you won’t know until further down the line when another component that does validate the message (such as a send port) throws an exception.  Many times this isn’t a concern, but I was recently working on a solution where the orchestration received untyped messages and needed to know whether the message would validate against its schema or not.  Other components in the integration that processed the message later were not open for modification, and since the message was being constructed by the orchestration I couldn’t just add the XML Validator component to the receive pipeline for the orchestration.

There are a few different ways to handle this scenario. XmlDocument provides a Validate() method that takes a callback function it sends warnings and errors to.  This method requires that you add the correct schema for the message type.  This could be accomplished with a C# helper class:

Read More »

Posted in 0-Uncategorized, BizTalk, Biztalk Tutorial | Tagged , , , , , | 1 Comment

New Update to the T-Connect EDI Splitter Now Available!

Picture1

In September of last year, we released the T-Connect EDI Splitter For BizTalk.  We are proud to announce the release and immediate availability of the newest version of the T-Connect EDI Splitter.  For the uninitiated, the EDI File Splitter is a Microsoft BizTalk Server pipeline component that enables the rapid splitting of large EDI files within BizTalk Server.  These split files are delivered to an user configurable folder location.   Along with additional features added to the EDI Splitter for BizTalk, we are also releasing a standalone application for Microsoft Windows available today: The T-Connect EDI Splitter for Windows

Read More »

Posted in Announcements, BizTalk | Tagged , , , , , | Leave a comment

Announcing the T-Connect EDI Viewer!

EDI files offer many advantages in business and health care messaging, and BizTalk offers a premier suite for handling EDI interchanges and agreements.  At the same time, EDI files are notoriously difficult to read, even for EDI experts and highly skilled Business Analysts. The T-Connect EDI Viewer is designed to address this gap.  It supports converting the HIPAA EDI 837 transaction sets (for Professional, Institutional, and Dental) as well as the HIPAA EDI 834 Enrollment transaction set to a human-readable and printable PDF format.

The T-Connect EDI Viewer offers a library and a pipeline component that can be used to convert EDI messages sent to BizTalk into a PDF version of their Paper Form equivalents.  This conversion could be done as part of an existing integration, or using archived/historical data on a case by case basis.  The PipelineComponent offers a very simple way of adding this functionality to an existing BizTalk application with little to no development effort.  The library offers a simple but powerful API for more fine grained control over the process for BizTalk application developers.

A fully functional 30-day trial is available here.

Keep reading to see a sample conversion!

Read More »

Posted in 0-Uncategorized | Tagged , , , | 2 Comments

T-Connect EDI Accelerator Now Available!

1 We are happy to announce the availability of our enhanced product, the T-Connect EDI Accelerator for BizTalk.  We have seen a trend in the difficulties encountered while processing EDI messages.  That trend includes all types - both HIPAA and Manufacturing/supply chain transactions.  Originally, we developed the T-Connect HIPAA Accelerator to address these pain points, allowing companies in the Healthcare space to successfully process claims, authorizations, benefit enrollments, eligibility inquiries, and acknowledgements.  The T-Connect EDI Accelerator was purpose built to address pain points that many companies experience in working with EDI files.  This includes, but is not limited to:

  1. The process of on-boarding of new trading partners is time consuming and expensive
  2. There is a significant risk of implementing unproven platforms, especially complex point to point architectures.
  3. Their current EDI platform is a “home grown” point-to-point or manual/paper-based system
    1. This is very hard to maintain
    2. Inability to scale to accommodate increasing volume of claims, enrollments, purchase orders, etc.
    3. It is difficult to upgrade to new compliance or regulatory standards
  4. There is little to no insight into the day-to-day processing of EDI messages.
  5. Legacy systems do not support custom validations with business rules
  6. Large EDI messages are very slow to process

Read More »

Posted in Announcements, BizTalk | Tagged , , , , , , | Comments closed