无法以编程方式启动SharePoint工作流

时间:2013-06-17 14:48:36

标签: c# visual-studio-2010 sharepoint-2010 runtime-error sharepoint-workflow

我在尝试启动工作流程时遇到了一些失败。这是一个包含批准任务的工作流程。每当我尝试以编程方式启动它时会发生这种情况。我没有错。一切都很顺利。但是,就在第一个批准过程进入时,SharePoint会按照告知的方式启动批准任务。然后,在此任务取消后,工作流崩溃。我不知道为什么。在工作流历史记录页面上,我收到此信息“错误 - 工作流无法更新项目,可能是因为项目的一个或多个列需要不同类型的信息.-未知错误”。 PS:每当我手动(通过工作流程的起始页面)使用相同的帐户,相同的列表项目,相同的一切启动相同的工作流程时,它给我带来了麻烦。我试着通过日志来寻找能够帮助我解决这个问题但却没有成功的事情。你有没有猜到为什么我不能以编程方式启动它而不面对这个?

我的代码:

        using (SPWeb Web = SPContext.Current.Web)
        {
            SPList myList = Web.Lists["MyList"];

            SPListItem listItem = myList.GetItemById(ListItemId);

            //Get workflow’s Id             
            Guid workflowId = GetRelatedWorkFlowId(Web);

            foreach (SPWorkflowAssociation workflow in myList.WorkflowAssociations)
            {
                if (workflow.Id == workflowId)
                {
                    using (SPSite site = Web.Site)
                    {
                        Web.AllowUnsafeUpdates = true;
                        SPSecurity.RunWithElevatedPrivileges(delegate()
                        {
                            site.WorkflowManager.StartWorkflow(listItem, workflow, workflow.AssociationData);
                        });
                    }
                }
            }
        }

1 个答案:

答案 0 :(得分:0)

我试图通过Generic Handler(.ashx)完成所有这些操作,因为要启动工作流,它会回发它会导致我的工作流崩溃。