When you add a Business Data Catalog (BDC) column to a custom list, in the list view column headings you will see an icon with two green circular arrows next to the BDC column - it looks a little like the symbol for a hurricane. This is the "BDC Update" (or "refresh" button).


You need to be very careful with this button.
When you click this button, it updates the BDC values in your list with the latest values from the BDC for every list item.
Why is this necessary? When you use a BDC column in a list, the BDC-related values that you pull in along with the BDC value you enter are actually stored in the list and are not "live" values from the BDC. They are stored at the time you save the list item (create or update). So these values can become "stale" if they change in the database behind the BDC entity.
For example, Let's say I add a BDC value "Vendor" to my list for vendors from my back end ERP system. I also pull in the vendor's name, address, and phone number. I add a list item and select a vendor from the BDC. It brings along the vendor's name, address, and phone number and copies of these values get stored in the list.
A month later, the vendor's phone number is changed in the ERP system. However, that list item will still show the old phone number, even though the BDC is pulling data directly from the ERP system. It will not automatically update existing list items with the new value (but new list items will get the updated value).
The only way these values update in the list item are (1) if you edit and save the list item or (2) use the BDC Update button in the list view heading to refresh all list items.
But there are three potential side effects of the BDC Update button that you need to keep in mind.
-
If you have Versioning enabled on your list (or document library), clicking this button will create a new version of every item in the list, regardless of whether the BDC value(s) actually changed. This could affect you if you attach meaning to version numbers changing.
-
If you have workflows attached to the list that automatically execute when an item changes, the workflow will execute on every item in the list, regardless of whether the BDC value(s) actually changed.
This can potentially be very dangerous. For example, I had a situation where we had a list of over 1000 items and Content Approval was enabled. Someone clicked the BDC Update button and it set every item's approval back to Pending!! Not only did this require all of the items to be approved again, we had no easy way to determine the approval status of the items before they were all reset - we couldn't just blindly approve everything since it may not have been approved prior to the refresh.
Likewise, if your "on update" automatic workflows do something like send e-mails, create tasks, etc. you can potentially get a large number of unwanted e-mails and tasks created or other data-changing side effects.
Unfortunately, there appears to be no way to put any type of security restrictions on this button - anyone who can update list items will be able to click it. It does warn you first, but users may not realize what may happen.
We really need a way to restrict or hide this button.