2015-04-08 17 views
2

我無法弄清楚如何在Moqui中存儲系統相關信息。Moqui中是否有與OFBiz中的系統屬性類似的實體?

例如,如果我爲特定組織(ABC Corp)使用HiveMind應用程序,則必須在爲特定組織記錄時硬編碼該值。我找不到任何合適的實體可以讓我處理這個特殊情況。

那麼,有什麼方法可以處理這種特殊情況?

例如,當我在HiveMind應用程序中創建用戶和客戶端時,數據庫中沒有記錄將指定用戶是特定組織的僱員。

對於客戶端,它們只存儲在組織實體中,並且不存在將指定該關係的關係。無論何時創建新用戶或客戶端,我都可以通過創建派對關係來處理這種情況。

但是我將不得不硬編碼與我想創建關係的派對的價值。假設ABC公司正在使用HiveMind應用程序,那麼無論何時創建新用戶或客戶端,我都必須硬編碼ABC公司的派對ID。相反,硬編碼這個值,我從數據庫中獲取這個特定值會更有效率。每當新組織想要使用該應用程序時,我都會在數據庫中更改它,並且服務代碼將保持原樣。

+0

「系統相關信息」和「價值」是什麼意思?你能分享一個例子嗎? –

+0

更新了問題的描述。 – adityazoso

回答

1

這實際上是一個應用程序設計問題,而不是框架的一個方面,但我會分享一些想法。

業務級別配置通常應該在爲此目的而設計的結構(實體)的數據庫中完成。有時需要一般的價值觀,但這應該是例外,並且只有極少數情況。在Moqui中,處理用戶或用戶組首選項的方法是使用UserPreference和UserGroupPreference,並且所有用戶都使用Moqui中標準的ALL_USERS組(所有用戶都自動成爲此組的一部分)。這可以直接在實體上完成,或使用UserFacade(ec.user)上的相關方法完成。從商業和應用程序設計的角度來看,基於Mantle的應用程序(對於其他人閱讀,這是基於Moqui的商業工件項目),我不會推薦這樣做。如果要在創建員工時支持多個組織,則應在表單上有一個字段來選擇員工屬於哪個組織(然後根據您的意願創建PartyRelationship記錄)。

在HiveMind中,可以有多個供應商組織,其中有與其關聯的不同角色的人員。在創建項目時,您需要爲特定項目選擇供應商和客戶機構,以便我們知道從哪個用戶開始收費,哪些用戶參與項目的不同方面等。

如果您確實想要支持一個供應商組織,您可以對其進行硬編碼,而不是使其在應用程序的任何位置可見或可選,並將其作爲代碼所依賴的數據的更嚴格意義上的種子數據的「種子」數據的一部分直接使用(即使用「硬編碼」,儘管該術語具有通常不合理的負面影響,但直接使用字符串值通常非常有用,並且提高了清晰度和可維護性)。

相關問題