0
我已經創建了SharePoint 2007順序工作流,並試圖以編程方式激活兩個工作流(一個批准和一個反饋)。通過SharePoint中的自定義順序工作流調用工作流
workflowProperties.Site.WorkflowManager.StartWorkflow(workflowProperties.Item, association, association.AssociationData, true);
我使用此代碼來啓動工作流程,並且關聯在飛行中創建。當我嘗試訪問其他列表以創建關聯對象時,問題就出現了。
SPList approvalsList = workflowProperties.Web.Lists["Tasks"];
SPList historyList = workflowProperties.Web.Lists["Workflow History"];
這就是我得到:
Unable to cast COM object of type 'Microsoft.SharePoint.Library.SPRequestInternalClass' to interface type 'Microsoft.SharePoint.Library.ISPRequest'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{BDEADEBE-C265-11D0-BCED-00A0C90AB50F}' failed due to the following error: Bad variable type. (Exception from HRESULT: 0x80020008 (DISP_E_BADVARTYPE)).
可訪問的唯一列表是通過workflowProperties.List。我如何完成這項工作,或者是否有更好的方法來調用自定義工作流中的其他工作流?
我會接受這個答案,雖然我不能真正地使用它作爲我的項目已提交=)另外,我做了相當多的在我來到SO之前我自己的搜索;這是除了使用我們最終使用的破解之外最後的手段(實際上更多的是妥協而不是任何事情)。另外,調用兩個工作流程的問題是你必須在同一個線程中。由於某些原因,您無法從自定義工作流程訪問確切的SP上下文,因爲它不會在相同的執行線程中運行。我不知道你的答案是否有效,但我們希望它能幫助其他人。 – Jaryl 2009-12-02 17:10:59
Hey Jaryl。對不起,我忍不住。雖然我喜歡接受的答案,但更好的做法是添加並接受自己的答案 - 它確實解決了您的問題,並且更可能幫助某人:) – Kobi 2009-12-03 05:23:28