2011-05-31 46 views
4

我正在評估CRM 2011的使用,以替換我們現有的LOB應用程序之一,並對自定義實體有疑問。具有不同數據的相似實體

我們有多個實體共享一些基本信息,但是每個實體會根據其「類型」需要不同的相關實體。另外驗證規則會根據'類型'而改變。最重要的是,每個客戶端都可以支持「類型」的不同子集。

E.g.

僱員實體

  • 工作性質:全職,兼職,合同
  • 姓名,地址,服務等

不同類型的員工的,根據不同的日期類型'被選中。

全職:

  • 工資
  • 效益(相關實體)
  • 養老金(相關實體)

兼職:

  • 小時收費
  • 數個小時/周

合同:

  • 合同開始
  • 合同結束
  • 合同信息(相關實體)
  • 提交的工時單(相關實體)

問題:

  1. 如何在Dynamics 2011中對這類事物進行建模?是否支持某種形式的繼承?
  2. 目前我正在考慮創建員工時,根據「員工類型」自動創建相關實體。有沒有更好的方法來實現這一點?
  3. 如何實現此場景的驗證?

回答

2

我們也有類似的問題,即一對夫婦提供實體所需的同一領域。我們最終創建了一個獨立的小程序,併爲每個實體添加了正確的字段。

沒有任何形式的繼承(如設置一個主形式傳播到它的孩子)很可惜。而且你也不能複製表單。

雖然處理創建關係非常容易。你可以創建一個post事件插件,當創建Employee Entity時,它會根據類型添加一個關係(可以說下拉菜單)。如果你有一個子類型,你可以很容易地添加它。

驗證將是一個完整的蠟球。假設承包商變成了全職員工。你需要有一個更新插件,在字段更改(類型)檢查並確保正確的關係,其他關係結束(或清理)。

您所描述的情況在CRM 2011中非常實用,表格內容並不是最優雅的,但其他內容很容易處理。

+0

謝謝 - 這正是我正在考慮的,但我試圖避免由於事後複雜的下拉值改變時應該發生的事情。 – Giablo 2011-06-01 19:17:56

+1

我不知道是否可以使用Dialog進程完成相同的操作? – Novus 2012-03-01 13:46:49

1

做到這一點的最好方法不是通過繼承,因爲這會使數據非規格化。我認爲最好的選擇是簡單地有一個指定僱員類型的領料單/選項集。然後有額外的字段來支持每種類型。如果是全職僱員,那麼兼職僱員字段可能爲空,但這並不重要,因爲您正在進行的任何集成都將檢查選項集以查看應該期望找到數據的位置。

我見過的唯一類型的「繼承」是

  • 2011的建立一個全球型,可以迅速複製整個實體使用選項集的能力。
  • 數據映射 - 如果您創建子實體,您可以將字段從父級映射到子級,就像領導者上的字段將進行帳戶/聯繫/機會一樣。
1

正如Cole提到的,根據您的要求,您將不必要的複雜性通過將字段分解爲單獨的實體來引入。您最好跟蹤單個實體上的所有這些字段,並通過「員工類型」選項列表(下拉列表)區分。然後,您可以根據所選的員工類型,使用JavaScript動態顯示/隱藏表單上的相關字段,並根據需要設置相應的字段。

+0

謝謝邁克爾 - 我給出的例子是一個比我的實際要求更簡單的比喻。會有很多數據與每種不同的'類型'相關聯,理想情況下需要將這些數據分解爲實體。感謝您選擇顯示/隱藏通過JavaScript - 我想這仍然是一個選項,即使屏幕會很大。 – Giablo 2011-06-01 19:14:52

1

我會建議一些事情來幫助保持這個「整潔」。

首先,確保您的所有實體都被命名,以便用適當的分組標識它們。這將使得跟蹤哪裏發生的事情變得更容易。

new_all_dateofhire 
new_all_name 
new_ft_salary 
new_pt_hourlyrate 

其次,我想創建一個通用的員工信息,併爲每個員工類型的附加選項卡主選項卡並使用子網格,顯示自定義關係。創建OnLoad JavaScript以僅顯示/隱藏正確的附加選項卡(或者沒有新記錄的選項卡)。

在通用選項卡上有一個「員工類型」的下拉選擇器。當員工類型更改時,使用OnChange代碼強制進行表單保存/刷新。使用適當的插件,您就可以清理關係。

+0

謝謝 - 這是一個很好的技術,要注意。 – Giablo 2011-06-06 14:50:28

相關問題