2010-09-08 25 views
5

Ich bin neu in MS Dynamics, und ich würde gerne wissen, ob es einen Weg gibt Spalte zu einer Ansicht der Zugabe innerhalb dieser ist eine Verkettung von einigen anderen Spalten, zum Beispiel:verketteten/Berechnete Spalten in Dynamics CRM Ansicht

Firstname + ' ' + Lastname As Fullname 

Es scheint nicht, als gäbe es eine offensichtliche (elegante) Lösung dafür, alle Vorschläge, die ich gesehen habe, schlagen vor, Javascript zu verwenden, um ein neues Attribut beizubehalten.

Noch einen Schritt weiter, wenn ich eine Spalte aus einer anderen Spalte ableiten oder berechnen möchte, zum Beispiel das Alter einer Person von ihrem Geburtsdatum, müsste dies im laufenden Betrieb berechnet werden, wenn die Ansicht geladen wird, richtig? Wiederum sehe ich nicht sofort einen Weg, diese einfache Funktionalität mit dem CRM-Framework zu versehen. Vielleicht fehlt mir etwas?

Jeder Rat würde sehr geschätzt werden.

Antwort

7

Sie verpassen nichts. Es gibt KEINE elegante Lösung für Ihr Problem. Wenn Sie es in einer Ansicht möchten, müssen Sie eine benutzerdefinierte Spalte hinzufügen, um es anzuzeigen.

Wenn es wirklich berechnet wird (das Speichern eines festen Wertes in der Datenbank könnte, wie in Ihrem Altersbeispiel, veraltet sein), dann müssen Sie ein Plug-In für den Post-Schritt einer Fetch-Nachricht hinzufügen Bestimmen Sie, ob Ihre Entität zurückgegeben wird, analysieren Sie die Attribute, die berechnet werden sollen, berechnen Sie den Wert und fügen Sie dann das berechnete Attribut in das Ergebnis-XML ein.

Sagen wir, Sie zeigen nicht das Geburtsdatum Feld in der Ansicht (Sie wollen nur das Alter anzeigen), dann müssen Sie auch ein Plug-in auf dem Vorschritt des Fetch haben Message, analysiere den XML-Code, um festzustellen, ob deine Entity derjenige ist, der abgerufen wird, stelle fest, ob die Spalte hte age zurückgegeben wird, und speichere die Berechnungsbasisspalten in den zurückgegebenen Spaltensatz.

Beachten Sie, dass diese Plugin-Schritte NICHT ausgeführt werden, wenn Sie die gefilterten Ansichten in SSRS-Berichten verwenden. In diesen Fällen müssen Sie das Alter in TSQL berechnen. Ich glaube nicht, dass Sie jemals die Altersspalte in CRM-erstellten Assistenten-Berichten anzeigen können (Sie können TSQL hier nicht abrufen und die Plugins werden nicht ausgeführt).

Angesichts all das, wenn Sie etwas haben, das behoben werden kann (concentationation), würde ich es in einem create/update Plugin für diese Entität berechnen und es in einem benutzerdefinierten Attribut (Fullname) speichern. In diesem Fall wird das Attribut nur für Rasteransichten, alle Arten von Berichten usw. verwendet.

+0

Danke - ich denke, das beantwortet meine Frage, wie frustrierend, dass etwas so einfach in CRM so kompliziert sein sollte – bigtv

3

Es gibt nichts wie berechnete Spalten in Dynamics CRM. Benjynito hat recht, Plugins zu verwenden, das ist eine praktikable Lösung.

Aber wenn es ausreicht, das Feld zu berechnen, das auf einem Formular angezeigt werden soll, verwende ich normalerweise JavaScript, um ein Attribut zu "fälschen".

Um Ihnen eine Idee, wie es geht, hier ist ein Code-Schnipsel, wo ich jQuery zum Einfügen von Label und nur Lesetextfeld, um Elternwert Feldwert (Telefonnummer in meinem Fall) anzuzeigen.

// create label 
$("#ad_contactid_c").next().next().find("label").text("Contact Phone:"); 
// create textbox 
var phoneNumber = $(document.createElement("input")).addClass("ms-crm-Text ms-crm-ReadOnly").attr("contentEditable", "false").attr("id", "d_phoneNumber"); 
$("#ad_contactid_c").next().next().next().append(phoneNumber); 
// fill textbox value 
$("#d_phoneNumber").val(phone); 
1

nur hinzufügen, dass auch die Plugin-Option und JavaScript-Option gibt es auch die Möglichkeit, eine Aufgabe, die Planung das Attribut zu berechnen und einzustellen. Ich habe diese Technik beispielsweise für ein Attribut "verstrichene Zeit" verwendet, bei dem das Attribut jeden Tag aktualisiert werden musste.

Die Aufgabe könnte ein benutzerdefinierter Dienst oder eine geplante Konsolenanwendung sein, die das SDK zum Aktualisieren der Daten oder einen Scribe-Job (oder einen ähnlichen Auftrag) verwendet.