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?
Solved! Go to 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) } ) )
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
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) } ) )
User | Count |
---|---|
252 | |
106 | |
96 | |
50 | |
39 |