【发布时间】:2021-10-19 22:19:56
【问题描述】:
我正在尝试使用 Python 从 Salesforce 批量读取数据。这是创建一个输出 JSON 文件。但是,该文件似乎并未包含所有数据。它有一些但不是全部。
我确认记录 ID 存在于 Salesforce 中,但不存在于 JSON 文件中。如果我将 WHERE 条件更改为在缺少的 id 的修改日期附近关闭,它会显示在 JSON 文件中。我认为这里的响应存在某种大小限制,但找不到任何东西。
有人遇到过这样的问题吗? TIA。
MissingSFData.py
...
sf_object = 'Account'
sf_conn = SalesforceOauthHook(self.sf_conn_id_client, self.sf_conn_id_user).sign_in()
bulk_query = 'select Id,IsDeleted from Account WHERE ModifiedDate >= 2021-06-17T23:10:00+00:00 AND ModifiedDate < 2021-06-21T23:15:00+00:00'
query_results = sf_conn.bulk.__getattr__(sf_object).query(bulk_query) /*bulk.py slightly different from default*/
...
SalesforceOauthHook.py
from simple_salesforce.api import Salesforce /**api.py slightly different from default**/
from airflow.hooks.base_hook import BaseHook
class SalesforceOauthHook(BaseHook):
...
def sign_in(self):
...
url = "https://{}.my.salesforce.com/services/oauth2/token".format(instance)
payload = "&".join([
"client_id={}".format(client_id),
"client_secret={}".format(client_secret),
"grant_type=password&",
"username={}".format(username),
"password={}".format(password)
])
headers = {
'content-type': "application/x-www-form-urlencoded"
}
response = requests.request("POST", url, data=payload, headers=headers)
credentials = response.json()
sf = Salesforce(instance_url=credentials["instance_url"],
session_id=credentials["access_token"],
version="47.0")
【问题讨论】:
标签: python salesforce