The actual action routines

Assuming that the user is permitted to do the action, then EPrints processor will call the appropriate action routine:

sub action_cancel
{
my( $self ) = @_;
# Do stuff
}

Getting the parameters

The parameters are collected from the session:

my $oname = $self->{session}->param( 'oarj_oname' );

One could be a bit more conservative:

my %params;
# Have we got any parameters (should be a yes, actions are set in parameters)
if ($self->{session}->have_parameters)
{
# Get a list of all the parameters passed in
my @param_list = $self->{session}->param;
# build up a hash of all the parameters
foreach my $p (@param_list) {
$params{$p} = $self->{session}->param( $p );
}
};

.... of course one would assume that, having written the action handler, you know what parameters to expect, and can just ask for them directly!

Where to go after the action completes

By default, the EPrints processor will then render whatever's in the render routine for the package that the action routines are in.
If you want the EPrints processor to use a different package to render something to the page, then: