Share via


Date/Time tracked with BAM must be expressed in Universal Coordinated Time (UTC)

All date/time tracked by BAM must be expressed in UTC. BAM depends on this to provide accurate durations, among many other things. This is clearly explained here. It was also the case for BizTalk 2004 even if the documentation gave subtle hints instead of describing it:

es.UpdateActivity("PurchaseOrder", poid, "POShipped", DateTime.UtcNow);

This rule is unfortunately easy to forget. For instance, let's assume you have a message with a date/time field you want to track with BAM. You start the tracking profile editor and map the message field to the adequate activity element. It was so easy that you forgot the above rule: the date/time data in the message must always be expressed in UTC or you'll start to see the tracked date/time behave funny in the BAM Portal as well as durations based on this date/time.

If the field is not expressed in UTC, the right approach is to convert it to UTC before you hand it off to BAM. You can do this in a map (with a scripting functoid), an orchestration or in a custom pre-processor component.

Happy date/time tracking!