2009-01-28 80 views
2

我在MS CRM 4.0中創建了一個自定義實體,並試圖通過.Net中的自定義worflow更新一些屬性。我已經閱讀了幾個論壇和博客文章,但仍然對如何訪問自定義實體和更新其某些屬性感到困惑。通過自定義工作流更新MS CRM 4.0中的自定義實體

我創建了一個自定義實體來替換CRM如何進行分配,因爲我們公司有一些CRM沒有做的特定業務規則。在事件完成任務時,我想使用任務持續時間更新自定義實體中的屬性。任何幫助將不勝感激。

感謝

回答

5

當一個自定義工作流使用CRM Web服務,您需要使用DynamicEntity對象。工作流上下文webservice只是一個ICrmService,因此它不知道您的特定定製。這裏有一個漂亮的示例:http://www.stunnware.com/crm2/topic.aspx?id=CustomWorkflowActivity

我想你也可以添加CRM Web服務作爲Web工作流程項目的Web引用。然後你會爲你的自定義實體強制輸入對象。我從來沒有爲我的自定義工作流程做過這件事,但它適用於訪問CRM的其他自定義應用程序。

+0

This Works。我在實踐中已經做到了。您必須具有Web引用才能檢索(並更新)動態數據,但要將靜態實體用於輸入和輸出參數。 – 2009-12-23 14:15:22

0

這很容易,你不要使用DynamicEntity。你必須去設置 - >定製 - >下載WSDL。採取wsdl並在您的項目中使用它。現在,您擁有所有強制類型的自定義實體。所有你需要做的就是寫這樣的:

Guid entityId = getEntityId(); 
new_yourCustomEntity entity = new new_yourCustomEntity(); 
entity.new_yourCustomEntityid = entityId; 
entity.new_customProperty = "value"; 
CrmService crmService = new CrmService(); 
crmService.Update(entity); 
0

也許你真正的意思是自定義工作流程活動?這涉及編寫您自己的.NET類,以便以新的步驟類型的形式向標準CRM WF添加功能。如果你想要做的只是更新一個屬性,你並不需要它,即使它是在一個自定義的實體上。 更新記錄步驟僅執行此操作,並允許指定動態值(來自其他實體)。

希望它可以幫助

丹尼爾

1

贊成在WSDL選擇的動態實體始終是更好的選擇。 當你開發一段代碼時,你的類更靈活。你可以在不同的環境下使用你的軟件來處理不同的系統。這就是動態實體發明的原因。

相關問題