2011-11-23 25 views
1

我們目前有一個系統,它有聯繫人。它將被映射到Dynamics中的聯繫人實體。每個聯繫人都有一個地址歷史記錄(是的,其中一些聯繫人在過去的20年中已經遷移)。如何在Dynamics中導入歷史記錄?

我們很快就要在Dynamics中導入舊系統,我想知道如何導入聯繫人地址歷史記錄。讓我們假設我有用戶「約翰」:

| Name | Address | LivedThereFrom | LivedThereTo | 
----------------------------------------------------- 
| John | 123 X road | 2005   | 2008   | 
| John | 123 Y road | 2008   | 2010   | 
| John | 123 Z road | 2010   |    | ==> Current address 

所以我將導入「約翰」,然後(與審計上的地址激活)導入他的地址2005至2008年,然後更新它的住址爲「123ÿ路」 ,最後將其更新爲「123 Z道路」,以在審計中提供完整的歷史記錄。

問題是:我如何'標記'從2005年到2008年,2008年到2010年,然後'當前'這些地址...我想在審計表中使用'created_on'字段來幫助我,但似乎沒有辦法修改這些數據(除非直接在數據庫中並且失去了Microsoft對該產品的支持)。

由於不涉及改變動態處理的聯繫地址的方式或做任何不支持的東西

+0

「除非直接進入數據庫並失去微軟對產品的支持」......哦,那不可能是件壞事,可以嗎? :)此外,直接的數據庫操作是如此...令人興奮。 –

+1

我向客戶解釋了同樣的情況,但他不會聽。生命太短;-) –

回答

2

如果客戶堅持通過產品,那麼另一種選擇是多次導入地址。

設置

一)審計爲實體轉向。

b)增加一個新的字段來存儲在最初被用於地址的數據(地址起始日)

進口

一)進口的所有客戶最古老的地址上的第一,設定的地址Commenecement Dated LivedThereFrom date

b)導出地址並使其可用於重新導入。

c)基於該客戶的下一個可用LivedThereFrom更新電子表格中的值。提示:首先將導出的電子表格轉換爲XLSX。使用公式來計算要替換的公式(例如,VLOOKUP)如果真的很大的電子表格可能需要拆分以在5MB限制下啓用重新導入。可以使用SQL中的ROW_NUMBER函數來獲取要從源系統更新的下一個地址列表。

d)繼續這樣做,c),直到所有記錄都加載

在審計歷史,你會看到日期,其新地址開始活躍與地址開始日期。

如果他們不介意直接數據庫的方法,我會直接去審計表

好運。

+0

謝謝。我們計劃在@jamnap answer/comment之後做這樣的事情,但這是一個很好的結局。 –

0

一種方法是創建一個自定義實體的工作,這是存儲所有聯繫人的地址歷史。它可以包含地址,聯繫人在那裏居住的日期,以及(最重要的)你的新地址實體(如new_Address)與鏈接兩者的Contact實體之間的N:1或N:N關係。

一個缺點是一旦完成,您可能不得不引入一些業務邏輯來將聯繫人的地址記錄同步到這個新的實體,這在Dynamics中當然是可能的,並且可能在某種程度上是不可避免的。

+0

是的,我們想過添加自定義字段,但對於動態中的所有實體來說,這是一個地獄般的工作。我寫過地址,但是我們必須爲每個實體(甚至是聯繫人,假設他們結婚並更改他們的名字)做同樣的事情。 –

+1

@DominicGoulet我想另一種方式去創建兩個自定義日期字段爲每個實體你想要的歷史,導入每個記錄的第一個實例,然後更新每個實體記錄,連同原始更新日期,每個那時你的原始系統中有一個更新,它應該觸發審覈並創建你的歷史。 –

+0

這可以做到。很長的工作要做,但我沒有看到另一種解決方案。謝謝! –