none
failed routing because there is no subscribing orchestration or send port.

    Question

  • Hi:

     

    I've got a nearly working orchestration, which receives an 837 flat file and maps it to an output schema, which is then sent to a folder.  The problem is that the application then suspends with this error message:

     

     Error details: The output message of the receive pipeline "Microsoft.BizTalk.Edi.DefaultPipelines.EdiReceive, Microsoft.BizTalk.Edi.EdiPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" failed routing because there is no subscribing orchestration or send port.

     

    I've tried modifying the configuration but I can't figure out how to get everything subscribed to the receive port.  I'm using an EDIReceive pipline, and a Flat file assembler to the Send port.  Any ideas?

     

     

     

    Thursday, July 03, 2008 7:12 PM

Answers

  • Hi:

     

    It looks like the problem has been due to a TA1 being requested in the 837P file I was using for testing.  I tried adding a send port in the orchestration to subscribe to the TA1, but it didn't work.  After speaking to Steve at Microsoft support, I learned that you can't read the TA1 message from an orchestration, you have to create a send port in the BizTalk administration console and then apply the filter

     

      BTS.MessageType == http://schemas.microsoft.com/Edi/X12#X12_TA1_Root And

     

    The second problem I had was that I was using quotes around the filter value.  Apparently you need to use quotes when creating a filter in Visual Studio, but in the Administration Console you don't.  It would be nice if both those envirnoments were more conisistent.

     

    Anyways, thanks everyone for their assistance.

     

    Wednesday, July 23, 2008 4:42 PM

All replies

  • To subscribe all the messages from Receive port, you can subscribe on BTS.ReceivePortName=<Your Receive Port Name> criteria.

    Thursday, July 03, 2008 7:57 PM
  •  Manoj Agarwal - MSFT wrote:

    To subscribe all the messages from Receive port, you can subscribe on BTS.ReceivePortName=<Your Receive Port Name> criteria.

     

    Hi Manoj:

     

    I have a filter expression with EDI.ST01 == "837" in my receive port, but it still fails.  Do I need to have a filter on my Send port as well?

    Monday, July 07, 2008 2:54 PM
  • I don't understand what you mean by having filter in the receive port. Can you explain where did you define the filter, or may be send a screenshot.

     

    Thanks!

    Monday, July 07, 2008 3:44 PM
  • I'm using an orchestration to define receive pipeline, send pipeline, receive and send components etc.  The received component in the orchestration has the filter expression.

     

    Monday, July 07, 2008 4:17 PM
  • Hi,

    Receive ports put stuff into the MessageBox, Send Ports get them out.  Based on your error, you are successfully putting your message into the MessageBox.  Now you need a send port that has a filter expression that will allow it to get you message back out.  As far as I know, the only real "filter" you can put on a receive port is the address of its receive location and the file mask. 

    Nevertheless, a receive shape in an orchestration can be bound to a direct receive port.  More on this can be found at:

    http://msdn.microsoft.com/en-us/library/aa949234.aspx

     

     

    Tuesday, July 08, 2008 12:59 AM
  • Hi JT77:

     

    The funny thing is that I am getting a correctly formatted output flatfile from the orchestration.  However, after it ouputs the file I get the error message and the application hangs in biztalk r2.

     

    Thursday, July 10, 2008 6:18 PM
  • I'm afraid I'm a little lost.

     

    As I understand it,

     

    1.  You are receiving an 837 in a receive port in an orchestration. 

     

    2.  This 837 is then sent to an activating receive shape with a filter expression EDI.ST01 == 837.  Of course, this filter will ONLY work after the 837 has been sent thru an EDIReceivePipeline.  Before that, the EDI context property is not promoted, and thus not available for a filter.  In order to specify that you want your receive port to use the EDI pipeline at design time, you must add a reference to your orch project to Microsoft.BizTalk.Edi.EdiPipelines.

     

    3.  What else are you doing in your orchestration after these two initial steps?

     

    What is the "correctly formated output flatfile" you are getting from the orchestration?

     

     

    Friday, July 11, 2008 4:10 AM
  • Hi JT:

     

    It looks like the problem is that the test input 837P file I'm using is requesting a TA1, and is generating a second file.  It is this file that is causing the error related to " no subscribing orchestration or send port".  That's why I've been successfully getting an output file from my orchestration.

     

    Now I have to figure out how to handle the TA1 message.

     

     

     

    Tuesday, July 15, 2008 8:10 PM
  • The TA1 is generated in two ways.

    1. It is specified at the party the document is resolving to under Party As Interchange Sender/Ack Generation Settings

    2. ISA14 in the ISA header specifies whether to generate a TA1

     

    So if you don't want the ACK to the be generated, make sure both these options are turned off.

     

    Secondly if you want to handle this ACK, you can subscribe to the TA1 by using the BTS.MessageType == http://schemas.microsoft.com/Edi/X12#X12_TA1_Root

     

    Thanks

    Mohsin Kalam

    www.mohsink.com - Blog about Microsoft BizTalk R2 EDI

     

    Tuesday, July 15, 2008 9:04 PM
  • I tried adding this filter to my existing send port, but it doesn't pick up the message.  Are you talking about adding a second port?

     

    Wednesday, July 16, 2008 3:09 PM
  • Hi:

     

    It looks like the problem has been due to a TA1 being requested in the 837P file I was using for testing.  I tried adding a send port in the orchestration to subscribe to the TA1, but it didn't work.  After speaking to Steve at Microsoft support, I learned that you can't read the TA1 message from an orchestration, you have to create a send port in the BizTalk administration console and then apply the filter

     

      BTS.MessageType == http://schemas.microsoft.com/Edi/X12#X12_TA1_Root And

     

    The second problem I had was that I was using quotes around the filter value.  Apparently you need to use quotes when creating a filter in Visual Studio, but in the Administration Console you don't.  It would be nice if both those envirnoments were more conisistent.

     

    Anyways, thanks everyone for their assistance.

     

    Wednesday, July 23, 2008 4:42 PM