Saturday, November 9, 2019

Business Process Flow - Javascript:



Business Process Flow - Javascript:

In Dynamics CRM , Lead or Opportunity has OOB business process flow from which sales person or Manager can see  the sales stage. Basically it is indication of sales journey based on the stage in BPF respective sales team perform the action accordingly. In developer point of view , they would have need to find the BPF id , name or Stage and steps details to access them programmatically either client side script (javascript ) or server side (c#). Below Javascript is to get these details.

// *** Collapsed or Expanded?
Xrm.Page.ui.process.setDisplayState("collapsed"); 
// ** Now you see it
Xrm.Page.ui.process.setVisible(true); // ** Or false

// **getActiveProcess
var activeProcess = Xrm.Page.data.process.getActiveProcess();

alert("ID of the process: " + activeProcess.getId());
alert("Name of the process: " + activeProcess.getName());

// ** getStages
var StageCollection = activeProcess.getStages();

StageCollection.forEach(function (stage, n) {
  //stage index
  var stageIndex = n;
  alert("Stage Index: " + stageIndex);

  //stage category number
  var stageCategory = stage.getCategory().getValue();
  alert("Stage Category: " + stageCategory);

  //stage id
  var stageId = stage.getId();
  alert("Stage Id:" + stageId);

  //stage entity name
  var stageEntityName = stage.getEntityName();
  alert("Stage Entity ID: " + stageEntityName);

  //stage name
  var stageName = stage.getName();
  alert("Stage Name :" + stageName);

  //stage status
  var stageStatus = stage.getStatus();
  alert("Stage Status: " + stageStatus);

  //steps collections
  var stepsCollection = stage.getSteps();

  //Number of steps
  var stepsLength = stepsCollection.getLength();
  alert("Steps Length: " + stepsLength);

  stepsCollection.forEach(function (step, i) {

    //step name
    var stepName = step.getName();
    alert("stepName:" + stepName);

    //step attribute
    var stepAttribute = step.getAttribute();
    alert("stepAttribute:" + stepAttribute);

    //step is required
    var stepIsRequired = step.isRequired();
    alert("stepIsRequired:" + stepIsRequired);
  });

});

// ** Now you don't see it!
Xrm.Page.ui.process.setVisible(false); // ** Or true

No comments:

Post a Comment