by community-syndication | Nov 17, 2006 | BizTalk Community Blogs via Syndication
I make so many mistakes with BizTalk that I forget how much I have learned, or better yet, how many mistakes I really can make! (This blog is a testament tosome of them that I at least confess to.)A recent contract reminded of a behavior of the BTAHL7 pipeline component that is not that obvious.
While starting off on a new message, the first thing that I normally do is send the message in using the BTAHL72X pipeline on both the send and recieve port (yes, I put the BTS.ReceivePortName as the filter). I normally look in the destination folder to make sure it is a valid, which it almost never shows up!
I then go to my first troubleshooting haven – HAT. There I look at the last 100 instances, and see that the receive successfully, but the sending had an issue:
In looking closer, it looks like it cannot re serialized back into HL7
So the problem must be in the send pipeline.
WRONG
The actual issue is when the BTAHL72XReceivePipeline attempts to parse the HL7 message, and it is unable to, it completes successfullyby doing nothing and sending it in as a text blob. Of course the send pipeline is expecting that multipart message in xml format, not some unserializable text blob, which of course it knows nothing about!
CORRECTION: I justpulled a Pinocchio;the recieve pipelineactually does something, it logs information to the event log, and will create a ACK/NAK if it is configured. It will not suspend the message because it would then queue up all of the rest of the messages that are following this erroneous message. So it does not stop the other messages from coming in. You also need to make sure that you have a send port that has the BTAHL7.ParseError==true filter to pick have a subscription looking for those bad HL7 messages. I briefly blogged about this here.
The actual errors are logged to the event log (and created in the ACK if you have configured that component). This was a definate Doh moment, when at a different client, I ended up calling support because I was rock headed and did not even bother to look in the event log when data was not showing up out of the message box in xml format.
When I look at the event logI get all of the details I want:
Event Type: Error
Event Source: BizTalk Accelerator for HL7
Event Category: None
Event ID: 4101
Date: 11/17/2006
Time: 6:43:37 PM
User: N/A
Computer: SERVER2003
Description:
Error happened in body during parsing
Error # 1
Segment Id: PID_PatientIdentification
Sequence Number: 1
Field Number: 3
Error Number: 101
Error Description: Required field is missing
Encoding System: HL7nnnn
Error # 2
Segment Id: PV1_PatientVisit
Sequence Number: 1
Field Number: 2
Error Number: 101
Error Description: Required field is missing
Encoding System: HL7nnnn
…
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
by community-syndication | Nov 17, 2006 | BizTalk Community Blogs via Syndication
Good article in this month’s MSDN Magazine called Integrate E-Mail Processing Into Your Business Solutions. It covers a variety of topics, including the POP3 adapter, orchestration and some BizTalk plumbing. I also found the part on writing a custom adapter to deal with email message attachment parts fairly interesting. The custom adapter takes each message part and adds it to a custom database. Check it out.
Technorati Tags: BizTalk
by community-syndication | Nov 17, 2006 | BizTalk Community Blogs via Syndication
I caught a glimpse of something in the BizTalk Server 2006 Help the other day that surprised me a bit. The note said:
If a property schema is associated with a message schema, then these two must be in the same BizTalk project. Separating property schema from its associated message schema in different BizTalk projects is not supported.
I had seen that mentioned elsewhere and had mentally discarded it, but I wanted to see whether it’s not possible, or it’s not supported.
First step was to build two separate projects; one to hold my property schema, another to hold my working schemas.
The property schema has a single field, OrderID. After building and compiling the project, I referenced that project from my primary schemas project. I then tried to promote the OrderNumber value in the schema, and sure enough, I was allowed to pick a schema from a referenced assembly. So far so good.
After also promoting the value in my second schema, I deployed all the projects. Next step was to build a send port that had a subscription filter in the OrderID property field. Finally, I dropped two different messages into BizTalk (via FILE receive location), and both messages were picked up by the send port.
So, from a technical standpoint, this seems to work fine. Clearly there’s some reason for us making this an unsupported configuration, and I’m all ears as for why that’s the case. It would seem to me that separating my property schemas into a separate assembly creates a much more flexible architecture than forcing it to live with the schemas that use it. Thoughts?
BTW, I’m jazzed that this is my first post using Microsoft Windows Vista RTM, Office 2007 RTM, and Expression Web Designer (to write the post itself). After installing Windows Vista, I finally had to discard my trusty Allaire Homesite which wouldn’t install correctly. I’ve used Homesite (now owned by Macromedia) for years to write all my HTML, but finally have to upgrade my toolset. Of course, I’ll still do the HTML by hand, but now in a snazzier shell.
Technorati Tags: BizTalk
by community-syndication | Nov 16, 2006 | BizTalk Community Blogs via Syndication
We are currently on track to publish new or highlight existing content based around the following themes. Is there other content you would like to see?
Month |
Dev Center |
Dec |
WorkFlow |
Jan |
Security |
Feb |
Pipeline |
March |
Application Development |
by community-syndication | Nov 16, 2006 | BizTalk Community Blogs via Syndication
Not sure if I ever came out and said it before but yes, I too work at Avanade. Avanade has relatively recently started a blog CS site so employees can go on there and post random thoughts on tech and personal stuff. Now remember that Avanade is not responsible for what people post to it and all that legal stuff. Just thought I’d come out and plug my wonderful employer. Blogs are at here. Maybe I will be cross posting soon. Who knows. And if you don’t know who or what Avanade is you better.
Technorati tags: Avanade
by community-syndication | Nov 16, 2006 | BizTalk Community Blogs via Syndication
Here is what you should know about the anti-patterns I post: Solutions presented generally follow best practices and draw on the experience of BizTalk practitioners, the extensive docmentation, blogs, newsgroups, and other sources as needed. Some may…(read more)
by community-syndication | Nov 16, 2006 | BizTalk Community Blogs via Syndication
Name: Everything but the Kitchen-Sink Map Description: Given a complex process with many complex rules, everything (business logic, related and unrelated procedures, etc) is shoved into the map. Symptoms: Symptoms include the following: %u00b7 Map contains…(read more)
by community-syndication | Nov 16, 2006 | BizTalk Community Blogs via Syndication
Here is what you should know about the anti-patterns I post: Solutions presented generally follow best practices and draw on the experience of BizTalk practitioners, the extensive docmentation, blogs, newsgroups, and other sources as needed. Some may…(read more)
by community-syndication | Nov 16, 2006 | BizTalk Community Blogs via Syndication
Name: Everything but the Kitchen-Sink Map Description: Given a complex process with many complex rules, everything (business logic, related and unrelated procedures, etc) is shoved into the map. Symptoms: Symptoms include the following: %u00b7 Map contains…(read more)