2009-07-24 88 views
2

我有一個工作流應用程序,當我嘗試使用ExternalDataExchangeService調用一個事件時引發錯誤。在狀態持久性存儲中找不到id爲「xxxxx」的工作流

在狀態持久性存儲中找不到ID爲「866568ab-ca1b-4404-a2f1-2c8704539ef4」的工作流。

無法傳遞實例ID爲「866568ab-ca1b-4404-a2f1-2c8704539ef4」的接口類型爲「RecipeChangeService.IRecipeChangeService」的事件「QAEngOrTLReject」。

這裏是它在我的實現代碼 - 請幫助我堅持:(

下面是接口和數據交換事件參數 -


public class RecipeChangeService : IRecipeChangeService{ 
     #region IRecipeChangeService Members 

     public event EventHandler QAEngOrTLApprove; 

     public event EventHandler QAEngOrTLReject; 

public bool QAEngOrTLApproved(Guid instanceId, ResponseDataObject rdo) { 
      if (QAEngOrTLApprove != null) { 
       QAEngOrTLApprove(this, new XMESWFRecipeResponseDataEventArgs(rdo, instanceId)); 
       return true; 
      }return false; 

     } 

     public bool QAEngOrTLRejected(Guid instanceId, ResponseDataObject rdo) { 
      if (QAEngOrTLReject != null) { 
       QAEngOrTLReject(this, new XMESWFRecipeResponseDataEventArgs(rdo,instanceId)); 
       return true; 
      } return false; 
     } 
} 

[Serializable] 
    public class XMESWFRecipeResponseDataEventArgs : ExternalDataEventArgs { 
     public readonly ResponseDataObject rdo = null; 
     public XMESWFRecipeResponseDataEventArgs(ResponseDataObject rdo, Guid instanceId) 
      : base(instanceId) 
     { 
      this.rdo = rdo; 
     } 
    } 

該事件引發使用 -



IRecipeChangeService s = 
        ExceptionServices.GetExceptionService(WorkflowExceptionType.RecipeChange) 
        as IRecipeChangeService; 
    s.QAEngOrTLApproved(new Guid(instanceId), rdo); 

謝謝。

回答

3

幫助我們,請確保代碼是readab樂。

可能有多種工作流程無法找到的原因。首先,如果沒有持久性服務並且工作流程不在內存中,您也會看到此錯誤。另一件要檢查的是工作流還沒有完成。這可能是其他事件的結果,也可能是由於未處理的錯誤。

+0

我已經聲明性地添加了持久性服務。我應該如何確定它是否正常工作。我確信工作流程在內存中並沒有完成。 – ksa 2009-07-27 05:51:25

相關問題