Я хочу добавить SalesOrder через web-сервис vTiger. Я использую для этого vtwsclib. Вот код:
<?php include_once('vtwsclib/Vtiger/WSClient.php'); $url = 'http://localhost:8888'; $client = new Vtiger_WSClient($url); $login = $client->doLogin('admin', 'zzzzzzzz'); if(!$login) echo 'Login Failed'; else { $data = array( 'subject' => 'Test SalesOrder', 'sostatus' => 'Created', 'invoicestatus'=>'AutoCreated', 'account_id'=> '46', // Existing account id 'bill_street' => 'Bill Street', 'ship_street' => 'Ship Street', ); $record = $client->doCreate('SalesOrder', $data); $error = $client->lasterror(); if($error) { echo $error['code'] . ' : ' . $error['message']; } if($record) { $salesorderid = $client->getRecordId($record['id']); } } ?>
И я получаю только: «ACCESS_DENIED: разрешение на выполнение операции отклонено для id».
Account_id существует в базе данных. Другой SalesOrder был добавлен с той же account_id, но через веб-страницу. Я также попробовал вариант с accout_id = "6×46", где 6 – module_id. Это также не сработало. Любые идеи, как решить эту проблему?
Я думаю, вы должны попробовать 11×46 для идентификатора учетной записи. Идентификатор объекта веб-служб Vtiger отличается от табидов.
Чтобы получить правильный список всех идентификаторов объектов, выполните это в своем MySQL для CRM:
select id, name from vtiger_ws_entity;
Проблема заключается в документации vtiger. добавьте параметр entityName в запрос GET.
var q = "select * from Users;"; "http://vtigercrm/webservice.php?operation=query&sessionName=ABC&entityName=XYZ&query="+q
Это сработало для меня. Хотя все еще не мог понять, что, давая какую-либо entityName или строку мусора, программа работает !!! Прокомментируйте, если вы знаете больше об этом.