2013-07-26 38 views
2

我希望能夠創建一個模塊作爲sugarCRM和其他數據庫之間的交互。爲此,我使用模塊構建器工具構建了一個模塊,並且我想將它連接到一個新表格,該表格是糖數據和我的第二個應用程序數據之間的聯接(以防止數據重複)。SugarCRM - 防止自定義模塊的記錄

由於我的新模塊表是兩個人之間的視圖,糖視圖的內容沒有任何問題,但每當我嘗試插入任何東西時會拋出異常。所以我想要使用一個邏輯鉤子來直接將數據存儲在兩個「原始」表中。

這是我的問題:即使數據正確存儲,我想阻止糖嘗試存儲任何東西。在我的鉤子完成其工作後,我能在我的鉤子裏做些什麼來阻止糖的行動?

對不起,我的英文很糟糕,感謝您的閱讀。

+0

爲了確保我明白:您使用Module Builder創建了Sugar將識別的模塊,但該模塊的數據來自外部源,並且Sugar應該只從該模塊的表中讀取,因爲它不是真正的表無論如何,只是一個看法。那是對的嗎?具體的問題並不是用邏輯鉤來存儲真實表中的數據,而僅僅是阻止自定義模塊嘗試使用Sugar的默認模塊代碼來保存任何內容。對? – nmjk

+0

對不起,回答這麼晚,我不經常使用這個帳戶......你明白了,我強制Sugar認爲這個視圖是它自己的表格,以便Sugar正確讀取數據。然後,在編輯某些內容時,我使用邏輯掛鉤來檢索有趣的數據並在第一個表中更新它們。但隨後用這種方法,Sugar嘗試更新視圖(他認爲這是他自己的桌子),這就是干擾我的原因,因爲Sugar崩潰了...... – user2622911

回答

1

我推薦的是覆蓋自定義模塊的控制器中的Save方法。

構建並部署模塊後,會出現一個新目錄:custom/modules/yourcustommodule。在該目錄中,創建一個名爲controller.php的文件。

該文件應包括以下內容(未經測試)代碼:

require_once('include/MVC/Controller/SugarController.php'); 

class yourcustommoduleController extends SugarController { 
    function action_save() { 
     return; 
    } 
} 

你甚至可以將你的前/鉤到這個自定義操作功能後。只要你不調用默認的保存方法(parent::action_save();我認爲),SugarCRM的默認保存操作就不會發生。

重要提示:在部署自定義模塊後,SugarCRM的最佳做法是不要重新部署它,而是在Studio中進行所有後續更改。這一點很重要,因爲一旦對定製模塊進行了這些文件級別的更改,如果重新部署模塊,這些更改將會丟失。

+1

關於部署的說明非常重要。在Module Builder中,只需設計字段和關係,然後發佈它,安裝發佈的版本,並在Module Builder中刪除副本。儘快離開Moule Builder。在OP的方法中,用視圖替換模塊的表格是使數據可用於API的一種好方法,否則這些API不可用。我們在某些關係的連接表中添加了元數據,並且一個視圖可以將其拖入我們所選的條目中。非常方便的技術。 – Jason

相關問題