获取实例化工作流的SharePoint列表数据?

时间:2014-01-29 15:16:07

标签: c# sharepoint workflow

因此,我在Visual Studio中创建一个SharePoint 2010项目,其中包含与某个列表关联的顺序工作流(仅限Farm解决方案)项,以便在项目添加到列表时工作流启动。

我的问题是,说项目是按以下格式添加的:

姓名|电子邮件

戴夫| dave@dave.com

有没有办法以编程方式将这些数据存储在变量中?原样,不使用任何硬编码索引或任何东西,只需以编程方式获取它,以便我可以提取这些数据并将其存储在两个C#变量(int iD,string emailAddress)中,工作流知道哪个列表项被踢掉了?

目前,我正在这样做:

using (SPWeb oWeb = SPContext.Current.Web) {
    SPList oList = web["List Name"];
    string name = list.Items[(oList.ItemCount - 1)]["Name"].ToString();
}

但是我不想使用索引器,因为如果快速添加另一个项目并且列表重新排序然后......灾难,则索引可能会关闭。

提前致谢!

1 个答案:

答案 0 :(得分:2)

解决了它们!非常愚蠢的我忽略了这一点,但这是解决方案:

C#为您创建一个类型为SPWorkflowActivationProperties的workflowProperties变量,其中包含获取所需数据的所有方法和属性:

public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties(); // auto generated code.

然后,要获取列表项数据甚至列出数据,您只需:

SPList oList = workflowProperties.List; // get the list that contains the list item on which the workflow instance is running.
SPListItem oItem = workflowProperties.Item; // get the list item on which the workflow instance is running.

所以为了得到我的“名字”数据我将不得不:

string name = workflowProperties.Item["Name"].ToString();

希望这有助于某人,但幸运的是没有人像我一样愚蠢,所以你们可能会自己解决这个问题。