Solution name and version of flow

In this blog I will show you how you can find the related solution and the version of a Power Automate flow. I will demonstrate how you can use Dataverse tables to lookup these values within the flow itself.

Inspiration

This question from SkiDK:

In flows, is it possible to retrieve the solution version number it belongs to?

Power Users Community thread: Get solution version in flow.

Dataverse

Outside the flow it is pretty easy to answer the question, you could for example use a Get-AdminFlow cmdlet of the Microsoft.PowerApps.Administration.PowerShell module.

The challenge was to retrieve this information within the flow itself. Luckily Dataverse has different tables which store information about solutions and the related components. By using the Solutions and Solution Components tables I was able to retrieve the data we are looking for.

Another useful part of this setup was the workflow function. In the tags part there is xrmWorkflowId property which can be used in the filter or the Solution Components table.

Flow setup

relatedionsolutionandversion

1. Add a List rows action. Use the Solution Componments table. Make sure you filter the rows on objectid eq ‘xrmWorkflowId’. The expression can be found below.

listcomponents_objectid

2. Add a Get a row by ID action. Select the Solutions table. Input the Row ID field with the _solutionid_value field value of the first row of the outputs of the previous action. The expression can be found below.

getsolution

3. Add Compose action. Use the Version and Name of the Get a row by ID action. Below are the fields as an expression.

compose_versionname

That is it. Pretty simple setup but imo very useful.

Happy testing!

You may also like...

5 Responses

  1. Vinicius says:

    Super helpful thanks for that!

  2. Blair Forbes says:

    I have tried this but I am seeing the error “Correct to include a valid reference to ‘List_rows_-_Solution_Components’ for the input parameter(s) of action ‘Get_a_row_by_ID'”. I don’t need to change of of your code, do I?

  3. Steve Fisher says:

    Questoin: This works BUT for me the List Rows action returns 3 rows – one for my Solution, one for the “Default” Solution and one for “Active Solution” Solution. Is it just me? Any ideas on an easy way to just get “my” solution and not the system ones?

  4. Dennis says:

    Hi Blair,

    The expression in the Get a row by Id action uses the outputs of the previous action. In the expression it refers to the exact name of the previous action. If you are using a different name in the action you would need to update that expression.

    For example, if your name is List rows Hello world, the expression would be
    outputs('List_rows_Hello_World')?['body/value'][0]['_solutionid_value']

  5. Steffen says:

    Hi Steve,

    I had the same problem and I managed to get the right solution just by sorting on “createdon desc” because I know that my custom one is the latest that has been created.

    If it’s not the latest, it might also be an unmanaged layer, which is good to know.

    Best
    Steffen

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.