When the user selects the menu item, you'll want there to be "some response" so they know what is happening.
the way I'd probably do it is to open a WebForm, which contains some text on what is about to happen, with a Start button. Then when they click start you can call a procedure that does your code (probably a normal Source procedure, albeit one that takes p_web as a parameter) - then you can show a progress bar so the user can see how long the process is taking.
you'll want to check the Upgrade-to-NT6 doc, and play around with the Start button and Progress bars to get it working. But I think that'll give the most feedback to the end user.
cheers
Bruce