2011-07-13 43 views
0

我有一個活動插件。如何取消在ms crm 4.0上創建一個cativity動作?

關於預創建我檢查幾個條件,如果我得到真,所以我拋出OperationCanceledException停止創建執行。

但是記錄被保存了,爲什麼?我該如何取消創作?還試圖把InvalidPluginExecutionException,但它的執行還是老樣子..

代碼:

public void Execute(IPluginExecutionContext context) 
    { 
     try 
     { 
      switch (context.MessageName) 
      { 
       case "Create": 
        if (context.Stage == MessageProcessingStage.BeforeMainOperationOutsideTransaction) 
        { 
         bool shouldnotcreateactivity = Create(context, service); 

         if (shouldnotcreateactivity) 
          throw new OperationCanceledException(); 
        } 
        if (context.OutputParameters.Properties.Contains("id")) 
        { 
         //continue... 
        } 
        break; 
      } 
     } 
     catch (OperationCanceledException cancled) 
     { 
     } 
     catch (InvalidPluginExecutionException invalid) 
     { 
     } 
     catch (SoapException ex) 
     { 
     } 
     catch (Exception ex) 
     { 
     } 
    } 

回答

0

聽起來你正在做的事情是錯誤的。你或許應該發佈一些代碼realting到預檢和活動節省的

你應該有類似下面的一些邏輯...

if(ValidateActivity()){ 
    CreateAndSaveActivity(); 
} 
else 
    throw execption; 
+0

它同樣給我做了什麼.. –

+0

添加你的創建方法是什麼?你確定這是回報你想要的價值嗎?並且例外確實被拋出? – musefan

+0

Create方法用於檢查是否應該取消活動的執行。是的,我調試,該方法是返回true,如果我應該取消...和異常被拋出,但我看到它繼續後創建插件.. –