Không rõ bản Enterprise thế nào chứ bản Open source của vTiger CRM vô cùng là buggy. Ở đây tôi nói đến bản 6.5.0 là phiên bản tôi đang sử dụng, còn phiên bản mới hơn thì tôi chưa thử vì rất rủi ro khi upgrade.
Mục lục
API xử lý và phản hồi rất chậm
Nhiều khả năng là do PHP 5 chưa được cấu hình đúng để phục vụ được vTigerCRM vì mã nguồn này đòi hỏi rất nhiều resource.
Bạn cần bổ sung cấu hình sau vào php.ini
display_errors = On max_execution_time = 0 memory_limit = 512m post_max_size = 40m upload_max_filesize = 40m error_reporting = E_WARNING & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT log_errors = Off short_open_tag = Off session.gc_maxlifetime = 86400
Đối với Debian Linux, hãy tạo một file có tên vtigercrm.ini
trong thư mục /etc/php5/mods-available
có nội dung như trên, sau đó chạy lệnh sau để kích hoạt.
sudo phpenmod vtigercrm
Cuối cùng khởi động lại Web server.
sudo systemctl restart apache2
Lỗi DATABASE_QUERY_ERROR khi thực hiện thao tác “create” hoặc “update”
Lỗi này xảy ra khi sử dụng hệ thống CSDL MariaDB phiên bản từ 10.2.4
. Phiên bản này có sự thay đổi lớn ở SQL_MODE, theo đó quy tắc kiểm tra ERROR_FOR_DIVISION_BY_ZERO
được bật mặc định.
Bạn có thể thử kiểm tra bằng cách login vào MariaDB qua dòng lệnh sau:
sudo mysql -uroot -p
Trong console của lệnh mysql, gõ lệnh sau để kiểm tra SQL Mode
SELECT @@SQL_MODE, @@GLOBAL.SQL_MODE;
Bạn sẽ thấy kết quả như sau:
+-------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | @@SQL_MODE | @@GLOBAL.SQL_MODE | +-------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+ | STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | +-------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+
Nhiều trường hợp Web Service đã vi phạm quy tắc trên khi thực hiện thao tác create
hoặc update
, đặc biệt khi có trường nào đó bị bỏ trống – mặc dù hợp lệ theo specification.
Để khắc phục, ta tắt hết các quy tắc kiểm tra đi bằng cách thêm đoạn cấu hình sau vào /etc/mysql/my.ini
hoặc module cấu hình của nó (ví dụ trong Debian là /etc/mysql/mariadb.conf.d/50-server.cnf
)
[mariadb] sql_mode=
Sau đó khởi động lại MariaDB service.
systemctl restart mariadb.service
Một lần nữa, bạn hãy thử login vào MariaDB qua dòng lệnh và kiểm tra SQL Mode như nêu trên, nếu hiển thị như sau là đạt yêu cầu.
+------------+-------------------+ | @@SQL_MODE | @@GLOBAL.SQL_MODE | +------------+-------------------+ | | | +------------+-------------------+
Lỗi sai tham số khi dùng API ‘convertlead’
Tham số truyền cho REST API ‘convertlead’ khác với mô tả trong API Documentation. Nguyên nhân có thể do người làm API specs và người viết code chả có liên hệ gì với nhau.
Trường hợp bạn chưa cài đặt Vtiger CRM
Sửa file mã nguồn DefaultDataPopulator.php
xóa bớt các tham số không liên quan để cho giống với Documentation.
modules/Users/DefaultDataPopulator.php
... 'convertlead' => array( "include" => array( "include/Webservices/ConvertLead.php" ), "handler" => "vtws_convertlead", "prelogin" => 0, "type" => "POST", 'params' => array( //'leadId' => 'String', //'assignedTo' => 'String', //'accountName' => 'String' //'avoidPotential' => 'Boolean', //'potential' => 'Encoded' "element" => "Encoded" ) ), ...
Trường hợp bạn đã cài đặt Vtiger CRM
Sửa database xóa các tham số không liên quan và chèn thêm tham số đúng bằng các lệnh sau:
DELETE FROM `vtiger_ws_operation_parameters` WHERE operationid = 13; INSERT INTO `vtiger_ws_operation_parameters`(`operationid`, `name`, `type`, `sequence`) VALUES (13, 'element', 'Encoded', 1);