Search This Blog

Wednesday, June 24, 2015

Run Workflow on Button Click without code in CRM 2013

Button on Home Page:


Click on Button and Add a Command.
Add a JavaScript Command and set the following properties:

Function Name: Mscrm.GridRibbonActions.launchOnDemandWorkflow
Library: dev1_/RWB2013/Silverlight.js (for CRM 2013)
Parameters:
1: Type = Crm Parameter, Value = SelectedControl
2: Type = Crm Parameter, Value = SelectedControlSelectedItemReferences
3: Type = Crm Parameter, Value = SelectedEntityTypeCode
4: Type = String, Value = Workflow GUID

 Button on Form:

Click on Button and Add a Command.
Add a JavaScript Command and set the following properties:

Function Name: Mscrm.FormAction.launchOnDemandWorkflowForm
Liibrary: /_forms/form.js
Parameters:
1: Type = Crm Parameter, Value = PrimaryEntityTypeCode
2: Type = String, Value = Workflow GUID

Saturday, June 20, 2015

Change status reason using javascript and XrmSvcTool CRM 2013

function ChangeStatusReason() {
    //Set the stage to send enquiry letter
    XrmSvcToolkit.setState({
        id: Xrm.Page.data.entity.getId(),//record GUID
        entityName: "cms_applicant",//entity name
        stateCode: 0,//status code
        statusCode: 175650003, //status reason code
        async: false,
    });
    //Save and Reload form
    Xrm.Page.data.refresh(true).then(null, null);
}

Thursday, June 4, 2015

Retrieve Multiple records using XrmSvcTool in CRM 2013 javascript RetrieveMultiple function

function Calculations()// to get marks of all student courses marks related to student
{
var stdId = Xrm.Page.data.entity.getId();
if (stdId != null)
{
        var EntityNameP, ArrayNamesP, ArrayValuesP;
        ArrayValuesP = stdId;
           var _query = "?$filter=cms_Student/Id eq (Guid'"+stdId+"')";
        var obj = RecRetrieveMultiple(_query, "cms_studentcourse");
        var entityNodesP = obj;
               var TotalPoints = 0;
        for (var i = 0; i < entityNodesP.length; i++)
        {
            var entityNode = entityNodesP[i];
            var Node = entityNode.cms_ObtainedMarks;//get simple field
             var level = entityNode.cms_level.Value;
            var courselevel = entityNode.cms_CourseId.Name;//get lookup value from child entity
            var courselevel1 = entityNode.cms_CourseId.Id;//get lookup id from child entity
             var ResultNode = (Node == null) ? 0 :  parseFloat(Node);
            TotalPoints = parseFloat(TotalPoints) + parseFloat(ResultNode);//sum of all student courses marks
        }       
    }
}
function RecRetrieveMultiple(_query, _entityname){

var contacts;
XrmSvcToolkit.retrieveMultiple({
    entityName: _entityname,
    async: false,
    odataQuery: _query,
    successCallback: function (result) {
        contacts = result;
    },
    errorCallback: function (error) {
       alert("Error");
    }
});
var _result = contacts;
return _result;
}

Wednesday, June 3, 2015

Retrieve and set Lookup value from related entity using XrmSvcToolkit in CRM 2013

function GetDetails()
{
    var EntityName, EntityId, LookupFieldObject;
    //LookupFieldObject = Xrm.Page.data.entity.attributes.get('new_studentid');
    LookupFieldObject = Xrm.Page.data.entity.attributes.get('cms_batch');
    // If lookup field has value then the code will only run
    if (LookupFieldObject.getValue() != null)
    {
        //Fetch and place Entity Id (GUID) and Name (String) form lookup field into local variables
        EntityId = LookupFieldObject.getValue()[0].id;
        //EntityName = LookupFieldObject.getValue()[0].entityType;   
            var obj = RecRetrieve(EntityId, "cms_batch");
        // In retrieved XML document check if it has accountnumber attribute
   //below is code to retrieve and set lookup        
         if (obj.cms_MeritCriteria.Id != null )
        {
              var lookupData = new Array();
            //Create an Object add to the array.           
           var lookupItem= new Object();               
           lookupItem.id = obj.cms_MeritCriteria.Id;
            lookupItem.typename = 'cms_meritcriteria';
           lookupItem.name = obj.cms_MeritCriteria.Name;
           lookupData[0] = lookupItem;          
            // Set the value of the lookup field to the value of the array.
            Xrm.Page.getAttribute("cms_meritcriteria").setValue(lookupData);   
            Xrm.Page.getAttribute("cms_meritcriteria").setSubmitMode("always");           
        }
        else
        {
              Xrm.Page.data.entity.attributes.get('cms_meritcriteria').setValue(null);
        }
      
         
    }
}

function RecRetrieve(_id, _entityname)
 {

 var _result;
    XrmSvcToolkit.retrieve({
        entityName: _entityname,//"Contact",
        id: _id,//, 1FED44D1-AE68-4A41-BD2B-F13ACAC4ACFA//
        async: false,
        successCallback: function (result)
        {
            _result = result;
        },
        errorCallback: function (error)
        {
           alert("Error");

        }
    });

    return _result;
}

Retrieve Optionset Value from related entity using XrmSvxToolkit in CRM 2013

function GetDetails()
{
    var EntityName, EntityId, LookupFieldObject;
    //LookupFieldObject = Xrm.Page.data.entity.attributes.get('new_studentid');
    LookupFieldObject = Xrm.Page.data.entity.attributes.get('cms_batch');
    // If lookup field has value then the code will only run
    if (LookupFieldObject.getValue() != null)
    {
        //Fetch and place Entity Id (GUID) and Name (String) form lookup field into local variables
        EntityId = LookupFieldObject.getValue()[0].id;
        //EntityName = LookupFieldObject.getValue()[0].entityType;   
            var obj = RecRetrieve(EntityId, "cms_batch");
        // In retrieved XML document check if it has accountnumber attribute
       
        var abc=obj.cms_ProgramLevel.Value;
        if (obj.cms_ProgramLevel != null )
        {
        Xrm.Page.getAttribute("cms_applicanttype").setValue(abc);  
        }
}
}
function RecRetrieve(_id, _entityname)
 {

 var _result;
    XrmSvcToolkit.retrieve({
        entityName: _entityname,//"Contact",
        id: _id,//, 1FED44D1-AE68-4A41-BD2B-F13ACAC4ACFA//
        async: false,
        successCallback: function (result)
        {
            _result = result;
        },
        errorCallback: function (error)
        {
           alert("Error");

        }
    });

    return _result;
}