Neues Feld: Change of

Hallo,

wie kann ein Feld erstellt werden, in dieses immer automatisch das Datum eingetragen wird, an diesem ein anderes (bestimmtes) Feld geändert wurde?
Das Feld soll auf der Applikation sichtbar sein, allerdings nur "Read-Only". Das Attribut habe ich bereits erstellt, nun bin ich mir aber nicht sicher, wie ich das Datum dort eingetragen bekomme. Wenn ich es richtig sehe, muss ich hier mit Datenbank-Triggern arbeiten.
Kann mir jemand sagen, wie hier vorgegangen werden muss?

Viele Grüße
Daniela


AW: Neues Feld: Change of

Am einfachsten erstellt man ein Update-Workflow, der darauf reagiert, dass sich das gewünschte Feld ändert und dann das Datumsfeld mit dem aktuellen Datum füllt.
100% perfekt ist natürlich nur ein echtes CRM-PlugIn, jedoch nur durch einen Entwickler zu erstellen.


AW: Neues Feld: Change of

Was allerdings natürlich nur mit CRM 4.0 funktioniert...
In CRM 3.0 geht das per Workflow leider nicht sondern nur per Callout.


AW: Neues Feld: Change of

Hi,

ich verwende in einem ausführlicheren Script im Ereigniss des abzufragenden Feldes, dessen Inhalt geändert werden muss, damit das Datumsfeld sich aktualisiert unter anderem folgende Strings:

function getUserId()
{
try
{
var command = new RemoteCommand("SystemUser", "WhoAmI", "/MSCRMServices/");
var oResult = command.Execute();

if (oResult.Success)
{
return oResult.ReturnValue.UserId;
}
}
catch(e)
{
alert("Error while retrieving userid.");
}
return null;
}

function getUserRoles(userId)
{
try
{
var command = new RemoteCommand("UserManager", "GetUserRoles");
command.SetParameter("userIds", "<guid>" + userId + "</guid>");

var oResult = command.Execute();

if (oResult.Success)
{
return oResult.ReturnValue;
}
}
catch(e)
{
alert("Error while retrieving roles.");
}
return null;
}

function userHasRole(userId, roleName)
{
result = getUserRoles(userId);
if (result != null)
{
var oXml = new ActiveXObject("Microsoft.XMLDOM");
oXml.resolveExternals = false;
oXml.async = false;
oXml.loadXML(result);

roleNode = oXml.selectSingleNode("/roles/role[name='" + roleName + "']");
if (roleNode != null)
{
if (roleNode.selectSingleNode("roleid[@checked='true']") != null)
return true;
}
}

return false;
}

function currentUserHasRole(roleName)
{
userId = getUserId();
return userHasRole(userId, roleName);
}

//------------------------------------------------------------------------------------------------------


crmForm.all.new_Attributname_Von_Datumsfeld.DataValue = new Date();

Ich frage darin noch die Userrollen ab und mache diese zur Bedingung.
Das sieht dann so aus:

var oField = crmForm.all.new_Attributname;


if(currentUserHasRole(Schmidt))
{
oField.DataValue = "Schmidt"
crmForm.all.new_verschwiegenheitversandtdatum.DataValue = new Date();
}

Vielleicht klappt es aber auch ohne dieser Abfrage?
Ich weiß auch nicht, ob das die beste Lösung ist. Habe noch nichts besseres gefunden - leider.

Gruß
Gisa (gwi)