使用 simple-salesforce 从 salesforce table 中删除 table 行
delete a table row from salesforce table with simple-salesforce
我已经设法查询 tables,提取模式并向(自定义)table 添加一行,但无法弄清楚如何通过 api 再次删除该行.以下将列出我要删除的行:
import config
from simple_salesforce import Salesforce
sf = Salesforce(password=config.PASSWORD,
username=config.EMAIL_SANDBOX,
organizationId='',
domain='test')
sf.query("SELECT Id FROM MyTable__c where id = 'a0D2R067009YpAeWAK'")
已经在网上尝试了很长时间的各种东西,最有可能的是这样的:
sf.query("delete [SELECT Id FROM MyTable__c where id = 'a0D2R067009YpAeWAK']")
如所述here,但不幸的是它引发了:
SalesforceMalformedRequest: Malformed request https://eu20.salesforce.com/services/data/v38.0/query/?q=delete+%5BSELECT+Id+FROM+MyTable__c+where+id+%3D+%27a0D2R067009YpAeWAK%27%5D. Response content: [{'message': 'unexpected token: delete', 'errorCode': 'MALFORMED_QUERY'}]
已经尝试了这方面的变体,结果基本相同。有什么想法可以让它发挥作用吗?
要删除simple_salesforce
中的记录,您必须调用与sObject 对应的连接属性的方法。 SOQL 查询是 read-only 并且永远不能更新或删除数据,尽管 Anonymous Apex 可以。
simple_salesforce
documentation中有一个例子:
sf.Contact.delete('003e0000003GuNXAA0')
如果你想通过Anonymous Apex来做,你可以使用restful()
方法来打工具API,但这不是"right"方法做一个简单的删除操作会比较慢
sf.restful(
"tooling/executeAnonymous",
{"anonymousBody": "delete [SELECT Id FROM Contact WHERE <condition>];"},
)
我已经设法查询 tables,提取模式并向(自定义)table 添加一行,但无法弄清楚如何通过 api 再次删除该行.以下将列出我要删除的行:
import config
from simple_salesforce import Salesforce
sf = Salesforce(password=config.PASSWORD,
username=config.EMAIL_SANDBOX,
organizationId='',
domain='test')
sf.query("SELECT Id FROM MyTable__c where id = 'a0D2R067009YpAeWAK'")
已经在网上尝试了很长时间的各种东西,最有可能的是这样的:
sf.query("delete [SELECT Id FROM MyTable__c where id = 'a0D2R067009YpAeWAK']")
如所述here,但不幸的是它引发了:
SalesforceMalformedRequest: Malformed request https://eu20.salesforce.com/services/data/v38.0/query/?q=delete+%5BSELECT+Id+FROM+MyTable__c+where+id+%3D+%27a0D2R067009YpAeWAK%27%5D. Response content: [{'message': 'unexpected token: delete', 'errorCode': 'MALFORMED_QUERY'}]
已经尝试了这方面的变体,结果基本相同。有什么想法可以让它发挥作用吗?
要删除simple_salesforce
中的记录,您必须调用与sObject 对应的连接属性的方法。 SOQL 查询是 read-only 并且永远不能更新或删除数据,尽管 Anonymous Apex 可以。
simple_salesforce
documentation中有一个例子:
sf.Contact.delete('003e0000003GuNXAA0')
如果你想通过Anonymous Apex来做,你可以使用restful()
方法来打工具API,但这不是"right"方法做一个简单的删除操作会比较慢
sf.restful(
"tooling/executeAnonymous",
{"anonymousBody": "delete [SELECT Id FROM Contact WHERE <condition>];"},
)