Updating a Remedy system when a Login ID has to changed can be a long and slow process if you want to keep the integrity of the data after changing the Login ID. BMC provides the Data Wizard tool to do this however it has many limitations such as:
- Only being able to update one LoginID at a time
- Requires customization to target custom forms/fields
- Is generally slow and doesn’t search within all fields (only target fields important to ITSM workings)
There are also other third party tools developed for the same goal such as the RRR|LoginConv (https://rrr.se/cgi/tools/main?tool=rrrLoginConv) build which utilize arsPerl but since arsPerl has fallen a bit behind from a support perspective in later versions of the API, a more up-to-date alternative is something that has been requested.
Because of this, I've put together a GUI based utility that leverages the Java API that will perform the following tasks:
- High performance updates from one or more old LoginID to new LoginIDs utilizing merge action that bypasses workflow
- Updates all Character Fields (regardless of size)
- Match exact
- (optional) Match surrounded by single/double quotes
- (optional) Match surrounded by separators such as white-space, comma, period, pipe, semi-colon or colon
- (optional) Updates all Status History entries
- (optional) Updates all Diary Field entries
Here is a peak at what it looks like running through a multiple Login ID update:
Some key features of this utility include:
- Ability to pre-load list of Login IDs to update via file import
- Two progress bars show displaying progress by the currently processing form and the overall end to end process.
- Ability to control the speed by way of a delay slider that will slow down or speed up the processing dynamically
- Ability to pause / resume the processing
- Ability to cancel in-flight updates (doesn't not roll back, just stops wherever it happens to be)
- Ability to toggle on/off the scope/matching capabilities
- Ability to specify all forms to be checked or specify a list of forms to be checked only
- Ability to specify all fields to be checked or specify a semi-colon delimited list of field IDs to be checked only
- Ability to ‘simulate’ the run without actually make any changes
- Detailed output provided on forms processed and matches found
In order to launch the utility, you can download it at the link provided below and then simply extract the zip contents and then execute the LoginConverter.jar file and assuming you have a local java runtime available on the host you are running it on, you should be prompted with a login screen.
I recommend that you test this in a non-production environment and gauge the results prior to running this against a production system. I also recommend using JRE 1.7 (64-bit) while directly on the AR System server you are connecting to to execute this program for optimum performance. It will run just fine from any host that can connect to the AR System via API but due to the type of work being done, running this utility on the server itself will increase the throughput considerably and take the network layer out of the equation.
NOTICE: If you have a very large system (10s or 100s of millions of rows), the initial time to get the entry totals may take awhile before you see the program start to process forms.
NOTICE: If you begin to see too much performance degradation on your AR System and want to lessen the impact, simply move up the slider bar to introduce delay between processing which will elongate the processing but reduce the load on the system greatly. You can even pause it during prime business hours to resume it later when there are less users on the system.
The latest version of the utility/write up will always be available on my personal site here along with my other utilities:
If you have any questions/feature requests or find any issues with the latest released version, please let me know in either the comments here, on the post on my site or via mailto:email@example.com
- Added support for populating list of Login ID conversions via file
- Fixed small visual issues
- Added more detailed output to found matches, you'll now see all the fields that matched and will be updated
- Reworked the UI to be more efficient and consistent
- Changed specific form field into menu with pre-loaded remedy forms with auto-fill support
- Improved how detailed output is generated and provided more consistent information on how many updates per form and what field specifically are updated
- Added ability to specify multiple specific forms rather then just one or all
- Added ability to specify multiple field IDs in a semi-colon (;) delimited list instead of always running against all character/diary/status history fields
- Added ability to show/collapse Options section while job is running in order to give more real-estate to the detailed output window when needed.
- Added additional error checking for bad input from user in various sections
- Small re-factoring and UI fixes
- Switched to H2 database for login profiles and lay groundwork for eventual capability of saving configuration profiles for repeatable updates
- Don't stop when a form throws an error in the pre-processing phase
- Returned to SQLite DB
- Added ability to specify forms via import file
- Added debugging capabilities with the -debug option flag
- Updated User Interface and Libraries
Version 2.6 (yanked - do not use)
- Faster processing
- Attempt to fix a bug with some versions of AR System / Customer environment terminating after the first match
- Reduced number of API calls to the system considerably for better speed-ups compared to v2.6
- FIx some outputting errors / ommissions in the display panel
- Fix corner case where status history was not being updated correctly