I agree with Fabian.  I wouldn't use a business rule here until you are in-fact wanting the UI Action to change details of the record that would cause a business rule to fire.

If you don't need to pass variables (i.e. the id of the record) to the script, another option is to use a Scheduled Script Execution (sysauto_script) and fire that from the UI Action.  But more than likely you will need to pass variables, and should use an Event and Script Action.