I am always amazed when I find something cool in the SDK, it is a great source for all sorts of different details regarding WF. The gem today originated with a customer question:
The column 6 and 7 are EventArgTypeId and EventArgTypeId, which seem to be NULL.
I would like to know if I can use these 2 fields (EventArgTypeId, EventArg) to track information when these events occurred. What is the use of these fields? I did not find much information on the web..
I had a good guess what the fields were for, but one of our support engineers answered by pointing out this page in the SDK, which describes:
The SQL tracking service in Windows Workflow Foundation lets you add tracking information about workflows and their associated activities. The SqlTrackingQuery class provides high-level access to the data that is contained in the tracking database. However, you can also use direct queries against the SQL tracking service database views for more detailed information. These views map directly to the underlying SQL tracking service table schemas.
This then goes on to describe all of the fields inside the many tables of the SQL tracking service. This is a great way to figure out how to write custom queries against the views and what to expect in what columns. I’ve talked previously about the tracking service and databases here.
The answer to the original email question by the way is that these two fields are written to when the event raised contains event args we want to capture, say an exception. If we want to track specific pieces of data, my blog post talks about where we can find those.