https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=22280 Bug ID: 22280 Summary: The ILL module assumes every status needs a next/previous status Change sponsored?: --- Product: Koha Version: master Hardware: All OS: All Status: NEW Severity: normal Priority: P5 - low Component: ILL Assignee: koha-bugs@lists.koha-community.org Reporter: magnus@libriotech.no Target Milestone: --- Swedish ILL is very centrally driven, so some status changes are only done by updates from the API. That means that these statuses do not need a prev_actions or a next_actions: IN_NEG => { prev_actions => [ ], id => 'IN_NEG', name => 'Inlån Negativt svar', ui_method_name => 'Negativt svar', method => 'requestitem', next_actions => [ ], ui_method_icon => 'fa-send-o' }, But leaving these blank as above leads to errors, around line 386 of /usr/share/koha/lib/Koha/Illrequest.pm: # Update all core methods' next_actions. foreach my $prev_action ( @{$backend_status->{prev_actions}} ) { if ( grep $prev_action, @core_status_ids ) { my @next_actions = @{$status_graph->{$prev_action}->{next_actions}}; ### ERROR HERE push @next_actions, $backend_status_key; $status_graph->{$prev_action}->{next_actions} = \@next_actions; } } # Update all core methods' prev_actions foreach my $next_action ( @{$backend_status->{next_actions}} ) { if ( grep $next_action, @core_status_ids ) { my @prev_actions = @{$status_graph->{$next_action}->{prev_actions}}; ### AND HERE push @prev_actions, $backend_status_key; $status_graph->{$next_action}->{prev_actions} = \@prev_actions; } } The error is something like "Can't treat an undefined value as an array". Changing those lines to check if an array is defined makes the error go away, and I have not seen any bad side effects: @{$status_graph->{$prev_action}->{next_actions}} if $status_graph->{$prev_action}->{next_actions}; ### NO MORE ERROR HERE @{$status_graph->{$next_action}->{prev_actions}} if $status_graph->{$next_action}->{prev_actions}; ### OR HERE Does that change make sense to others, or am I missing some other way to work around this? -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.