I have defined my own versions of the events TaskCreated and TaskComplete in which I specify the XSD Event Message Template so that I can pass "complex" information.
In my event thrower, I ...
* setup an event data map to pass my process instance id
* provide an xml variable as the event message data.
In my event receiver, I have my process data map set up with 3 values.
* assign the process instance id passed in the event data map to a local variable
* assign a particular string element in my event message data (xml) to a local variable.
These both work.
What doesn't work is assigning the entire event message data (xml) to a local process variable of type xml. My local xml process variable is always null.
I don't understand how I can map a single value from within the xml, but I cannot map the entire xml.