Scenario Overview

A business that is managing construction Opportunities has many dates which specify key milestone dates for managing a bid. They have several active bids at one time and each bid could be at different stages.

They want to be able to create a view which shows the open Opportunities by the next milestone due and show what that milestone is. 

For this example, the milestone date fields are set up on the Opportunity as:

  • Pre-Bid Meeting
  • Schematic Design
  • Design Development
  • Construction Document
  • Bid Date

Note : You will need to create the following fields for this example:

new_prebidmeeting, new_schematicdesign, new_designdevelopment, new_constructiondocument, new_biddate, new_nextmilestone and new_nextmilestonedate

North52 Decision Suite Solution

The North52 Decision Suite solution works like this:

  • A daily Schedule is set up on the Opportunity entity to run a workflow for each open Opportunity
  • The workflow calls a Process Genie formula which uses the MinOfDatesWithAnchor function to calculate the nearest milestone date and populates a field called Next Milestone Date
  • The formula also uses the FindMatchParameter function to return the name of the field which matches the date returned for the Next Milestone Date
  • A view can now be easily created to show which milestones are approaching for open Opportunities                                                                     

North52 Decision Suite Steps  

The following set of steps outline how to create this Formula:

  • Create a new formula of type Process Genie
  • Set the Mode to 'ServerSide'
  • Set Display Format to 'String'
  • Set the Source Entity to 'Opportunity'
  • Go to the Formula editor
  • Copy and paste the formula below
  • Click Save
  • Copy the Short Code in the top right hand corner for later


Smartflow (

  SetVar('ClosestDate' , 
        [opportunity.new_designdevelopment] ,
        [opportunity.new_biddate]) ) ,

  SetVar ('UpcomingMilestone', 
                          [opportunity.new_designdevelopment] ,
                          [opportunity.new_biddate]))  ,

  SetVar ('UpcomingMilestone', GetAttributeDisplayName(GetVar('UpcomingMilestone')) ),

          SetAttribute('new_nextmilestonedate', GetVar('ClosestDate') ), 
          SetAttribute('new_nextmilestone', GetVar('UpcomingMilestone') )



N52 Workflow Setup

The following set of steps outline how to create this workflow:

  • Go to Settings Processes 
  • Click New
  • Give the process a name
  • For Category , select Workflow
  • For Entity , select Opportunity 
  • Untick Record is Created
  • Tick As an on-demand process
  • Click Add Step > North52 > N52 Process Genie
  • Click Set Properties
  • Past your shortcode formula into Formula Shortcode 
  • Click Save and Close
  • Click Save
  • Click Activate

N52 Schedule

The following set of steps outline how to create this N52 Schedule:

  • Go to Settings > N52 Schedule
  • Click + NEW
  • Give it a Name
  • Set the Frequency to Weekly
  • Leave the ScheduleType as Workflow
  • In Workflow, search for the workflow you created above
  • Choose the Next Run Datetime
  • In the Fetch Xml Query, paste in the below. 
  • Click Save

Fetch Xml

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="opportunity">
    <attribute name="name" />
    <attribute name="customerid" />
    <attribute name="estimatedvalue" />
    <attribute name="statuscode" />
    <attribute name="opportunityid" />
    <order attribute="name" descending="false" />
    <filter type="and">
      <condition attribute="statecode" operator="eq" value="0" />

Now you ready to test

Did you know?

North52 TestShield benefits Dynamics 365 apps testing

Benefits of using North52 TestShield's automated testing framework for Dynamics 365 apps:

1. Accelerate Automated Testing
  • Enables continuous testing of Dynamics 365 apps with speed and agility
  • No-code test designer enables non-developers to build tests
2. Improves Test Coverage
  • Better ROI by a reduction in UAT defects and production defects
  • Defect prevention at early stages of the project life cycle
3. Fix Defects Faster
  • Get fast feedback on the impact of process changes
  • Repeatable automated test execution simplifies problem solving
  • Quickly resolves failing conditions from complex end-to-end tests
4. Faster Delivery and Higher Quality
  • Broader test coverage and fewer defects released to production
  • Reduced risk and faster release cycles through earlier and automated testing
  • Lower costs related to complex test environment management
  • Reduces time to market by validating builds faster
5. Increased Testing Productivity
  • Assist in the generation of automated test scripts that are repeatable and extensible
  • Detailed analysis of test trace logs enable easy detection of errors to be fixed
  • Automation can perform regression tests which ensures system stability while enhancing the application continuously
  • No manual operation increases efficiency and quality of testing

Learn more about TestShield