EDI Leap Year hotfix: BizTalk 2009 and BizTalk 2006 R2

Hi,

Please treat this as an Important Fix (on the line of Security updates) for all 2006_R2 and 2009 BizTalk servers. 

This fix need to be applied ASAP (before next week) as we will be hitting the leap year date 2/29/2012 in just about a week

 The fix has been available for quite some time and also included as part of the CU for BizTalk 2009 (since CU1). 

But there are still many customers who might not have taken the CUs or applied the patch.  I urge you all to please reach out to your customers proactively
and let them know of this fix.

EDI Leap Year hotfix: BizTalk 2009 and BizTalk 2006 R2

If using EDI in BizTalk 2009 and BizTalk 2006 R2, install the EDI leap year hotfix before 2/29/12:

 2435900  FIX: "Invalid Date" EDI interchange error occurs in BizTalk Server 2006 R2 or in BizTalk Server 2009 if a data element contains a leap date value

 BizTalkServer 2009:

There are two ways to get this fix: 

Option1: Install any BizTalk 2009 Cumulative Update. KB 2555976 lists the available cumulative updates:

 Option 2: Install thestand-alone fix by clicking View and request hotfix downloads at the top of KB article 2435900.

 

BizTalk Server 2006 R2

  1. Install BizTalk 2006 R2 Service Pack 1.
  2. Install BizTalk 2006 R2 Service Pack 1 Cumulative Update 3.
  3. Install leap year fix (3.6.2230): https://support.microsoft.com/kb/2435900

PS: It is required to install CU3 before applying the fix as there are many other dependent binaries that get updated and it is in the customer’s best interest to be on the latest supported platform and minimize troubleshooting efforts.

 Note BizTalk Server 2010 is not impacted by this bug.

 

Please use the following repro steps and sample message for X12, to ascertain if this issue is applicable in your environment:

Repro Step:

  1. Install and configure BizTalk 2006R2 + SP1.
  2. Deploy schema “X12_00401_850” in attached file.
  3. In BizTalk Application 1, add reference “BizTalk EDI Application”
  4. Create one receive port.
  5. Create one receive location for above receive port, then set Type to “File”, and set Receive Pipeline to “EDIReceive”.
  6. Create send port and Send pipeline to “PassThansmit”, and subscribe the message of above receive port.
  7. Drop file “X12_00401_850 - 20120229.edi” in attached file to receive location folder, the message contains leap year for one “X12_DT” data type element as below:

BEG*00*AB*BEG03**20120229~

[Actual Result]

       The message is suspended for “Invalid Date” error, please refer to detailed error below:

          Error encountered during parsing. The instance is being suspended with following errors:

           Error: 1 (Field level error)

SegmentID: BEG      
Position in TS: 2
         
Data Element ID: BEG05
          
Position in Segment: 5
          
Data Value: 20120229
          
8: Invalid Date

 

Thanks and appreciate your help

Guru Venkataraman

X12_00401_850.zip