Quantcast
Channel: Sam's Activities
Viewing all 3363 articles
Browse latest View live

Replicate Right Click behavior of Dynamics CRM Grid on Custom Grids

$
0
0

In Microsoft dynamics CRM, we have grids for each and every entity. And whenever we right-click on the grid, we get a contextual menu as shown in below screenshot.grid

Below is the list of menus that we get:

  • Open
  • Open In a new window
  • Copy a Link
  • Email a Link
  • Print
  • Refresh List

When we click on above options, we get the functionality as explained below.

Open: When we click on open in Dynamics CRM, a record gets open in same window

Open In a new window: When we click on this option, record gets open in new window

Email a Link: When we click on Email a Link option, it gets open in the default email application which contains the record URL.

Copy a Link: When we click on this option, it copies the record URL. Note: This only works in IE.

Print: On click of Print option, below page (with the all values pre-populated) will open grid1

Refresh List: This option refreshes the grid data.

CRM is not restricted to only OOB Grids; we have the flexibility to add customs grids as well.

We can add custom grids using Jquery, kendo, knockout grid etc.

There may be a case, where you need to mimic the right click functionality (Contextual menu) as the OOB grids have.

In this blog, we will discuss how to implement right click functionality same as in CRM on customs grids.

Consider a scenario, where you have a custom grid for a custom entity say “Project”.

Now, you need to imitate the contextual menu as we have for OOB grids.

So in order to have these menus, we have to use contextual menu (For this demo we have used kendo UI context menu).

After adding options like Open, Open in New Window etc. in the context menu, we have to add custom logic in order to make it behave the way as we have for OOB grids.

Below is the implementation of most commonly used menus, similarly you can have other custom menus as well.

Open : This option is used to open the record in the same window.

In order to open the record in the same window, we will be using OOB functionality i.e. openEntityForm as shown below.

Xrm.Utility.openEntityForm(name, id)

name: Name of the entity of the selected record in the grid.

id: GUID of the selected record in the grid that we want to open in the same window.

Open In a new window: This option is used to open the record in the new window.

In order to open the record in the new window, CRM 2015 SP1 has introduced the new parameter in the openEntityForm. For more details, you can view our previously posted blog.

var options = {

openInNewWindow : true

};

Xrm.Utility.openEntityForm(name, id, null, options)

name: Name of the entity of the selected record in the grid.

id: GUID of the selected record that we want to open in new window.

Email a Link: This option basically opens the record URL in the default mail application.

In order to achieve this, we have to follow the below mentioned steps.

Here first we will create the record URL that we need to send through email.

var recordURL = Xrm.Page.context.getClientUrl() + “/main.aspx?etc=10001&id=” + id + “&pagetype=entityrecord”

etc: Specify unique entity type code of the selected record in the grid.

id: GUID of the selected record in the grid.

The next step is to add the record URL in email body.

window.location.href = “mailto:?body=” + recordURL;

Copy a Link: This option copies the record URL on the clipboard.

We can achieve this using below piece of code.

var recordURL = Xrm.Page.context.getClientUrl() + “/main.aspx?etc=10001&id=” + id + “&pagetype=entityrecord”

etc: Specify unique entity type code of the selected record in the grid.

If(window && window.clipboardData)

{

window.clipboardData.setData(“Text”, recordURL);

}

Note: This will only work in IE.

Print: This option is intended to print the record.

For printing the record, we are using the OOB functionality. On click of this option we will open the same page that gets open in CRM when we click Print in CRM.

var url = Xrm.Page.context.getClientUrl() +”/_forms/print/print.aspx?id=” + id + “&objectType=10001&subType=10001″

window.open(url);

id: GUID of the selected record in the grid.

objectType: Specify unique entity type code of the selected record in the grid.

subType: Specify unique entity type code of the selected record in the grid.

Refresh List: This option is to refresh the data in the grid.

Call the same function that you have used to bind the data to the grid on click of this option.

Hope it helps!

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Replicate Right Click behavior of Dynamics CRM Grid on Custom Grids appeared first on Inogic Blog.


New Localizable Attributes in Dynamics CRM 2015

$
0
0

As we all know if we want to change the CRM label text as per the user language preference we can use the Export/Import translation process. But when we want to change the Attribute value as per the user language preference, it is not possible because entered value cannot be changed if user changes the language preference; it will show same value in any language setting. So, in CRM2015 Microsoft made available some localizable attributes for changing entered attribute value if user changes language preference but this feature is only applicable for below mentioned attributes in the Product Catalog:

  • Product Name (Product Entity)
  • Property Name (Property Entity)
  • PropertyOptionSet Name (Property OptionSet Item Entity)

Consider a Scenario, there are two users with different language in CRM, if we wanted to show the same product to these users with different product name means their own language preference as per the users language settings, we can easily do it in CRM2015 with the below following steps:

To achieve this mentioned functionality we can easily use this newly introduced feature in CRM2015 i.e. Import/Export Translation Process.

In this example, I have created a Car product.

After following this below steps Car Product name will be changed if user changes language setting.

As you can see below Product name is “Car” when user logged with English language setting.localize

Step 1:

  1. In the Navigation Pane, click Settings
  2. Under Settings, click Data Management
  3. In the Data Management area, click Export Field Translations
  4. Click OK.localize1
  5. Exporting Localizable fields for translation can take several minutes. When Microsoft Dynamics CRM finishes exporting the customized text, Microsoft Internet Explorer prompts you to open or save the exported Text.localize2
  6. Click Save, specify a file name, and specify a location on your local computer or network where you want to save the compressed (.zip) file.
    You can extract the compressed file and then open the XML (A type of file that provides a way to structure data to share between applications. XML files typically have the .xml extension.) file that contains the customized text and translate it, or you can send the compressed file to a translator.

Step 2:

After downloading Compressed (.zip) file extract the files. In this we will find two xml files i.e. [Content types] and CrmFieldTranslations.

Open the CrmFieldTranslations.xml file.

In this xml file we can see the 1033(English LCID) and 1036(French LCID) columns which shows the product name for languages enabled in the CRM here we are getting only two language columns because in this CRM I have enabled  two languages i.e. “English” and “French”. Now we can edit the product name as per the user language preference. In this example, I have given Product name “Car” for Englishlanguage user and “voiture” for French language user.localize3

Warning:

Microsoft Dynamics CRM cannot import translated text that is over 500 characters long. If any of the items in your translation file are longer than 500 characters, the import process will fail. If the import process fails, review the line in the file that caused the failure, reduce the number of characters, and try to import again.

Step 3:

After modifying the XML file we have to import file by compressing files with [Content types] andCrmFieldTranslations xml files.

Below steps shows how to import:

  1. In the Navigation Pane, click Settings
  2. Under Settings, click Data Management
  3. In the Data Management area, click Import Field Translationslocalize4

Click on the Import Field Translations Button:localize5

After clicking on Import Field Translations button select edited CrmFieldTranslations.zip then CRM will start importing.

After successfully import we can see the Product Name “Car” for English language user and “voiture”for the French language.

As you can see below Product name when user with French language setting.localize6

Hope this helps!

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post New Localizable Attributes in Dynamics CRM 2015 appeared first on Inogic Blog.

1 click is all it takes to Export reports from Dynamics CRM

$
0
0

How many clicks it takes you to export reports?
Imagine you have a meeting tomorrow and you want to present reports from Microsoft Dynamics CRM. It’s not difficult to get reports from Dynamics CRM. The difficulty faced by most of the users is in exporting the report in required format. User spends more time on exporting reports to required format. The reason is number of steps involved in the process. Further if report needs to be attached and emailed to someone then you need more time.

What is this 1 Click – Click2Export by Inogic?
So to speed up this process, Inogic has developed a tool called Click2Export, which allows you to export all Microsoft Dynamics CRM reports in just a single click.

With Click2Export you can export any Microsoft Dynamic CRM report in the system with single click and attach it to an email or note or just download it without much effort.

It is an easy to install add-on with user friendly User Interface. In a one click UI, you can export any report and decide the actions that should take place after exporting it i.e. you can attach it as an email attachment or note attachment in respective CRM record and may more.click2export

Some Key Features:

  1. You can export the reports to format of your choice – PDF or Excel or Word file.
  2. It can be attached as an email attachment to send out with email, or Note attachment in respective CRM record or both or you can also just download that exported report file
  3. Multiple templates can be created for a single report with different names
  4. Report parameter values are customizable, even during run time so the exported report executes on those parameters
  5. Individual or organizational report, both can be exported and attached in a single click
  6. Multiple reports can be converted into templates simultaneously
  7. Reports can be exported for multiple records simultaneously
  8. It also has the ability to decide if combined report for all selected records is to be exported or one report per selected record.

Ready to Deploy: Click2Export is available for Microsoft Dynamics CRM 2011 and above. It supports all CRM deployment model namely on-premise, on-line, office 365 and partner-hosted.

Try Today: Email us on crm@inogic.com for a trial or if you would like to see a live demo.

Theme your Dynamics CRM 2015 to Custom Solution

$
0
0

Introduction

We all are familiar about themes; as we used to set themes for our mobile. Now we can set themes to our CRM and make it more colorful. We all know about how to set theme to CRM manually. So now we will see how to set theme programmatically to our web resource.

If you want to set your custom theme then create your theme in CRM and set it as default theme, for that we have to go to the Settings –> Customization –> Themestheme

Then create new theme records and now you can set your favorite colors to your CRM or else you can use CRM OOB theme. Let’s take one custom theme and see how to set that custom theme to our web resource programmatically.theme1

For that we have created one web resource and set the CRM color to that HTML page Dynamically.

Here is how we do it

HTML Page

We have created HTML form and we will add this web resource in our CRM and set the CRM default theme to our web resource.

<body>

<div id=”dvDetails”>

<div id=”dvEducation”>

<b><span>Fill Your Details</span><br /> </b>

</div>

<table>

<tr><td><b><label id=”lblPersonalDetails”>Personal Details</label></b></td></tr>

<tr><td><label id=”Name”>Name:</label></td>

<td><input type=”text” id=”txtName” /></td></tr>

<tr><td><label id=”Email”>Email:</label></td>

<td><input type=”text” id=”txtEmail” /></td></tr>

<tr><td><label id=”Phone”>Phone:</label></td>

<td><input type=”text” id=”txtPhone” /></td></tr>

<tr><td><b><label id=”lblEducational”>Educational Details</label></b></td></tr>

<tr><td><label id=”lblEducation”>Education:</label></td>

<td><input type=”text” id=”txtEducation” /></td></tr>

<tr><td><label id=”lblPercentage”>Percentage:</label></td>

<td><input type=”text” id=”txtPercentage” /></td></tr>

<tr><td><label id=”lblYearofPassing”>Passing Year:</label></td>

<td><input type=”text” id=”txtPassingYear” /></td></tr>

</table>

<div style=”padding-right: 2px; padding-top: 10px”>

<button id=”btnCancel”>

Cancel</button>

&nbsp;

<button id=”btnSave”>

Save</button>

</div>

</div>

</body>

Following is the code we need to add on load of our HTML page. In this code we have to first retrieve CRM default theme, so we will get the Hex color codes of theme. Now we can set those colors in our web resource.

Javascript Code: 

$(document).ready(function () {

var naviBarcolor = “”;

var navbarshelfcolor = “”;

var themeRetrieve = “<fetch version=’1.0′ output-format=’xml-platform’ mapping=’logical’ distinct=’false’>” +

“<entity name=’theme’>” +

“<attribute name=’themeid’ />” +

“<attribute name=’name’ />” +

“<attribute name=’type’ />” +

“<attribute name=’isdefaulttheme’ />” +

“<attribute name=’selectedlinkeffect’ />” +

“<attribute name=’processcontrolcolor’ />” +

“<attribute name=’navbarshelfcolor’ />” +

“<attribute name=’navbarbackgroundcolor’ />” +

“<attribute name=’logotooltip’ />” +

“<attribute name=’logoid’ />” +

“<attribute name=’hoverlinkeffect’ />” +

“<attribute name=’headercolor’ />” +

“<attribute name=’globallinkcolor’ />” +

“<attribute name=’defaultentitycolor’ />” +

“<attribute name=’defaultcustomentitycolor’ />” +

“<order attribute=’name’ descending=’false’ />” +

“<filter type=’and’>” +

“<condition attribute=’isdefaulttheme’ operator=’eq’ value=’1′ />” +

“</filter>” +

“</entity>” +

“</fetch>”;

//fetch default theme

var defaultTheme = XrmServiceToolkit.Soap.Fetch(themeRetrieve);

if (defaultTheme != null && defaultTheme.length > 0) {

for (var i = 0; i < defaultTheme.length; i++) {

//get the navigation background color

naviBarcolor = defaultTheme[i].attributes["navbarbackgroundcolor"].value;

//get the navigation shelf color

navbarshelfcolor = defaultTheme[i].attributes["navbarshelfcolor"].value;

}

}

//set background color to div

$(“#dvEducation”).css(“background-color”, naviBarcolor);

$(“#dvEducation”).css(“color”, “white”);

//set background color to cancel button

$(“#btnCancel”).css(“background-color”, naviBarcolor);

$(“#btnCancel”).css(“color”, “white”);

//set background color to save button

$(“#btnSave”).css(“background-color”, naviBarcolor);

$(“#btnSave”).css(“color”, “white”);

$(“#dvDetails”).css(“background-color”, navbarshelfcolor);

});

from above code we can set CRM default theme to our web resource. This is how you can set other css to your web resource.

Result:

theme2

Limitations:

We can use themes dynamically only in Microsoft dynamic CRM 2015 Update 1.

Conclusion:

This is how we can apply CRM theme to our custom web resource and use CRM theme Dynamically.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Dynamics CRM 2015 Online Update 1 – API support for Transaction appeared first on Inogic Blog.

Apply Custom Filter on Lookup Field in Dynamics CRM using Script

$
0
0

Introduction

In this blog we are going to see how to apply custom filter to the lookup field using the JavaScript functions.

In Microsoft Dynamics CRM we can filter a lookup field on form using the Fetch XML condition and “addPreSearch()“ method.

Example

On the Contact Entity there is a lookup field named “Account Name” and a text field “Address1: City” as shown in below screenshot.custom_filter

So, Here If we want to filter Account records in lookup view by city having value equal to field Address1: City. We can do this by writing the below code in Jscript.

Here we have written two functions “filterLookup()” and “addCustomeLookupFilter()”  as shown in the below code snippets.

 custom_filter1

We have created CRM webresource for the javascript and called “filterLookup” function on change event for field “Address1: City” field as below for contact entity form.custom_filter2

Function “filterLookup” will be trigger on change of field “Address1: City”. This binds “addPreSearch” event to lookup control “parentcustomerid”.custom_filter3

Open the contact entity record, Before entering the “Address1:City” field value the lookup field shows all the account records as below screenshot.custom_filter4

Enter the value for “Address1: City” here it is “US” as below.custom_filter5

Then Check for the suggested options for the Account lookup. Only those accounts records will be available to select which having city “US”.

Hope this helps!

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Apply Custom Filter on Lookup Field in Dynamics CRM using Script appeared first on Inogic Blog.

Evaluate Dynamics CRM and Bing Maps Integration without installation

$
0
0

This is Part 3 of our Maplytics solution series which allows you to plan your business in a better way using Maps on Dynamics CRM on-prem or online. In Part 1, we saw replies to some of the common FAQ’s. Where as in Part 2, we saw how Maplytics helps you analyze your business in a better way. After these 2 series we received inquiries from many of our readers asking for a offline as well as online trial. So this post is for you to evaluate Maplytics.

Please don’t miss the end of this post.

Evaluate Maplytics without installation: You can now evaluate Maplytics in our demo environment, details of which are as follows:

(Please watch Maplytics explainer video or download user guide/presentation from our Product page before you start).

URL : https://inogicipdemo.crm.dynamics.com/main.aspx#495052702
UserName: sam@inogicipdemo.onmicrosoft.com
password: pass@word1

Note: Feel free to add demo data to this organization | Demo URL will be valid for 1 month

maplytics

Wish to have a Trial? 
Maplytics supports all CRM deployment models namely On-Premise, CRM Online and Partner-Hosted. It supports Dynamics CRM 2011 and above. For a trial just send the following information to crm@inogic.com.

* Dynamics CRM Deployment Type :-
On-Premise, On-Premise configured for IFD, CRM Online, Partner-Hosted

* Dynamics CRM Version and Update/Rollup version :-
CRM 2011, CRM 2013, CRM 2013 SP1, CRM 2015, CRM Online with Update 1

* Dynamics CRM URL :-
The URL you type to access Dynamics CRM through a web browser

* Unique Organization Name :-
The unique organization name can be read by navigating to Settings -> Customizations -> Developer Resources.

* Dynamics CRM Server Name :-
If you have a CRM On-Premise Deployment we would like you to provide the CRM Server name

Special Promotion for our Blog Readers: Maplytics is available on a per user per month basis pricing. Contact us for Volume discounting. Bing Maps licenses needed to use the Bing Maps API services is available along with Maplytics licenses and need not be purchased separately.

We have a special promotion “Freedom Package” (3 Months free deployment) for our Blog Readers. Hurry up…offer is valid upto 15-October-2015 only for all new installations. Don’t forget to mention you read about this “Freedom Package” offer on our blog.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Evaluate Dynamics CRM and Bing Maps Integration without installation appeared first on Inogic Blog.

Build a Marketing List through Proximity Search in Dynamics CRM using Maplytics

$
0
0

Marketing campaigns are often targeted towards contacts or leads that are within a certain radius from the target location. To give an example you have been asked to distribute coupon codes to your contacts for a new store that you are opening closer to their location.

Using OOB Advanced Find tool of Dynamics CRM, you can search for records in city or zip code but not really do a geographic search where you look for records that are within a given radius of the target location.

Maplytics has been designed to assist marketers to build their marketing list by offering them a tool that would perform the geographic search that they were so looking for, from right within their CRM application.

Let us walkthrough the steps to perform a proximity search and build a marketing list from its results.

1. Bring up Maplytics Search tool, using the Detail Map button available in the ribbon.Maplytics

2.  In the Detail Map screen, provide the current (target) location and the radius. Select the View within which you would like the search to be performed. This will help to narrow down the search context.Maplytics1

3. Upon clicking search you would see all the contact within the specified radius of the current location.Maplytics2

4. On the right, you would see all the search results listed in a grid.Maplytics3

5. Here using the Save as a view button, you can save the results as an Advanced Find View, that you can later use anywhere within CRM.  

            Maplytics4

6. Now that you have this view available, you can add this to the desired Marketing List.Maplytics5

7. Open the Marketing List where you need to add these as members. In the Manage members, choose the “Add using Advanced Find” option.Maplytics6

8. Choose “Add all the members…” from the next screenMaplytics7

Add voila, you have your Marketing List ready with members selected based on Geographic search.

Maplytics8

Hope this Helps!

Now evaluate Dynamics CRM & Bing Maps integration without installation. For more details get in touch on crm@inogic.com.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Build a Marketing List through Proximity Search in Dynamics CRM using Maplytics appeared first on Inogic Blog.

Dynamics CRM 2015 – Top 5 Developers Delights

$
0
0

Microsoft Dynamics CRM 2015 Update 1 has come up with lots of new and exciting features. No doubt these features have been applauded by end users. From a developer point of view too this release has been a great blockbuster. Let’s see a quick recap of top 5 developer delights of Dynamics CRM 2015 Update 1. If you have any more please do add them in comments.

developers Delight

1. Handling Date/Time fields in Microsoft Dynamics CRM 2015 Online Update 1 : Managing Date/Time fields in Dynamics CRM has not been easy especially when time zone come into picture. Microsoft has introduced new feature called “Behavior” for date/time fields in Dynamic CRM 2015 Update 1, with this we are able to set Date/Time field with different time behaviors. This blog explains more about this feature.

2. Dynamics CRM 2015 Online Update 1 – API support for Transaction : As a developer, you always want to perform any database operation in a Transaction so that you have the choice of rollback in case an operation fails. Unfortunately, until this update, Dynamics CRM did not support transaction for actions performed through the API by the developers. This blog explains about theExecuteTransactionRequest which was introduced in Dynamics CRM 2015 Online Update 1. It ensures that all of the messages submitted to it are executed in Transaction mode.

3. Create or Update through a single request – Upsert in Dynamics CRM 2015 Update 1 The logic to identify whether a record has to be created or updated was always something the developers had to handle themselves.With the API enhancements introduced in Dynamics CRM 2015 Update 1, we have now been provided with a new Request “UPSERT” which solves this problem. This blog talks about this new request called “UPSERT”.

4. Plug-in Tracing in Dynamics CRM 2015 Update 1 : Before CRM 2015 SP1 update, developers had to manually throw an exception in order to trace the program. Now in CRM 2015 SP1 update, we have a new Entity called “Plug-in Trace Logs”. This blog talks about this new Entity which itself creates record for any exception occurred or thrown by the developer.

5. More ways to search a record in Dynamics CRM 2015 Update 1 – Alternate Keys : Prior to Microsoft Dynamic CRM 2015 Update 1 the only way to identify the records in CRM was the record guid. With the introduction of Alternate Key in Dynamics CRM 2015, Developers can uniquely indentify record in Dynamics CRM without using Guid. Read more about Alternate Keys in this blog.

These are few top features which have been liked by our developers. We will be posting regularly on this and other topics for our Dynamics CRM developer friends. Please do keep sharing our posts and following Inogic Blog.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Dynamics CRM 2015 – Top 5 Developers Delights appeared first on Inogic Blog.


Set Address using Lookup Address for locked Address fields in Dynamics CRM

$
0
0

Recently, we had a request, the request is like this, Bill-To address and Ship-To address on the Quote would be locked fields.

This means, one way of setting the Bill-To and Ship-To is by using Lookup Address button.

So, initially we thought it would be a Cakewalk.

We wrote a script and called it on load to lock the Ship-To and Bill-To fields.

Since, we wanted to show the fly-out, we didn`t lock the Main composite field and we locked the involved fields only.

Now, as the fields were read-only, Lookup Address button did set the addresses, but it failed to save the value.

In order to overcome this, we wrote another script on load of the form, to set the SetSubmitMode for all the address fields to always.

Script:

function setSubmitModeAlways() {

var functionName = “setSubmitModeAlways”;

var fields = new Array();

try {

fields = ["shipto_line1", "shipto_line2", "shipto_line3", "shipto_postalcode", "shipto_stateorprovince", "shipto_city", "shipto_country", "billto_line1", "billto_line2", "billto_line3", "billto_postalcode", "billto_stateorprovince", "billto_city", "billto_country"];

$.each(fields, function (index, item) {

if (Xrm.Page.getAttribute(item)) {

Xrm.Page.getAttribute(item).setSubmitMode(“always”);

}

});

} catch (e) {

throwError(e, functionName);

}

}

We thought this should be enough and it did feel initially, that we are through.

But, later in testing phase, we came across an issue, the issue is as below.

After creating a Quote, we used the Lookup Address button to get the addresses and it worked like a charm.

The data is stored as below and the field on the fly-out is read-only.address_field1

Now, we changed both the addresses using the Lookup Address button.

On save, the addresses, got saved, but the composite fields still showed old address.address_field2

After few hours of scratching our head, we thought of changing our approach.

We came up with the plan of skipping setSubmitModeAlways function and using another approach.

Our new approach, made the fields read-only and it didn`t involve using the SetSubmitMode either.

We removed the onload SetSubmitModeAlways.

The last part of this approach was calling the setFieldReadOnly function on save as well.

setFieldReadOnly is a function wrote by us to disable address fields.

//Function called onSave of the form

function onSave_Form() {

var functionName = “onSave_Form”;

try {

//Enabled fields

setFieldReadOnly(false);

//Call the Timeout function

setTimeout(function () {

//Disabled fields

setFieldReadOnly(true);

}, 2000);

} catch (e) {

throwError(e, functionName);

}

}

You would be confused, why did we enabled the fields and then disabled them again.

We enabled all the address fields, because, by making a field editable it is saved without using the SetSubmitMode.

We disabled it after 2 seconds of save using SetTimeout function because we wanted the fields read-only and we didn`t want it to be read-only before save, otherwise it would have incurred the same issue that we tackled using the above approach.

Note:

This issue seems to be fixed in CRM 2015 update 1, but this is very much there in CRM 2013 through CRM 2015.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Set Address using Lookup Address for locked Address fields in Dynamics CRM appeared first on Inogic Blog.

 

Price List selection logic available starting Dynamics CRM 2015 Update 1

$
0
0

Introduction

Traditionally Price List in any of the transactions like Opportunities, Quote, Orders or Invoices was set by reading it from Customer. If there was no price list set for the customer, it would be left blank and the user would be required to set it manually. Price List is critical and needs to be set since the line items on these transactions depend on the Price List selected. You are only able to add Products that have prices defined in the selected price list.

With the new release Microsoft has shipped in automation to process of setting Price List on these.

Price List Based on Territory

Another way to associate Price List that has been introduced in Update 1. In this Price List needs to be associated with Territory and User is associated with a Territory. The Price List would be set based on the logged in user’s territory if there is no default Price List set for the customer.

By default this feature is activated in all new CRM Online trials. You can check the settings in Settings windows.price listNext step is to associate Territories with Price List through Territory grid available in Price List (which is essentially connections re-purposed). You now find an OOB Connection role Territory Default Price List. Make sure to create the connection from within the Price List.price list1

Associate this territory with the User.

Now when a new Opportunity is created, and the customer does not have a default Price List set, it would be read from the Territory Default Price List connection.price list2

Note: If more than one price list is associated with a territory, then the price list is not populated. This should be enhanced to allow associating multiple pricelists with a territory for with a unique pricelist for each currency.

The region NA may need to serve customers in America as well as Canada and create opportunities in both these currencies. Depending on the currency of the customer, the Price List should be set from the territory.

If you have only one currency price list associated with a Territory and you try to create an opportunity for a customer in another currency you receive the following errorprice list3

Price List Based on Custom Logic

Another way to get the Price List for an Opportunity is through custom plugin. We now have a new message “GetDefaultPriceLevel” available on which Plugin can be registered.

Here is a snippet of how the pricelevel can be passed through the plugin

public void Execute(IServiceProvider serviceProvider)

{

try

{

IPluginExecutionContext pluginExecutionContext = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

IOrganizationServiceFactory organizationServiceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));

//get the collection of price list based on your business requirement

EntityCollection priceListcoll = GetPriceList(organizationService);

//pass the price list collection to the output parameter

pluginExecutionContext.OutputParameters["BusinessEntityCollection"] = coll;

}

catch (FaultException<OrganizationServiceFault> ex)

{

throw new InvalidPluginExecutionException(“Execute: ” + ex.Message);

}

}

Register this plugin on GetDefaultPriceLevel. This will override the Price List selection on Opportunity, Quote, Order and Invoice as well.price list4

Note: Make sure to return only a single Price List in the collection in output parameter. If you return more than one, the Price List will not be set.

Conclusion:

Similar to the enhancement where the Pricing logic could be overridden using theCalculatePriceRequest Message, we now have the ability to select the Price List based on which the Pricing can be calculated.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Price List selection logic available starting Dynamics CRM 2015 Update 1 appeared first on Inogic Blog.

Look Beyond “CRM” in your Dynamics CRM with QuickBooks Integration

$
0
0

CRM is not just about Customer Management anymore it’s now a business management solution integrating all areas of your business. Its no longer on desktop alone it needs anywhere access, any device access, it needs data from all areas at one place.

Today we will look beyond CRM, we will visit your accountants’ desk using QuickBooks through your CRM and have your clients accounting information on our Dynamics CRM screens so the next time you are with your customer you know his history well and get his next order processed quickly.

Inolink, flagship product by Inogic integrates Dynamics CRM with QuickBooks, the best of both worlds. This is Part 1 of our series where we will have an overview how it helps you to look beyond CRM in your Dynamics CRM and some of your common FAQ’s.inolink

Why Inolink?
When we started developing this integration we had your business in mind who needs to take quick decisions, grow revenues and offer a superior customer service.

Bi-directional flow of data – You need to know everything about your customer wherever you are. At the same time ensure the information you have collected is immediately on back to your accounts team. Imagine those crazy sales tax calculation while making a quote/order or invoice from CRM, its handled well so you just need to rock and roll.

Web Order Entry – You need to be where the customer is, well informed, quick and ensure his order is in process before you leave his office. It all works from within your standard Dynamics CRM screens and accessible as per your deployment method.

Dashboards – Decisions can’t wait for reports to be built or printed its all there on your dashboard in CRM, need to see your top customer, the payments its all there.

Security – Every customer is important and so his data. Control the way you want the CRM user to access your customers accounting data with Inolink.

Product Page – http://inogic.com/Product/77/Integrations/InoLink

Detailed feature listing – http://www.inogic.com/Assets/WhitePaper/White Paper – InoLink.pdf

What versions of Dynamcis CRM does it support?

Inolink supports all CRM deployment models namely on-premise, on-line and partner-hosted. It supports Dynamics CRM 2011 and above.

What versions of Quickbooks does it support?

Inolink supports all Intuit QuickBooks versions 2010 and above. Pro and Enterprise both.

Can I create custom mapping in Inolink?

Yes, Inolink is flexible solution and it supports custom mappings.

Pricing?
InoLink is available on a per user per month basis pricing. Special offers and volume discounting is available. Email us on crm@inogic.com.

Can I grab a Trial?

Ofcoz, opt in for our 15 days fully functional trial. Email us on crm@inogic.com with your CRM version and deployment (on-prem or online) model.

Lets embark on the journey.. Know More, Sell More, Grow More.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Look Beyond “CRM” in your Dynamics CRM with QuickBooks Integration appeared first on Inogic Blog.

Exporting Data from Dynamics CRM using SSIS

$
0
0

Introduction:

We have often had sync requests projects where we need to write data from CRM to flat files. Our option until now had been to either

  1. Develop a Windows service, that polls at regular intervals to writes the file
  2. Develop a Windows app and using the windows task scheduler to schedule to run at regular intervals or specified times.

After exploring SSIS platform, it opens up another option in this direction. We can create SSIS packages, and configure it to run at regular intervals using SQL Jobs.

Here we plan to provide a walkthrough to help other start off with CRM integration using SSIS.

Walkthrough:

Open Visual Studio -> Go to -> File Menu -> New -> ProjectSSIS

Select Integration Service Project from Business Intelligence tab (Note: You get this tab only when you have BIDS installed) and give a proper name to your project and click Ok.

SSIS project solution will get created with a Package file added. Open the package file and add Data Flow Task from SSIS tools to Control Flow as shown below. Give the Data Flow Task a proper name.SSIS1

Double click on Data Flow Task (Renamed as Export CRM Data to File) and add Script Component and Flat File Destination components as shown below:SSIS2

When you drag drop Script Component to Data Flow you will get following popup. Choose “Source” fromthe options as follows:

SSIS3

Next to connect to CRM (here we are taking online CRM) we will need to provide connection credentials. For this we will create package level parameters and later pass them as parameters to our Script component. Right click anywhere on Control Flow tab and select variables as shown below:SSIS4

Next create the following variables which will be required for connection:SSIS5

Here you can find that we have defined all the credentials that are necessary for connecting to CRM.

Now comes the major part wherein you will be accessing CRM using CRM SDK dlls. Right click on script component and click Edit as shown below.SSIS6

A Script Transformation Editor will open as follows:SSIS7

For demo purpose we will read two fields (Account Name and Telephone) from Account Entity records and write it to flat file. As shown above Go to -> Inputs and Outputs tab -> add two columns to the Output Columns viz. “AccountName” and “AccountTelephone” as String data types.

Next navigate to -> Script tab and pass the connection credential variables that we created to the ReadOnly Variables as follows:

Now click Edit Script and a Visual Studio solution will open as follows:SSIS8

SSIS10Now in order to refer CRM SDK dlls in our project we first need to register them in GAC. To do that please follows the following steps:

To register dll in GAC:

  1. Go to Visual Studio command prompt (Please note that this should be the command prompt of the Visual Studio which you are currently using)
  2. There type -> gacutil /i “path of the dll along with dll name i.e (.dll)”
  3. Enter

You will get message -> assembly successfully added to cacheSSIS11

In this way we need to register following dll’s :

  1. Microsoft.Crm.Sdk.Proxy.dll
  2. Microsoft.Xrm.Client.dll
  3. Microsoft.Xrm.Sdk.dll

Please note that all the above dlls which are provided in Microsoft CRM SDK package are built in version 4.0. Hence the project file where we need to add these references should be built in .net framework 4.0 or above. So please check the project built version as follows:SSIS12

You will need to install .Net Framework Version 4.0 and higher or else you will get build errors related to the version conflict for dll’s and the project won’t build successfully.

Next go to -> Solution explorer and add reference to the CRM dlls once they are registered in GAC as follows:

SSIS13

Also you need to add System.Runtime.Serialization dll and System.ServiceModel dll.

Now to connect to CRM you can create a Class library which will have code for CRM connection and pass the connection parameters to it. Also refer all the respective dlls in header Namespace as follows:SSIS14

As shown above define the CRM library and IOrganizationService globally so that you can initialize and use them in later events.

Now InPreExecute event Initialize Organization service by passing the connection parameters as follows :

/// <summary>

/// This method is called once, before rows begin to be processed in the data flow.

///

/// You can remove this method if you don’t need to do anything here.

/// </summary>

public override void PreExecute()

{

base.PreExecute();

_service = lib.InitializeOrgService(Variables.orgURL, Variables.orgName, Variables.userName, Variables.password);

}

Next on CreateNewOutputRows event you can query CRM using the organization service as follows:

public override void CreateNewOutputRows()

{

/*

Add rows by calling the AddRow method on the member variable named “<Output Name>Buffer”.

For example, call MyOutputBuffer.AddRow() if your output was named “MyOutput”.

*/

using (OrganizationServiceContext svc = new OrganizationServiceContext(_service))

{

var accountEntities = from acc in svc.CreateQuery(“account”)

select acc;

var accountList = accountEntities.ToList();

if (accountList != null && accountList.Count > 0)

{

for (int i = 0; i < accountList.Count(); i++)

{

if (accountList[i].Contains(“name”) && accountList[i].Contains(“telephone1″))

{

Output0Buffer.AddRow();

string accountName = Convert.ToString(accountList[i]["name"]);

string accountTelephone = Convert.ToString(accountList[i]["telephone1"]);

Output0Buffer.AccountName = accountName;

Output0Buffer.AccountTelephone = accountTelephone;

}

}

}

}

}

In above code you can find that using LINQ we fetched Account entity records. Then we loop through each records and get the “name” and “telephone1″ field and set it to the Output0Buffer variables viz. “AccountName” and “AccountTelephone” as we defined in the output variables in script.

When you are done with all this coding, save and build the solution and close the solution.

Now you are ready to execute your package. Run the package and you will get all the Account Entity related records as follows:SSIS15

The output file will look like this :SSIS16

In this way using CRM dlls you can query data and import it and divert it to the destination as per your requirement.

Conclusion:

Though you can go ahead and develop SSIS packages using CRM DLL, it might make sense to check out the Dynamics CRM SSIS tools available from Kingsway Soft. This was a simple read operation that we were working on, but for complex write operations to CRM, the prepackaged CRM Adapter for SSIS from Kingsway would always be preferred.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Exporting Data from Dynamics CRM using SSIS appeared first on Inogic Blog.

Re-imagined Phone & Tablet Client for Dynamics CRM Online

$
0
0

Introduction

One of the USP of Microsoft Dynamics CRM that differentiates it from other CRM applications available in the market is BYOD – CRM Anywhere. Dynamics CRM as of today supports the following client

  1. Web Client ( All major browsers IE/Edge, Chrome, FireFox, Safari)
  2. Outlook Client – Seamless integration with Microsoft Outlook so that you can access Dynamics CRM from your familiar Microsoft Outlook environment. No need to move to the web.
  3. Tablet Client – Tablet apps have been available for a long time in major app stores like Window, iOS and Android.
  4. Phone Client – A phone app that allows you to access CRM right from your phone!!

All of these have been available for long now and Microsoft is continuously working hard on improving the user experience in all of these clients. In the latest update there have been enhancements that have been brought about in the Tablet and Phone app.

Tablet app

Note: The enhancements discussed here are only supported for Dynamics CRM Online Update 1

It was a long standing demand to enable support for IFRAME and WebResources in the tablet client. The tablet client already designs the forms based on the form design for the web app. The idea is only one design and different rendering depending on client type.

Earlier CRM forms could have IFRAME and Webresource control added to them but the tablet client would simply not render them.

In the current enhancement, they have now enabled these control types for rendering on the tablet client.

On IFRAME and WebResource control, you now find an additional checkbox to enable display on tablet Client.

tablet

While this is enabled for editing while adding an IFRAME control, it appears disabled on the WebResource Control. 

tablet1

As per the documentation, we should be able to enable that for webresource as well. Perhaps since this is still a preview feature, it has not been enabled, but the fact that it is on the roadmap is a very positive sign and hopefully this would be available on general release of the feature.

Availability of Dashboards

With this new release you can now enable Dashboards for tablet viewing as well. Earlier there was only one single fixed Dashboard that was available. Now, an option has been added to the Dashboard properties to enable Dashboards to be available on tablet.tablet2

With this enabled, the dashboard starts appearing both on your Phone as well as the Tablet Client.

Choose the Dashboard you desire using the Select Dashboard option. The Dashboard shown below shows the our product Maplytics Dashboard.

tablet3

Note: During my review, I could only get the IFRAME controls to show up on the Tablet Client. In the Phone Client, the IFRAME controls would also not show up.

Phone app

There was always a phone app available that was called “Mobile Express”. In the current release, they have added a new “Phone app”. So if you visit the app store, you will find 2 phone apps. The new one is called the “Mobile Express”.

The earlier phone app was a very basic app and you had a different “Mobile Express” form that was used to select the fields available on the phone. This new app, continues to use the main form designed for the entity and renders it appropriately for the Phone.

And it actually renders all of it :), you can swipe across the various tabs on your phone to access all the details made available on the form, with the exception of IFRAME and webresources that are not rendered on the phone app.

tablet4

The form design application has been modified to allow the designer to specify the controls to be displayed on the phone app. With the limited space available on the phone, you may want to restrict the fields and controls that displayed on the phone client.

tablet5

The Availability section is now available on controls that can be added on the form. You can add notes to the phone app.

tablet6

If you have integrated with OneNote, you even see the OneNote books here and can directly open them in your mobile, if you have the OneNote app installed.

tablet7

Conclusion

With the enhancements introduced in the phone and tablet client, it takes the user experience to the next level.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Re-imagined Phone & Tablet Client for Dynamics CRM Online appeared first on Inogic Blog.

Sending Marketing Newsletter From Dynamics CRM

$
0
0

If you want to send marketing newsletter(or any content that has HTML content) to all your Leads/Accounts/Contacts by using Quick Campaign by Email using Email template then you can select the accounts/leads/contacts for which you want to send the newsletter and create quick campaign as shown below.

email template

After that select the Email as Activity Type.

email template1

After that select the Email template as shown in below screenshot.email template2

The Newsletter that you are going to send contains some company logo in the message, hyperlink that readers can click to get more information, images, different color of text, different fond size basically contains the HTML content.  Best way is to send email using E-Mail Templates.  After you create a few E-mail templates, you probably notice that the editing tools for the email message body are somewhat limited.

For example, none of the buttons allows you to add a hyperlink or image to the message. If you want to develop a more sophisticated E-mail template with multiple images, links, and so on, you can create HTML code with a development tool such as Microsoft VS 2010, 2012. However, if you try to copy and paste your HTML code into the E-mail template, it is displayed as plain text; your recipient will receive a bunch of HTML code instead of the formatted message! Fortunately, by using a little trick, you can easily copy and paste your custom HTML code into the E-mail template and still maintain the correct formatting.

The following sample shows a company newsletter created in HTML using Visual Studio 2010. Next, you can copy (Ctrl+C) the sample newsletter and paste (Ctrl+V) it into the email message body. The trick is to copy and paste the rendered HTML output, not the HTML code. You can accomplish this in a couple of ways: n Copy and paste the formatted message from the Visual Studio 2010 Design view. n Copy and paste the HTML web page from a Internet Explorer window. After you copy and paste the contents of the message into the E-mail template body, you will see the properly formatted email message, complete with an image and a hyperlink. After you paste the code into the message, you can also add a data field to dynamically display the contact’s first name in the newsletter. Please note that if you use images, you need to make sure that the image references a URL that the email recipient can access. This technique does not copy the image file into the E-mail template; it simply references the image URL from the HTML file.

Here is the Email-Template in CRMemail template3

Once you click on create button then it will create quick campaign and Newsletter will send to records that you selected.

The users will receive the email with the format specify below.

email template4

Note:

You cannot copy and paste HTML code from a text editor program such as Notepad into the E-mail template. You can also try using the copy and paste technique with other HTML editor applications. We found that the success of this technique varies depending on the format that applications use to copy data to the Clipboard.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Sending Marketing Newsletter From Dynamics CRM appeared first on Inogic Blog.

 

Adding Custom Button on Security area in Dynamics CRM 2015

$
0
0

In Microsoft Dynamics CRM 2015 Security area is introduced which contains entities such as Users,Security Roles and Teams which were present in Administration area in previous versions of Microsoft Dynamics CRM.

In this blog we are going to show how we can add Custom Buttons on Application Ribbon of Securityarea through Ribbon Workbench.

Take a scenario in which we want to add a custom button “Manage Users” to the application ribbon which will be shown only on Security area.custom-button

To achieve this, first we have created a new solution and added Application Ribbon to that solution from Add Existing option.custom-button1

After adding the Application ribbon to the solution we have opened the ribbon editor and selected the solution.

Then we have added a button named “Manage Users” to the application ribbon in Home Page of Ribbon workbench.custom-button2

Once we add the button, we need to add display rule to restrict the button from being visible on any other pages except for security.

We have created a display rule which is of the type Page Rule for that button.custom-button4

We have added the URL of the Security Area Page in Address field.

The URL of Security area:  /tools/AdminSecurity/adminsecurity_area.aspxcustom-button5

The XML of  Display rule :

<DisplayRules>

<DisplayRule Id=”new.ApplicationRibbon.ManageUsers.DisplayRule”>

<PageRule Address=”/tools/AdminSecurity/adminsecurity_area.aspx” />

</DisplayRule>

</DisplayRules>

After completing all above steps publish the changes.

Now the custom button “Manage User” is visible on the application ribbon which is shown for Security area only.custom-button5

The same custom button “Manage User” is not visible on any other areas such as Administration Area.custom-button6

Note: Likewise, we can also use same approach to show custom button on the application ribbon for any other area of CRM like Administration area (URL:  /tools/Admin/admin.aspx) etc.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Adding Custom Button on Security area in Dynamics CRM 2015 appeared first on Inogic Blog.

 


Replicate Right Click behavior of Dynamics CRM Grid on Custom Grids

$
0
0

In Microsoft dynamics CRM, we have grids for each and every entity. And whenever we right-click on the grid, we get a contextual menu as shown in below screenshot.grid

Below is the list of menus that we get:

  • Open
  • Open In a new window
  • Copy a Link
  • Email a Link
  • Print
  • Refresh List

When we click on above options, we get the functionality as explained below.

Open: When we click on open in Dynamics CRM, a record gets open in same window

Open In a new window: When we click on this option, record gets open in new window

Email a Link: When we click on Email a Link option, it gets open in the default email application which contains the record URL.

Copy a Link: When we click on this option, it copies the record URL. Note: This only works in IE.

Print: On click of Print option, below page (with the all values pre-populated) will open grid1

Refresh List: This option refreshes the grid data.

CRM is not restricted to only OOB Grids; we have the flexibility to add customs grids as well.

We can add custom grids using Jquery, kendo, knockout grid etc.

There may be a case, where you need to mimic the right click functionality (Contextual menu) as the OOB grids have.

In this blog, we will discuss how to implement right click functionality same as in CRM on customs grids.

Consider a scenario, where you have a custom grid for a custom entity say “Project”.

Now, you need to imitate the contextual menu as we have for OOB grids.

So in order to have these menus, we have to use contextual menu (For this demo we have used kendo UI context menu).

After adding options like Open, Open in New Window etc. in the context menu, we have to add custom logic in order to make it behave the way as we have for OOB grids.

Below is the implementation of most commonly used menus, similarly you can have other custom menus as well.

Open : This option is used to open the record in the same window.

In order to open the record in the same window, we will be using OOB functionality i.e. openEntityForm as shown below.

Xrm.Utility.openEntityForm(name, id)

name: Name of the entity of the selected record in the grid.

id: GUID of the selected record in the grid that we want to open in the same window.

Open In a new window: This option is used to open the record in the new window.

In order to open the record in the new window, CRM 2015 SP1 has introduced the new parameter in the openEntityForm. For more details, you can view our previously posted blog.

var options = {

openInNewWindow : true

};

Xrm.Utility.openEntityForm(name, id, null, options)

name: Name of the entity of the selected record in the grid.

id: GUID of the selected record that we want to open in new window.

Email a Link: This option basically opens the record URL in the default mail application.

In order to achieve this, we have to follow the below mentioned steps.

Here first we will create the record URL that we need to send through email.

var recordURL = Xrm.Page.context.getClientUrl() + “/main.aspx?etc=10001&id=” + id + “&pagetype=entityrecord”

etc: Specify unique entity type code of the selected record in the grid.

id: GUID of the selected record in the grid.

The next step is to add the record URL in email body.

window.location.href = “mailto:?body=” + recordURL;

Copy a Link: This option copies the record URL on the clipboard.

We can achieve this using below piece of code.

var recordURL = Xrm.Page.context.getClientUrl() + “/main.aspx?etc=10001&id=” + id + “&pagetype=entityrecord”

etc: Specify unique entity type code of the selected record in the grid.

If(window && window.clipboardData)

{

window.clipboardData.setData(“Text”, recordURL);

}

Note: This will only work in IE.

Print: This option is intended to print the record.

For printing the record, we are using the OOB functionality. On click of this option we will open the same page that gets open in CRM when we click Print in CRM.

var url = Xrm.Page.context.getClientUrl() +”/_forms/print/print.aspx?id=” + id + “&objectType=10001&subType=10001″

window.open(url);

id: GUID of the selected record in the grid.

objectType: Specify unique entity type code of the selected record in the grid.

subType: Specify unique entity type code of the selected record in the grid.

Refresh List: This option is to refresh the data in the grid.

Call the same function that you have used to bind the data to the grid on click of this option.

Hope it helps!

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Replicate Right Click behavior of Dynamics CRM Grid on Custom Grids appeared first on Inogic Blog.

New Localizable Attributes in Dynamics CRM 2015

$
0
0

As we all know if we want to change the CRM label text as per the user language preference we can use the Export/Import translation process. But when we want to change the Attribute value as per the user language preference, it is not possible because entered value cannot be changed if user changes the language preference; it will show same value in any language setting. So, in CRM2015 Microsoft made available some localizable attributes for changing entered attribute value if user changes language preference but this feature is only applicable for below mentioned attributes in the Product Catalog:

  • Product Name (Product Entity)
  • Property Name (Property Entity)
  • PropertyOptionSet Name (Property OptionSet Item Entity)

Consider a Scenario, there are two users with different language in CRM, if we wanted to show the same product to these users with different product name means their own language preference as per the users language settings, we can easily do it in CRM2015 with the below following steps:

To achieve this mentioned functionality we can easily use this newly introduced feature in CRM2015 i.e. Import/Export Translation Process.

In this example, I have created a Car product.

After following this below steps Car Product name will be changed if user changes language setting.

As you can see below Product name is “Car” when user logged with English language setting.localize

Step 1:

  1. In the Navigation Pane, click Settings
  2. Under Settings, click Data Management
  3. In the Data Management area, click Export Field Translations
  4. Click OK.localize1
  5. Exporting Localizable fields for translation can take several minutes. When Microsoft Dynamics CRM finishes exporting the customized text, Microsoft Internet Explorer prompts you to open or save the exported Text.localize2
  6. Click Save, specify a file name, and specify a location on your local computer or network where you want to save the compressed (.zip) file.
    You can extract the compressed file and then open the XML (A type of file that provides a way to structure data to share between applications. XML files typically have the .xml extension.) file that contains the customized text and translate it, or you can send the compressed file to a translator.

Step 2:

After downloading Compressed (.zip) file extract the files. In this we will find two xml files i.e. [Content types] and CrmFieldTranslations.

Open the CrmFieldTranslations.xml file.

In this xml file we can see the 1033(English LCID) and 1036(French LCID) columns which shows the product name for languages enabled in the CRM here we are getting only two language columns because in this CRM I have enabled  two languages i.e. “English” and “French”. Now we can edit the product name as per the user language preference. In this example, I have given Product name “Car” for Englishlanguage user and “voiture” for French language user.localize3

Warning:

Microsoft Dynamics CRM cannot import translated text that is over 500 characters long. If any of the items in your translation file are longer than 500 characters, the import process will fail. If the import process fails, review the line in the file that caused the failure, reduce the number of characters, and try to import again.

Step 3:

After modifying the XML file we have to import file by compressing files with [Content types] andCrmFieldTranslations xml files.

Below steps shows how to import:

  1. In the Navigation Pane, click Settings
  2. Under Settings, click Data Management
  3. In the Data Management area, click Import Field Translationslocalize4

Click on the Import Field Translations Button:localize5

After clicking on Import Field Translations button select edited CrmFieldTranslations.zip then CRM will start importing.

After successfully import we can see the Product Name “Car” for English language user and “voiture”for the French language.

As you can see below Product name when user with French language setting.localize6

Hope this helps!

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post New Localizable Attributes in Dynamics CRM 2015 appeared first on Inogic Blog.

1 click is all it takes to Export reports from Dynamics CRM

$
0
0

How many clicks it takes you to export reports?
Imagine you have a meeting tomorrow and you want to present reports from Microsoft Dynamics CRM. It’s not difficult to get reports from Dynamics CRM. The difficulty faced by most of the users is in exporting the report in required format. User spends more time on exporting reports to required format. The reason is number of steps involved in the process. Further if report needs to be attached and emailed to someone then you need more time.

What is this 1 Click – Click2Export by Inogic?
So to speed up this process, Inogic has developed a tool called Click2Export, which allows you to export all Microsoft Dynamics CRM reports in just a single click.

With Click2Export you can export any Microsoft Dynamic CRM report in the system with single click and attach it to an email or note or just download it without much effort.

It is an easy to install add-on with user friendly User Interface. In a one click UI, you can export any report and decide the actions that should take place after exporting it i.e. you can attach it as an email attachment or note attachment in respective CRM record and may more.click2export

Some Key Features:

  1. You can export the reports to format of your choice – PDF or Excel or Word file.
  2. It can be attached as an email attachment to send out with email, or Note attachment in respective CRM record or both or you can also just download that exported report file
  3. Multiple templates can be created for a single report with different names
  4. Report parameter values are customizable, even during run time so the exported report executes on those parameters
  5. Individual or organizational report, both can be exported and attached in a single click
  6. Multiple reports can be converted into templates simultaneously
  7. Reports can be exported for multiple records simultaneously
  8. It also has the ability to decide if combined report for all selected records is to be exported or one report per selected record.

Ready to Deploy: Click2Export is available for Microsoft Dynamics CRM 2011 and above. It supports all CRM deployment model namely on-premise, on-line, office 365 and partner-hosted.

Try Today: Email us on crm@inogic.com for a trial or if you would like to see a live demo.

Theme your Dynamics CRM 2015 to Custom Solution

$
0
0

Introduction

We all are familiar about themes; as we used to set themes for our mobile. Now we can set themes to our CRM and make it more colorful. We all know about how to set theme to CRM manually. So now we will see how to set theme programmatically to our web resource.

If you want to set your custom theme then create your theme in CRM and set it as default theme, for that we have to go to the Settings –> Customization –> Themestheme

Then create new theme records and now you can set your favorite colors to your CRM or else you can use CRM OOB theme. Let’s take one custom theme and see how to set that custom theme to our web resource programmatically.theme1

For that we have created one web resource and set the CRM color to that HTML page Dynamically.

Here is how we do it

HTML Page

We have created HTML form and we will add this web resource in our CRM and set the CRM default theme to our web resource.

<body>

<div id=”dvDetails”>

<div id=”dvEducation”>

<b><span>Fill Your Details</span><br /> </b>

</div>

<table>

<tr><td><b><label id=”lblPersonalDetails”>Personal Details</label></b></td></tr>

<tr><td><label id=”Name”>Name:</label></td>

<td><input type=”text” id=”txtName” /></td></tr>

<tr><td><label id=”Email”>Email:</label></td>

<td><input type=”text” id=”txtEmail” /></td></tr>

<tr><td><label id=”Phone”>Phone:</label></td>

<td><input type=”text” id=”txtPhone” /></td></tr>

<tr><td><b><label id=”lblEducational”>Educational Details</label></b></td></tr>

<tr><td><label id=”lblEducation”>Education:</label></td>

<td><input type=”text” id=”txtEducation” /></td></tr>

<tr><td><label id=”lblPercentage”>Percentage:</label></td>

<td><input type=”text” id=”txtPercentage” /></td></tr>

<tr><td><label id=”lblYearofPassing”>Passing Year:</label></td>

<td><input type=”text” id=”txtPassingYear” /></td></tr>

</table>

<div style=”padding-right: 2px; padding-top: 10px”>

<button id=”btnCancel”>

Cancel</button>

&nbsp;

<button id=”btnSave”>

Save</button>

</div>

</div>

</body>

Following is the code we need to add on load of our HTML page. In this code we have to first retrieve CRM default theme, so we will get the Hex color codes of theme. Now we can set those colors in our web resource.

Javascript Code: 

$(document).ready(function () {

var naviBarcolor = “”;

var navbarshelfcolor = “”;

var themeRetrieve = “<fetch version=’1.0′ output-format=’xml-platform’ mapping=’logical’ distinct=’false’>” +

“<entity name=’theme’>” +

“<attribute name=’themeid’ />” +

“<attribute name=’name’ />” +

“<attribute name=’type’ />” +

“<attribute name=’isdefaulttheme’ />” +

“<attribute name=’selectedlinkeffect’ />” +

“<attribute name=’processcontrolcolor’ />” +

“<attribute name=’navbarshelfcolor’ />” +

“<attribute name=’navbarbackgroundcolor’ />” +

“<attribute name=’logotooltip’ />” +

“<attribute name=’logoid’ />” +

“<attribute name=’hoverlinkeffect’ />” +

“<attribute name=’headercolor’ />” +

“<attribute name=’globallinkcolor’ />” +

“<attribute name=’defaultentitycolor’ />” +

“<attribute name=’defaultcustomentitycolor’ />” +

“<order attribute=’name’ descending=’false’ />” +

“<filter type=’and’>” +

“<condition attribute=’isdefaulttheme’ operator=’eq’ value=’1′ />” +

“</filter>” +

“</entity>” +

“</fetch>”;

//fetch default theme

var defaultTheme = XrmServiceToolkit.Soap.Fetch(themeRetrieve);

if (defaultTheme != null && defaultTheme.length > 0) {

for (var i = 0; i < defaultTheme.length; i++) {

//get the navigation background color

naviBarcolor = defaultTheme[i].attributes["navbarbackgroundcolor"].value;

//get the navigation shelf color

navbarshelfcolor = defaultTheme[i].attributes["navbarshelfcolor"].value;

}

}

//set background color to div

$(“#dvEducation”).css(“background-color”, naviBarcolor);

$(“#dvEducation”).css(“color”, “white”);

//set background color to cancel button

$(“#btnCancel”).css(“background-color”, naviBarcolor);

$(“#btnCancel”).css(“color”, “white”);

//set background color to save button

$(“#btnSave”).css(“background-color”, naviBarcolor);

$(“#btnSave”).css(“color”, “white”);

$(“#dvDetails”).css(“background-color”, navbarshelfcolor);

});

from above code we can set CRM default theme to our web resource. This is how you can set other css to your web resource.

Result:

theme2

Limitations:

We can use themes dynamically only in Microsoft dynamic CRM 2015 Update 1.

Conclusion:

This is how we can apply CRM theme to our custom web resource and use CRM theme Dynamically.

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Dynamics CRM 2015 Online Update 1 – API support for Transaction appeared first on Inogic Blog.

Apply Custom Filter on Lookup Field in Dynamics CRM using Script

$
0
0

Introduction

In this blog we are going to see how to apply custom filter to the lookup field using the JavaScript functions.

In Microsoft Dynamics CRM we can filter a lookup field on form using the Fetch XML condition and “addPreSearch()“ method.

Example

On the Contact Entity there is a lookup field named “Account Name” and a text field “Address1: City” as shown in below screenshot.custom_filter

So, Here If we want to filter Account records in lookup view by city having value equal to field Address1: City. We can do this by writing the below code in Jscript.

Here we have written two functions “filterLookup()” and “addCustomeLookupFilter()”  as shown in the below code snippets.

 custom_filter1

We have created CRM webresource for the javascript and called “filterLookup” function on change event for field “Address1: City” field as below for contact entity form.custom_filter2

Function “filterLookup” will be trigger on change of field “Address1: City”. This binds “addPreSearch” event to lookup control “parentcustomerid”.custom_filter3

Open the contact entity record, Before entering the “Address1:City” field value the lookup field shows all the account records as below screenshot.custom_filter4

Enter the value for “Address1: City” here it is “US” as below.custom_filter5

Then Check for the suggested options for the Account lookup. Only those accounts records will be available to select which having city “US”.

Hope this helps!

There's much more, for more Dynamics CRM Tips and Tricks head on to Inogic Blog. If you have any questions on Dynamics CRM or need any help in implementation, customization, upgradation of Dynamics CRM or are looking to get more out of your CRM, feel free to reach us at crm@inogic.com today!

The post Apply Custom Filter on Lookup Field in Dynamics CRM using Script appeared first on Inogic Blog.

Viewing all 3363 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>