cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
vinoth_90
Level: Powered On

Create A Task based on date

Hi Everyone,

 

I am new to Microsoft flows and forms. I am trying to create a Task in the planner based on the  deadline of submission of the project( is filed in forms)

 

When the user fills the forms I have one variable which asks for when the deadline of the project.

based on the deadline date   I Have to create A task in the planner which should be completed before 10 days actual deadline date 

 

but  I am not able create a task when the user not having 10 days deadline ( which means the user feed information in form and his project complete in 5 days) How slove this problem?  

1 ACCEPTED SOLUTION

Accepted Solutions
Super User
Super User

Re: Create A Task based on date

@vinoth_90 Ok, I think I've got it sorted out.  Here's what I heard:

  • If the difference between the Project Due Date and today is 7 or more, the Task Due Date will be 2 days less.

  • If the difference is 2-6 days out, then it will be 1 day less.

  • Any sooner, and the Task Due Date will be the same as the Project Due Date.

I've made a flow chart here:20190620a.PNG

There's a bunch going on here (for the beginner) and my usual caveat is that there are probably more elegant ways to do this, but these are the tools I know how to use.

  1. The first thing we want to do is get everything in the same timezone.  Since all of the backend math is going to be in UTC, we want to convert the due date from the form to that.  (I used a manual trigger since it seemed like the trigger part of your Flow was working fine.  You'll want to change the Source Time Zone in the second box to your local timezone.
    20190620b.PNG

  2. We want to set up variables to hold the dates in a special format called "ticks".  This is what Flow (and a lot of other things, apparently) use to do math with dates.  Here, I've initialized a variable for today, the due date, and the difference (all Integer), and then one we'll use as the Task Due Date (string).
    20190620c.PNG

  3. For the UTC value, I used an expression that counts the number of 'ticks' for right now, and then divided that by the number of ticks in a day:  "DIV(ticks(utcNow()),864000000000)" (without the quotes).  For the Due Date ticks, I used "DIV(ticks(body('Convert_Due_Date_to_UTC')) ,864000000000)" where 'Convert_Due_Date_to_UTC' is the dynamic output of Step 1.
  4. To get the difference between the two (DateDiff), I used "sub(variables('varTicksDue'),variables('varUTCNowTicks'))" which subtracts one variable from another.
  5. Finally, I set the default of TaskDueDate to the converted Project Due Date.  That may change later depending on the math.
  6. Next, we want to adjust the TaskDueDate based on what the DateDiff is, right?  We do this with conditions.  There are other ways to do this, but I nested the conditions because I wanted different results based on the input.  Conditions let you ask a question, and then choose a path if the answer is "Yes" and a different path if the answer is "No".  The first question I asked was if the DateDiff was 7 days or more.
  7. If the answer was yes, I want to remove two days from the Project Due Date and make that my TaskDueDate.  You can do this with the "Subtract from Time" action and then the "Set Variable" action:
    20190620d.PNG

     

  8. If the answer is "No" (meaning the Project due date is less than 7 days out), then I want to ask another question to see if it is within 2 days.  That means your "No" path will have another condition inside it like this:
    20190620g.PNG

     

  9. If the answer to "Is it less than two days out" is Yes, we want the TaskDueDate to stay as the default (Project Due Date), so the "Yes" path can actually stay blank.  On the "No" path, we want to use the same method as Step 7 to remove one day and update the TaskDueDate variable.
  10. Last, we get to create the task.  But before we do that, we want to format the date/time to what Planner is expecting.  I use Convert Timezone for this, but there are other ways.  Not the upper/lower casing on the format...that does matter.
    20190620e.PNG

     

    And then the create task:20190620f.PNG

I hope that helps.  I did a more thorough write up here, but I think this one covers your scenario.  Keep us posted.

 

Thanks!

-Ed-

 

 

 

If this reply has answered your question or resolved your challenge, please consider marking it as a Solution. This helps other users find it more easily via search.

 

9 REPLIES 9
Super User
Super User

Re: Create A Task based on date

@vinoth_90 

Hi there!  So, this one was fun since I haven't ever used these functions before and they were behaving....'oddly'.  You can totally do this with an expression, but I don't know the exact syntax and I thought this was more fun.

 

In between getting your date (in the form) and adding the task in Planner, add two steps:

 

First is "Subtract from Time" - This one is pretty self-explanatory in the steps, but I had no idea it existed:20190618a.PNG

That step will back up 10 days and generate a date, but it also includes the time, which messes things up on the Create Task Step.  Again, you can do all of this with an expression, but this is the hammer I have:20190618b.PNG

Note the Format String.  The case of the letters does matter, and I thought it was weird that I had to switch like that...but it worked.  Essentially, we're taking the input date/time, keeping the same timezone, and spitting out the same time in a new format that only includes the date.  Feel free to adjust the Destination TimeZone, but I think Planner might do that already for you.20190618c.PNG

On the Create Task site, you can grab everything else from the Form and just add the "Converted Time" as your Due Date.  Should work splendidly.  

 

Keep us posted, though.

-Ed-

 

 

If this reply has answered your question or resolved your challenge, please consider marking it as a Solution. This helps other users find it more easily via search.

vinoth_90
Level: Powered On

Re: Create A Task based on date

@edgonzales  I have created a task if there no 10 days gap for the deadline, for example, a student fill form today and his deadline after 3 days, in this case, I getting error message task is not create how to solve this problem if student has not have 10 days gap for deadline 

Super User
Super User

Re: Create A Task based on date

Ah, that makes sense.  We'd have to set a condition to check for that.  What would your (Pre-Flow) process be when this happens?

 

-Ed-

vinoth_90
Level: Powered On

Re: Create A Task based on date

@edgonzales  I Would like to set the pre-flow process both to create a task.

 

Condition 1: if it has 10  days map create a task with the given date.

 

Condition 2: if it does not have 10  days also create a task-based deadline before on the same deadline day with or 2 days before the deadline.  

Super User
Super User

Re: Create A Task based on date

ok, and just poking the box a bit:  What if the deadline is inside that one day? 

What I meant with the "Pre-Flow" part was what did this process look like before you started automating?  Like xRM solutions, Flow is a great way to automate existing processes and when we're building brand new processes (in Flow, or out), it's a good idea to sketch out the steps and consider what to do when something falls "outside of the machine".

 

I'll start building something now using some conditions and we'll see how that looks.

vinoth_90
Level: Powered On

Re: Create A Task based on date

if the deadline is inside that one day means to create the task and have a task deadline on the same day.

vinoth_90
Level: Powered On

Re: Create A Task based on date

@edgonzales if the deadline is inside that one day means to create the task and have a task deadline on the same day.

v-lin-msft
Level 10

Re: Create A Task based on date

Hi @vinoth_90,

 

I feel confused that why cannot create a task have no 10 days gap for deadline.

You said that I getting error message task is not create how to solve this problem if student has not have 10 days gap for deadline. Could you share us the wrong message?

This is my flow configuration that get detail from the MS Form, then get the detail and create a task in my plan, you can refer to it:

Annotation 2019-06-21 143105.png

Annotation 2019-06-21 143047.png

 

 

 

You said that when a student submits a task with a deadline of more than ten days, I guess your purpose should be to send an email to remind the student to complete the task ten days before the deadline. However, if the completion date of student submission is within ten days, there is no way to send the reminder email of ten days ago. Then you can set a reminder email of two days or one day ago. This is another flow I built based on my guess of your purpose:

 

Step1: Create an action Recurrence, the flow will trigger every day, then get the list of tasks.

Annotation 2019-06-21 144319.png

Step2: Add a condition that if Due Date time is equal to 10 days or 2 days or 1 day later:

If yes, send remind email.

(Please convert the format of UtcNow() date).

Annotation 2019-06-21 144707.png

I hope it can help you. If you still have questions, please contact us.

 

Best Regards,

Community Support Team _ Lin Tu

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

 

Super User
Super User

Re: Create A Task based on date

@vinoth_90 Ok, I think I've got it sorted out.  Here's what I heard:

  • If the difference between the Project Due Date and today is 7 or more, the Task Due Date will be 2 days less.

  • If the difference is 2-6 days out, then it will be 1 day less.

  • Any sooner, and the Task Due Date will be the same as the Project Due Date.

I've made a flow chart here:20190620a.PNG

There's a bunch going on here (for the beginner) and my usual caveat is that there are probably more elegant ways to do this, but these are the tools I know how to use.

  1. The first thing we want to do is get everything in the same timezone.  Since all of the backend math is going to be in UTC, we want to convert the due date from the form to that.  (I used a manual trigger since it seemed like the trigger part of your Flow was working fine.  You'll want to change the Source Time Zone in the second box to your local timezone.
    20190620b.PNG

  2. We want to set up variables to hold the dates in a special format called "ticks".  This is what Flow (and a lot of other things, apparently) use to do math with dates.  Here, I've initialized a variable for today, the due date, and the difference (all Integer), and then one we'll use as the Task Due Date (string).
    20190620c.PNG

  3. For the UTC value, I used an expression that counts the number of 'ticks' for right now, and then divided that by the number of ticks in a day:  "DIV(ticks(utcNow()),864000000000)" (without the quotes).  For the Due Date ticks, I used "DIV(ticks(body('Convert_Due_Date_to_UTC')) ,864000000000)" where 'Convert_Due_Date_to_UTC' is the dynamic output of Step 1.
  4. To get the difference between the two (DateDiff), I used "sub(variables('varTicksDue'),variables('varUTCNowTicks'))" which subtracts one variable from another.
  5. Finally, I set the default of TaskDueDate to the converted Project Due Date.  That may change later depending on the math.
  6. Next, we want to adjust the TaskDueDate based on what the DateDiff is, right?  We do this with conditions.  There are other ways to do this, but I nested the conditions because I wanted different results based on the input.  Conditions let you ask a question, and then choose a path if the answer is "Yes" and a different path if the answer is "No".  The first question I asked was if the DateDiff was 7 days or more.
  7. If the answer was yes, I want to remove two days from the Project Due Date and make that my TaskDueDate.  You can do this with the "Subtract from Time" action and then the "Set Variable" action:
    20190620d.PNG

     

  8. If the answer is "No" (meaning the Project due date is less than 7 days out), then I want to ask another question to see if it is within 2 days.  That means your "No" path will have another condition inside it like this:
    20190620g.PNG

     

  9. If the answer to "Is it less than two days out" is Yes, we want the TaskDueDate to stay as the default (Project Due Date), so the "Yes" path can actually stay blank.  On the "No" path, we want to use the same method as Step 7 to remove one day and update the TaskDueDate variable.
  10. Last, we get to create the task.  But before we do that, we want to format the date/time to what Planner is expecting.  I use Convert Timezone for this, but there are other ways.  Not the upper/lower casing on the format...that does matter.
    20190620e.PNG

     

    And then the create task:20190620f.PNG

I hope that helps.  I did a more thorough write up here, but I think this one covers your scenario.  Keep us posted.

 

Thanks!

-Ed-

 

 

 

If this reply has answered your question or resolved your challenge, please consider marking it as a Solution. This helps other users find it more easily via search.

 

Helpful resources

Announcements
firstImage

Microsoft Business Applications Virtual Launch Event

Watch the event on demand for an in-depth look at the new innovations across Dynamics 365 and the Microsoft Power Platform.

firstImage

Watch Sessions On Demand!

Continue your learning in our online communities.

Power Platform 2019 Release Wave 2 Plan

Power Platform 2019 Release Wave 2 Plan

Features releasing from October 2019 through March 2020.

thirdimage

Flow Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

fifthimage

Microsoft Learn

Learn how to build the business apps that you need.

sixthImage

Power Platform World Tour

Find out where you can attend!

seventhimage

Webinars & Video Gallery

Watch & learn from the Flow Community Video Gallery!

Top Kudoed Authors
Users Online
Currently online: 146 members 3,689 guests
Please welcome our newest community members: