Dynamic send ports are used to send the BizTalk messages dynamically from orchestration to destination systems based on some conditions.
Two Way Dynamic Send Port
Two-way dynamic sendports are used for request and response messages.
We need to create logical dynamic sendport with port direction as dynamic.

We need to construct the message with all request and response message properties of Rest endpoint as below
In the message assignment shape we need to construct the message with below properties.
RequestForRouting = Request;
//Request is the input message type of your orchestration receive shape. RequestForRouting is the message which we construct in this message assignment shape.
RequestForRouting(BTS.RouteDirectToTP)=false;
headerhttp = Request(WCF.InboundHttpHeaders);//If you have any http headers
RequestForRouting(FILE.ReceivedFileName) = headerhttp;
RequestForRouting(WCF.HttpMethodAndUrl) = “POST” //For POST Operation
RequestForRouting(WCF.HttpMethodAndUrl)=”<BtsHttpUrlMapping><Operation Name=” Method=’GET’ Url=’/RestServiceURL’ /></BtsHttpUrlMapping>”; // For Get Operation
RequestForRouting(BTS.SendPipelineConfig)=”<Root xmlns:xsd=’http://www.w3.org/2001/XMLSchema’ xmlns:xsi=’http://www.w3.org/2001/XMLSchema-instance’><Stages><Stage CategoryId=’9d0e4108-4cce-4536-83fa-4a5040674ad6′><Components><Component Name=’Microsoft.BizTalk.Component.JsonEncoder’><Properties><RemoveOuterEnvelope vt=’11’>-1</RemoveOuterEnvelope></Properties></Component></Components></Stage></Stages></Root>”;
RequestForRouting(BTS.SendPipelineResponseConfig) = “<Root xmlns:xsd=’http://www.w3.org/2001/XMLSchema’ xmlns:xsi=’http://www.w3.org/2001/XMLSchema-instance’><Stages><Stage CategoryId=’9d0e4103-4cce-4536-83fa-4a5040674ad6′><Components><Component Name=’Microsoft.BizTalk.Component.JsonDecoder’><Properties><RootNode vt=’8′>” + RootNodeName + “</RootNode><RootNodeNamespace vt=’8′>” + Namespace + “</RootNodeNamespace></Properties></Component><Component Name=’Microsoft.BizTalk.Component.XmlDasmComp’><Properties><AllowUnrecognizedMessage vt=’11’>-1</AllowUnrecognizedMessage></Properties></Component></Components></Stage></Stages></Root>”;
RequestForRouting(WCF.VariablePropertyMapping)=String.Empty;
//For POST Operation
RequestForRouting(WCF.VariablePropertyMapping)=
“<BtsVariablePropertyMapping xmlns:xsi=’http://www.w3.org/2001/XMLSchema-instance’ xmlns:xsd=’http://www.w3.org/2001/XMLSchema’><Variable Name=NameoftheVariable PropertyName=’NameOftheProperty‘ PropertyNamespace=’NameSpace‘/></BtsVariablePropertyMapping>”;
//For Get Operation
RequestForRouting(WCF.SuppressMessageBodyForHttpVerbs)=String.Empty;
//For POST Operation
RequestForRouting(WCF.SuppressMessageBodyForHttpVerbs)=”GET”;
//For Get Operation
RequestForRouting(BTS.RetryCount) = 0;
RequestForRouting(WCF.MaxReceivedMessageSize)=2147483647;
RequestForRouting(WCF.OpenTimeout)=”00:01:00″;
RequestForRouting(WCF.CloseTimeout)=”00:01:00″;
RequestForRouting(WCF.SendTimeout)= “00:01:00”;
RequestForRouting(WCF.EndpointBehaviorConfiguration)=”<behavior name=’EndpointBehavior’><AddHttpHeader HeaderFields=’Field1,Field2,Content-Type: application/json’/></behavior>”;
// If you have http headers
In the expression shape, we need to specify Address and TransportType.

DynamicCommonSendPort(Microsoft.XLANGs.BaseTypes.Address)=”Rest Endpoint URL Name”;
DynamicCommonSendPort(Microsoft.XLANGs.BaseTypes.TransportType)=”WCF-WebHttp”;
Good Luck…

5 responses to “BizTalk Dynamic Send Ports For Rest Services”
[…] http://vkbiztalk.com/2018/04/19/biztalk-dynamic-send-ports-for-rest-services/ […]
LikeLike
Getting “URI Scheme “HTTPS” Invalid expected “HTTP” ” error, even though I used security mode “Transport”
LikeLike
Hi UmaSankar,
We don’t understand your requirement, could you please explain more.
Are you creating dynamic send port or Static send port issue with Http or Https?
LikeLike
The issue is with Dynamic two-way sendport. Even after specifying Security Mode as Transport and other properties as mentioned in your blog, there is error connecting to the service URL. The error message is:
System.ArgumentException: The provided URI scheme ‘https’ is invalid; expected ‘http’.
Parameter name: via
Is there something more to be done when sending a message to the service over HTTPS?
LikeLike
I’m trying to set the BTS.SendPipelineConfig and ResposeConfig as per the article, but it doesn’t seem to work. I took the prop configs from BizTalkMgmt Db and mapped in the orchestration to the BTS properties.
Share your thoughts.
LikeLike