At this post I want to show how you can use message routing with BRE (Business Rules Engine)
It will allow information workes, analysts and admins to change routing condition values without
code changes, recompilations and downtime.

Scenario:
Message will be taken from a folder. Checked if value is greater than 1000 it will be moved to folder BIG, else it will be moved to folder small. Then Admin will change value to 2000 from BRE without code recompiling and downtime.

Lets first create BizTalk Project in Visual Studio

Then I will create Order Schema

Then will create 2 new elements: OrderID(string), VIP (boolean) and Amount(integer)
VIP field will be use to identify VIP order, which will be changed by BRE
Also if should be Distinguished field

Then create Routing orchestration
where I will use just created Schema as input and output type.

Create new Message with new OrderSchema type, Receive and Send Shapes.
Create Receive port and assign it to receive shape
Create Send port and assign…

A lot of improvements since previous CTP
I also want to try new Business Intelligence Studio which should have new interface
previous CTP used Visual Studio 2008 for BI :-( so I have postponed all test will this CTP 3

Yes! It does not work "by default" when you install fresh BizTalk Server How to fix it ?!

Open properties of the job and select Steps

Select Archive and Purge the only step and click Edit
change the parameters of the procedure@nLiveHours tinyint to 1@nLiveDays tinyint to 0@nHardDeleteDays tinyint to 0@nvcFolder nvarchar(1024) to '\\MyServer\backup'@nvcValidatingServer sysname to null@fForceBackup int to 0

Yes ! Was really confused with this error when saw it, missing details of the errors made me crazy
after 1 hour I got an idea.
so how it looked for the first time

=Sum(IIf(Fields!ContractID.Value <> 0, Fields!hours.Value,0))

I was 100% sure that it should work , but it did not !!!!
the reason is in Fields!hours.Value, it returns STRING which cannot participate in Sum expression
yes, now it's clear. So expression should look like

In this post I would like to show how to integrate very powerful reporting engine with your .NET application.
As Database I will use SQL Server 2008R2, ReportBuilder 3(free tool by MS), and Visual Studio 2010
I also will download Adventure Works sample database from codeplex.com

1. Create blank report in Report Builder, change title of the report

2. From left pane select Data Sources and add new Adventure Works Source

3. From the left pane create new Data Set Change name of data set to SalesDataSet select Data Source you have created Then run Query designer to build Select script which will return Data Table

4. Select
Production.WorkOrder.OrderQty Production.WorkOrder.DueDate Production.Product.ProductID Production.Product.Name Click Ok,
in Parameter from Left pane add @Year as a parameter
then modify Query so it will include Year filter SELECT SUM(Production.WorkOrder.OrderQty) AS Sum_OrderQty ,Production.Product.Name ,Month(Production.WorkOrder.DueDate) as FROM Production.Product INNER …

You can face a problem with your connection strings or other confidential and critical information is stored in configuration file when hosting web site or distributing application to clients. You have many solution options in this case like using SSO, SSS, store encrypted data in a database. But these methods are time consuming and sometime expensive. The solution I can offer is to encrypt data in configuration file using System.Configuration library from .NET Add reference to System.Configuration to your project and run this code once// Get the current configuration file. System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None);// Get the section. ConfigurationSection section = config.GetSection("connectionStrings"); // Protect (encrypt)the section. section.SectionInformation.ProtectSection( "RsaProtectedConfigura…