I noticed that the SQL connector actions Get Row, Update Row and Delete Row all require a so called Row ID.
So rather than to use a key field in the table, we seem obliged to use this Row ID instead.
I've been looking at what is returned by Get Rows to see if the Row ID was part of this but it does not seem the case.
{ "@odata.context": "https://flow-apim-europe-001-francecentral-01.azure-apim.net/apim/sql/0cc11648080d441ead1904e034b305bb/$metadata#datasets('default')/tables('%5Bdbo%5D.%5BMH_SAPdata_updates%5D')/items", "value": [ { "@odata.etag": "", "ItemInternalId": "895216ba-649a-4913-a7cb-df35bf891400", "Sales_x0020_Document": "121029 ", "Comment": "<div class=\"ExternalClass412470A3E48343ABA10351B566D26833\"><p>?Where?<br></p><p>When????<br></p><p>Who?<br></p></div>", "Reason": "How?" } ] }
I wonder what to make of the 'ItemInternalId', but I have also no idea how to obtain that.
I've tried something like: body('Get_rows')['ItemInternalId'] but it either returns nothing or flow whines it doesn't exist.
Can anyone explain how to use these connectors if one doesn't know the Row ID's, because for now I don't believe there is. To me it seems the trick with the Row ID renders these SQL connection actions completely useless.
Meanwhile I find this and I'm trying to make sense of it but I fail again.
If I understand the limitations correctly, the table requires to have a primary key, so the RowID would be the Sales Document since this is the primary key.
I'm re-running my failed flows,... and today it all works. Completely flabbergasted!
So the bottom line, the RowID is in fact the primary key defined on your table.
Sorry for my previous rant but I now just keep my fingers crossed that it continues to work. ๐
Thanks for any feedback
Michel
Hi @MichelH,
Thanks for sharing and updating. I am so glad that it is working for you now.
Yes, the Row Id is the primary key that we defined on the table.
Letโs say that you have two SQL tables, one has a Primary key, another not.
In the SQL action Get rows, you could select both tables. However, in action Update row which is asking a value for Row id, you wonโt be able to select the table that doesnโt have a Primary key field.
Best regards,
Mabel
Hello, @MichelH!
Thank you for posting on the Flow Community Forum! Have you had an opportunity to apply @v-yamao-msftโs recommendation to adapt your Flow? If yes, and you find that solution to be satisfactory, please go ahead and click โAccept as Solutionโ so that this thread will be marked for other users to easily identify!
Thank you for being an active member of the Flow Community!
-Gabriel
Flow Community Manager
Thanks for the clarification!
For tables with composite keys though, how do the SQL Update/Delete row blocks work?
I have a number of link tables where there are two or three ID columns making up the composite key instead of having a separate primary key.
Thanks for any insight,
Michael
This is a very valuable question. Im facing same issue right now. How did you work it out @MichaelFriesen?
Thanks.
*Edited*
Later I found this solution , as simple as using coma separator.
Hey @Jsamano,
In the end I used the SQL Execute Stored Procedure (v2) blocks and wrote custom stored procedures that could handle the composite keys. Unless there's an update as to how the RowID is defined with the SQL CRUD blocks, I think that's the only way that will work.
Hope that helps,
Mike
Check out new user group experience and if you are a leader please create your group
See the latest Power Automate innovations, updates, and demos from the Microsoft Business Applications Launch Event.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
3 | |
3 | |
3 | |
2 | |
2 |