i don't think you can get a clickable ""link"" per se in the UI.MessageBox method and unless you are a master developer that can piggyback on the sage 100 class to intercept the check, the only other way i can see accomplishing this is if you use a column prevalidate script on the sales order no field. you would then have to read the open sales order invoices to see if it exists, if it does, then you can display your own message box using UI.MessageBox method with custom buttons. You would warn the user that the sales order exists in batch 9999 and then ask if they want to open that invoice. the script would then check the retval of the message box and proceed accordingly. i can't say for sure whether this event would fire before sage 100 checks if it exists in the open invoices but if the script event does fire first, the user is going to get your message followed by sage's message if you don't cancel off the record after your message.