我有一个sharepoint工作流程,其状态是我正在等待用户对工作流附加到的列表项所做的更改。
我的州有一个“OnWorkflowItemChanged”活动。在那个活动中,我绑定了“AfterProperties”和“BeforeProperties”,它们在后面的代码中创建了以下成员:
public Hashtable m_listItemBefore = new System.Collections.Hashtable();
public Hashtable m_listItemAfter = new System.Collections.Hashtable();
然后我为活动添加了一个Invoked事件的方法,并认为我没事。但是,当代码到达我的Invoked函数时,m_listItemAfter对象包含所有新信息,但m_listItemBefore为空。
同样,如果我通过以下方式直接访问列表项:
this.workflowProperties.Item["field name"]
我也得到了新的价值观。
我的工作流程的逻辑要求我看到他们更改了数据FROM以及新值。关于我在这里做错了什么的想法?
答案 0 :(得分:1)
我相信BeforeProperties仅适用于同步事件(ItemAdding,ItemUpdating)而非异步事件(ItemAdded,ItemUpdated)。
这是一个非常糟糕的事情,过去曾经困扰过我,但我很确定这是对的。因此,如果您真的必须拥有BeforeProperties,则必须使用同步事件。