3 Mart 2011 Perşembe

Biztalk Delay Shape - GMT Problem


Delay Shape bilindiği üzere işleme devam etmek için belirtilen tarih ve saate kadar beklemeyi sağlar. Bu saat formatı UTC (Coordinated Universal Time) formatında olmalıdır.

Mesela

StrRunTime = System.DateTime.Now.ToString("yyyy-MM-ddT") + "15:30:00.00";
RUN_TIME = System.Convert.ToDateTime(StrRunTime);


görüldüğü üzere RUN_TIME date tipinde bir değişken ve o günün 15:30 saatini gösteriyor. Bu değişkeni aşağıdaki gibi Delay Shape'e koyarsak,

new System.DateTime(RUN_TIME);

her gün saat 15:30'dan önce işlem start etmiş olsa bile bu saate kadar bekleyecek ve 15:30'da işleme devam edeceğini düşünürüz. Düşünürüz diyorum çünkü GMT saat farkı yüzünden gerçek saate göre 17:30 da işlem kaldığı yerden devam eder. Bu problemi halletmek için RUN_TIME'i türkiyenin içinde bulunduğu GMT'e göre 2 saat geri almamız gerek.

RUN_TIME aşağıdaki gibi Set edilmesi gerek.

StrRunTime = System.DateTime.Now.ToString("yyyy-MM-ddT") + "15:30:00.00";
RUN_TIME = System.Convert.ToDateTime(StrRunTime);
RUN_TIME = RUN_TIME.AddHours(-2);

Hiç yorum yok:

Yorum Gönder