1 . What r the different fields in SAP where we can get trainning.i want to know abt CRM gv me full info on that?

Answer :

SAP was founded in 1972 as Systemanalyse und Programmentwicklung by five former IBM engineers in Mannheim, Germany (Dietmar Hopp, Hasso Plattner, Klaus Tschira, Claus Wellenreuther and Hans-Werner Hector). The acronym was later changed to stand for Systeme, Anwendungen und Produkte in der Datenverarbeitung ("Systems, Applications And Products in Data Processing"), in 1976 SAP GmbH was founded; the next year its headquarters was moved to Walldorf and since the 2005 annual general meeting the company's official name is just SAP AG. Henning Kagermann became the sole CEO of SAP in 2003. 


SAP is the largest software company in Europe and the third largest in the world[citation needed]. It ranks after Microsoft and IBM in terms of market capitalization. SAP is also the largest business application and Enterprise Resource Planning (ERP) solution and software provider in terms of revenue. 

Oracle Corporation, SAP's major competitor in the USA, filed on 22nd March 2007 a case against SAP for malpractice and unfair competition in the Californian courts. The complaint alleged that a Texas subsidiary, SAP TN (formerly TomorrowNow before purchase by SAP), which provides discount support for legacy Oracle product lines, used the accounts of former Oracle customers to systematically download patches and support documents from Oracle's website and appropriating them for SAP's use. Some ERP market analysts suggest the suit could be part of a strategy by Oracle to decrease SAP's presence in the software maintenance market, in which Oracle and SAP compete (the latter through its subsidiary TomorrowNow). 


SAP's products focus on Enterprise resource planning (ERP), which it helped to pioneer. The company's main product is MySAP ERP. The name of its predecessor, SAP R/3 gives a clue to its functionality: the "R" stands for realtime data processing and the number 3 relates to a 3-tier architecture: database, application server and client (SAPgui). R/2, which ran on a Mainframe architecture, was the first SAP version. 

Other major product offerings include Advanced Planner and Optimizer (APO), Business Information Warehouse (BW), Customer Relationship Management (CRM), Supply Chain Management (SCM), Supplier Relationship Management (SRM), Human Resource Management Systems (HRMS), Product Lifecycle Management (PLM), Exchange Infrastructure (XI), Enterprise Portal (EP) and SAP Knowledge Warehouse (KW). 

The APO name has been retired and rolled into SCM. The BW name (Business Warehouse) has now been rolled into the SAP NetWeaver BI (Business Intelligence) suite and functions as the reporting module. 

The company also offers a new technology platform, named SAP NetWeaver. While its original products are typically used by Fortune 500 companies, SAP is now also actively targeting small and medium sized enterprises (SME) with its SAP Business One and SAP All-in-One. 

According to SAP AG, there are over 100,800 SAP installations serving more than 38,000 companies. SAP products are used by over 12 million people in more than 120 countries. 

SAP holds a partnership with Hewlett-Packard. This partnership will expand around new services linked to NetWeaver and Enterprise SOA (service-oriented architecture). The software infrastructure for business applications developed by SAP is to be upgraded by Hewlett-Packard. One of the services to be upgraded is the Discovery System which was launched by SAP earlier this year. Among other services there are assessment, government and architecture for R3. 

Customer Relationship Management (CRM) 

Aspects of CRM 
There are four aspects of CRM, each of which can be implemented in isolation: 

Active CRM: A centralized database for storing data, which can be used to automate business processes and common tasks. 
Operational CRM: The automation or support of customer processes involving sales or service representatives 
Collaborative CRM: Direct communication with customers not involving sales or service representatives (“self service”) 
Analytical CRM: The analysis of customer data for a broad range of purposes 

Operational CRM 

Operational CRM provides support to "front office" business processes, including sales, marketing and service. Each interaction with a customer is generally added to a customer's contact history, and staff can retrieve information on customers from the database as necessary. 

Focus on customers value is key to a successfull CRM strategy. Different customers have to be treated differently. Variables like customers ranking, actual value and potential value are strategy drivers. 

Collaborative CRM 

Collaborative CRM covers the direct interaction with customers. This can include a variety of channels, such as internet, email, automated phone/ interactive voice response (IVR). It can generally be equated with “self service”. 

The objectives of Collaborative CRM can be broad, including cost reduction and service improvements. Driven by authors from the Harvard Business School (Kracklauer/Mills/Seifert), Collaborative CRM seems to be the new paradigm to succeed the leading Efficient Consumer Response and Category Management concept in the industry/trade relationship. Many organizations are searching for new ways to use customer intimacy to gain and retain a competitive advantage. Collaborative CRM provides a comprehensive view of the customer, with various departments pooling customer data from different sales and communication channels. 

Collaborative CRM also includes Partner Relationship Management (PRM) which enables organizations to manage their relationships with partners (consultants, resellers and distributors), and potentially the customers of those partners. 

Analytical CRM 

Analytical CRM analyzes customer data for a variety of purposes including: design and execution of targeted marketing campaigns to optimize marketing effectiveness design and execution of specific customer campaigns, including customer acquisition, cross-selling, up-selling, retention analysis of customer behavior to aid product and service decision making (eg pricing, new product development, etc) management decisions, e.g. financial forecasting and customer profitability analysis risk assessment and fraud detular for credit card transactions 
Analytical CRM generally makes heavy use of Predictive analytics. 


Several commercial CRM software packages are available which vary in their approach to CRM. However, CRM is not just a technology, but rather a holistic approach to an organization's philosophy in dealing with its customers. This includes policies and processes, front-of-house customer service, employee training, marketing, systems and information management. CRM therefore also needs to consider broader organizational requirements. 

A company's CRM strategy is dependent on both the company’s current situation and the needs and expectations of its customers. 

Technology considerations 

The technology requirements of a CRM strategy are very complex and far reaching. The basic building blocks include: 

A database to store customer information. 

This can be a CRM specific database or an enterprise data warehouse. 
Operational CRM requires customer agent support software. 
Collaborative CRM requires customer interaction systems, eg an interactive website, automated phone systems etc. 
Analytical CRM requires statistical analysis software, as well as software that manages any specific marketing campaigns. 
Support CRM systems require interactive chat software to provide live help and support to web site visitors. 


While there are numerous reports of "failed" implementations of various types of CRM projects, these are often the result of unrealistic high expectations and exaggerated claims by CRM vendors. 

Privacy and Data Security 

The data gathered as part of CRM must consider customer privacy and data security. Customers want the assurance that their data is not shared with 3rd parties without their consent and not accessed illegally by 3rd parties. 

Customers also want their data used by companies to provide a benefit for them. For instance, an increase in unsolicited telemarketing calls is generally resented by customers while a small number of relevant offers is generally appreciated. 

Customer relationship management software 

Customer relationship management software is defined as business management and automation of the front-office divisions of an organization. CRM software is essentially meant to address the needs of Marketing, Sales and Distribution, and Customer Service and Support divisions within an organization and allow the three to share data on prospects, customers, partners, competitors and employees. The purpose of CRM software is to manage the customer through the entire lifecycle, i.e. from prospect to qualified opportunity to order. 

CRM software automates many of the needs of Marketing, Sales and Support users, such as Telephony, or the ability to conduct phone calls and manage call data, and tools to capture, share and manage automated alerts on lead data as it passes through the sales pipeline. CRM software provides a standard framework for pushing leads through a sales pipeline and managing it amongst many stakeholders in real time, in order to provide better customer relations and grow revenues by creating more sales, and losing fewer customers. 

CRM software helps organizations achieve their customer relations goals by measuring key performance indicators collected by the CRM software about customer lifecycle behaviour. Benefits include isolating those marketing campaigns that drove the most and best quality leads, improving internal efficiency, complete customer histories and the ability to provide appropriate support and consequently retain customers

Leave a Comment

1 . Compiling single C# project to multiple DLLs?

Answer :

I don't think you can do this directly in Visual Studio, but, if you manually invoke the compiler in a script or makefile, it should be pretty straightforward.

For example, csc /t:library /out:MyCodeLibrary.dll simpleType.cs compiles simpleType.cs to MyCodeLibrary.dll.

You could run this as a post build step, to generate the assemblies you want. However, just be careful that whoever is using the project understands what is going on... most developers would expect a single project to produce a single dll.

2 . Start workflow with javascript in Dynamics CRM 2016?

Answer :

Now that we have actions there really isn't a need to start a workflow from javascript anymore. I used to do so using a javascript library that used the SOAP api but the web api actions are much easier to use. And an action is created in the same way as a workflow. To create an action go to create a workflow but instead of choosing workflow from the dropdown select action. You will end up with a form like this. enter image description hereRemember the unique name and the entity which you will run it against. In this example I'll be using this workflow pictured which runs against a contact record. From javascript I can now issue a POST to


Again this is an action targeting contacts and running the wa_GetContactSyncStatus action, change the values to what you need them to be. Also as a side note this is against a 2016 server anything later will have a different api version for you to use. Consult the developer resources page in your crm instance to figure out what your url for the web api is.

The action will run asynchronously and as long as your javascript request is set to be synchronous as well your request will return when the action is complete.

As another side note if you have your action call another workflow that isn't synchronous it will quite probably return before your asynchronous background workflow does.

3 . CRM 2011 update incident when email arrives?

Answer :

I've just been fighting with this exact same issue and came across this post. I thought I'd post the solution for you (if you still need it) and anyone else who comes across the issue in the future.

Here's the solution I arrived at: - Using the Plugin Registration Tool register a New Image on the appropriate step( Stage = "40", MessageName = "DeliverIncoming") - Set the New Image to be a Post Image - In your plugin fetch the Post Image's entity ID:

Guid emailID = context.PostEntityImages["PostImage"].Id;
Entity emailFromRetrieve = localContext.OrganizationService.Retrieve(
    new Microsoft.Xrm.Sdk.Query.ColumnSet(true));
Email email = emailFromRetrieve.ToEntity<Email>();

if (email.RegardingObjectId == null)

var regardingObject = email.RegardingObjectId;

4 . Multiple Developers + Single Dynamics CRM Instance + Git - How to overcome challenges?

Answer :

I feel this is one those areas where CRM still makes life difficult, and provides only limited tooling and support.

In my experience, its just easiest and most practical for everyone to do all their customistaion and configuration work in CRM, and forgot about 'normal' source control. Having to import and export solution files can be a very slow process which will drive you mad. Editing solution files outside of CRM is a mine field you will want to avoid. When working on a single CRM instance no merging is required, as everyone can immediately see each others changes. In my experience generally this process will just add overhead which can normally be avoided.

Doing an export to source control regularly (e.g. middle of the night) is still sensible so you have a backup if things go wrong.

You can also still source control all your source code normally, e.g. plugin code.

Also the example you noted above involves the developers working on multiple CRM instances (e.g. each developer has their own CRM development instance), not a single CRM instance as you mention.

5 . Error in FetchXML report since Dynamics 365?

Answer :

I don't know of any changes to 365 that should break this. However, what I would do to fix it is create a report using the wizard that uses this same entity. Download that report and check the following:

  • Data Source - Are there any slight differences in Data Source name and/or connection string?
  • Data Set - Are there any subtle differences in the FetchXML from casing to versions etc?

That should point out the problem. If not, and that downloaded report works, either just copy in the attributes etc you need into the new report and go with that instead (it might be some xml within the report itself). Or if your report has nothing on it you could start comparing the raw xml of the 2 reports to see what is different.

6 . CRM 2011 List component for SharePoint - customise column widths?

Answer :

Well you have limited options here. Because you're dealing with multiple domains, you run into cross domain scripting issues ruling out any javascript on the crm form.

The only way that comes to mind is to modify the crmgridpage.aspx page on your sharepoint server to set the width of the columns via javascript. It's totally unsupported though.

7 . C# read timezone from string and convert to local?

Answer :

Save them as universal time:

   DateTime t = DateTime.Parse(str);
   t.ToUniversalTime(); // save this

Then show saved time as local:

   DateTime t = DateTime.Parse(str);
   t.ToLocalTime(); // show this

Always work with universal time, think about local as just a view in mvc.

8 . Cannot receive RemoteExecutionContext messages sent from CRM to Service Bus Queue in Azure Biztalk Service?

Answer :

As it turns out I totally missed to limitation that Azure Biztalk Services cannot receive binary messages - even if you try to PassThrough them and try to serialize them in a custom step.

My solution will be to compose a Xml message to send to Azure Service Bus Queue in a custom Plugin without using Service Endpoint registration provided by MS CRM.

Update 2016 Update 1 will allow to configure the message format and support binary, xml and json formatted messages form the Service Endpoint Registration. See Walkthrough: Configure Microsoft Azure (SAS) for integration with Dynamics CRM for details. Note the differences in the configuration dialog to previous versions.

9 . Debugging into a javascript anonymous function?

Answer :

Older version of IE is pretty lame specially when it comes to debugging AJAX applications. Firebug is the best that I have seen. It lets you replace an existing javascript function with your own. This is what I suggest.

  1. Open the web application in Firefox
  2. Copy sourcecode of existing function
  3. Format it and add the following statement to the function at the place where you want it to stop and inspect the variables.
  4. debugger;

10 . How can I get Microsoft Dynamics 365 to appear in the list of data sources when creating a report in Visual Studio 2017?

Answer :

At the moment VS 2017 is not supported. Here is quote from Dynamics 365 Report Authoring extension software requirements:

Microsoft Visual Studio 2015, Microsoft Visual Studio 2013, Microsoft Visual Studio 2012, or Microsoft Visual Studio 2010.

So the only way out for you is to install VS 2015/2013/2012/2010. Good luck.

11 . Could not load file or assembly 'Microsoft.Xrm.Client?

Answer :

Microsoft.XRM.Client is usually not needed by the plug-in.
It is needed to connect to CRM from an outside application.
Microsoft.XRM.Client has been removed from the SDK since CRM 2016.

Plugins do not automatically resolve dependencies in your project, they have to already be on the server. 

Update for Dynamics CRM 2015
The NuGet package Microsoft.CrmSdk.Extensions contains Microsoft.Xrm.Client.

Update for Dynamics CRM 2016 and Dynamics 365
Microsoft.Xrm.Client is no longer part of the SDK.
The NuGet package Microsoft.CrmSdk.CoreAssemblies contains everything needed for plugin development.

The various parts of the Dynamics CRM SDK are in NuGet.
NuGet is a much better solution than adding Dynamics CRM dlls as project references; especially for source control and team development.

12 . The transaction log for the database is full?

Answer :

To fix this problem, change Recovery Model to Simple then Shrink Files Log

1. Database Properties > Options > Recovery Model > Simple

2. Database Tasks > Shrink > Files > Log


Then check your db log file size at Database Properties > Files > Database Files > Path

To check full sql server log: open Log File Viewer at SSMS > Database > Management > SQL Server Logs > Current

13 . Trying to change owner of account on CRM 4.0 using a plugin?

Answer :

It had been staring directly at my face :P I was entering the wrong ID's at the wrong place. I needed to set the 'assignee.PrincipalId' to the 'ownerGuid' and then set the 'target.EntityId' to the current account id. The new code is as follows:

                TargetOwnedAccount target = new TargetOwnedAccount();

                SecurityPrincipal assignee = new SecurityPrincipal();
                assignee.Type = SecurityPrincipalType.User;
                assignee.PrincipalId = ownerGuid; //this is the GUID I am retrieving from the other lookup field

                target.EntityId = ((Key)entity.Properties["accountid"]).Value;

                AssignRequest assign = new AssignRequest();
                assign.Assignee = assignee;
                assign.Target = target;

                AssignResponse res = (AssignResponse)crmService.Execute(assign);

Cant believe i spent 8 hours yesterday looking at it and then today I realised immediately :P

14 . Dynamics CRM 2011: Managed Solutions or deploying changes from DEV to PRD?

Answer :

I would advise against using solutions in these type of dev-to-testing-to-prod situation.

If you are unsure about this try to remove an entity in your dev environment and publish the change to your production environment.

Solutions are inclusive meaning that CRM doesnt remove fields and entities that where deleted in your solution.

The only way to remove an entity is to uninstall your solution therefore deleting the production data in all entities covered by your solution!

While in theory solutions seem perfect they are only usefull for third party vendors.

The goal of beeing able to rollback by uninstalling your solution is a pipe dream. Consider a data model update that involves data conversion. No magic function will reverse that.

It is a far simpler and reliable to restore your backup.

15 . How to do a LINQ query for count of enitity whose owner == current user?

Answer :

I'm not sure your the data structure of LeadSet but i'd imagine something like:

context.LeadSet.Count(ls => ls.OwnerID == ownerId);

This above pulls the count of all leads where the OwnerId equals your parameter ownerId.

If you want the objects that match, just use .Where in place of .Count