Я нашел несколько случаев, когда ошибка была такой же, но ситуация не была.
Это предназначено как пользовательская функция рабочего процесса в vTiger, код следующий:
function perform_query($entity) {
/*$entityArray = get_object_vars($entity); //array
echo "<pre>";
print_r($entityArray);
echo "</pre>";
break;*/
include_once 'include/Webservices/Query.php';
include_once 'modules/Users/Users.php';
$user = new Users();
$current_user = $user->retrieveCurrentUserInfoFromFile(Users::getActiveAdminId());
try {
$q = "SELECT * FROM vtiger_seactivityrel WHERE crmid = ".substr($entity->id, strpos($entity->id, "x") + 1);
$q = $q . ';';
$records = vtws_query($q, $current_user);
print_r($records);
} catch (WebServiceException $ex) {
echo $ex->getMessage();
}
break;
}
?>
Это должно дать мне результаты: если есть, я хочу предпринять дальнейшие действия. Это дает мне следующую ошибку:
Permission to perform the operation is denied for name
,
Я не знаю, что происходит, у кого-нибудь есть идеи? Спасибо.
Я решил это сам. Это факт vtws_query
НЕ запрашивает базу данных напрямую. У него есть какая-то абстракция, поэтому, если вы поместите таблицу базы данных и столбцы, она просто запрещает доступ. Хотя это и странно, правильная форма такова:
SELECT * FROM <ModuleName> WHERE <Property> = '<your_search>'
Чтобы перечислить модули, вы должны использовать vtws_listtypes
; чтобы узнать, какие свойства вы можете искать, используйте vtws_describe
, Больше информации Вот.
Других решений пока нет …