Wednesday, December 20, 2017

Work and Best about CRM Systems

Most CRM Systems:
  • Picking a CRM system is the most difficult part of all, for me at least, reason being they are all designed by people with sales careers to increase sales. 
  • To get other advantages out of CRM is costly solution for the reason of having Developers to make customized solution to meet specific needs. Certain out of the functions make it easy for developers to introduce new features though.
  • The most if we need to get out of CRM Depends on how nice user interface is for Web/Mobile Applications and how efficiently that was written by developer to interact with CRM, which will eventually gives end user better experience with CRM, which in turn sales and that will eventually help with revenue.
  • Most of the times, need to have portal website to integrate with CRM, to allow external users to interact with CRM, So if Portal website sucks, CRM sucks too or vice versa
All this information is based on personal opinion and may differ from person to person.

Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...

Friday, December 1, 2017

Custom Reports for Microsoft Dynamics 365

Microsoft Dynamics 365 Reports are based on Microsoft SQL Server Reporting Services and provides the same set of features.

The report definition, both data and layout, of Microsoft Dynamics 365 reports are contained in an .rdl file and the content of this file are based on the Microsoft SQL server report definition language specification.

There are many out of the box reports available and you can create and deploy custom reports as well. Custom reports are of types:

  • SQL Based: 
    • This reports used SQL queries to retrive the data from filtered view 
    • All the default reports are SQL based reports 
    • You can't deploy SQL based reports to Dynamics 365 online 
  • FetchXML Based: 
    • This uses FetchXML to retrive data 
    • You can deploy this on both on Dynamics 365 on-premise and online 
    • All the reports created using Report Wizard are FetchXML based

Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...

Friday, November 17, 2017

What Is Ransomware and How Do You Protect Yourself?

What is Ransomware?

In General Definition, it's a malicious software that crawl through your computer files in all drives and encrypts each file and make it useless unless you pay some specific amount of money to unlock it. It can spread in networks as well if  you're connect in.

Who's at Risk?

Friday, November 3, 2017

Dynamics CRM Javascript Code Snippets

In this post, I'm going to post some JavaScript code snippets, this might be helpful while customize the CRM. Should work for all versions!

---------------------------------------------------------------------------------
Get the GUID of the lookup field:
var obj1 = Xrm.Page.getAttribute("schemanameoflookupfield");
alert("" +obj1.getValue()[0].id);
---------------------------------------------------------------------------------

Friday, October 20, 2017

MB2-712 - Security Model

Security is a core part of dynamics CRM system to ensure, which users/team can access what information. This is also useful to restrict sensitive information.

Business units are the base for the security mode, role is then defined within the business unit. Each user or team will be assigned a business unit and one or more roles. this combination of entities provided base for the Dynamics CRM security model.

Thursday, October 12, 2017

Friday, October 6, 2017

MB2-712 - Security - Business Units and Users

Business units allows to define the structure of the organisation. 

Users, teams and security roles will be linked to business units and make them a fundamental building block in the security model for Dynamics CRM. 

Important things to know about BU:

Saturday, September 30, 2017

MB2-712 - Security - Overview

This is the on going post in a series I wanted to create for the MB2-712 certification, while preparing for the same.

Secruity will be the next section in Configure Microsoft Dynamics CRM portion.

The Security area gives access to following:

Thursday, September 28, 2017

MB2-712 - Configure CRM - Data Management and Auditing

This is the on going post in a series I wanted to create for the MB2-712 certification, while preparing for the same.

Data Management:

This section has many things including duplicate detection rules, import data etc..

MB2-712 - Configure CRM - Business and Document Management

This is the on going post in a series I wanted to create for the MB2-712 certification, while preparing for the same.

Business Management:

Tuesday, September 26, 2017

MB2-712 - Configure CRM - CRM Administration

This is the on going post in a series I wanted to create for the MB2-712 certification, while preparing for the same.

The administration area in the settings gives various options including but not limited to: 

  • Auto-Numbering to define how cases and other entities should be assigned unique numbers
    • There are 8 entities in CRM enabled for Auto numbering:
      • Campaigns
      • Quotes
      • Orders
      • Invoices
      • Contracts
      • Cases
      • Articles
      • Knowledge Articles
  • Languages lets you install language packs when working in a multilingual organization
  • Collaboration options like Yammer and social engagement configuration
    • Note: If you enable Yammer you cannot disable it. Yammer replace the CRM out of the box posts/wall functionality permanently.
System setting is also an important option which gives access to a lot of settings which are important for the system behavior. This includes, email processing default currency, enable auto save, Skype integration etc.

Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...

Sunday, September 24, 2017

MB2-712 - Licensing of CRM

This is the on going post in a series I wanted to create for the MB2-712 certification, while preparing for the same.

The concept of these licenses is common between CRM on premise and CRM online.

Essential: this is for light-weight users who only access custom applications. They can work with CRM activities and custom entities but do not interact with system entities found in sales, marketing or service modules.

Basic: this is an entry level license. Each Basic License includes read / write access to CRM activities, contacts, leads, accounts and cases in addition to custom CRM entities and personal dashboards. Basic licenses only provide read only access to sales opportunity records.

Professional: this is the recommend license for sales teams and anyone needing full CRM functionality. It provides full access to sales, service and marketing. Includes additional capabilities such as Unified Service Desk and FieldOne.

Enterprise: this is offers the full range of capabilities provided by the professional license. Also includes access to Microsoft Dynamics Marketing, Parature, and extended social engagement capabilities.

Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...

Friday, September 22, 2017

MB2-712 : Overview and Architecture of CRM

This is the on going post in a series I wanted to create for the MB2-712 certification, while preparing for the same.

As mentioned in previous posts, the customization and configuration certification seems to be one that developers tend to target, however it is also a useful for CRM functional consultants and Business Analysts.
I will continue to post more as i go.

CRM is built around the three core modules of sales, marketing and service. CRM really is about managing interactions with customers in order to better serve them. This might include following up on leads, progressing sales opportunities. Or it might be extended into servicing the customer by using cases to resolve the multitude of problems they might face or escalate to whoever need to be. 

CRM is built on the Microsoft XRM framework. This framework can be used to extend CRM beyond its out of the box sales, service and marketing modules. It lets you extend CRM but maintains core components for handling security, workflows, reporting etc. So regardless of how you extend CRM the core concepts of how the entities are created, their relationship to each other and how CRM is configured remains the same.

CRM Architecture:


Deployment options include CRM online and On-premise.It is important to understand that an on premise deployment requires an architecture that can support it. That means several technologies come into including SQL Server, SQL reporting services, Internet Information Services (IIS), Active Directory, Active Directory Federation Services (ADFS) Microsoft SharePoint, Microsoft Exchange and Azure. Some of these components are optional for on-premise, whereas some like SQLServer are prerequisites.




Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...

Thursday, September 21, 2017

Dynamically update field with value of correct data type in CRM Plugin

To continue, follow other two posts related to update fields as linked below using CRM Plugin,

Update field with value of correct data type in CRM Plugin

Update Lookup field from CRM Plugin

This will be extension/replacement for the same to make it dynamics to work with any data type.

In this post, we will use Entity metadata to determine the Data type of the field:

"serviceObject" : Service Object
"entityName" : Entity Schema Name
"fieldName" : Field Schema Name
"newValue" : New value for the field

public object getDataTypeSpecificValue(IOrganizationService serviceObject, string entityName, string fieldName, string newValue)
        {
            object returnValue = "";

            //Entity Request
            RetrieveEntityRequest entityRequest = new RetrieveEntityRequest();
            entityRequest.EntityFilters = EntityFilters.All;
            entityRequest.LogicalName = entityName;

            //Entity Response
            RetrieveEntityResponse entityResponse = (RetrieveEntityResponse)serviceObject.Execute(entityRequest);

            //Entity Metadata
            EntityMetadata entityMetadata = entityResponse.EntityMetadata;

            foreach (var item in entityMetadata.Attributes)
            {
                if (item.LogicalName.ToString().Equals(fieldName))
                {
                    switch (item.AttributeType.Value.ToString())
                    {
                        case "Money":
                            returnValue = new Money(Convert.ToDecimal(newValue));
                            break;
                        case "Decimal":
                            returnValue = Convert.ToDecimal(newValue);
                            break;
                        case "Boolean":
                            returnValue = Convert.ToBoolean(newValue);
                            break;
                        case "Integer":
                            returnValue = Convert.ToInt32(newValue);
                            break;
                        case "Picklist":
                            returnValue = new OptionSetValue(Convert.ToInt32(newValue));
                            break;
                        default:
                            break;
                    }
                }
            }
            return returnValue;
        }

You can add more datatype cases as needed. this is just an example of how you can do this and then you can manage to use this for your specific case.

Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...

Thursday, September 14, 2017

Update field with value of correct data type in CRM Plugin

I have recently came across a situation where need to update a field with correct datatype in my CRM Plugin.

Example:
Entity entity = new Entity();
entity = service.Retrieve("new_entityname", new Guid(guid), new ColumnSet(true));
This line could be one of options later in this post:
service.Update(entity);

Where,
guid = guid of the Entity
new_fieldName = schema name of field
new_entityname = schema name of Entity
newValue = string value of the field

The 3rd line in above example could be one of below depending on data type, or you can add a switch statement to work with all.

Money:
entity["new_fieldName"] = new Money(Convert.ToDecimal(newValue));

Decimal:
entity["new_fieldName"] = Convert.ToDecimal(newValue);

Boolean:
entity["new_fieldName"] = Convert.ToBoolean(newValue);

String:
entity["new_fieldName"] = newValue;

Integer:
entity["new_fieldName"] = Convert.ToInt32(newValue);

Picklist:
entity["new_fieldName"] = new OptionSetValue(Convert.ToInt32(newValue));

Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...


Tuesday, September 12, 2017

Update Lookup field from CRM Plugin

I have recently came across a situation where need to update a lookup field in my CRM Plugin.

I had found two ways, kind of similar, which will does the things.

For CRM Lookup field, when accessing from Plugin, is a Entity Reference so need to create an object of that with guid and update the entity with that object will does the trick.

Example:1:

Entity entity = new Entity();
entity = service.Retrieve("new_entityname", new Guid(guid), new ColumnSet(true));
entity["new_fieldName"] = new EntityReference("new_status", statusId);
service.Update(entity);

Example:2:

Entity entity = new Entity("new_entityname",guid);
entity["new_fieldName"] = new EntityReference("new_status", statusId);
service.Update(entity);

Where,
guid = guid of the Entity
new_fieldName = schema name of field
new_entityname = schema name of Entity
new_status = schema name of  lookup field
statusId = guid of the lookup field record

Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...

Friday, September 8, 2017

Deprecation of Dynamics 365 for Outlook

Microsoft recently announced that Dynamics 365 for Outlook will be deprecated with the July 2017 update for Dynamics 365. This means the feature will be removed from future major releases.

The Outlook add-in will continue to work and is fully supported until it is officially removed. However, no new functionality will be invested in the add-in.

After removal, the Outlook add-in will no longer work. The add-in is deprecated with the upcoming July 2017 update for Dynamics 365 (online), which is a major release with version 9.0

The add-in will be removed with version 10.0, which will be the first major release after the July 2017 release of version 9. The removal applies for versions 10.0 and all after.

Microsoft will continue to support the add-in for versions earlier than 10.0 until the Dynamics 365 version itself is no longer supported.

Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...


Tuesday, September 5, 2017

Dynamics CRM Workflows: Difference between wait condition and Process timeout

Wait Condition

A Wait Condition tells the workflow to wait until some specific action has occurred, such as a field changing or updating to a specific value.

This is useful for situations in which you need to wait for something to be done, rather than wait a specific amount of time.

You can add a Wait Condition to a workflow by selecting Add Step > Wait Condition > add condition check here.

For example, if you want trigger something when status of the application change or similar action which needs user input, then you should be able to use wait condition.

Process Timeout

A Process Timeout tells the workflow to wait for a specific amount of time or until a specific date.

This is useful for situations in which you need to wait for a specific amount of time.

You can include a Process Timeout in a workflow by selecting Add Step > Wait Condition > Select timeout.

For example, you want to send an automated email after 2 days of the registration to remind to update all the contact information, then you can use timeout.

Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...


Wednesday, August 30, 2017

Activate/Deactivate Entity in Dynamics CRM without Plugin or Javascript

Hello readers!

Recently i came across an issue where i need to activate/deactivate the record based on some conditions.

I did bit of search on web to see if there is any simple way except writing JavaScript or Plugin and came up with nothing.

I tried doing by Business rule to change the status to "Inactive" however that doesn't actually deactivate the record, it just change the status of the record to "Inactive".

Then i tried creating a Workflow, first to run as a background process, which we usually do, and that kind of resolve the issue, but not as needed.

I came as a following solution after all of this:

  • Add a new Process as a Workflow
  • Make sure to add that as an on demand rather then run in background, i will explain the reason later in this post.
  • Make this to run on change of specific field/as needed for your business requirement.
  • Then add your condition to check before you activate/deactivate the record
  • then add update record step where you change the "Status" field to "Inactive".
  • Make sure to save and activate the workflow
Now, the reason i ask to create this as on demand rather then run in background is because, if you select to run in background, it is possible that while the workflow is running in background, someone can change the field on the record before it actually gets deactivated.

Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...


Friday, August 11, 2017

Microsoft Dynamics CRM 2016 / Microsoft Dynamics 365 - Updates and Downloads

Microsoft Dynamics CRM 2016 / Microsoft Dynamics 365 - Updates and Download URL's are available as below:

CRM 2016 / Dynamics 365 Update # Release date – Microsoft Update Download URL Build number
0.1 3/14/2016 Download 8.0.1.79
1.0 6/24/2016 Download 8.1.0.359
1.0 Outlook Client re-release 12/2/2016 Download 8.1.0.371 packages for Outlook Client (32-and 64-bit) ONLY re-released
Microsoft Dynamics CRM 2016 Service Pack 1.1 (on-premises NA Download 8.1.1.1005
2.0 (December 2016 Update for Dynamics 365) 3/28/2017 Download 8.2.0.749
Microsoft Dynamics 365 (on-premises) Update 2.1 6/15/2017 Download 8.2.1.176
Bing Maps AJAX Upgrade for Dynamics 365 NA Download 8.2.1.342 - only Server package available

Questions/comments/suggestions? please put it in comments below post for further discussion!!!

Follow By Email for more updates directly into your inbox...