Workflow rule - validation based on opportunity creation date

I need to validate an opportunity workflow rule based on the date the opportunity was created. For example the rule would only be valid if the creation date was before 03/10/2022.

Can anyone advise how/if this can be done?

  • 0

    Not exactly sure what you mean by "Validation".  Therefore this might not be what you need. 

    However, if you want to show or hide a workflow step based on the creation date being before 03/10/2022, then you can do something like this...

    https://www.sagecity.com/sage-global-solutions/sage-crm/b/sage-crm-hints-tips-and-tricks/posts/controlling-workflow-availability

    Hope this helps!

  • 0 in reply to Michele Gaw

    Hi Michele - Sorry I probably wasn't clear in my post. By validation I meant the conditions on the rule, so exactly the kind of thing you mentioned, it's just specifically how to format the date check that I'm unclear about.

    Thanks Slight smile

  • 0 in reply to Michele Gaw

    I've just been testing something that I thought would work, but it's not behaving as expected. 

    var migrationDate = new Date('2022-10-02');
    var createdDate = new Date(oppo_CreatedDate);
    if(createdDate > migrationDate){
    	Valid=false;
    } else if(oppo_type=='SO' && oppo_stage != 'IC'){
    	Valid=true;
    } else{
    	Valid=false;
    }

    This doesn't produce any errors, but the first condition also doesn't work as expected. It is returning a true value whether the creation date is greater than the specified date or not. Essentially if the creation date is greater than 2nd October 2022 it should return false. 

    Is there a formatting issue with the date that I'm not aware of? 

  • 0 in reply to joshSWR

    Yes, it is an issue with the date.  I find dates very tricky in javascript.  Perhaps someone else can post an easier way to handle dates.  :-)

    I was jumping on the community to grab some other info...therefore, I will postback on how I would resolve the date. :-)

  • 0 in reply to Michele Gaw

    OK...I took a look at your script.  The field oppo_createddate contains date and time.  I believe this is why it is not working for you.

    The main take away is for the code you have above, you are comparing a date to a date/time so you may have to play with this script a bit...but I think it works. :-)

    For what you are doing, I would try this.  (Sorry I did not get a chance to test it.)

    Add .setHours(0,0,0,0) to the end of your date variable.  This will remove the time (hrs, min, sec, millsec)

    Place the below line between lines 2 and 3 of your script above...

    createdDate.setHours(0,0,0,0);

    There are a lot of different ways to handle the date, so if the above does not work.  There are another ways that will.

    This is a helpful reference on dates...

    www.w3schools.com/.../jsref_obj

    Hope this helps!!