Friday, February 17, 2017

Web API Retrieve Single Record

Today I am showing how to select an entity record by passing Guid and get back desired fields.
I am running this code on 'Contact' entity and retrieving two fields. I have to remove starting and ending brackets as Web API is not accepting while processing Guids
I am using below javascript code in webresource. For application outside CRM in separate application, u have to first authenticate using Azure / AD depending upon deployment (Online / On-Premises). Refer to this link for this feature.


Code Start:


function MySelectUsingWebAPI() {



var id = Xrm.Page.data.entity.getId();



             id = id.replace("{", "");

            id = id.replace("}", "");



Friday, January 29, 2016

Value Rule - Ribbon Workbench CRM 2015

Tested on: CRM 2015

Below is the procedure to apply 'Value Rule' using Ribbon Workbench.

Situation:
Business Process is to hide Post button on invoice form page, when status reason is Posted.

Solution:

1) I have added a new Display Rule, add a step Value Rule and add display rule to Post button command, as shown in below snapshot.




















2) Now set Value Rule Properties as shown in below snapshot

Wednesday, January 27, 2016

Add Record for Many to Many Relation


Tested on: CRM 2015

In this problem, I want to add invigilators for the Exam Activity. There is Many to Many relation between Activity & Invigilators.

Here is the snapshot of relationship in CRM 2015




                      
  AssociateRequest request = new AssociateRequest{
             

Friday, November 6, 2015

Lookup Filter Through XRM


In below example, I have implemented custom filter on Student Course Lookup. This filter is forcing the student courses to show for the given Student Id. Student Id is mapped as single line of text field so default filter functionality can not be implemented for Student Course Lookup.

Student Course Lookup Before Filter














Student Course Lookup After Filter 














Xrm Code

Wednesday, September 16, 2015

Entity Home - Bind Javascript function on Custom Button

This technique work to bind java script function in entity home page.

https://rajeevpentyala.wordpress.com/2012/05/23/loading-dependent-jscript-libraries-in-ribbon-buttons-execution-crm-2011/

The solution is simple. We can add all the required libraries to <Actions> node like below
 <JavaScriptFunction Library=”$webresource:common” FunctionName=”isNaN” />
Note – Since <JavaScriptFunction> requires a function name, pass “isNaN”.
Now my <Actions> node look like below
<Actions>
<JavaScriptFunction Library=”$webresource:account_ribbon” FunctionName=”sayHello”>
</JavaScriptFunction>
<JavaScriptFunction Library=”$webresource:common” FunctionName=”isNaN”>
</JavaScriptFunction>
</Actions>



#AW CRM Consultant Maison Consulting & Solutions

Load Multiple JavaScript Libraries

Loading dependent jscript libraries in ribbon button’s execution CRM 2011





<Actions>
<JavaScriptFunction Library=”$webresource:account_ribbon” FunctionName=”sayHello”>
</JavaScriptFunction>
<JavaScriptFunction Library=”$webresource:common” FunctionName=”isNaN”>
</JavaScriptFunction>
</Actions>




#AW CRM Consultant Maison Consulting & Solutions

Microsoft Dynamics CRM 2013 – Calling Custom Actions Using JavaScript

http://www.plusconsulting.com/Blogs/Lists/Posts/Post.aspx?ID=56



#AW CRM Consultant Maison Consulting & Solutions

Improving CRM JavaScript Code with an Xrm.Page Common Library

JavaScript references in Microsoft Dynamics CRM 2013

Microsoft CRM syntax for common jscript requirements



JavaScript Reference for Microsoft Dynamics CRM 2011

2013







#AW CRM Consultant Maison Consulting & Solutions

Tuesday, September 15, 2015

IFrame Set Src


IFrame src can be set on Form Load event, but this technique not work all time as On Load can be complete before loading IFrame. In this case, IFrame Url set to its default value.
The work around is to set IFrame Src in IFrame Event Handler on 'readystatechange' event.

So, add webresource library on form and register the function on IFrame event handler to set the Src.

In below code, I have register IFrame function on IFrame event handler. Now my IFrame Url set successfully.

Wednesday, September 9, 2015

Disable Pending Email Warning Message


CRM show pending email warnings when there are pending emails. For some reason you have created an email message, tried to send it but it never got sent and is stuck in pending. To get rid of these annoying warnings, I have found two methods mentioned below.













Method 1) Using Advance Find
Do an advanced find and search for email messages where you are the owner and the status is Pending Send.

Friday, August 21, 2015

CRM 2013 Quick Create Form Mapping Bug


There is bug in Contact Quick Create Form on lead form. Once contact form is opened without first selecting the Existing Account, it no more map Parent Account on contact form.






This issue is reported in several blogs including Microsoft official community.

https://community.dynamics.com/crm/f/117/t/143653



#AW
Dynamics CRM Consultant

Saturday, August 8, 2015

Allow Posts in Social Pane CRM 2013


If Posts tab is not showing in Social Pane, then go to Settings-> Post Configurations tab, as shown in snap shot.



select relevant entity. Now activate/publish entity.This will activate the Posts tab in Social Pane on Entity Form.





If Post Configuration tab is not showing in setings area, then you have to edit the sitemap of CRM. This usually happen due to up-gradation from CRM 2011 to CRM 2013.


Ali Wadood
 Dynamics CRM Consultant Maison Consulting & Solutions

Friday, August 7, 2015

Hide Business Process Flow Based on Condition


Requirement: Business Process require to hide Business Process Flow on Opportunity Form if Opportunity Type is Consumer. In below Xrm code I have apply this business process requirement.



Opportunity is not Consumer:


Opportunity is Consumer:






Xrm Code

-- Code on Form Load

Hiding BPF if Opportunity Type is Consumer Opportunity i.e equal to 4


Wednesday, July 15, 2015

An Idea!

Consultancy
Presales
Sales 



#AW CRM Consultant Maison Consulting & Solutions

Monday, July 13, 2015

Implement Business Logic on Lead Disqualify

Whenever you disqualify the lead it save the Lead form, so you can have  JS registered on save event to check if user initiated action to disqualify lead
In this case you need to check for savemode() equal to 15 on save event of lead

In the save event you can use the execution context object getEventArgs method to retrieve an object that contains methods you can use to manage the save event.


execObj.getEventArgs().getSaveMode()

EntityEvent ModeValue
All
Save
1
All
Save and Close
2
All
Save and New
59
All
AutoSave
70
Activities
Save as Completed
58
All
Deactivate
5
All
Reactivate
6
User or Team owned entities
Assign
47
Email (E-mail)
Send
7
Lead
Qualify
16
Lead
Disqualify
15

Wednesday, July 8, 2015

Prevent Delete on Desired Condition - CRM 2013 Plugin


Scenario: XYZ Pvt Ltd, wants to implement business logic of Delete prevention if value of Is Delete Field is No on Opportunity Entity. CRM 2013 will prevent deltetion of record if value of Is Delete Field is set to No and vice versa. 


Work Around: We have added a custom field on Opportunity Entity with Display name 'Is Delete' & Schema Name 'IsDelete'.

Solution: Below is the CRM 2013  Prevent Delete Plugin code.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Crm.Sdk.Messages;


namespace PreventAccountDelete
{
    public class Class1:IPlugin
    {

Monday, July 6, 2015

XRM - Move to Next Stage in Business Process Flow

Here is the XRM code to move to next stage in Business Process Flow on desired condition. Add this code on ribbon button. If you want to add this code on Form save, then implement your logic of 'OnSave' accordingly.
Below code is using Opportunity entity. Other desired entities can be passed in successCallback function. 





function MoveNextStage(stageToMove) {

Thursday, July 2, 2015

Add Dynamic Ribbon Menu Buttons

1) Create Ribbon Menu Buttons using (Ribbon Workbench)

2) Add Enable Rules in Ribbon Workbench

  • For each Rule Add a Custom Rule and Select Custom Javascript Rule
  • Now mention your function name and web-resource.

3) Connect Rules with Commands
4) Add the functions in Web-Resource as mentioned in Specified Rules in Step 2.
5) For Enable Button Return True and to Disable the Button, Return False.














#AW Customization Consultant Maison Consulting & Solutions

Asp.Net MVC (5) - Exception Filter - HandleError

Applicable on Asp.Net MVC5 HandleError Filter This belongs to Exception Filters category (Authentication Filter, Authoriz...