私のプロジェクトは、カスタム テーブルを含むすべてのセールスフォース テーブルの内容を抽出することです。これを行うには、列 (フィールド) の名前を知る必要があります。SOQL は「SELECT * from TABLENAME」をサポートしていないためです。
simple-salesforce を使用すると、次のことが機能することがわかっています。
sf = Salesforce(username='foo@bar.com', password='abcd', security_token='ZCdsdPdE4eI2DZMl5gwCFIGEFU')
field_data = sf.Contact.describe()["fields"]
しかし、私の問題は、上記の実際のメソッド呼び出しで「Contact」文字列をパラメーター化する必要があることです。これにより、名前がわからない (つまり、標準のセールスフォースで定義されていない) オブジェクトに対してこのメソッドを呼び出すことができます。たとえば、私はする必要があります:
field_data = sf.CustomTableName.describe()["fields"]
SFType クラスを使用しようとすると、次のようになります。
contact = SFType('Contact',sf.sessionid,sf.sf_instance)
f = contact.describe()
次のエラーが表示されます。
Traceback (most recent call last):
File "./simple-example.py", line 13, in <module>
f = contact.describe()["fields"]
File "/Library/Python/2.7/site-packages/simple_salesforce/api.py", line 430, in describe
result = self._call_salesforce('GET', self.base_url + 'describe')
File "/Library/Python/2.7/site-packages/simple_salesforce/api.py", line 570, in _call_salesforce
'Authorization': 'Bearer ' + self.session_id,
TypeError: cannot concatenate 'str' and 'SFType' objects
アドバイスをよろしくお願いします。