Thursday, January 28, 2016

Language Setting in MS CRM

Now a days, so many applications providing the feature to view their application in user preferred language or region language. MS CRM also provide this feature. Below are the steps to follow to enable the languages.

MS CRM -> Settings -> Administration -> Languages

Upon click on languages, one screen(as shown below) will show you the supporting languages by MS CRM. By selecting one of the required language and applying, it will the selected language to user’s preference list.

Now, in terms of user, how he or she can change the language?

Below are the steps users to follow to change his language.

Settings (It is users settings as shown in below screen) - > Options (Click on options)-> Languages -> User Interface Language.

Upsert in MSCRM

If we want to update a record in any entity, we should require GUID. If we know the GUID, we can do it easily, if not, we should retrieve the GUID of that record first, then we can update the record. Here, two database calls (Retrieve and Update) we are making which impacts performance of an application.

In these scenarios, Upsert will be very useful. Upsert request will check in database whether record exists in database, if exists it will update the record or else it will create the record.

So, how do we know that whether Upsert create or update record in each call?

This information we can get from UpsertResponse which contains a Boolean property RecordCreated. If RecordCreated contains “true” it indicates Upsert created the record else updated the record.

Sample Code:

               Entity testEntity = new Entity("new_test");
                testEntity["new_test1"] = "test1";
                testEntity["new_test2"] = "test2";
                testEntity["new_test3"] = "test3";

                UpsertRequest request = new UpsertRequest()
                    Target = testEntity
                    UpsertResponse response = (UpsertResponse)_serviceProxy.Execute(request);
                catch (Exception ex)

Note: For Microsoft Dynamics CRM Online organizations, this feature is available only if your organization has updated to Dynamics CRM Online 2015 Update 1. This feature is not available for Dynamics CRM (on-premises).

You may like below posts

Improving MS CRM Performance

Performance Center in MS CRM 2013

date and time field behavior in MS CRM

Locking mechanism in MS CRM

Ticker Symbol Field in MS CRM

Themes in MS CRM

Enable Tracing in MS CRM

Calculated Field in Dynamics CRM 2015

IME Mode in MS CRM

Wednesday, January 27, 2016

Alternate Keys in MS CRM

In MS CRM, primary key place very important role in uniquely identifying the records in an entity. Alternatively, MS CRM introducing new concept called “Alternative Keys” to identify the records.

So, we will see more on how to create and use alternative keys.
In each entity customizations we have a link called Keys as shown below.

Alternative Key

On click on New button, below screen will appears.
We need to give alternative key name in Display name and have to select one or more attributes from available attributes.

Alternative Key - Attributes

You should be aware of the following constraints when creating alternative keys.

  • Only, Decimal number, Whole number or Single line of text can be an alternative key.
  • As key should be supported by platform, it will validate the key before it is creating. So the constraint is 900 bytes per key and 16 columns per key. If the key size doesn’t meet the constraint, an error message will be pop up while creating the key
  • There can be a maximum of 5 alternate key definitions for an entity in a CRM instance.

Wednesday, January 20, 2016

Workflow throws "Invalid Argument" on Set Properties in MS CRM

We may have a requirement of, on create of a particular record, we need to update another record... For these kind of requirements, we generally use out of the box workflows.

When we have created workflow, and click on "Set Properties", sometimes it will through "Invalid Argument" exception. This exception will not give any other information other than "Invalid Exception".

To get more information on exception we need to enable the tracing. To more on how to enable tracing click this link.

If you read the trace file carefully, you will find the reason of this issue as “Wrong type of attribute UI properties passed to the attribute "new_fieldname"”. So, we need to remove this field from form, Save and Publish then try to set properties. If there are no other fields which causing this issue, form will open or else you will get "Invalid Argument" exception again, so we need to iterate this process till we remove all issue causing fields.