2

リクエストパラメータは次のとおりです(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":"email1=ychaouche@feeder.fr",
"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"}"

編集

このエラーは、サブクエリの形式が正しくない場合に発生します。必ずしもモジュールにアクセスできない場合は発生しないため、注意が必要です。

4

1 に答える 1

5

さて、私の問題の1つの解決策は、そのクエリを次のクエリに置き換えることです。

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 = 'ychaouche@feeder.fr'
)   

どうやら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 = 'ychaouche@feeder.fr'
)  
"
"order_by":"",
"offset":0,
"select_fields":[],
"link_name_to_fields_array":[],
"max_results":0,
"deleted":false}
于 2012-11-20T15:07:16.940 に答える