Sat, 11/04/2023 - 16:31 By David Uhlmann Contributor Lloyd Sebag
2 comments

Dataverse workaround wrong Autonumber Seed during Deployment

Have you ever encountered a weird issue while working with autonumber fields in your solutions? You might have noticed that when deploying them to different environments, the starting value ("seed value") sometimes resets to 1000, despite your efforts to change it. I recently faced this challenge and reached out to support for a solution. In this quick guide, I'll share a workaround that you can use until the seed value becomes solution-aware. Stay tuned for a simple trick to address this problem whenever it occurs. To be clear this is a workaround and not a long term solution. Lets hope this issue goes away soon which would make this article not relevant anymore.

First things first, let's dive into setting up a DEV environment. I've created a basic solution and table named 'Cars'. Our goal is to convert the 'Primary Name Column' into an autonumber field. However, we want this auto number to start from a specific value - let's say 10,000. This approach is essential because our client already has a substantial inventory of cars, and we aim to improve the data migration process later down the road to minimize any additional problems - that (if we are honest with ourselves) come anyways as with every data migration. Let's proceed with this adjustment to ensure a better transition for the client:

Dataverse workaround wrong Autonumber Seed during Deployment

Now, this is all good. If we create a record in DEV it gets the intended number:

Dataverse workaround wrong Autonumber Seed during Deployment

Now, we throw this solution into a pipeline, which, by the way, you should always do to avoid manual deployments whenever possible, and deploy it to a TEST environment to see our auto number field. What do we see? Well, we see that Power Platform changed the Autonumber back to the default seed value of 1000:

Dataverse workaround wrong Autonumber Seed during Deployment

After contacting support, I was told that seed values are not solution-aware as of now (November 2023), meaning you cannot deploy them easily. This might seem weird because you might think that when you configure the column, the seed value is somehow also included in the solution, but it's not. There are methods to do that, but most of them are unsupported and/or break fundamental architectural rules. So, let's demonstrate an easy method to change this. First, go to the default solution in your TEST environment, then to the respective table and field, and change the seed value there

Dataverse workaround wrong Autonumber Seed during Deployment

This will, of course, create an unmanaged layer inside your managed solution. Next, we jump back to our managed solution and remove the respective layer. This is important because the order of execution will otherwise always show this layer, and this is potentially not what you want for later deployments

Dataverse workaround wrong Autonumber Seed during Deployment

There you can go on and remove the unmanaged layer:

remove unmanaged layer

And after completing this step you should see the "correct" seed value in your app, in our case the autonumber for the cars:

Dataverse workaround wrong Autonumber Seed during Deployment

Of course, this is a workaround and is classified here as a 'Trick.' However, as long as seed values are not solution-aware, which I hope will soon happen, it is a possible way to input the correct values into your target environments if you have to use custom formats for your numbers.

Dataverse workaround wrong Autonumber Seed during Deployment

Comments

Hello David, thank you very much for interesting and very useful article!
I've been wondering why do you suggest remocing unmanaged layer inside your managed solution? If I understood it correctly, autonumber seed is not a part of solution, meaning I would need to repeat the same operation every single time I deploy a new solution in test environment, wouldn't I? I expect that unmanaged layer is important and should remain, so at the next deployment of test solution the seed logic remains active.
Thank you!

Fri, 02/02/2024 - 15:45
Sergii Zelenko (not verified)

Add new comment

Image CAPTCHA
Enter the characters shown in the image.