SalesforceXyToolsCore/Python上でSalesforce組織のSoqlを実行する

Topic

メールテンプレートのフォルダーを取得する

  • Salesforce組織のユーザ名、パスワード、Apiバージョン、Product/Sandboxを設定してください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from SalesforceXytoolsCore import *
import pprint
config = {
"api_version": 42.0,
"username": "sfdc username",
"password": "sfdc password",
"security_token": "",
"is_sandbox": True
}
soap_api = Soap(username=config["username"],
password=config["password"],
security_token=config["security_token"],
sandbox=config["is_sandbox"],
version=config["api_version"]
)
"""
Run Soql Queries
"""
soql_string = "SELECT Id, Name FROM User LIMIT 3"
result = soap_api.query(soql_string)
pprint.pprint(result)

結果確認

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
OrderedDict([('totalSize', 3),
('done', True),
('records',
[OrderedDict([('attributes',
OrderedDict([('type', 'User'),
('url',
'/services/data/v42.0/sobjects/User/005XXXXXXXXXXXXXXX')])),
('Id', '005XXXXXXXXXXXXXXX'),
('Name', 'Process Automated')]),
OrderedDict([('attributes',
OrderedDict([('type', 'User'),
('url',
'/services/data/v42.0/sobjects/User/005XXXXXXXXXXXXXXX')])),
('Id', '005XXXXXXXXXXXXXXX'),
('Name', 'サイトゲストユーザ')]),
OrderedDict([('attributes',
OrderedDict([('type', 'User'),
('url',
'/services/data/v42.0/sobjects/User/005XXXXXXXXXXXXXXX')])),
('Id', '005XXXXXXXXXXXXXXX'),
('Name', 'SFDC Exia')])])])

その他方法

query_more

1
2
soap_api.query_more(sobject_id)
soap_api.query_more("/services/data/v43.0/query/sobject_id", True)

query_allですべてのデータを取得する

1
soap_api.query_all("SELECT Id, Email FROM Contact WHERE LastName = 'Jones'")
1
soap_api.search("FIND {exia}")
1
soap_api.quick_search("exia")