Inogic is a hub of like minded professionals who believe in innovativeness and are committed to putting our time and efforts to R & D on Dynamics CRM.We endeavor to share some of our work on this blog by introducing Tips, Tricks and products from our labs.
Thursday, May 28, 2009
How to login in console mode through Remote Desktop
Monday, May 18, 2009
Form assistant
In CRM 4.0, we have now been given the option to decide the Form Assistant settings for each entity. You are most likely to miss it and I have seen many queries on this.
To alter the Form assistant settings, follow the steps below:
1) Go to Settings => Customizations => Customize the entity in our case it is Product
2) Open product entity and go to Forms and views. Select the Form
3) Here, go to Form Properties => Display tab
Now, if both these checkboxes are checked you can see the form assistant open by default.
If, you uncheck the “Expanded by Default” checkbox, then the form assistant will be there but will not be open up by default as shown in the screen below:
Whereas, if you uncheck both the checkboxes i.e. “Expanded by Default” and “Enable form assistant”, then the form assistant will not be visible at all as shown in the screen below:
It is important to publish the entity after any customization change is made to it.
Tuesday, May 12, 2009
Bulk Delete Operations for Dynamics CRM 4 On-Premise
It is often that have you come across when you wanted to delete records from CRM in bulk.
The only option you have to delete multiple records in CRM is by selecting all records available in one page of a view and then hit delete. A view can have at max 250 records displayed. So if you need to delete more than that you have no choice but to navigate through each page and delete the records.
Since we do a lot of conversion projects we need to delete previously imported records before running the conversion. And this was too much of a task...
We started working on developing our own little project that will do the job. CRM has made available the BulkDeleteRequest Message in CRM SDK that allows us to delete more than one entity records at a time.
The BulkDelete Message will create an asynchronous job that can be monitored through the System Jobs Menu option.
You can provide the record selection criteria by specifying the query that needs to be executed to get the records over which the action needs to be performed.
If you want this to a recurring job to be executed say every x days, you can set the RecurrencePatern of the BulkDeleteRequest Message.
Since the bulk delete operation can be run on any entity and it requires a query to be provided, we thought of generalizing this. We developed a small tool that allows the users to specify the parameters for the Bulk Delete Job in user friendly interface. These jobs can be monitored in the system jobs window.
Anyone who would like to get this tool without having to re-invent the wheel can check details at http://www.inogic.com/addons_bulk_delete.htm
Monday, May 11, 2009
Error "Sub reports within table/matrix cells are ignored" when exporting SRS Reports to Excel
Hope this helps!
Thursday, May 7, 2009
Retrieve Marketing List Members
Hence to retrieve the list members for a given entity we need to identify the type of entity being supported by the list i.e Leads/Accounts/Contacts and then using the link entity functionality link it with the listmember entity to get the list.
Following is the snippet of getting collection of accounts from a particular marketing list id.
//initialize QueryExpression for adding link entities
QueryExpression qe = new QueryExpression();
qe.EntityName = EntityName.account.ToString();
//Initialize columnset
ColumnSet col = new ColumnSet();
//add columns to columnset for the acc to retrieve each acc from the acc list
col.AddColumns(new string[] { "accountid", "name", "address1_line1", "address1_line2", "address1_city", "address1_stateorprovince", "address1_postalcode"});
qe.ColumnSet = col;
// link from account to listmember
LinkEntity le = new LinkEntity();
le.LinkFromEntityName = EntityName.account.ToString();
le.LinkFromAttributeName = "accountid";
le.LinkToEntityName = EntityName.listmember.ToString();
le.LinkToAttributeName = "entityid";
//link from listmember to list
LinkEntity le2 = new LinkEntity();
le2.LinkFromEntityName = EntityName.listmember.ToString();
le2.LinkFromAttributeName = "listid";
le2.LinkToEntityName = EntityName.list.ToString();
le2.LinkToAttributeName = "listid";
// add condition for listid
ConditionExpression ce = new ConditionExpression();
ce.AttributeName = "listid";
ce.Operator = ConditionOperator.Equal;
ce.Values = new object[] { strList };//here “strList” is the marketing list id provided to this function.
//add condition to linkentity
le2.LinkCriteria = new FilterExpression();
le2.LinkCriteria.Conditions.Add(ce);
//add linkentity2 to linkentity
le.LinkEntities.Add(le2);
//add linkentities to Query Expression which is passed for getting collection of accounts
qe.LinkEntities.Add(le);
//above query expression is passed to retrieve multiple for getting BusinessEntityCollection of accounts.
BusinessEntityCollection bec = service.RetrieveMultiple(qe);
Similarly you could link with Contacts/Leads to get the list of members from a Contact/Lead Marketing list.
Monday, May 4, 2009
Freeze header and the first column of the GridView control
style="height:500px; width:100%; overflow:auto;"
In gridview header provide class name from stylesheet i.e. Freezing
The above line will freeze the header row
/* Locks the left column */
/* Locks the header */