以下是请求参数(url = http://sugarcrm.localhost/service/v4_1/rest.php):
method=get_entry_list&input_type=json&response_type=json
&rest_data {"session":"2q67jvlce802e4htsqc94oshkat9henvicvfclprhrbd8ef6k0o0",
"module_name":"Contacts",
"query":"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4f2a222e26237e72362c272e203a2c272a0f292a2a2b2a3d61293d" rel="noreferrer noopener nofollow">[email protected]</a>",
"order_by":"",
"offset":0,
"select_fields":[],
"link_name_to_fields_array":[],
"max_results":0,
"deleted":false}
我得到这个结果:
"{"name":"Access Denied","number":40,"description":"You do not have access"}"
编辑
每当子查询格式错误时(不一定是无权访问模块时)都会触发此错误,因此应该意识到这一点。
最佳答案
嗯,解决我的问题的一种方法是用这个查询替换该查询:
contacts.id
IN
(
SELECT email_addr_bean_rel.bean_id
FROM email_addr_bean_rel
JOIN email_addresses
ON email_addr_bean_rel.email_address_id = email_addresses.id
WHERE
email_addresses.email_address = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4f362c272e203a2c272a0f292a2a2b2a3d61293d" rel="noreferrer noopener nofollow">[email protected]</a>'
)
因为看起来 email1 和 email2 字段不可查询(它们不在“联系人”表中)。解决方法包括通过子查询查询 email_address 表。
编辑:使整个查询应如下所示:
method=get_entry_list&input_type=json&response_type=json
&rest_data {"session":"2q67jvlce802e4htsqc94oshkat9henvicvfclprhrbd8ef6k0o0",
"module_name":"Contacts",
"query":
"
contacts.id
IN
(
SELECT email_addr_bean_rel.bean_id
FROM email_addr_bean_rel
JOIN email_addresses
ON email_addr_bean_rel.email_address_id = email_addresses.id
WHERE
email_addresses.email_address = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="621b010a030d17010a07220407070607104c0410" rel="noreferrer noopener nofollow">[email protected]</a>'
)
"
"order_by":"",
"offset":0,
"select_fields":[],
"link_name_to_fields_array":[],
"max_results":0,
"deleted":false}
关于api - 如何克服 SugarCRM 中的错误 40 "Access Denied -- You do not have access"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13456931/