2017-03-05 107 views
0

我們正在運行一個非常不尋常的小型企業erp系統,它不允許我們以廣泛的方式修改數據。我們想通過導出直接從數據庫中更改的數據並使用Excel VBA更新不同表格的一堆數據來完成數據更新。現在我們得到了在Excel中更新的數據,該數據應該寫入Oracle數據庫。 它的業務支持告訴我們不要這麼做,因爲所有觸發器在其程序中的定期數據更新期間都在後臺運行。我們很害怕損壞數據庫,所以我們正在尋找最好的方式來進行數據更新而無需繞過任何觸發器。更具體地說,我們在不同的列和表格中進行了數千次更改,並將它們合併到一個Excel文件中。現在我們必須確保將修改後的數據插入到數據庫中,並觸發erp軟件在數據更新期間執行的所有觸發器。如何通過不繞過任何觸發器來更新Oracle數據庫中的大量數據?

有沒有人知道這樣做的好方法?

+0

與編寫和維護系統的供應商交談。 –

+0

因此,教學是,下一次請**一些專家最好的方式**之前**承擔所有的辛勤工作。 – APC

回答

0

我不知道您使用的是什麼ERP系統,但我可以將Oracle電子商務套件的一些經驗聯繫起來。

如今,Oracle的ERP包含一套強大的API,可讓您的自定義程序安全地維護ERP數據。例如,如果您想修改銷售訂單,則可以使用Oracle的API用於此目的,並確保應用所有必需的相關驗證和邏輯。

因此,第1步 - 瞭解您的ERP系統是否提供任何API以允許您安全地更新數據。

回到Oracle ERP早期的時候,並沒有太多的API。在那些日子裏,當我們需要更新很多表並且沒有可用的API時,下一個方法就是使用某種數據加載器工具。實際上,最受歡迎的是「數據加載器」。這將做什麼是從Excel電子表格中讀取數據並將其發送到ERP的用戶界面 - 就像用戶輸入的一樣。由於數據通過ERP的用戶界面,所有必要的驗證和邏輯將自動應用。

在極端極端的情況下,如果沒有API,DataLoader由於某種原因不可行,它有時被認爲是必要的,值得冒這個風險來嘗試自己直接更新ERP表。總的來說,這是冒險和不好的做法,但有時我們會做我們必須做的。

在這些情況下,我們會在用戶會話中啓動數據庫跟蹤,因爲他們通過ERP的用戶界面鍵入幾個更新。然後,我們將使用跟蹤來確定我們在自定義直接更新期間需要應用的驗證和相關邏輯。我們還將分析ERP系統的源代碼(因爲我們在Oracle的ERP中提供了它)。然後,我們會廣泛測試它。而且,畢竟這還是有風險的,並且在升級後也很容易中斷。但總的來說,它是最後的手段。

+0

我認爲問題在於,他們已經在Excel中更新了他們的數據。 – APC

+0

@APC - 然後我不理解問題。據我瞭解,他們有一個Excel電子表格包含數據,因爲他們希望它看起來在數據庫中。他們希望將其納入數據庫,但他們希望確保其他ERP特定的邏輯(「觸發器」)在更新數據庫時發生。我認爲我的回答解決了這個問題的理解,假設並不是所有ERP專用邏輯都必須以數據庫觸發器的形式實現。 –

0

沒有我的問題是我需要通過在我的流程中進行一些自動化來快速完成工作。這項工作已經在excel上完成了,但它仍然需要進行修改。只有當我通過ERP手動使用c & p或者一次性完成時,我不知道該怎麼做。 但我想馬修是正確的。 ERP中有驗證過程,所以我們不能直接寫入數據庫。 我不知道你是否可以聯繫我,如果你有線索繞過非風險的ERP。

相關問題