Step by step solution of BizTalk Two-Way WCF-SQL XmlPolling in Send Port Skip to main content

Step by step solution of BizTalk Two-Way WCF-SQL XmlPolling in Send Port


I am going to share most awaited Two way WCF_SQL Two Way XmlPolling so that you can easily enhance your old SQL procedure and BizTalk Map without any big change. I know there is no content available in any website to how work with XmlPolling in WCF-SQL two-way adapter. In the last of this post you can download complete source code with an example.

Please follow carefully all steps –
1. Open Microsoft Visual Studio as Administrator user and Click File>New>Project… In Installed Templates click BizTalk Projects then Empty BizTalk Server Project and Name as “BizTalkLive-WCF-SQL” and click OK.

2. Now see the below picture and create all respective folders separately for Schema, Map, Orchestration, Pipeline, Binding-

3. Create Schemas in Schema folder as shown below picture to get Account request using One Way WCF-SQL XmlPolling
a) Create Envelope Schema first with Target NameSpace - http://BizTalkLive_WCF_SQL.AccountRequest

b) Create Second Schema to envelope above schema with same target namespace, elements and records and I assume that you are aware that how to create envelope schema, Pl see following picture-

3. Now Create 3rd schema to get SQL response using Two-Way WCF-SQL adapter:
Right Click Schema Folder>Add>Add Generated Item… then form Add generated Items click Add adapter meta data then double click add adapter metadata after add adapter wizard will be open after that select SQL adapter from installed list, also provide SQL server and biztalk management database name then click next. Now to set connection string click set button from right side and fill all details to connect sql server after click ok as shown following picture.

4. Before move next process to complete generate sql schema now move toward sql procedure and create sql procedure as shown below-

USE [BizTalkLive]
GO
/****** Object:  StoredProcedure [dbo].[procGetAccountResponseData]    Script Date: 08-09-2017 17:32:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:           <Jitendra Yadav from BizTalkLive>
-- Create date: <02-Sep-2017>
-- Description:      <Get Account Response data from requested accounts>
-- =============================================
Create PROCEDURE [dbo].[procGetAccountResponseData]
       @AccountNumber VARCHAR(50),
       @IFSCCode VARCHAR(11)
AS
BEGIN

       SET NOCOUNT ON;

       SELECT * FROM
       (
       SELECT Id, AccountNumber, IFSCCode, AccountType, AccountStatus, AccountValidity
       FROM tblAccountMaster WITH(NOLOCK) WHERE AccountNumber = @AccountNumber AND IFSCCode = @IFSCCode
       ) AccountsResponse
       LEFT JOIN
       (
       SELECT AccountId, Name, Address, PAN, TAN, UID
       FROM tblAccountHolderMaster WITH(NOLOCK)
       )AHDetails
       ON AccountsResponse.Id = AHDetails.AccountId
       FOR XML AUTO, XMLDATA
          
END

5. Click next then target namespace as http://BizTalkLive-SQL.GetAccountResponse and chose send port type and also fill request root as procGetAccountResponseDataRequest and response root as procGetAccountResponseDataResponse then click next button.

6. Now select type of statement as Stored Procedure then click next. Now choose your sql procedure from list and click generate button then at last click next button to complete process.

7. Now One Schema and one orchestration has created in your solution and delete newly created orchestration then click your schema and delete procGetAccountResponseDataRequest root from your schema then remain only one root procGetAccountResponseDataResponse

8. I want to import a sql data type schema into above newly create schema for get sql response and you can download from the below following link: SqlType

9. Now Import SqlType schema into the procGetAccountResponseDataResponse schema and changes base data type of every elements and attributes as” sqltypes:varchar (SimpleType)” as shown in following picture-

10. If you have already sql schema and also create map for sql response then only changes for you first delete sql request root from schema and then import sqltype schema as suggested in above picture that’s it.

11. So you have created Schema for WCF-SQL adapter response now I am going to create schema for WCF-SQL request outbound procedure before to do I am assuming that you have already install WCF SQL LOB SDK.

12. Again Right click schema folder>Add>Add Generated Item… then from Consume adapter service, double click it. Then select sqlBindung and configure URI then click connect button then select contract type as client (Outbound Operations). Now click Procedures, it available in right side list then click it add button so now it added in added categories and operations. Also check Generated unique schema type so all added clubbed in one schema and finally set filename prefix as shown below picture then click OK.


13. So Finally I am assuming that you map your schema and create orchestration logic to get sql request then construct map and finally send sql request and get back sql response after create a schema to send it to your destination as show following images and also in the last all source code, sql script, BizTalk binding and msi is available for download.

14. Finally deployed BizTalk application and open BizTalk Server Administrator and create all respective receive port, receive location  and send port. I have already post an article to step by step create one way WCF-SQL receive location (See from this link: https://biztalklive.blogspot.com/2017/07/step-by-step-configuration-one-way.html)

15. Now Right click on your send port of newly deployed BizTalk application >New> Static Solicit-Response Send Port then fill the name as “SP_WCFSQL_AccReq” then chose Transport type as “WCF-SQL” and remain default handler and also select send pipeline as XML Transmit and Receive pipeline as XMLReceive as shown following picture-

16. Click Configure… button then in General tab of fill Endpoint address URI and Soap action header as shown in below image-

<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="procGetAccountResponseData" Action="XmlProcedure/dbo/procGetAccountResponseData" />
</BtsActionMapping>


17. Go to Binding tab and set value “procGetAccountResponseDataResponse” in  XmlStoredProcedureRootNodeName and set value “http://BizTalkLive-SQL.GetAccountResponse” in XmlStoredProcedureRootNodeNamespace. We have taken both value from sql response schema root and target napespace value respectively.

18. Finally Leave remaining default setting and click OK and also do not forget to add default namespace of sql response schema and same elements, attribute and records as shown in the following picture-

Create PROCEDURE [dbo].[procGetAccountResponseData]
       @AccountNumber VARCHAR(50),
       @IFSCCode VARCHAR(11)
AS
BEGIN

       SET NOCOUNT ON;

       ;WITH XMLNAMESPACES(DEFAULT 'http://BizTalkLive-SQL.GetAccountResponse')
       SELECT * FROM
       (
       SELECT Id, AccountNumber, IFSCCode, AccountType, AccountStatus, AccountValidity
       FROM tblAccountMaster WITH(NOLOCK) WHERE AccountNumber = @AccountNumber AND IFSCCode = @IFSCCode
       ) AccountsResponse
       LEFT JOIN
       (
       SELECT AccountId, Name, Address, PAN, TAN, UID
       FROM tblAccountHolderMaster WITH(NOLOCK)
       )AHDetails
       ON AccountsResponse.Id = AHDetails.AccountId
       FOR XML AUTO --, XMLDATA
          
END



All right finally all process has completed and this is the best way to achieve Two-Way WCF-SQL XmlPolling to develop BizTalk new Application and also best way to convert old SQL Two-Way request-response without any change in your SQL response mapping.

Note: To better understand Please click this link to achieve one way WCF-SQL XmlPolling in Receive location: https://biztalklive.blogspot.com/2017/07/step-by-step-configuration-one-way.html

Download all source code including SQL Script, BizTalk Application Binding and MSI


!! Keep visiting BizTalkLive !!

Comments

  1. Thanks for sharing such a wonderful information on Biztalk Biztalk Online Training Hyderabad

    ReplyDelete
  2. Thank you so much for sharing the information about Microsoft BizTalk Server. This is very helpful for who wants to learn professional Education. I like the way you describe this post. your site gives the best and the most interesting information. Please keep Going. Microsoft has a bunch of certifications that one can involve and improve their skills. It is also continually updating its certification program to align with the latest technologies and Microsoft certifications validate the skills to implement business solutions. Technical problem-solving skills are mainly highlighted during the certification process.
    Microsoft Certification Exams List

    ReplyDelete

Post a Comment

Please write comment only that belongs to this blog

Popular posts from this blog

BizTalk Interview Question and Answer

1. What is BizTalk? BizTalk is a middleware that sits in the middle of any two software who wish to communicate with each other and agree on some specified communication pattern. It uses SQL Server as back end database. “Microsoft BizTalk Server is an Inter-Organizational Middleware System (IOMS) that enables companies to automate business processes, through the use of adapters which are tailored to communicate with different software systems used in an enterprise. Created by Microsoft, it provides enterprise application integration, business process automation, business-to-business communication, message broker and business activity monitoring.”                 2. What is BizTalk Server Architecture and Life Cycle of Message? BizTalk Server Architecture: Life Cycle of Message: In this simplified view, a message is received through a receive location defined in a given receive port. This message is processed by the receive locatio

Configuring BizTalk WCF Timeout Values on a Binding

There are a number of timeout settings available in WCF bindings. Setting these timeout settings correctly can improve not only your service’s performance but also play a role in the usability and security of your service. The following timeouts are available on WCF bindings: OpenTimeout CloseTimeout SendTimeout ReceiveTimeout Open Timeout :  This property represents the amount of time a channel open operation has to complete. Send Timeout :  Use this property to set the amount of time that a send operation has to complete. When used as part of a solicit-response scenario, this value encompasses the total amount of time for the interaction to complete. If we are sending a large message, we may need to increase this timeout to allow for the request and response messages to be processed within this window. Close Timeout :  A time-stamp that is used to indicate the amount Receive Timeout :  Used by the Service Framework Layer to initialize the session-idle timeo

PowerShell Script to enable BizTalk Receive Location

We are facing problem in BizTalk server 2016 that few of running SFTP Receive location would be stopped after some time due to sftp connectivity issue of their threshold so I am going to share PowerShell script to enable receive location by window task scheduler. Before execute following script Please do following task a. Set Server name in ConnectionString b. Set ( $hostname) host name value that is using in SFTP Receive location c. Set ( $rcvLocation) Receive location name # Import external assembly and create a new object [ void ] [ System.reflection.Assembly ]:: LoadWithPartialName( "Microsoft.BizTalk.ExplorerOM" ) $Catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer   #BizTalk Config $Catalog . ConnectionString = "SERVER=.;DATABASE=BizTalkMgmtDb;Integrated Security=SSPI"   #connectionstring for the BizTalkMgmtDb $hostname = "BizTalkServerApplication" #hostname $rcvLocation = "RL_GetAccReq_SQL

Publish a web service in biztalk using BizTalk WCF Service Publishing Wizard

Welcome you again in my Blog and let us do another mind blowing achievement that how to publish a WCF web service in BizTalk and as in previous post to Complete BizTalk project to host Schema as Web Service  so If you want to expose/publish a web service, you should run through the BizTalk WCF Service Publishing Wizard. This wizard guides you through choosing what you want to expose as a web service. This section walks you through the wizard step by step to publish WCF Web Service using  WCF-WSHttp- Step-1:  To start the wizard, go to Start, All Programs, Microsoft BizTalk Server 2016(version), BizTalk WCF Service Publishing Wizard. This fires up a welcoming screen, on which you just click Next. Consider disabling the welcoming screen for the future by checking the check box at the bottom. You will now see the screen shown in above figure. Step-2: Choose the Service Endpoint option, and choose which adapter to use. Check Enable Metadata Endpoint if you want to expose t