Microsoft BizTalk Server Tutorial CIS764 - Enterprise Database Design Oubai Bounie Introduction • Microsoft BizTalk Server is an integration server product that enables you to develop, deploy, and manage integrated business processes and XML-based Web services. • Microsoft BizTalk Server enables you to connect diverse applications, and then to graphically create and modify business processes that use the services that those applications provide. • BizTalk Server engine provides a mechanism for specifying business rules, better ways to manage and monitor the applications built on it. • BizTalk supports many built-in data adapters. (SOAP, Message Queuing, FTP, HTTP, SMTP, SQL, EDI, File) • BizTalk supports many data format (Database, Formatted Text, HL7, XML) • BizTalk engine uses XML for all internal processing. Concept Overview Prerequisites • Microsoft Windows server 2003: you can download trial version from . • Microsoft SQL Server 2000: you can download trial version from http://www.microsoft.com/sql/evaluation/trial/. • Microsoft BizTalk Server 2004: you can download trial version from http://www.microsoft.com/windowsserver2003/evaluation/trial/default.mspx http://www.microsoft.com/biztalk/evaluation/trial/default.mspx. • Microsoft Visual Studio 2003 or newer: you can download trial version from http://msdn.microsoft.com/vstudio/products/trial/. BizTalk Tutorial • This BizTalk tutorial demonstrates how you can use BizTalk Server orchestrations to convert an XML message (a purchase order) into a related, but distinct type of message (an invoice). • This tutorial uses two folders: "In" folder is the pick up folder where input file will be dropped to be picked up by BizTalk. And "Out" is the output folder where BizTalk will drop the results. • When you place a file, such as the sample file SamplePOInput.xml, into this folder, BizTalk Server processes the message using the following steps: 1. BizTalk Server retrieves the XML purchase order message from the receive location folder In. 2. The orchestration uses the map file to create an XML invoice from the XML purchase order. 3. BizTalk Server places the resulting XML invoice message into the send adapter folder Out. • We will use Microsoft Visual Studio to build a BizTalk application to achieve the above solution. 1. Create BizTalk Project • Run Visual Studio • From the menu, select File -> New -> Project • Select "BizTalk Projects" from the project types listbox • Select "Empty BizTalk Server Project" from the templates listbox. • Enter the project name and location and click OK to proceed. 2. Create the Invoice schema • Right click on the project icon in the Solution Explorer window and select Add -> Add New Item. • Select Schema from the templates list box. • Name the schema as InvoiceSchema.xsd 3. Create the PO Schema 4. Create the Map • Right click on the project icon in the Solution Explorer window and select Add -> Add New Item. • Select Map from the templates list box. • Name the Map as POToInvoice.btm 5. Create the Orchestration • Right click on the project icon in the Solution Explorer window and select Add -> Add New Item. • Select BizTalk Orchestration from the templates list box. • Name the Map as HelloOrchestration. btm 6. Create Setup.bat to deploy the project and bind the ports to BizTalk. @SETLOCAL @CALL "%VS71COMNTOOLS%vsvars32.bat" @SET SolutionName= HelloWorld.sln @SET AssemblyKeyFile= HelloWorld.snk @SET BindingFileName= HelloWorldBinding.xml @SET SendPortName= HelloWorldSendPort @SET ReceivePortName=HelloWorldReceivePort @SET ReceiveLocationName= HelloWorldReceiveLocation @SET FileReceiveDirectory=In @SET FileReceiveLocation= \%FileReceiveDirectory%\*.xml @SET FileSendDirectory=Out @SET FileSendAddress= \%FileSendDirectory%\%%MessageID%%.xml @SET OrchestrationName=HelloWorld.HelloSchedule @SET AssemblyName=HelloWorld @IF NOT EXIST %AssemblyKeyFile% sn -k %AssemblyKeyFile% @DevEnv %SolutionName% /Deploy Development /Out Build.log @BTSDeploy Import Binding=%BindingFileName% Log=Binding @CScript /NoLogo "..\..\Admin\WMI\Start Send Port\VBScript\StartSendPort.vbs" %SendPortName% %FileSendAddress% @CScript /NoLogo "..\..\Admin\WMI\Enable Receive Location\VBScript\EnableRecLoc.vbs" %ReceivePortName% %ReceiveLocationName% %FileReceiveLocation% @CScript /NoLogo "..\..\Admin\WMI\Enlist Orchestration\VBScript\EnlistOrch.vbs" %OrchestrationName% %AssemblyName% Start @ENDLOCAL 7. Test the application • • Create a sample XML file to use it as input. Name it SamplePOInput.xml Copy and paste this XML code into the new created file <?xml version="1.0"?> <ns0: PO xmlns:ns0="http://HelloWorld.POSchema"> <PO_Number>1234</PO_Number> <Total>$19.99</Total> </ns0: PO> </xml> • • Copy the new file into the In folder. Check the Out folder for results. You should get a new xml file that should look like this: <?xml version="1.0" encoding="utf-8"?> <ns0:Invoice xmlns:ns0="http://HelloWorld.InvoiceSchema"> <Number>1234</Number> <TotalPrice>$19.99</TotalPrice> </ns0:Invoice> </xml> References • MSDN Library. Microsoft BizTalk Server 2004 Introduction. http://www.msdn.microsoft.com/library/default.asp?url=/library/enus/def/htm/ebiz_def_portal_page.asp • David Chappell. (2004) Understanding BizTalk Server. http://go.microsoft.com/fwlink/?LinkId=21281