New Release – Bulk Data Updater 1.2022.8

This tool’s release makes it go from “a simple tool”
to a truly “reusable work gadget”.
Why? Read on…

Read from the Bulk Data Updater Release Notes:

📂 Open and 💾 Save all options

Open and Save in BDU
Two tiny new buttons – great features though!

You can now save all options to reuse them later or give them to colleagues.

These things are stored:

  • The FetchXML – which records will be loaded for your actions.
  • Which records to affect – All or Selected.
  • Update – read about attributes docs.
    • Attributes – all attributes you want to update.
    • Actions – four different options: Set fixed, Calculate, Touch, Set null are saved, for each attribute.
    • Values – either a fixed value or a calculated value.
    • Only if changed – whether the updates shall update of not changed or not.
  • Assign – read about assign in docs.
    • Owner – the user or the team.
  • Set State – read about set state docs.
    • Status – also known as state.
    • Status Reason – also known as status.
  • Execution – this is stored for all four different (Update, Assign, Set State, Delete)
    • Wait between calls (only used for Update).
    • Batch Size – how many records to affect in each call to the server.
    • Ignore errors – continue even if errors occur.
    • Bypass custom business logic – read more about this!
  • General Information
    • Name – from the file name.
    • Full path – where it was initially stored.
    • Environment URL – this was run against this environment when saving.
    • Date and Time – when it was stored.

I can just say – use it!
Save what you did today, to use it tomorrow.

This idea was introduced in GitHub Discussions by @Rasmus Peterson in discussion #164. Big one kudo to you!

This class BDUJob (see the code) is saved and is also used in the general setting of this tool. This means that when you close the tool, it stores what you last did. This is stored locally on your computer, and settings are stored for the environment you are connected to last.

Three 3️⃣ new features for Calculate

These features are implemented in the Rappen.XTB.Helper repository. Of course, it is open source, and you are free to use it in other tools, in Dataverse plugins – in whatever you want! The code for the XRM Tokens does the Calculate in Bulk Data Updater and the testing tool XRM Tokens Runner.

You like code? Read it here!

Make sure to update the XRM Tokens Runner also to get the latest features!

🤪 Random

You can get randoms! This is great to anonymize for testing. Take pro data into dev or test area, randomize it, and work with the anonymized data.

Four different types are created: Text, Number, Date, and Guid.
There are a few options for these tokens, check the docs in XRM Tokens Random.


{firstname}.<random|text|8>@{parentcustomerid|<Replace| |>}<random|number|1|9>.com​


Requested by @k-Jithesh in discussion #163. Thank you! 🙏

✂ Trim

The Trim feature is really three features, or actually six features

Read the docs, to see why… Find the docs right here: XRM Tokens Formatting.


My company: '{parentcustomerid}'
My trimmed: '{parentcustomerid|<TrimEnd|AB><Replace| |><Trim>}'


My company: 'Rapp Solutions AB'
My trimmed: 'RappSolutions'

Thanks for the request by @MscrmTools in #102. 🙏

👨‍👩‍👧‍👦 Choices

The word Choices is a bit hard, but it means like Multiple Choices, or more technically as MultiOptionSetValues.

See this how it might be used:

Both dynamic with the XRM Tokens, and hard code.

See note on XRM Tokens Raw and this about how to use it.

Asked about @Suxsem in issue #166. Thanks! 🙏

Minor things

  • Using XrmToolBox metadata cache if available. It takes a bit to load it, but then superfast. See the code.
  • A bit less risk of double-clicking on buttons. See code here and here.
  • Minor fix: Handling changing the connection while using BDU.
  • Fixing a bug in XRM Tokens – handling format order as it’s written, not any more hard-coded order. See issue #18.

This is still developed by Jonas RappTwitterLinkedInGitHub.

Leave a Reply

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