Hey guys I have been just made aware that I need to be able to get the Checklists that come when another user creates a new Planner Task.
I have a flow that sends an email that gets printed but when my team put the phone number and pickup time in the checklist area there is no way to get this information in the email.
When I use Get Details all that is shown is the Title and Description.
Any help would be very appreciated
Solved! Go to Solution.
Hi @Fusion ,
I have made a test and I found that checklist could not be returned using a dynamic content directly.
There is similar request on Flow Ideas Forum, please feel free vote the idea at here:
Best regards,
Mabel
Hi @Fusion ,
I have made a test and I found that checklist could not be returned using a dynamic content directly.
There is similar request on Flow Ideas Forum, please feel free vote the idea at here:
Best regards,
Mabel
++EDIT: This Post in now obsolete. The "Get Task Details"-Action does now offfer the Checklist as an iterable Array in the dynamic content. So almost all of the steps I described below are no longer necessary.++
I struggled with a similar task for a few days, but in the end i managed to extract all the information from the tasks and the checklist items with the help of this weird trick 😉: http://johnliu.net/blog/2017/11/foreach-property-in-microsoftflow-json-with-xpath-microblog
The process does need a few steps but in the end it isn't too comlicated.
You start by getting the task details and parsing the result in JSON:
Parse JSON: (Get all the data from the taskdetails, way more than the dynamic content offers)
Content: body('Get_task_details')?['body']
(You can generate the schema from a sample task body or just use mine: https://pastebin.com/Y0ddkS9w)
Parse JSON checklist: (Seperate the checklist JSON from the task data for easyer handling)
Content: body('Parse_JSON')?['checklist']
(Schema can also be created from a sample checklist item, or use this: https://pastebin.com/4eNTtJ67)
The problem is that the checklist items are not actually called "checklistItem" in the raw JSON but are individually named with their id. This is why we need to do the trick from the post mentioned above, where we turn the JSON into XML, get the checklist item id's from the XML, and then parse the JSON again with the id.
Compose JSON checklist root element: (Add a root Element, necessary for proper XML)
Inputs: {"root": body(Parse_JSON_checklist'')}
Compose JSON as XML nodeset:
Inputs: xpath(xml(outputs('Compose_JSON_checklist_root_element')), '/root/*')
Select array of checklist item ids from xml
From: outputs('Compose_JSON_as_XML_nodeset')
Map: xpath(item(), 'name(/*)')
Now we have an iterable array of the checklist item id's (or something resembling them) with wich we can proceed to parse the JSON data of each checklist item.
Apply to each checklist item:
Output('Select_array_of_checklist_item_ids_from_xml')
Compose checklist item id: (the id's com back a bit scrambled, this can be fixed with an easy string operation)
Input: substring(replace(items('Apply_to_each_checklist_item'), '_', ''), 4, 5)
Parse JSON checklist item: (Finally! This operation gives us all the data of the current checklist item)
Content: body('Parse_JSON_Checklist')?[outputs('Compose_checklist_item_id')])
(I guess the schema shuld be clear by now, but just in case 😉: https://pastebin.com/C6C19VYw)
The "Parse JSON checklist item" now gives you everything you need as dynamic content.
Hope this helps 😊
This is really helpful but your final schame url is no longr valid - https://pastebin.com/C6C19VYw
any chance you still have this available?
Thanks.
Never mind - worked it out myself.
Really excellent solution. I wouldn't have been able to achieve this without your post so thanks!
Hi @shtryler ,
You mentioned in your edit that the "Get Task Details"-Action does now offer the Checklist as an iterable Array in the dynamic content.
If I use the 'Get Task Details' action, it only returns the 'description' and the 'ID'.
If I call the GET details for Planner Task using the Graph API, it still seem to be returning the checklist items as objects (on both V1.0 and beta)?
Can you advise on how I access the iterable array in my flow?
Many thanks.
Hi @DoowopDobbo,
when I add for example a new Apply-to-each-Eleemnt i can choose from the List of dynamic content you can see below. ("Checklist - The Collection of checklist items on the task" is the iterable array in this case).
Sadly I don't think I can help you if these elements don't appear in your case. For me, the additional dynamic content from the "Get task details"-Action just appeared one day.
Best wishes
Hi @shtryler
Many thanks for the quick reply. Unfortunately, the dynamic content doesn't appear for me. Maybe it's tenant specific and we will hopefully get 'upgraded' at some point.
Thanks again for your help.
Hi @shtryler ,
After speaking with 2nd tier MS support, I now have the additional dynamic content. Your screenshot was really helpful in achieving this, so thank you.
Could you give an example of how you are using the new 'checklist' token in the above scenario as I'm having trouble getting it to work. The problem seems to be that the 'OrderHints' being copied from the original task as part of the Checklist array are 'not valid'.
In the original method you described (which I have working, so thank you again!), the 'orderHint' was set as " !"
Many thanks in anticipation that you might be able to help.
For anyone who might find it useful, here was the solution to the problem using the new tokens that have recently become available.
The only problem now is that the checklist items are not copied from the original task in the original order.
If anyone has any advice on how this can be achieved, it would be greatly appreciated.
Hi @DoowopDobbo ,
Your new solution it is just what I need, but I couldn't be able to test because I'm receiving the following error:
The execution of template action 'Apply_to_each_2' failed: the result of the evaluation of 'foreach' expression '@body('Get_task_details_from_Template_Task')?['checklist']' is of type 'Object'. The result must be a valid array.
How can I convert the 'Dynamic Content' Checklists (type object) from Template Task to an array? Thank you in advance.
Hi, this looks exactly like what I need, however the Schema seems to be erroring with the below. Any idea how I can get around this?
Hi All - thanks so much for everyone's brilliance in developing this flow!
Quick question - I receive an error at the Get Task Details step, with the following output.
If anyone would be willing to weigh in with guidance on how I can fix the error, I would be extremely appreciated!
Thanks so much,
Matt
Hello - Thanks so much for this super helpful information.
Is there a way to trigger this flow on a daily basis to update all checklist items, and not just based on the trigger of "when task is completed"?
When I attempted this myself, I used List Buckets>List Tasks>Get Task Details (using value from List Tasks), but then it automatically populated a "for each" function and I wasn't able to select the body value from Get Task Details in the subsequent Parse JSON step.
Any guidance would be appreciated. Thank you!
@shtryler @DoowopDobbo @MSPowerApps @mspowerautomate
Hi All - just wondering if anyone had thoughts on creating a loop that updates checklist details and refreshes an Excel document, as opposed to only retrieving information for one particular task based on a "complete" or "assign" or "create" trigger.
Thank you!
Matt
The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.
Learn to digitize and optimize business processes and connect all your applications to share data in real time.
User | Count |
---|---|
26 | |
26 | |
23 | |
14 | |
10 |
User | Count |
---|---|
62 | |
56 | |
29 | |
28 | |
24 |