From: Jason Etheridge Date: Tue, 17 Jan 2017 21:39:58 +0000 (-0500) Subject: Fix Can't locate object method "workstation" error X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=5461b6973cf7200afaa97300aa0a963ba9d4711c;p=working%2FEvergreen.git Fix Can't locate object method "workstation" error When trying to utilize the Recall functionality, Evergreen would fail to update targeted circulations (truncate the due date, etc.) In the logs, we would have an error like this: [] open-ils.storage [ERR ::action.pm:1597:] Processing of hold failed: Can't locate object method "workstation" via package "action::circulation" at /usr/local/share/perl/5.14.2/OpenILS/Application/Storage/CDBI.pm line 181. We first tried adding the workstation column to Storage/CDBI/action.pm, but a similar message would then appear instead: Can't locate object method "checkin_workstation" This sidesteps the problem entirely. Thanks to Mike for the solution! Signed-off-by: Jason Etheridge Signed-off-by: Mike Rylander --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI.pm index d8391b8edc..d164251ad6 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI.pm @@ -178,7 +178,7 @@ sub to_fieldmapper { if (ref($obj)) { for my $field ( $fm->real_fields ) { - $fm->$field( ''.$obj->$field ) if defined $obj->$field; + $fm->$field( ''.$obj->$field ) if $obj->find_column($field) && defined $obj->$field; } }