[Gelöst] Bei Änderung Username in Notizfeld eintragen

20. Dezember 2010 15:42

Hallo zusammen,

um eine möglichst ausführliche Änderungshistorie für Kontaktdatensätze zu erhalten, möchte ich eine jede Änderung in einem ntext-Attribut hinterlegen. Neben dem Datum und dem geänderten Datenfeld soll auch der Autor der Änderung niedergeschrieben werden.

Beispiel: Autor Max Mustermann ändert die E-Mail-Adresse eines Kontakts. In dem Attribut "Historie" wird dies hinterlegt mit: "(21.12.2010, 14.30 Uhr, Max Mustermann): Neue E-Mail-Adresse hinterlegt"

Wie programmiere ich das entsprechende OnChange-JavaScript?

Code:
var datum = new Date();
var autor = ???
crmForm.all.cfb_historie.DataValue = crmForm.all.cfb_historie.DataValue + "(" + datum + ", " + autor + "): Neue E-Mail-Adresse hinterlegt";
crmForm.all.cfb_historie.ForceSubmit = true;

Mein Problem ist insb. das Identifizieren des Autors sowie eine ansehnliche Darstellung (sprich mit Absätzen etc.). Sollten weitere Fehler im obigen Code sein, freue ich mich über eine Korrektur.

Gruß & Dank
Frank
Zuletzt geändert von frankyue am 1. April 2011 11:54, insgesamt 1-mal geändert.

Re: Bei Änderung Username in Notizfeld eintragen

20. Dezember 2010 16:48

Hallo Frank,

das ist eigentlich keine Aufgabe für ein JavaScript, sondern für ein PlugIn. Es gibt auch einen Lösung auf codeplex, dort einfach mal nach CRM und Audit suchen.

Re: Bei Änderung Username in Notizfeld eintragen

22. Dezember 2010 10:17

Hallo Frank,

mit einem Plugin kann man sicher die schönste Lösung zu erstellen. Das ist der einzige Weg, wenn man auch die "alten Inhalte" mitprotokollieren will oder je Vorgang nur einen Logeintrag - auch bei mehreren Änderungen - erhalten will.

Für einfache Ansprüche gibt auch eine Lösung über den Workflow. Wenn du z.B. nur ein paar Felder überwachen willst. Erstelle eine neue neue Entität "Änderungen", die alle benötigten Felder enthält (z.B. Tabelle, betroffenes Feld, Bezug zur Firma , neuer Wert). Dann erstellst du bei der Firma einen Workflow, der bei Change eines Feldes einen neuen Datensatz in die neue Entität schreibt. Datum und User kommen über die Standardfelder createdby bzw createdon. Über die Parameter legst du dann die Inhalte fest. Über den Bezug kann man dann später aus der Firma heraus alle Änderungen zu der Firma sehen.

Wenn Du mehrere Felder protokollieren willst, dann kannst Du z.B. mehrere Workflows definieren, die jeweils ein Feld überwachen.