BizTalk Mapper – resolving decimal sum and separator issues, Keyed Cumulative Sum continued

As a continuation of my Keyed Cumulative Sum post, where I did a key based summation using an xslt call template in a BizTalk map I got two main points of feedback worth repeating and showing.

Questions

  1. If I use Sum on a decimal number it gives me all sort of weird decimals in the Sum although it shouldn’t; ie a sum of 1.1 and 1.1 could result in 2.199999999999. How do I solve that?
  2. What if I am in Sweden (or Germany or some other country) and I want to use a comma (,) as a decimal separator instead of a period (.). How can I do that?

Answers

  1. You can use the xslt format-number function to remove erroneous decimal digits that are the result of using Sum on a decimal number.
  2. You can use the xpath translate function to replace a period with a comma. However this does not conform to an xsd:decimal, so make sure that the target schema does not have this field defined as a decimal if you wish to be compliant.

This will make the outlook of the xslt instead look like this (code is edited to improve readability):

<xsl:template name="OutputSum">
  <xsl:param name="param1" />
  <xsl:param name="param2" />
  <xsl:element name="Compensation_Amount">
    <xsl:variable name="SumOfNodes" select="//row[Compensation_SubCode=$param1 and   
Compensation_Level=$param2]/Compensation_Amount)"
/> <xsl:variable name="FormattedSum" select="format-number($SumOfNodes,'0.00')"/> <xsl:value-of select="translate($FormattedSum, '.', ',')" /> </xsl:element> </xsl:template>

The use of several variables are for maintainability only, and are not required. You could jam it all into the value-of select statement if you really want to.

/Johan

Blog Post by: Johan Hedberg

Demos from the How to do integration with Office365 and On-Premise Applications at TechEd (MID372-INT)

Thanks to everyone attending my session on integration with
Office365 and on-prem applications.

All demos can be downloaded from here: http://blogical.se/files/folders/downloads/entry25152.aspx

I recommended you to start downloading the AppFabric SDK CTP,
in which you’ll find the ClientAccessPolicyPublisher sample I was running in
the last sample:   
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=d89640fc-c552-446e-aead-b1e0d940f31b

Good luck and let me know if you need any
additional help.

Blog Post by: wmmihaa

BizTalk Server 2010 Developer Training in Brisbane in June

Mexia is delivering the new BizTalk Server 2010 Developer training in Brisbane the week of June 20th. So if you have been waiting for BizTalk Server 2010 developer training this is your chance. The new course material follows closely to the previous Microsoft training for 2006, but has been update to 2010 and has modules for WCF send and receive adapter and a new BizTalk Patterns module. We have a discounted early bird registration through the 3rd of June. For details and registration please go to: https://bizdevbris0511.eventarc.com/event/view/3009/biztalk-2010-developer-training—brisbane. For any additional information or question please contact me.

Test whats happening inside BizTalk

A few weeks ago I did the video about how we were testing what happens inside BizTalk by using the CAT Team Logging Framework and the ETW trace events and then testing the information coming out from our tracing to prove what was happening inside BizTalk.

Ive updated the codeplex project so that the code is a little easier for people to use and is packaged better. Also the source code is now available in codeplex and there is some additional documentation. Note that it now works slightly differently to in the video but performs much better.

The original video about the idea is on the following link
http://www.cloudcasts.net/ViewWebcast.aspx?webcastid=2521028145037920619

The codeplex project is on the following link:
http://btsloggingeventsinbi.codeplex.com/

Call for Speakers

Dallas TechFest 2011 has opened the Call For Speakers at our new website.  In order to submit sessions you must register on the website, complete your speaker profile, and then you will be able to add sessions.  We expect the end the call for speakers in early June, so please submit soon!

Dallas TechFest 2011 is a multi-day, multi-disciplinary technology conference focused on software development and IT professionals.  It will be held on August 12th and 13th 2011 at the University of Texas at Dallas.  We are interested in anything related to these subjects as talks, regardless of technology.  We have had talks covering everything from iPhone to Java, .NET to Android.

Twitter Tag : #dtf11
Twitter Account : @DallasTechFest

Blog Post by: Tim

BizTalk 360 – BizTalk Application Dashboard

Introduction

The BizTalk application is a feature of Microsoft BizTalk Server that makes it quicker and easier to deploy, manage, and troubleshoot BizTalk Server business solutions. A BizTalk application is a logical grouping of the items, called "artifacts," used in a BizTalk Server business solution. There are various artifacts present in a BizTalk solution, which includes

  • Receive ports/locations, send ports, send port groups and orchestrations
  • BizTalk Assemblies and BizTalk specific resources that they contain – Orchestrations, pipelines, schemas, and maps
  • .NET assemblies that do not contain BizTalk specific resources
  • Other items that are used by the solution like policies, certificates, scripts, COM components etc.

A more detailed explanation of BizTalk application can be found in this article http://msdn.microsoft.com/en-us/library/aa560585(v=bts.70).aspx

When it comes to monitoring and supporting a BizTalk solution, it typically will relate to managing one or more BizTalk applications and the artifacts that’s grouped into that application.  It’s important to give the support person a clear view of what’s happening inside the application to facilitate better management and easy diagnosis of problems.

BizTalk 360 solves this challenge by providing an application level dashboard as shown below

BizTalk 360 application dashboard provides a single view of all the important runtime artifacts and their status. As shown in the above picture, there are 5 important sections highlighted in the application dashboard

  1. Status of any suspended instances and last suspended time
  2. Status of all the receive ports/receive locations
  3. Status of all send ports
  4. Status of all Orchestrations, and
  5. Status of host instances related to the application

Suspended Instances:

If there are any suspended instance for the particular application, a red bar with the number of  suspended instances count and last suspended date time in simple English text will appear on the top. This just gives clear indication for the support person, there is something wrong in the application. By clicking the "Query Instance" link inside red bar, will take the user directly to the query instances window, where more details about the suspended instances can be found as shown below:

ReceivePort/Location, Send port, Orchestration Status

When it comes to BizTalk applications there are three main runtime artifacts receive ports/locations, send ports and orchestrations. For a healthy functioning of the BizTalk applications, its essential to make sure these artifacts are in proper running state. Example: Receive locations shouldn’t be disabled, orchestrations shouldn’t be in stopped state etc.

BizTalk 360 application dashboard highlights the statuses of these runtime artifacts in a single place. They are colour coded to hint the application support person any potential issues. Ex: If one of the send ports in the application is in stopped state, and not transmitting any messages to external vendors then it will be highlighted in red as shown below.

Grouped receive locations:

A receive port can have one or more receive locations. BizTalk 360 groups them together and displays it in the application dashboard to give a better understanding of receive ports and receive locations relationships as shown below

Clicking on the "Detail" link, will take the user to corresponding tab with more details about the artifacts.

Host Instances Status (related to the application)

It’s one of the great challenges to identify the relationship between the application and the host instances required to successfully run the application. In order to work out the relationship, its essential to understand the concepts of host/host instances/handlers/artifacts/applications and their relationship between them. BizTalk 360 addresses these challenges by its internal algorithm and present the host instances required to run the application directly on the dashboard. This helps the support person to check whether the corresponding host instances required for the application are in a healthy state as shown below.

Application Properties

BizTalk 360 application dashboard also allows the end user to see the general properties of the application like their status, description, some statistics, references etc as shown in the below picture.

Hide unused artifacts tabs

Not all the BizTalk applications will make use of all the BizTalk artifacts. Example: If it’s a pure messaging only application then there won’t be any orchestrations. To reduce the confusion for BizTalk support person, BizTalk 360 gives the option to hide unused artifacts, by clicking the "Hide unused link". You can see the before and after screen shots below to get the idea.

Before:

After:

Social:
twitter: @biztalk360
facebook: http://facebook.com/biztalk360
support: http://getsatisfaction.com/biztalk360

PS: If in case you haven’t noticed BizTalk 360 is a web based (RIA) application, built using Microsoft SilverLight. The above screens are accessible via browser. There is no necessity to install anything on the client PC except Microsoft SilverLight.

Nandri

Saravana