Why the OnWorkflowItemChanged is different between List and document library?
I am doing a w开发者_如何学JAVAorkflow for a document library. I put a OnWorkflowItemChanged
, and I want to get the value of the column which is changed. I use the workflowProperties.Item["name"]
and use the afterProperties
. But when I use the workflowProperties.Item["column name"]
, I still got the original value. When I use the afterProperties
, it's NULL
.
Then I make another workflow that is the same as above for a list. I can use the workflowProperties.Item["column name"]
to get the new value in OnWorkflowItemChanged
.
Has anyone come across this problem before? Can you give me some help?
The question seems to mix up Item with ExtendedProperties. As to why a difference is seen on a List/Document Lib, it might have something to do with versionining or perhaps the internal serialization is different. Anyway, some of my experience is outline below. I hope it may be of use:
Use the GUID (as a Guid object, not a string) to access the Before / After ExtendedProperties field. Using the Display Name in the ExtendedProperties will not work. The documentation on it is wrong. You can use SPList.Fields to go from Display Name to Column ID (Guid).
I bind all "Before" to MyWhatever_PreviousProperties and all "After" to MyWhatever_Properties, only accessing MyWhatever_[Previous]Properties after the appropriate event(s)).
精彩评论