cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
digiservice
Advocate II
Advocate II

Blank date to SQL patch "Server Response: A value must be provided for item"

I have a Patch which is creating a new row in a SQL table using a ForAll and a collection. 

I have a date column that needs on occasion to be blank.

ForAll(
    mycollection,
    Patch(
        mysqltable,
        Defaults(mysqltable),
        {
            mydatecolumn: DateTimeValue(Text(mycollectiondatecolumn))
        }
    )
)

 

 

The SQL column/table is set to accept Null values, however when I patch a null value I get this error:

"Server Response: A value must be provided for item"

 

If I patch a date value it works fine, it only errors when the mycollectiondatecolumn is blank.

 

Is this related to the known issue with blank and nulls? Or am I missing something?

1 ACCEPTED SOLUTION

Accepted Solutions

OK I think I have an answer but will keep testing.

I found to get the date to patch if there is a value or to be blank if there isn't one, the following appears to work:

ForAll(
    mycollection,
    Patch(
        mysqltable,
        Defaults(mysqltable),
        {
            mydatecolumn: Coalesce(Blank(), mycollectiondatecolumn)
        }
    )
)

 

View solution in original post

5 REPLIES 5
PavanKumar
Responsive Resident
Responsive Resident

Hi,

 

Once can you try something like this?

 

ForAll(
    mycollection,
    Patch(
        mysqltable,
        Defaults(mysqltable),
        {
            mydatecolumn: If(IsBlank(mycollectiondatecolumn),Blank(), DateTimeValue(Text(mycollectiondatecolumn)))
        }
    )
)

 

 

If this answers your question mark it as verified and give thumbs up.

Regards,

Pavan Kumar Garlapati

Hi @PavanKumar ,

 

I've tried that and get exactly the same response unfortunately 😞

Hi, I think this helps you. http://powerappsexamples.com/patch-null-value/ If this answers your question mark it as verified and give thumbs up. Regards, Pavan Kumar Garlapati

Hi @PavanKumar 

Thanks again for the suggestion and your help. It's odd because I have found this does not work:

ForAll(
    mycollection,
    Patch(
        mysqltable,
        Defaults(mysqltable),
        {
            mydatecolumn: If(IsBlank(mycollectiondatecolumn),Blank(), DateTimeValue(Text(mycollectiondatecolumn)))
        }
    )
)

Where as this does work:

ForAll(
    mycollection,
    Patch(
        mysqltable,
        Defaults(mysqltable),
        {
            mydatecolumn: Blank()
        }
    )
)

I don't know why it would see either output any differently when essentially they both output blank.

For my needs the second option isn't viable as I need to be able to populate if if the date field does have a value.

If I was only updating one column I could wrap it in a conditional as suggested within the blog post you recommended but unfortunately I am patching up to 12 date fields across 166 columns in more than one patch so writing conditions for each potential scenario would be exceptionally messy.

 

I'll keep tinkering to see if I can come up with a solution.

OK I think I have an answer but will keep testing.

I found to get the date to patch if there is a value or to be blank if there isn't one, the following appears to work:

ForAll(
    mycollection,
    Patch(
        mysqltable,
        Defaults(mysqltable),
        {
            mydatecolumn: Coalesce(Blank(), mycollectiondatecolumn)
        }
    )
)

 

Helpful resources

Announcements
Power Platform Call June 2022 768x460.png

Power Platform Community Call

Join us for the next call on August 17, 2022 at 8am PDT.

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

365 EduCon 768x460.png

Microsoft 365 EduCon

Join us for two optional days of workshops and a 3-day conference, you can choose from over 130 sessions in multiple tracks and 25 workshops.

Users online (1,666)