Мне удалось решить эту проблему путем переопределения метода create_new_list_query () в базовом классе модуля:
class CustomModule extends CustomModule_sugar {
function CustomModule(){
parent::CustomModule_sugar();
}
// this is the method which constructs the default SQL query
function create_new_list_query($order_by, $where, $filter, $params, $show_deleted, $join_type, $return_array, $parentbean, $singleSelect){
// call the parent method to populate all params - will cause errors/problems elsewhere otherwise
$ret_array = parent::create_new_list_query($order_by, $where,$filter,$params, $show_deleted,$join_type, $return_array,$parentbean, $singleSelect);
// override module sql with custom query
// alias external field names so they match the fields set up in Sugar
$ret_array['select'] = 'SELECT primary_id as id, date_added as date_entered, field_name as name, external_notes as notes';
$ret_array['from'] = ' FROM external_table';
// update these with appropriate SQL
$ret_array['where'] = '';
$ret_array['order_by'] = '';
return $ret_array;
}
}
Этот метод создает инструкцию SQL, которая используется в /include/ListView/ListViewData.php,Я связал имена полей, выбранных из внешней таблицы, с именами полей, настроенных в Sugar (проще, чем создание или переименование каждого поля).