您的位置:首页 > 产品设计 > UI/UE

如果不用QuickFlow提供的控件来开发工作流页面,如何启动流程,提交任务呢?

2012-03-17 23:27 288 查看
有两种方式:

a)直接用SharePoint的对象模型来操作。这样做会有些复杂性。

跟Workflow有关的方法有:SPSite.WorkflowManager.StartWorkflow, SPWorkflow.AlterTask,详细见SharePoint SDK.

b)用QuickFlow提供的API操作: WorkflowContext.Current.

用WorkflowContext必须在特定的上下文下运行,包括列表的新建页面,任务的提交页面。

常用WorkflowContext方法如下:

WorkflowContext.Current获取到当前的工作流上下文
WorkflowContext.CreateContext(SPList dataList)基于某个列表创建一个上下文, 这样创建的context,自动工作流的时候,会自动在列表中新建一个列表项
.DataFields[]获取或设置列表字段值。
.UpdateWorkflowVariable(string name, object value)工作流启动前或任务提交前更新工作流变量
.StartWorkflow(string wfName)启动工作流
.CommitTask( string outcome )

完成任务,指定任务的结果(通过,拒绝)
.ReAssignTask(string to)转发任务
WorkflowContext.Current.Task获取当前的WorkflowTask(只能获取到上次的数据)
WorkflowContext.Current.TaskFields["field name"]获取当前的任务字段属性,可以获取到最新数据
WorkflowTask一般通过WorkflowContext.Current.Task或者WorkflowContext.FromListItem获取

常用WorkflowTask方法如下:

WorkflowContext.FromListItem
.Actions获取到任务的动作集合(TaskActions)
bool CanCommit()当前用户是否可以提交工作流(只有网站集管理员或者任务操作人才能提交任务)
CommitTask(string outcome)提交任务
示例:

在列表的Newform页面启动工作流:

WorkflowContext.Current.StartWorkflow(“My Workflow”)

无论是启动工作流还是提交任务前,都可以传递工作流变量

WorkflowContext.Current.UpdateWorkflowVariable(“vabiableName”,value)

在一个普通的aspx页面启动流程(非NewForm页面):

var wflist = SPContext.Current.Web.Lists[“List1”];

WorkflowContext wfCtx = WorkflowContext.CreateContext(wflist);

wfCtx.DataFields["Title"] = proj.ProjectName; //设置列表项字段

wfCtx.DataFields["ReferenceNo"] = proj.ReferenceNo;

wfCtx.DataFields[ProjectID_FieldName] = proj.ID;

wfCtx.UpdateWorkflowVariable("sendToPCController", true);//设置工作流变量

wfCtx.UpdateWorkflowVariable("PCController", new NameCollection(pcController));

wfCtx.UpdateWorkflowVariable("PM", new NameCollection(proj.ProductManager));

wfCtx.StartWorkflow(Config.WorkflowName);

在任务页面获取任务动作:

TaskActionCollection actons = WorkflowContext.Current.Task.Actions;

在任务页面完成任务:

WorkflowContext.Current.CommitTask(“Approved”); //Approved is a taskAction
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐