Send port subscription

Hi,
From what I know, Send port subscribes the message if it bind to the given orchestartion or based on its filter condition.
Is there any other way to subscribe the message? I have a scenario where Send port desn't have either of this.
I want to know how it subscribes the message.
Thanks, Girish R. Patil.

There are two types of subscriptions Instance and Activation.
Activation subscriptions are created when you do enlistment of your send ports.
Instance subscriptions are generated by the runtime like subscriptions created by orchestrations which have a non-activation receive on some correlated property.
In your case, you said it neither has filters nor related to any orchestration so then obviously NO, you cannot subscribe to any message using that send port.
My doubt is, when you don't have any of those, then why was that send port created at all? i mean where is it being used?
Please mark the post as answer if this answers your question. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

Similar Messages

  • Send Port Subscription issue on Failure

    WalmartIn > WalmartOut
    JohnIn > JohnOut
    WalmartOut subscribes where RecieveLocationName == WalmartIn.
    JohnOut subscribes where RecieveLocationName == JohnIn
    I have an orchestration involved to send emails for error/tracking etc. Whenever WalmartOut fails the file is sent to JohnOut. What am I missing? 

    In this case,
    ReceiveLocationName is Promoted. 
    I used a correlation set on the send port to promote ReceiveLocationName 
    http://btsguru.blogspot.com/2011/09/how-to-expose-promote-bts.html

  • Send port subscirption

    Hi,
    one quick doubt.
    I have one orchestration which picks up message from a MSMQ queue. This works fine.
    Now I added one more new send port with filter condition to picks up the message from the same queue.
    Now my question is, adding a new sendport and subscribing that message will not affect the normal orchestration flow, right?
    I m assuming that both send port and orch process, both will get the copy of message from queue.
    Correct me if I am wrong.

    For clarity, yes, both subscriptions will be satisfied independently and actually neither will know anything about the other.
    However, there is one circumstance you must consider, but not necessarily do anything about.
    If one of the receiving services, the Orchestration or Send Port is Unenlisted, by mistake for example, the messages will still be routed to the other.  The means the messages might bypass a required process with no warning or alert, since to BizTalk
    everything is perfectly fine.
    If both process are required all the time, you should have a single Orchestration Subscriber that branches internally so you can guarantee delivery to the main Orchestration and Send Port.

  • Send port filter and Orchestration binding priority

    Hello,
    say there is some receive port RecvPort1. What will happen if some send port filter has BTS.ReceivePortName == RecvPort1 and some orchestration is binded to RecvPort1 also? When message come to receive location of RecvPort1 will it be transmitted
    to send port path or into the orchestration and why?
    Thanks in advance,
    Tomislav

    Here is the pictorial representation of your scenario for better understanding:
    In BizTalk subscription, you will have two subscriptions, one subscription- when you start the orchestration (which is directly bound to Receive port) and another subscription when you enlist the send port with filter for the Receive port. Here are
    the high level sequence to activities that would happed:
    So after the message is received by the Receive port, it would be published to BizTalk message box db.
    Subscription evaluation would take place to match subscription for the  published message (into BizTalk msgbox db).
    As in your case for the published message two subscriptions would be evaluated. And instance of orchestration  would receive the message and also the send port with filter which match to the Receive Port which published the message
    Note: Image courtesy, Microsoft which I updated for users better understanding :)
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • How to reject ACK/NACK from other Send Ports to Orchestration

    Hi Everyone,
    I have a below scenario, Please let me your ideas how can we avoid ACK from other send ports (If there is any failures), in my current scenario getting issues or conflicts because of this
    AckRequired.
    Key points in my scenarios
    SendPort_A is pointing to SAP
    SendPort_B is pointing to SQL
    Flow
    Receive MessageA and Transform to MessageB format, send MessageB to SendPort_A which directly bind to orchestration with transmitted property enabled.
    SendPort_B subscribes the same message, output of map with message type as filter condition (we are not expecting any Acknowledge from sendPort_B, because it’s a generic send port for some scenario).
    Problem
    When I see the context properties both send ports has AckRequired
    Property to true (so getting ACK/NACK from both send ports).
    I want acknowledgement only form SendPort_A which is bind to orchestration with transmitted property enabled, but not from the SendPort_B which subscribes just with message type.
    I have tried the below points but no luck
    Created custom pipeline with custom pipeline component to set / overwrite
    AckRequired Property to false (Pipeline component is working fine, but nothing is overwriting in context, getting acknowledge back to orchestration for any failure in SendPort_B)
    #region IComponentUI
    public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)
    pInMsg.Context.Write("AckRequired", "http://schemas.microsoft.com/BizTalk/2003/system-properties", false);
    return pInMsg;
    #endregion
    Below images gives some info on the same scenario.
    Appreciate your suggestions.
    Thanks, SMS Vikas K

    Hi Vikas,
    Let me know if I understood correctly.
    SendPort_B subscribes the same message, output of map with message type as filter condition (we are not expecting any Acknowledge from sendPort_B, because it’s a generic send port for some scenario).
    Problem
    You have a send port B which is subscribing to the same message using the message type.
    You can set additional filters to ignore Acknowledgement-
    Ex- Mgtype= "" AND
    AckRequired!=True OR
    AckRequired!=False 
    Thanks,
    Prashant
    Please mark this post accordingly if it answers your query or is helpful.

  • AS2 over HTTP Send port question.

    I have an application that builds and  sends flat and EDI files to FTP, FILE, SqlAdapter send ports and now they want AS2 over an HTTP port, I understand the AS2 settings (using party resolution, etc.) what I don't get is how/what exactly is receiving
    the message on the other side... They don't have a web service nor a page, I created a site to test but what do I do? Send an edi file to a url????
    Bico Bielich

    From your question I understand, you have been asked to send message through AS2. Do they also going to receive message through AS2 from their party? Is your question is about how to receive the message through AS2 which you also want to send over AS2?
    You can configure
    BTSHTTPReceive.dll to receive messages over HTTP and configure the Receive location with AS2 EDI pipeline component to receive messages over AS2 into BizTalk which can be subscribed by your send port filter or Orchestration ( if you have any process
    to be applied before sending the message over AS2 send).
    Check the Tutorial-3 part of AS2 which illustrate an example which receives an AS2 message through BTSHTTPReceive.dll. 
    Tutorial 3: AS2 Tutorial
    And following references shall help you configure the BTSHTTPReceive.dll:
    How to Configure IIS for an HTTP Receive Location
    Configuring BTSHTTPReceive.dll to work on IIS 7 
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • Sender Port in FILE to IDOC scenario

    Hi all,
    I am trying to do a File - SAP XI-IDOC scenario.
    The idoc which is getting created in XI is having senderport as SAPABC where ABC is my XI system id.
    i have not craeted this sender port and i am not able to find it in idx1 tx.code of XI.
    Can anyone please tell me how and where is this port is getting created. Will it get genarated automatically by the XI system for posting the idocs?
    thanks in adavance
    Jagruthi

    Hi Jagruti,
    Please refer to these blogs and threads:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/73527b2c-0501-0010-5398-c4ac372c9692
    /people/sravya.talanki2/blog/2006/12/25/aspirant-to-learn-sap-xiyou-won-the-jackpot-if-you-read-this-part-i
    /people/sravya.talanki2/blog/2006/12/26/aspirant-to-learn-sap-xiyou-won-the-jackpot-if-you-read-this-part-ii
    /people/sravya.talanki2/blog/2006/12/27/aspirant-to-learn-sap-xiyou-won-the-jackpot-if-you-read-this-part-iii
    /people/ravikumar.allampallam/blog/2005/02/23/configuration-steps-required-for-posting-idocsxi
    Hope these blogs help you.
    Regards,
    Sarvesh Desai

  • Sender port in control record

    Hey guys
    i m trying to test my IDOC to FIle scenario and in WE19 i m getting an error with status 37 saying that sender port in control records is invalid.
    i have created the Sender port correctly in WE21,what might the problem be?
    thanx
    ahmad

    HI,
    As you said you have created the port with WE21.
    Did you checked , RFC destination which was configured in Port creation , what was the user ,pwd you used,does that user has the proper authorization , did you checked remote login for RFC destination,generally SAPxxx for port name, did you selected the version which was selected.
    let me know what is the correct error.
    Regards
    Chilla..

  • How to Append date time to the Source File Name in send Port without Orchestration

    Hi,
    I am using the Macro %SourceFileName%_%datetime%.zip in the filename(Send Port).
    say my file name is ABC.zip
    But I am getting the output as ABC.zip_2013T083444
    Please suggest, How to avoid the extension?
    Vignesh S ----------------------------------------------------------- Please use Mark as Answer if my post has solved your problem and use Vote As Helpful if my post was useful.

    The problem here is %SourceFileName% context property would return filename “With” extension. So when you use %SourceFileName%_%datetime%.zip you get FileNameWithExtension_Datetime
    For this you have to handle it either in customer pipeline component or in orceshtration where you have to remove the extension from the Filename.
    Read this post on remove the extension from this file name
    msgOut(FILE.ReceivedFileName) = System.IO.Path.GetFileNameWithoutExtension(msgIn(FILE.ReceivedFileName));
    After this if you use the
    %SourceFileName%_%datetime%.zip macro, you would get the desired output.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful.

  • No Service for System SAPECC(Sender Port), Client800(R/3 system client 800)

    Hi friends,
    I am new to XI/PI I am working with IDOC to Flat file scenario I am facing the folllowing error.
    No Service for System SAPECC(Sender Port), Client800(R/3 system client 800) in integration Directory.
    can any one tell what was the reason for this error.
    Thanks in Advance,
    Ravi Yasoda.

    Hi Ravi,
    Have you imported the Business System in Integration Directory?
    Check whether  you see the logical system name in adapter specific identifiers or not...
    Also check from integration directory that cache notification was done and also check SXI_CACHE in the abap stack.
    See this thread...
    No service for system SAP***, client 001 in Integration Directory
    Please go through below content from sap note  for your issue...
    Error message: No service for system SAPABC client 123 in the integration directory
    Solution:
    You send IDocs from system ABC to XI. In the control record of the IDoc,the SNDPOR field contains the value "SAPABC". The client of the sending system is determined by the MANDT field of the control record. The system ID and client are then used to determine a service without party of the
    type (business-system/business-service):
    Business system
    -> Activities in the System Landscape Directory (SLD)(Create technical
    system):
    Create a technical system for system ABC in the SLD, and create the client for this. Do not forget to assign an "ALE logical system" (for example, "ABCCLNT123") to this technical system.
    SLD (Business system):
    You can now explicitly assign a business system to this client. For more details, refer to the SLD documentation.
    Activities in system ABC (self-registration in the SLD):
    Alternatively, you can register the system in the SLD in system ABC with Transaction RZ70. You will find detailed information about the SLD registration of systems on the SAP Service Marketplace for the
    "Exchange Infrastructure" in the document "Exchange_Installation_Guide.pdf".
    In system ABC, you can check your configuration with Transaction SLDCHECK.
    Activities in Integration Directory (import business system from SLD):
    You will find the business systems under Services Without Party in the Integration Services. In the Service menu, you will find the system identifiers, the client, and the corresponding ALE logical
    system under "Objects"->"Adapter-specific identifiers". Use the Import/Update button to copy the data from the SLD, to create business systems, or to update their identifiers.
    Business service
    -> Activities in the Integration Builder directory:
    You want to create a service without party that is not part of your system infrastructure and is therefore not maintained in the SLD. In the Integration Builder directory, you will find the "Business-Services" under Services Without Party. In the Service menu, you will find the system identifiers, the client, and the corresponding ALE logical system under "Objects"->"Adapter-specific
    identifiers".
    Activate the change list in Integration Directory.
    In system ABC, you can restart the incorrect entry from Transaction SM58 .
    Regds,
    Pinangshuk.

  • Wcf web service send port retry?

    We are contacting external wcf web services. We don't control these services and they could be returning an exception for a short while (which is "ok"), so we need to retry for a given period of time, without suspending the orchestration/sendport.
    It used to be simple with web services (.asmx) since the send port would handle the retries as soon as an exception was returned from the web services. With wcf services and the soap fault, it is much more cumbersome.
    I know how to do it from an orchestration, but it does add a lot of clutter (have an extra "initialization" construct block so visual studio shuts up about the uninitialized message coming back from the wcf service, define documentspecnames in
    our case, define xpath expressions for the fault and the expected response, have a loop, a delay, more variables/expressions, scope, exception block, etc. etc.) for such a simple requirement. We need to contact a couple of wcf services in an orchestration
    and the handling of the retries makes it quite large and unfriendly (and this is mostly the retry logic for these wcf services).
    So, is there any way to have the send port adapter handle the retries when receiving an exception from a wcf service like it used to be with regular web services?

    Thanks for you answer, yes I understand that the SOAP fault is just another message and that I need to act accordingly in the orchestration. I'm not refuting that, I'm just looking for a better solution than the one I have now (which seems overly complicated
    to me).
    I have to specify the documentspecname because we use the built-in xmlreceive pipeline and the type of the exception that the wcf services return is standardized in our organisation... so there are many copies of the schema of this exception deployed on
    the servers. I need to specify the schema of the exception coming from my wcf reference in my assembly otherwise I get the "I can't find the right schema blabla" exception.
    Of course, if I can stop using the XMLReceive pipeline, I wouldn't have to specify the documentspecname... I'll have to research in detail what this pipeline is doing and see if I can replicate it's functionality, with the addition of the check for the error
    in the returned message.
    I just want to be sure before proceeding... If I raise an exception in a custom pipeline, the send port retry configuration would apply?

  • File Name in the Send Port with PGP Encryption

    Hello,
    The File Name in the Send Port should be set with the mask like ABC.txt.pgp. Since I have used the PGP Encryption Component it is generating the File name like ABC.pgp.txt.pgp. But what I need is just the ABC.txt.pgp. How can be this be done. Any help is
    greatly appreciated.
    Thanks

    What you are seeing is the expected behavior.  If you are referring to this:
    https://code.msdn.microsoft.com/windowsdesktop/BizTalk-Sample-PGP-ebcbc8b2
    or one of it's derivatives, it will internally modify FILE.ReceivedFileName to append .pgp if that property is set.
    So, if you use just %SourceFileName%, you will likely get the desired result.  Otherwise, you will have to explicitly set FILE.ReceivedFileName to ABC.txt somewhere before the PGP component.
    You can also modify the source code to remove this behavior.

  • BizTalk 2013 SFTP Adapter Dynamic SFTP send port exception: Open remote file for write error

    I am using BizTalk 2013 SFTP adapter. I defined a Dynamic One-Way
    send port on BizTalk server administration.
    Below is the error I'm getting on BizTalk while trying to write files to a designated folder on a client's SFTP server.
    When defining the same path and properties on a Static One-Way send port everything works properly and the files are being saved on the SFTP server.
    A message sent to adapter "SFTP" on send port "ComverseSFTP_1.0.0.0_ComverseSFTP.SendFileToSFTP_SendFileToSFTPServer_f6b86b86a22079f8" with URI "SFTP://abc.xyz.com:22/upload/%SourceFileName%"
    is suspended.
    Error details: Microsoft.BizTalk.Adapter.SftpInvoker.SftpException: Open remote file for write error.
     Server stack trace:
       at Microsoft.BizTalk.Adapter.SftpInvoker.SftpInvoker.OpenRemoteFileWrite(String fileName, Int32 fileOffset)
       at Microsoft.BizTalk.Adapter.SftpInvoker.SftpFileWriterStream.Write(Byte[] buffer, Int32 offset, Int32 count)
       at Microsoft.BizTalk.Adapter.Sftp.SftpOutputChannel.Send(Message message, TimeSpan timeOut)
       at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
       at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
     Exception rethrown at [0]:
       at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
       at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
       at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
     Exception rethrown at [1]:
       at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
       at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       at System.ServiceModel.Channels.IOutputChannel.EndSend(IAsyncResult result)
       at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.SendCallback(IAsyncResult result)
    MessageId:  {926F44F2-9180-4B33-96FF-9E4CBC459382}
    InstanceID: {36A50A7F-63C4-48D9-903D-A33C85DDAE36}
    Can you please assist with explaining why are we getting this exception?
    Thank you for your help.

    Below is the error I'm getting on BizTalk while trying to write files to a designated folder on a client's SFTP server.
    When defining the same path and properties on a Static One-Way send port everything works properly and the files are being saved on the SFTP server.
    A message sent to adapter "SFTP" on send port "ComverseSFTP_1.0.0.0_ComverseSFTP.SendFileToSFTP_SendFileToSFTPServer_f6b86b86a22079f8" with URI "SFTP://abc.xyz.com:22/upload/%SourceFileName%"
    is suspended.
    Error details: Microsoft.BizTalk.Adapter.SftpInvoker.SftpException: Open remote file for write error.
    Hi Yaeli1,
    From the error message above,  please check the permission for file writing , it seems that this issue is related to access permission.
    Best regards,
    Angie
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Error when using 64-bit host in send port

    Guys,
    I am trying out a simple message routing scenario. I have created a send pipeline and have used the MIME/SMIME component in the encoding stage of the pipeline. My application has a receive and a send port with receive port configured to receive *.xml documents
    and is using XMLReceive pipeline. My send port uses the pipeline I have explained above and contains a filter to BTS.ReceivePortName=="[receive port in the application]". The send port is also configured to use a certificate. The send handler is the 64-bit
    BizTalk host. When I drop a message in the receive port, message in the send port gets suspended with error "Retrieving the COM class factory for component with CLSID {254B4003-2AA7-4C82-BB2E-18BA7F22DCD2} failed due to the following error: 80040154
    Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
    " However when I use a 32-bit host message on the send port gets encrypted as I expect. Has anyone faced this issue before and found a solution? BTW I am using BTS 2010 on 64-bit machine

    http://msdn.microsoft.com/en-us/library/aa559177(BTS.10).aspx
    This occurs because the MIME pipeline component is not supported in a 64-bit host instance. To resolve this, the host associated with the send and receive handler for the file adapter must be configured as a 32-bit only host. For more information on this
    see How to Modify Host Properties. If you already have a 32-bit only host configured on the system and want to use it see Configuring the File Adapter for instructions on configuring the host(s) associated to the file adapter’s send and receive handler.
    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP

  • Sender Port Error in SAP ECC for IDoc

    Hi,
    I am creating scenario IDOC -> XI -> JDBC with Customer Master IDoc.
    After sending it with we19 he said "IDoc sent to SAP system or external program".
    In we02 and we05 the IDOC it says "Data passed to port OK".
    But in SM58, the IDoc ends in error saying
    Transaction IDX1: Port SAPIDST100, client 600, RFC destination contains error.
    What I identified that the port SAPIDST100 is the sender port in the IDoc being send. However, for PI we do not need to maintain sender port.
    Business Systems:
    Sender : SAP ECC
    Receiver: SAPPID
    Kindly provide your inputs.
    Thanks
    Rahul

    Hi Rahul,
    thanks for the information that your scenario is working fine.
    But i want to clarify some points:
       - If you send out an IDoc from an ECC system, the senderport is filled with SAP+<system-id> by the SAP IDOC API,
         i.e.  if your system id is "ABC", the senderport is "SAPABC"
          => your senderport SAPIDST does not match this template, so i assume you entered the value for the senderport
         manually in the idoc test utility WE19
       - if you send out an idoc, only the receiver port must be created in transaction WE21, it is not necessary to create
         the senderport in WE21, this is not necessary and did not solve your problem
      - the idoc was send from ECC (application system with application IDoc metadata) to an XI/PI system (basis system      
        without application idoc metadata
       The IDoc adapter on the pi system must analyze the IDoc segments and must know the idoc application metadata,
       but this is not known. So the idoc adapter on PI side looks at the senderport to identify the sender.
       In transaction IDX1 an rfc-destination can be configured to point to the sendersystem with that senderport
       With this rfc-destination  the IDoc adapter tries to read the idoc aplication metadata from the ECC system and stores it on PI side.
       If there is no rfc-destination configured in transaction IDX1 on PI side you get the error mentioned in your request.
       I assume that in transaction IDX1 somebody configured the correct RFC-Destination.
    I hope this clarification helps you to understand the error and the solution.
    Kind regards,
    Andreas Dahl

Maybe you are looking for