0

アカウント名と名前に基づいて商談を探すために、次のクエリを実行しました。

public function getOpportunity($session_id, $client, $email, $name){

        $acc = $this->getAccount($session_id, $client, $email);
        $acc_id = $acc->entry_list[0]->id;
        $query2 = " 
                            opportunities.id in
                            (select accounts_opportunities.opportunity_id from
                            accounts_opportunities inner join
                            accounts where
                                                    accounts_opportunities.account_id = accounts.id and
                                                    accounts_opportunities.deleted = 0 and
                                                    accounts.deleted = 0 and
                                                    accounts.id = '{$acc_id}')
                            and opportunities.deleted=0
                            and opportunities.name = '{$name}'";

        $op = $client->get_entry_list($session_id, 'Opportunities', $query2);

        return $op;
    }

何らかの理由で、エラー 40 アクセスが拒否されたというエラーが返されます。このクエリが機能しない理由がわかりません。メールでアカウントを見つけるために同様のことを行ったところ、エラーなしで必要な結果が正常に返されました。そのクエリは次のとおりです。

    public function getAccount($session_id, $client, $email){

        $query = "accounts.id in 
( select bean_id from 
email_addr_bean_rel inner join
email_addresses where 
email_addr_bean_rel.email_address_id = email_addresses.id 
and email_addr_bean_rel.deleted = 0 and
email_addresses.deleted = 0 and 
bean_module = 'Accounts' and
email_addresses.email_address = '{$email}' )";

        $acc = $client->get_entry_list($session_id, 'Accounts', $query);
        return $acc;   
    }

どんな助けでも大歓迎です。ありがとうございました。

編集: SOAP API と PHP を使用しています。

4

1 に答える 1

0

詳細については、このブログ投稿を参照してください...

http://developers.sugarcrm.com/wordpress/2012/03/19/howto-avoiding-subqueries-with-our-web-services/

于 2013-04-17T19:50:24.630 に答える