cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
MichelH
Advocate IV
Advocate IV

SQL connector howto obtain Row Id

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.

table_with_PK.jpg

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

5 REPLIES 5
v-yamao-msft
Community Support
Community Support

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.

1.PNG

 

Best regards,

Mabel

Community Support Team _ Mabel Mao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
GabrielStJohn
Administrator
Administrator

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

- Gabriel
Community Manager
Power Automate | Power Virtual Agents
Super User Program 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

Helpful resources

Announcements
MPA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

MSFTBizAppsLaunchEvent

Experience what’s next for Power Virtual Agents

See the latest Power Automate innovations, updates, and demos from the Microsoft Business Applications Launch Event.

New Super Users

Meet the Power Automate Super Users!

Many congratulations to the Season 1 2021 Flownaut Crew!

Power Platform ISV STudio

Power Platform ISV Studio

ISV Studio is the go-to Power Platform destination for ISV’s to monitor & manage applications post-AppSource publish.

Users online (72,396)