I have what I thought would be a simple PowerApps App that collects a few pieces of information and uploads this to SharePoint. I found that since I am including a picture from the camera control I needed to do this with a Flow. The date fields were being passed to the run command from a DatePicker using DatePicker.SelectedDate. For the Flow, I tried to use:
formatDateTime(triggerBody()['Updatefileproperties_ReportDate'],'MM-dd-yyyy')
in the expression field but I ended up with the following error in PowerApps:
Then I decided to hard code the date as string and use variables in the flow to take a string date and convert to Date. then add the Date to the File Properties Update. The flow now contains:
This produces the exact same error from PowerApps. To make matters worse, when I look at the 28 day run history, none of my attempts show up. There are only two entries and both are from tests I performed, not from the manual action from PowerApps. So I have 2 questions:
1. how can I pass the DatePicker.SelectedDate to the Flow to end up in a Date column in SharePoint?
2. Why am I not seeing the Flows fail? In fact, no matter what change I make in PowerApps or in Flow, the error message I get is exactly the same. This seems very strange to me.
Bonus points for anyone that can tell me how to update only a subset of fields when creating this record as some fields in SharePoint are not required and will be modified later by users directly in SharePoint.
I found the answer to my question if anyone was interested:
I moved the "Document." inside the Text function so that it reads:
,Text(Document.mEffectiveFrom.SelectedDate,"[$-en-US]yyyy-mm-dd") ,Text(Document.mEffectiveTo.SelectedDate,"[$-en-US]yyyy-mm-dd")
The date needs to be passed as an ISO 8601 formatted date, which is a string. In ISO 8601 the year always comes first. You need to enclose the date in a Text format like this
Text(DatePicker1.SelectedDate,DateTimeFormat.UTC)
when you pass it to the flow. That will put it in ISO 8601 format.
Hi Bethany
Im using the Power V2 trigger to send documents to a SharePoint library via a Gallery but am having trouble with passing Dates as metadata due to this formatting issue. I'm using the instructions below and the files are successfully created in SP with the text field metadata but I can't get the dates to pass. I get the error that 'Documents' can't use the 'Text' function. Can you see a solution to this?
Thanks
Craig
ForAll(galAttachments.AllItems As Document,
MultiUploadofFilesToSPLibrary.Run({
contentBytes: Document.Value,
name: Document.Name}
,Document.mSalesComment.Text
,Document.Text(mEffectiveFrom.SelectedDate,"[$-en-US]yyyy-mm-dd")
,Document.Text(mEffectiveTo.SelectedDate,"[$-en-US]yyyy-mm-dd")
));
Hello, Yes passing the date from PowerApps to the flow uses the Text() function as you mentioned. The flow takes this input into a Date parameter in the PowerAppsV2 trigger. Note that I did need to use the PowerAppsV2 trigger and not the PowerApps trigger. Then the format needs to be changed. In the field you are trying to use this date, you will need to format it properly. Instead of just picking your date parameter, you need to enter the following expression:
I've been searching for ages on how to solve this.
I've been updating SharePoint via PowerApps and PowerAutomate, using Shane Youngs video, which was great. It all worked fine until I tried to pass a date through.
Can I just check what your fix was...
In PowerApps, you passed through "Text(DatePicker1.SelectedDate, "yyyy-mm-dd")
Really appreciate any help
Thanks for any help
Solved it. Instead of passing
DatePicker1.SelectedDate
I am now passing
Text(DatePicker1.SelectedDate, "yyyy-mm-dd")
This sends the correct format to flow and the flow now works.
One more thing to note. The Trigger in Flow shows "Please enter or select a date (YYYY-MM-DD)" suggesting that the date needs to be passed from PowerApps in YYYY-MM-DD format but is being passed as MM-DD-YYYY in string format.
Thank you for your help. I am still having an issue however. I did change the trigger in my flow to be a PowerApps V2 trigger and added several Data Parameters including 2 Date fields.
Just to test, I did not add the variable to the update file properties for the corresponding columns in SharePoint. So essentially, I am just collecting the parameter from the DatePicker control using SelectedDate.
This failed with error:
This shows that PowerApps is passing a String, not a date to the flow. Just to be thorough, I added the formula as you suggested to the update file properties for the fields I need to update, but this still failed with the same error. I must be missing something here. Why is the DatePicker.SelectedDate passing a String instead of a Date?
You can pass the date directly to the Flow without changing the format if you use the Power Apps V2 trigger and add a data parameter. Then in the flow use one of the standard ISO 8601 formats when formatting the date to supply it to SharePoint. That is what SharePoint expects. Here's the format command I used in my test. 'u' is one of the standard ISO 8601 formats.
formatDateTime(triggerBody()['date'],'u')
WarrenBelz
146,660
Most Valuable Professional
RandyHayes
76,287
Super User 2024 Season 1
Pstork1
66,004
Most Valuable Professional