Cust.-rule #1: New entity – Think about its properties first!

Always think about the two following things BEFORE you create a new entity!

1. Entity properties you can set ONLY BEFORE creating the entity
There are 2 options, which you can not change or activate after creating an entity. (Marked in purple color) The first one is the ownership, the second one is “Define as an activity entity” which means, the new entity should inherite from the actitiy entity and then can be used per example in the social pane area.

image

2. Entity options you can set but NOT remove after creating an entity
If you are creating a new entity from scratch, there are a few options (mostly marked with “†”) which you cannot undo after the entity is saved. (Marked in blue color) But you can still enable them once the entity is saved.

image

Remember: Less is more!
So, if you are not sure, weather you need one of this options (per example “Activities”) on your entity, just leave the checkbox blank! You still can enable this options after creating the entity!


Customizations rules – A new blog series

image_thumb13

This is the start of my new blog-series about CRM-customizations rules which are making your CRM-system more attractive and “cleaner”.

This series is perfect for CRM-newbies but also should give input to experienced CRM-system customizers.

Stay tuned, the first blog entry will be public very soon!


Cannot remove the field “Name” from the lead form?

Problem: On the lead entity we only want to have the customer field (account or contact) and remove the field “Name” (fullname).  If we try to remove the field from the form, we are getting an error:

image

The field itself is marked as optional:

image

So why can we not remove the field from the form?

Solution: The fullname is a composite field of two fields: “firstname” and “lastname”. If one field of a composite field is marked as required the hole composite field will be required on the form. (it doesn’t matter if the field is required or not.)

In our case it was the field “lastname” which was marked as required. After changing that to “optional”, we could successfully remove the field from the form.


Invalid parameter ‘regardingobjectidtype=account’ in Request.QueryString

Im CRM ist es möglich via URL ein Formular zum Erfassen eines neuen Datensatzes zu öffnen. Dabei können  meisten Felder eines Formulars direkt mit URL-Parameter gesetzt werden. Bsp. zum Setzen des Feldes “Name”:

/main.aspx?etn=account&extraqs=name%3DNew%20Account&pagetype=entityrecord

https://msdn.microsoft.com/en-us/library/gg334375.aspx

Es gibt jedoch Ausnahmen wie bsp. das Feld “RegardingObjectId” auf einer Aktivität-Entität. Dieses Feld kann (wahrscheinlich da es sich um ein ActivityParty handelt) nicht via URL gesetzt werden. Versucht man es trotzdem findet man im CRM-Server-Trace folgenden Fehler:

System.InvalidOperationException: CRM Parameter Filter - Invalid parameter 'regardingobjectidtype=account' in Request.QueryString

Ist das Setzen des Feldes jedoch trotzdem gewünscht, kann mit Form-Parametern gearbeitet werden. Hierzu sind drei Parameter notwendig:

image

Diese drei Parameter können in der URL dem Formular übergeben werden:

main.aspx?etn=phonecall&newWindow=true&pagetype=entityrecord&extraqs=is_regardingobjectid%3D%7B67D26E69-082B-4F30-B70D-EF202530CD41%7D%26is_regardingobjectidtype%3Daccount%26is_regardingobjectidname%3DCompanyname

Auf dem Formular kann nun mit Hilfe von JavaScript das Feld “RegardingObjectId” gesetzt werden:

function addToPartyListFromFormParameters(propertyName, idBaseName, replaceExisting) {
    var queryParams = Xrm.Page.context.getQueryStringParameters();
    var idParam = queryParams[idBaseName];
    var nameParam = queryParams[idBaseName + "name"];
    var typeParam = queryParams[idBaseName + "type"];

    if (idParam && nameParam && typeParam) {
        addToPartyList(propertyName,
            {
                Id: idParam,
                Name: nameParam,
                LogicalName: typeParam,
            }, replaceExisting
        );
        return true;
    }
    return false;
}

Ein möglicher Inhalt wie die Funktion “addToPartyList” aussehen könnte, kann hier gefunden werden:

https://rajeevpentyala.wordpress.com/2012/04/02/get-and-set-partylist-fields-using-jscript/


‘navBarData’ is undefined error

Problem

Nach der Migration von einer CRM 2011 Organisation auf 2016 (via 2013 und 2015) kann das Edit-Formular von verschiedenen Entitäten nicht mehr geöffnet werden resp. es bleibt eine weisse Seite und die Daten werden nicht geladen.

image

Lösung

Auf dem Form war die Anzeige der Navigationselemente ausgeschaltet:

image

Nachdem diese wieder eingeschalten worden war, konnte das Formular ohne Probleme geladen werden.


Fehlerhafte Grafikanzeige (v.a. Header) im CRM

Beim Öffnen des CRMs (CRM 2015 oder CRM 2016) kann die Benutzeroberfläche bei einigen Benutzern ab und zu wie folgt aussehen:image

Grafiken wie bsp. der Header werden nicht korrekt angezeigt. Besonders anfallen tut dies, wenn ein Theme mit Logo definiert worden ist und das Logo nicht geladen wird.

Schuld daran ist die persönliche Option “Hohen Kontrast aktivieren”. Dies kann wie folgt deaktiviert werden:image

Dann die Option deaktivieren:

image

Und schon sieht das CRM wieder wie gewohnt aus:

image