More work ➡️ More features

During the last few months, I’ve been working more than ever (well, most after my little stroke issue three years ago), and more work apparently creates more needs, more features, more improvement – just more!

A few new features, a lot of improvements

Why do I create new features and maybe a brand-new tool?
90% of those times because I simply need it. When I’m working for customers, by default, needs occur.
9% could be that I just had an idea to see if I could do it. Sometimes, I could, but most times, I don’t.
1% is that some colleague, someone in the community, or even someone from Microsoft suggested I do more.


We love Power Platform, right?

This lovely tech we are working with – Power Platform – can do anything. I’ve heard that, at least.
That is my default answer to our customers, anyway.
But there are a few itches… or a lot of itches.

Aaah, Fetch XML is sweet query tech to use, but why is there no help to writing it and then to executing the queries easier, and show the result in an easyreading way?

Jonas Rapp, 2012

Guess why I created FetchXML Builder for XrmToolBox 10 years ago, after Stunnware stopped to update.

Wow, it’s a good built-in logging for all our plugins! But how do we browse Trace Logs smoothly? The Dynamics UI is yucky in this case!

Jonas Rapp, 2015

Guess why I created Plugin Trace Viewer for XrmToolBox 8 years ago.

The classic Bulk Edit feature is good to have. But I’d need sooo much more features…

Jonas Rapp, 2011

Guess why I created Bulk Data Updater for XrmToolBox 8 years ago. That is what I’m currently improving since our Post-Migrate-Efforts at our customer – this tool helps me (and my colleagues) a humongous of time.


Lazy != Stupid

I’m proud to say I’m lazy. If you want to work hard, harder than necessary, then sure, keep on exporting to Excel, adjust, and import it again – or any similar (stupid) ways.

I know I know, it takes time to develop tools, but it costs me nothing compared to how much I gain from it. And guess what – it’s fun to develop! Ok, for the XrmToolBox tools, we are developing in tech from the 1990’s… WinForm. But at least it’s in C#, not Cobol or Visual Basic…!


Aesthetic Code

It’s easy – a bit too easy – to get stuck in efforts to improve the code. I mean, it works. Why am I fiddling with code I shouldn’t touch!? Because I can… We can always make it look nicer. Yes, it’s mostly only related to Aesthetic Code. I sleep so much better when the code looks beautiful. Feng-Shui-Code.

Unfortunately, it is also too easy to find semi-bugs to be big-bugs… One bug fixed creates new bugs…

Do I digress a tiny? Well yes. Let’s now, finally, go to what I actually created in BDU.


New in Bulk Data Updater

These are the things I really needed.

Support UpdateMultiple request

Whenever we want to update a lot of records, it’s smart to do it in “bulk”. Many records for each execution to the Dataverse API. Recently (?) the new feature UpdateMultiple was published in General Availability status, which should be even smarter than the old version, ExecuteMultiple, and we need to test the new one.

For some crazy idea, I called it MultipleUpdate from the beginning. Why? No idea… It is corrected in version 1.2024.2.2.
Thank you Kamil for notifying me!

More progress info

When it takes a lot of time when I’m updating records – I and we all want more info. Tell me when it’s done?!

The Remaining updates after each execution say how much time there is left and how many records.
Note this is an estimation; don’t sue me if it isn’t exactly correct 😬

I think it’s even better to see how long time it takes for each record. This can be used to fine-tune the setting for the execution. Yes, you may cancel the execution and re-run it, but I’m sure in the long turn you will gain from it.

Suggests on the settings:

  • UpdateMultiple might be faster than the classic ExecuteMultiple. Or not!
  • Play around with batch size. Be aware of timeout issues.
  • Bypass Custom Business Logic may save a bit of time and may save enormous time! But be aware it skips all your smart code and flows etc.
  • Shall we Ignore errors? During migration, it may often be that you don’t care about validation plugins.

Why filter columns?

I’ve removed the old version of filtering attributes and instead added a lot of smarter filtering.

I suggest you start with only showing “In the query.” This means that only columns are included in the query, either if you open it from a View, a File, open FetchXML Builder to help you build the query, or just type it manually. Usually, you should retrieve columns that you want to update – that will save a lot of time!

What is also common to update, are columns shown in Views or on Forms. That’s why you can select it here.

Use Import Sequence Number

This column is available in all tables (except a few very specific tables) and it is smart to use it!

When I use BDU and update a lot of records or a few, I use the Import Sequence Number. This column has type “Whole number”, or as I say, an int. To keep track of what I have worked on, I set some unique values to be able to find the updated records later.

An easy way to set the number is yymmyynn. My first update today will then be called 24021101 in the Import Sequence Number column. Next one: 24021102.

Even more intelligence help

There is an issue on GitHub, to Auto-set ImportSequenceNumber, help to find the records affected.

Does that sound to be a good feature? Vote!

Nicer buttons

This is a very important improved feature! Eh, no… but why look ugly when it’s possible to look nicer? 😉 Select here if the tool shall show you tables, columns, and even data in Friendly or in a rougher Raw way.


Leave a Reply

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