Features
|
CRM 2011
|
CRM 2013
|
CRM 2015
|
User Interface
|
|
|
|
Workflows
|
Asynchronous
|
Asynchronous/ Synchronous(Real time).
The existing workflow execution model that supports asynchronous workflows has been extended to support real-time (synchronous) workflows. Real-time workflows are not queued, as was the case with asynchronous workflows, but execute immediately on-demand or in response to a message being processed by the execution pipeline. Real-time workflows participate in the database transaction and perform similar functionality to plug-ins, yet can be created by a non-developer through the web application workflow designer. Developers can still create real-time workflow through code.
|
Asynchronous/ Synchronous(Real time)
|
Duplicate Detection Rule
|
Available
|
Removed
|
Removed
|
Auto Save
|
Not Available
|
Auto Save of Record is Available & this option can also be disabled in settings.
|
Auto Save of Record is Available & this option can also be disabled in settings.
|
Quick Create
|
Not Available
|
Available. Now any type of record type created being in another record.
|
Available. Now any type of record type created being in another record.
|
Portable Business Logic/Rules
|
Not Available.
Only Custom javascipt.
|
Introduced.
Business rules in CRM 2013 now allows for native controls to be applied on forms instead of writing custom JavaScript as it was the case in previous version. These are client side enforced controls based on business conditions and allows for 5 actions:
Set specific field value (including formulas & calculation),
Set business required state for a CRM attribute,
Set visibility of a field to visible or invisible (visible = false),
lock and unlock Dynamics CRM fields / attributes, and
Show an error message on a form if certain conditions are met.
|
Enhanced.
Complex condition branching added.
|
Business Process Flow (BPF)
|
Limited to Lead, Opportunity, Case entities.
|
For any entity now BPF is enabled.
Dynamics CRM 2013 gives users visual guidance to navigate processes that makes workflows more prescriptive and easier to follow.New process bar prompts users to follow next action steps in line with your mapped workflows to progress leads, opportunities, service cases and other tasks.
|
For any entity now BPF is enabled.
Business Processes also have Stage-Gating feature that prevents users progressing any process to the next stage if one or more steps haven’t been completed
|
Mobility Form
|
|
|
|
Server Sync.
|
Email router
|
Server Side Sync.
No Email Router
|
Server SIde Sync
|
Adv Find
|
Under, Not-under filter not present.
|
Under, Not-under filter not present.
|
Under, Not-under filter criteria is introduced.
|
Social Enterprise Collaboration
|
Not available
|
Introduced.
Users can participate in social conversations directly within Microsoft Dynamics, through the Yammer web and desktop applications as well as apps running on Microsoft (Windows Phone), Apple (iOS) and Google (Android) mobile devices.
|
Enhanced
|
Prominent Records Headers & Quick View Forms
|
Not available
|
Introduced.
Surfaces important Customer information and highlights key data (such as phone number, status, record owner) on related forms so users always have their customer data at their fingertips.
|
Enhanced
|
Get Started Pane
|
Introduced
|
Removed
|
Removed
|
Workplace Area Navigation
|
Available
|
Removed
|
Removed
|
Inline Data Editing
|
Not Available
|
Introduced
|
Available
|
Global Search
|
Not available
|
Introduced
|
Enhanced
|
Image DataType
|
Not Available
|
Introduced
|
Available
|
Actions
|
Not Available
|
Introduced.
Developers can extend the functionality of the standard Microsoft Dynamics CRM system by creating custom messages, with associated request/response classes, known as actions. Actions are new type of processes to expand the vocabulary available for developers to express business processes. With core verbs like Create, Update, Delete, Retrieve, Associate and Assign provided by the system, an action uses those core verbs to create more expressive verbs like Escalate, Approve, Route, and Schedule. If the definition of the action needs to change due to changing business priorities, someone who is not a developer can edit the action using the application workflow designer. Since these actions are available through web service calls, they can be used from both inside the application using a command action or from external applications.
|
Available
|
Integrated Maps
|
NotAvailable
|
Introduced.
Integrated Bing Maps dynamically show the map for the primary record address.
|
Available
|
Skype & Lync Integration
|
Not Available
|
Introduced.
Skype and Lync integration enabling direct dialling from any phone number field in Dynamics CRM.
|
Available
|
Access Team
|
Role-Based Security (owner) Teams Only
|
Role-Based Security Teams (owner Teams) and Access Teams.
Teams need to collaborate with a unique set of people within their organization for each record such as an Opportunity, order or important customer contact. CRM 2011 role-based security does not give users this level of flexibility. With a record-based access team, CRM users can be added to a specific record and give them access. The access team is a new type of team that doesn’t own records, but, has access to records. Unlike with owner teams, you can create one or more access teams to work on the same records and have team members with different levels of access rights to the record.
|
Hierarchy Security Model Introduced.
New hierarchical visualizations and roll-ups bring real-time territory and forecasting data to your fingertips. Users now have a way to view accounts, products, and users that helps you see how info is related. CRM 2015 can display how data is related or grouped by accounts, products, or users in hierarchical charts. The user can pick a data set to get more details and navigate to the info you're interested in.
|
Calculations and formulas via Business Rules
|
Not Available
|
Available.
Setting a field value in a business rule allows the use of formulas to do calculations for applicable fields such as fields of type “Money”. Addition, subtraction, multiplication & division are the calculation operations available and can be done between fields or values. So for example: set “Total Box Value” field value to “Price per item” field multiplied by “24”. (assuming every box has 24 identical items for instance).
|
Available.
Rollup fields.
calculated fields
|
Web Services & Endpoints
|
Support for CRM 4.0 2007 Endpoint & Legacy features
|
CRM 4.0 Service Endpoints & Features removed in CRM 2013
|
CRM 4.0 Service Endpoints & Features removed in CRM 2015
|
Inline Editable Grids
|
Not Available
|
Introduced.
|
Available
|
Product Bundling
|
Not Available
|
Not Available
|
Introduced.
Products can be bundled and offered as packages, for discounts and offers
|
Regional Price List
|
Not Available
|
Not Available
|
Introduced.
Products can be bundled and offered as packages, based on regional requirements and assessments
|
Import/ Export Product
|
Not Available
|
Configuration migration tool introduced in Dynamics CRM 2013
|
Improved.
support product migrations in Dynamics CRM 2015
|
Guided Sales Flow
|
Limited to Lead, Opportunity, Cases
|
Improved for all entities.
|
Improved to have complex business processes.
Conditional branching has brought about more specificity to business processes
|
Offline Draft Capability
|
Not Available
|
Not Available
|
Offline draft capabilities on mobile devices which are synced when the user is back online
|
Pause & Resume SLA’s
|
Not Available
|
Not Available
|
Pause and Resume SLAs to track time efficiently through system settings
|
Themes
|
Not Available
|
Not Available
|
Introduced.
You can now brand your CRM! Themes offer the option of changing the default colors and adding your logo to the top navigation as pictured below. This is just one more way to customize CRM to match the uniqueness of your organization.
|
OneNote Integration
|
Not Available
|
Not Available
|
Introduced.
Users can now easily capture meeting details using OneNote from within CRM Online. This functionality allows the information to be available to other CRM Online users in the Social Pane.
|
Advance Find Older Than Filter
|
Not Available
|
Not Available
|
Introduced.
|
Export to Excel Redesign
|
Only allows to save as excel in local computer. Limiting record 10000.
|
Only allows to save as excel in local computer. Limiting record 10000.
|
Record Limit increased to 100000 or 32 MB.
Import excel opens online facility.
|
Monday, 16 May 2016
Dynamics CRM 2011 Vs CRM 2013 Vs CRM 2015
Monday, 9 May 2016
Auto number generation using C# and SQL
Auto number generation using C# and SQL
------------------------------------------------------
Req: Create a Autonumber for Particular Application form(Eg:Order or Quote)
Approach:
-------------
1.Create a Separate autonumber configuration table which looks like below
AutoNumConfig table
--------------------------
AutoNumberId AutoNumber FormNameorFormId
-------------------------------------------
1 ORD-0002 Order or 1066
2 QUO-0002 Quote or 1067
2.Create Transaction table for Application Form(Eg:Order/Quote) which looks like below
OrderTable
--------------
OrderId OrderName OrderAutoNum
-------------------------------------------
1 Spartan ORD-0001
2 Xamarin ORD-0002
QuoteTable
--------------
QuoteId QuoteName QuoteAutoNum
-------------------------------------------
1 Spartan QUO-0001
2 Xamarin QUO-0002
3.When User X logged in and Create a New Order/Ouote for the First time
4.Check the table Contains order/quote has value,if not it should be first Value which means ORD-00001
5.If User X logged in second time and create a new Order.
6.Reterive the newly generated autonumber from autonumconfig table and increment the value by 1 and update the AutoNumConfig table and lock the table.
reason behind to lock the table is, another user to prevent to read the previous generated autonumber.If another user logged in and try to create order,in this case the user gets error as it locks.
7.Update the newly generated autonumber in the transation table.(Eg:ORD-00002)
8.After Successful inserted record in Order table release the lock of autonumconfig table.
9.U can use DB lock or C# lock.My preference is best to go C# lock
Advantage of use above Design
---------------------------------------
1.Extensiblity,Suppose if req change like,want to generate autonumber based on Organization
like below
Eg: ORD-ORG1-00001
ORD-ORG2-00001
ORD-ORG1-00002
the above design will be suitable and best way to go.
2.You can Generate new auto number for any new Form as autonumber configuartion table is separate from transacation table which is loosly coupling.
3.Also there is concept called Autonumber generate based on primary key in SQL,this will generate automatically without any hard stuff,but the thing is Point no:1 requriment will not satisfy if it change based on Organization.
Happy Coding!!!!
------------------------------------------------------
Req: Create a Autonumber for Particular Application form(Eg:Order or Quote)
Approach:
-------------
1.Create a Separate autonumber configuration table which looks like below
AutoNumConfig table
--------------------------
AutoNumberId AutoNumber FormNameorFormId
-------------------------------------------
1 ORD-0002 Order or 1066
2 QUO-0002 Quote or 1067
2.Create Transaction table for Application Form(Eg:Order/Quote) which looks like below
OrderTable
--------------
OrderId OrderName OrderAutoNum
-------------------------------------------
1 Spartan ORD-0001
2 Xamarin ORD-0002
QuoteTable
--------------
QuoteId QuoteName QuoteAutoNum
-------------------------------------------
1 Spartan QUO-0001
2 Xamarin QUO-0002
3.When User X logged in and Create a New Order/Ouote for the First time
4.Check the table Contains order/quote has value,if not it should be first Value which means ORD-00001
5.If User X logged in second time and create a new Order.
6.Reterive the newly generated autonumber from autonumconfig table and increment the value by 1 and update the AutoNumConfig table and lock the table.
reason behind to lock the table is, another user to prevent to read the previous generated autonumber.If another user logged in and try to create order,in this case the user gets error as it locks.
7.Update the newly generated autonumber in the transation table.(Eg:ORD-00002)
8.After Successful inserted record in Order table release the lock of autonumconfig table.
9.U can use DB lock or C# lock.My preference is best to go C# lock
Advantage of use above Design
---------------------------------------
1.Extensiblity,Suppose if req change like,want to generate autonumber based on Organization
like below
Eg: ORD-ORG1-00001
ORD-ORG2-00001
ORD-ORG1-00002
the above design will be suitable and best way to go.
2.You can Generate new auto number for any new Form as autonumber configuartion table is separate from transacation table which is loosly coupling.
3.Also there is concept called Autonumber generate based on primary key in SQL,this will generate automatically without any hard stuff,but the thing is Point no:1 requriment will not satisfy if it change based on Organization.
Happy Coding!!!!
Tuesday, 26 April 2016
Asp.net- Encrypt and Decrypt connection strings in web.config file
In this article I will explain how to encrypt or decrypt connectionStrings in web.config file using asp.net.
If we are using applications in our internal servers with security then it’s ok if we deploy our applications in shared host environment then we have chance to arise security problems to avoid these problems asp.net 2.0 provided built in protected configuration model functionality to encrypt or decrypt few sections of web.config file those are
RSAProtectedConfigurationProvider: This is default provider and uses the RSA public key encryption algorithm to encrypt and decrypt data.
DataProtectionConfgurationProvider: This provider uses windows data protection application programming interface to encrypt and decrypt the data.
The encrypting and decrypting of connection strings in web.config file will do by usingaspnet_regiis.exe command line tool and code behind.
First Method:
First we will do encryption and decryption using aspnet_regiis.exe command line tool in file system website
To implement encryption and decryption first create one new website using visual studio.
After that open web.config file in application and add sample db connection in connectionStringssection like this
<connectionStrings>
<add name="dbconnection" connectionString="Data Source=SureshDasari;Integrated Security=true;Initial Catalog=MySampleDB"/>
</connectionStrings >
|
After add dbconnection in connectionString check the below steps to encrypt or decrypt the connection string in web.config.
1. 1) Go to Start >> All Programs >> Microsoft visual studio 2008 >> Visual Studio Tools >> Visual Studio 2008 Command Prompt (Note: if you’re using windows 7 right click on command prompt and select Run as administrator)
|
|
2. 2) After open command prompt type the following command aspnet_regiis.exe -pef "connectionStrings" "C:\VisualStudio2008\Authorization"
Here –pef indicates that the application is built as File System website. Second argumentconnectionStrings indicates that name of the configuration section needs to be encrypted. The Third argument is the physical path of the folder where the web.config file is located.
3. 3) After enter the command click enter if everything goes well we will get success message like “Encrypting configuration section… Succeeded!”
|
|
Now open your application and check connectionStrings in web.config file that would be like this
<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>ZNUbIEnOwlZzC8qbzHj5F2GS9gLYSkWCIgCJGkrgZAX8A+8oEIssyohhxUKvAubD3jizFc5IjbLGt7HNXhoFhXNTUPYz2y6tdKJDVgDmtCgVf8Z2C990zoMRBJG+VXhmgnlo1vtHYhGx8x/bBzE1prT1+xDpep98vHF22d+LrVI=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>tODWlPD0Q/B/mP14GQ/5tUxcjmhHcy9a0oPunV5osNrMQRztgi2h5V6sxJOEh+NC+G9gQNkv1huXf1s7eoZRRLy5/LDtLXzzqMUOqLSlJUs9igChvi33c9XG4rwGF15Tpn4N34bpQBt94n0rpSkQ18V9HCPzii+UO64PlA+ykDeQhc9aQr4gO3mCfUzmY2S9gsXzRbzdq0oCWBDvx8UkX2uDxaysVHC9Fo7u6IrlpU0+hOdK95Y3/A==</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
|
Here we don’t want to write any code to decrypt the encrypted connectionString in our application because .NET automatically decrypts it. If we want to use the connection string just call it like normal way
string strconnection = ConfigurationManager.AppSettings["dbconnection"].ToString();
|
Now if we want to decrypt connectionStrings section in web.config use the following commandaspnet_regiis.exe -pdf "connectionStrings" "C:\VisualStudio2008\Authorization"
After command execute we will get message like “Decrypting configuration section… Succeeded!”
|
|
Now check your connctionStrings section in your web.config file you will see decrypted connection string.
Till now we learned how to encrypt and decrypt connectionStrings section in File system website. If I want to encrypt connection string in IIS based site like i.e. Deployed website for that we need to use the following commands
Encrypt connectionStrings in web.config of IIS based site
aspnet_regiis.exe -pe "connectionStrings" -app "/SampleWebSite"
Here –pe indicates that the application is built as IIS based site. Second argument connectionStringsis the name of configuration section needs to be encrypted. The Third argument -app indicates virtual directory and last argument is the name of virtual directory where application is deployed.
Decrypt connectionStrings in web.config of IIS based site
aspnet_regiis.exe -pd "connectionStrings" -app "/SampleWebSite"
Till now we learned how to encrypt and decrypt connectionStrings section in web.config file using aspnet_regiis.exe command line tool now I will explain code behind method to encrypt and decrypt the connection string section in web.config.
Second Method: In second method I will use RSAProtectedConfigurationProvider and DataProtectionConfgurationProvider to encrypt and decrypt connectionStrings in web.config using asp.net.
First open Default.aspx page and write the following code
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button id="btnEncrypt" runat="server" Text="Encrypt" onclick="btnEncrypt_Click" />
<asp:Button ID="btnDecrypt" runat="server" Text="Decrypt" onclick="btnDecrypt_Click" />
</div>
</form>
</body>
</html>
|
Wednesday, 23 March 2016
Mapping of fields from Opportunity Products to Invoice Products or Quote Product
Mapping of fields from Opportunity Products to Invoice Products or Quote Product
Recently, one of my customers would like to map couple of common custom attributes during execution of entire sales cycle. They are using the out of the box Dynamics CRM sales process. They have these attributes on Opportunity Product entity and want the same values to be auto populated with rest of the sales cycle. Like, when you create Quote record with Quote Products from an opportunity, the same custom attributes should be filled automatically for Quote Products. Likewise, the custom attributes should be populated when you create an Order with Order Products from a Quote and Invoice with Invoice Products from an Order.
Out of the box you cannot find such mappings on these relationships. So, to achieve this requirement, you can use below trick to generate the hidden mappings URLs.
On your development server/machine you just need to execute below query in SQL Management Studio to find out relationship GUID id for Opportunity Product and Quote Product entities.
Use the above GUID in below URL and also change the organization name.
http://localhost:5555/[ORG_Name]/Tools/SystemCustomization/Relationships/Mappings/mappingList.aspx?mappingId=[Your_GUID]
Now, launch internet explorer and paste this URL at address bar. As displayed in below screenshot, you could see the list of all available mappings of the above two entities.

Click on New button to open below field mapping popup. Here, you are free to do your mappings.

In the same fashion, find out the mapping GUIDs for Quote Product to Order Product and Order Product to Invoice Product. Prepare their URLs as explained above and complete the attribute mappings.
Finally, add these entities to your unmanaged solution on your development organization. Export it as a managed solution and import the same on QA and Production environments. The same mappings should be applied to those organizations too. Moreover, the same managed solution can also be imported to CRM 2011 online or partner hosted.
I hope this will be helpful.
Out of the box you cannot find such mappings on these relationships. So, to achieve this requirement, you can use below trick to generate the hidden mappings URLs.
On your development server/machine you just need to execute below query in SQL Management Studio to find out relationship GUID id for Opportunity Product and Quote Product entities.
SELECT EntityMapId
FROM EntityMapBase
WHERE TargetEntityName='quotedetail' AND SourceEntityName='opportunityproduct'
Use the above GUID in below URL and also change the organization name.
http://localhost:5555/[ORG_Name]/Tools/SystemCustomization/Relationships/Mappings/mappingList.aspx?mappingId=[Your_GUID]
Now, launch internet explorer and paste this URL at address bar. As displayed in below screenshot, you could see the list of all available mappings of the above two entities.
Click on New button to open below field mapping popup. Here, you are free to do your mappings.
In the same fashion, find out the mapping GUIDs for Quote Product to Order Product and Order Product to Invoice Product. Prepare their URLs as explained above and complete the attribute mappings.
Finally, add these entities to your unmanaged solution on your development organization. Export it as a managed solution and import the same on QA and Production environments. The same mappings should be applied to those organizations too. Moreover, the same managed solution can also be imported to CRM 2011 online or partner hosted.
I hope this will be helpful.
Subscribe to:
Posts (Atom)
Resolving Dynamics 365 Contact Sync Issues in Outlook – ExchangeSyncIdMapping Overload Introduction Recently, our project encountered a ...
-
Ever wonder how (or where) CRM stores the related values for pick lists or Option set ? Answer is in String Map Table So what is...
-
Resolving Dynamics 365 Contact Sync Issues in Outlook – ExchangeSyncIdMapping Overload Introduction Recently, our project encountered a ...
-
In CRM if there is any solution movement from other enviornment like DEV,PROD,STG we use to export the solution and import the solution ...


