2016-07-04 1 views
1

私はsimple_salesforceを使用しており、 "SER__Condition__c"というカスタムオブジェクトのすべてのレコードを取得しています。私は管理者からテーブル名のリストが得られたので、それが名前であるという事実を知っています。
"api"は "simple_salesforce.Salesforce"のインスタンスです。このエラーを返すシンプルセールスフォースがカスタムオブジェクトを認識しない

pprint(api.query('SELECT Id FROM SER__Condition__c')) 

pprint(api.query('SELECT Id FROM Account')) 
:デフォルトのオブジェクトのためにまったく同じコマンドを使用して

File "path\to\lib\simple_salesforce\api.py", line 698, in _exception_handler 
    raise exc_cls(result.url, result.status_code, name, response_content) 
simple_salesforce.api.SalesforceMalformedRequest: Malformed request https://xxx.salesforce.com/services/data/v29.0/query/?q=SELECT+Id+FROM+SER__Condition__c. Response content: [{'message': "\nSELECT Id FROM SER__Condition__c\n 
     ^\nERROR at Row:1:Column:16\nsObject type 'SER__Condition__c' is not supported. If you are attempting to use a custom object, be sure to append the '__c' after the entity name. Please reference your WSDL or the describe call for the appropriate names.", 'errorCode': 'INVALID_TYPE'}] 

を期待通りにすべてのレコードを返し
これは私が実行していますコマンドがあります

これらの2つについても同じことが言えます。

api.Account.get('xxxxxxxxxxxxxxxxxx') 
api.SER__Condition__c.get('xxxxxxxxxxxxxxxx') 

答えて

1

おそらく権限の問題です。クエリを実行しているユーザーにSER__Condition__cオブジェクトが表示されていることを確認してください。

1

私は90%問題はオブジェクトの名前であると確信しています。 Salesforceでは、カスタムオブジェクトの命名規則に2つの連続したアンダースコアを含めることはできません。オブジェクト作成時のSalesforceのエラーメッセージから「エラー:オブジェクト名フィールドにはアンダースコアと英数字しか含めることができません。一意で、文字で始まり、スペースを含まず、アンダースコアで終わらず、2つの連続したアンダースコア"

"SER__Condition__c"を "SER_Condition__c"( "SER"と "Contition"の間のアンダースコア)に変更すると、問題を修正するはずです。