5

simple-salesforceドキュメントを読むと、次のようなハードコーディングされたメソッドを使用してオブジェクト メタデータにアクセスすることのみが示されます。

sf.Contact.metadata()

このようなことをする方法はありませんか?

sf["Contact"].metadata()

オブジェクトのリストをループして、これらすべてのオブジェクト フィールドを取得したいのですが、上記の制限により、これは不可能のようです。

for obj in objects:
    fields = [x["name"] for x in sf[obj].describe()["fields"]]
    # processing for each object

ハードコーディングされた値の代わりに、文字列パラメーターを使用してオブジェクト メタデータにアクセスする方法はありますか?

4

1 に答える 1

4

SF。インターフェイスは、実際には Salesforce クラスのget_attrメソッドを呼び出します。

get_attrは、SFType(名前、self.session_id、self.sf_instance、self.sf_version、self.proxies) の値を返します。

次のようにして、やりたいことができます。

from simple_salesforce import SFType
....
sf_object = ['Case', 'Contact', 'Account', 'Custom1__c', 'Custom2__c']
for each in sf_object:
    SFType(each, sf.session_id, sf.sf_instance, sf.sf_version, sf.proxies).metadata()

それが役立つことを願っています。

于 2015-12-07T17:32:36.990 に答える