2 Stimmen

SugarCRM - Datensatz für ein angepasstes Modul verhindern

Ich möchte in der Lage sein, ein Modul als Interaktion zwischen sugarCRM und einer anderen Datenbank zu erstellen. Dafür habe ich mit dem Modul-Generator ein Modul erstellt und möchte es mit einer neuen Tabelle verbinden, die eine Verknüpfung zwischen den Sugar-Daten und meinen Daten aus der zweiten App darstellt (um Datenredundanz zu verhindern).

Da meine neue Tabelle für das Modul eine Ansicht zwischen zwei anderen ist, sieht Sugar den Inhalt ohne Probleme, wirft jedoch eine Ausnahme, wenn ich versuche, etwas einzufügen. Deshalb möchte ich einen Logik-Hook verwenden, der die Daten direkt in die beiden "ursprünglichen" Tabellen speichert.

Hier ist mein Problem: Auch wenn die Daten korrekt gespeichert werden, möchte ich verhindern, dass Sugar versucht, etwas zu speichern. Gibt es etwas, was ich innerhalb meines Hooks tun kann, um die Aktion von Sugar zu stoppen, sobald mein Hook seine Arbeit beendet hat?

Entschuldigung für mein schreckliches Englisch und danke fürs Lesen.

1voto

nmjk Punkte 749

Was ich empfehle, ist das Überschreiben der Save-Methode im Controller Ihres benutzerdefinierten Moduls.

Nachdem Sie das Modul erstellt und bereitgestellt haben, wird es ein neues Verzeichnis geben: custom/modules/yourcustommodule. Erstellen Sie in diesem Verzeichnis eine Datei namens controller.php.

Diese Datei sollte den folgenden (nicht getesteten) Code enthalten:

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

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

Sie könnten sogar Ihre vorherigen/nachfolgenden Hooks in diese benutzerdefinierte Aktion-Funktion verschieben. Solange Sie die Standard-Save-Methode nicht aufrufen (parent::action_save(); denke ich), werden die Standard-Save-Aktionen von SugarCRM nicht durchgeführt.

Wichtig: Nach der Bereitstellung eines benutzerdefinierten Moduls empfiehlt SugarCRM, es niemals erneut bereitzustellen, sondern alle nachfolgenden Änderungen im Studio vorzunehmen. Dies ist wichtig, weil einmal Sie diese Dateiebene-Änderungen an einem benutzerdefinierten Modul vorgenommen haben, diese Änderungen verloren gehen würden, wenn Sie das Modul erneut bereitstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X