Jul 282009
 

I am not sure if the war over ‘which product is better’ will ever be over, cialis but the price battle sure has been won:

WebSphere TX

BizTalk

IBM Passport Advantage Express Microsoft BizTalk Server Pricing and Licensing Overview

 

Microsoft sure has made it easier to understand what you are getting, order having worked for Mercator in my past, I sure am stumped as to what a client would need to buy.

(Thanks Barry for pointing this out)

Jul 252009
 

Here is the stored procedure that needs to placed on the same server (but different database) as the MessageBoxDb. Then you simply have a job that runs this stored procedure (again, it never should need to be turned off)

This will check for new suspended messages every 30 seconds.

CREATE PROCEDURE [dbo].[MonitorBTSMessages]
AS
BEGIN
    SET NOCOUNT ON;
    while(1=1)
    BEGIN
    WAITFOR DELAY '00:00:30'
        DECLARE @SUSPENDEDMESSAGES INT
        SELECT @SUSPENDEDMESSAGES=COUNT(*)
        FROM [BizTalkMsgBoxDb].[dbo].[InstancesSuspended]
        WHERE DtCreated between DATEADD(s,-30,GETUTCDATE()) and GETUTCDATE()
        IF (@SUSPENDEDMESSAGES>0)
        BEGIN
                declare @thisSubject varchar(100)
                select top 1 @thisSubject='Suspended message on '+  nvcErrorProcessingServer
                FROM [BizTalkMsgBoxDb].[dbo].[InstancesSuspended]
                WHERE DtCreated between DATEADD(s,-30,GETUTCDATE()) and GETUTCDATE()
                and nErrorCategory=0
                Declare @body1 varchar(8000)
                SELECT @body1 = ISNULL(@body1+'Adapter: '+nvcAdapter+' at '+nvcURI+'<br />Description: '+nvcErrorDescription+'<br /><br />','')
                 FROM [BizTalkMsgBoxDb].[dbo].[InstancesSuspended]
                WHERE DtCreated between DATEADD(s,-30,GETUTCDATE()) and GETUTCDATE()
                and nErrorCategory=0
                ORDER BY nvcErrorDescription
                EXEC msdb.dbo.sp_send_dbmail @recipients='support@company.com',
                @copy_recipients ='supervisor@company.com;manager@company.com',
                @subject = @thisSubject,
                @body = @body1,
                @body_format = 'HTML' ;
        END
    END
END

Jul 232009
 

While building a Excel CSV to Claim application for a client I needed to take a comma delimited record and place it into a string array.

The challenge is that there is a wrap character only for the fields that have the delimiter in the data.

Example:

012346,012346001,SMITH              ,SCOTT,J
012345,012345001,”WILLIAMS, III                 ”,HENRY                 ,R
012344,012344001,DAHL                ,MICHELLE                      ,T

I could not find an easy way to parse this into an array, this is what I came up with:

public string[] Split(string expression, string delimiter, string qualifier, bool ignoreCase)
{
    string _Statement = String.Format("{0}(?=(?:[^{1}]*{1}[^{1}]*{1})*(?![^{1}]*{1}))",Regex.Escape(delimiter), Regex.Escape(qualifier));

    RegexOptions _Options = RegexOptions.Compiled | RegexOptions.Multiline;
    if (ignoreCase) _Options = _Options | RegexOptions.IgnoreCase;

    Regex _Expression = new Regex(_Statement, _Options);
    ArrayList finalresult=new ArrayList();
    foreach (string result in _Expression.Split(expression))
    {
        string tempData=result.Replace(qualifier, "");
        finalresult.Add(tempData.Trim());
    }
    string[] strArray = finalresult.ToArray(Type.GetType("System.String")) as string[];
    return strArray;
}

I am sure it can be done better, yes, I know, two passes through isn’t quite the best to remove the “ from the quoted field, and I could have done it a little better to remove the spaces, but it does what I needed, and the client was not paying for how fast it runs, he was paying me for how fast I could code it!

Jul 102009
 

Even though I have created a conversion tool that takes existing maps and change them to the 5010 version with the right click of a mouse button. There is still going to be the need to simply convert the 4010A1 data to the 5010 data, here or vise versa from 5010 to 4010A1.

We have developed a series of maps that do the conversion of the data, advice not a conversion of the maps.

Here are some screen shots of the maps that can be used in orchestrations, site or in receive or send ports.

ConversionMaps

Here is two images of it being implemented in an orchestration to convert the data from 4010A1 to 5010

4010Source

5010Destination

You receive the source map files so you can add/modify the mapping logic to fit your business needs:

Old2NewSample

Jul 012009
 

We have developed a HIPAA 4010A1 to HIPAA 5010 converter for use in Visual Studio 2008.

After installing the converter, buy cialis the steps to use the converter are as follows:

  1. Place the appropriate 5010 HIPAA schema in the same project as your current 4010 HIPAA schema
    Both schemas in the same project
  2. Compile the schema project
  3. Open up map project that references the HIPAA schema project
  4. Right click on the map that needs to be converted
  5. Choose ‘Convert to 5010’

It is complete.

Things the converter will do:

  • Create a backup of the current map as {map name}_4010.btm and add it to the project
  • Change the type name of the 4010 map to {type_name}.4010

Here are the screen shots of the tool:

MapContext

Don’t worry, you can only convert maps!

NonMapContext

After pressing the Convert to 5010 context menu item the project has the following archived map.

Resulting map that is created

Here is a page from the initial map:

Original 4010 map

Here is the converted map:

Converted 5010 map 

Through the contact page, you can pre order this 5010 converter.

Below is a video of the conversion tool in action, make sure you click the 720p resolution.