问题描述
我知道这适用于工作台:
SELECT Id,bizible2__BizibleId__c FROM Task
其中 bizible2__BizibleIid__c 在活动表上。 这也有效:
SELECT Id,bizible2__BizibleId__c,owner_manager__c FROM Task
但它在 simple_salesforce 中不起作用。不知道为什么。所以我尝试模拟它,因为 owner_manager__c 是一个计算字段,等于: 所有者:User.Manager.FirstName &" " & Owner:User.Manager.LastName
所有者是任务表和大概活动表的标准关系。我的尝试:
SELECT Id,Owner.name FROM Task
有效,但是
SELECT Id,Owner.Manager.FirstName FROM Task
没用。经理是一个等级制度。我认为这可能是因为所有者关系是用户、日历、其他东西而不仅仅是用户,所以我尝试了
SELECT Id,LastModifiedBy.Manager.FirstName FROM Task
那没有用。
解决方法
我想通了。您必须转到 simple_salesforce 所在的目录:site-packages\simple_salesforce\api.py。然后在 DEFAULT_API_VERSION = '42.0' 行中,将 42.0 更改为 51.0。当然,这是一个可怕的黑客,所以我问了这个问题: How do I change the api version of Simple Saleforce
但到目前为止,除了我所做的之外,没有其他答案。
,据我所知,“简单的销售人员”使用 REST,并且此 API 尊重字段级安全性。您确定您可以访问该字段吗?仅仅因为您是系统管理员并绕过 UI 中的内容并不意味着您的个人资料就没有问题。 Workbench 可能正在使用 SOAP API,它有点旧,并且不强制执行这些字段(还)。
这对你有什么作用?
SELECT Id,TYPEOF Owner
WHEN User THEN Username,Manager.Name
END
FROM Task
在突变字段上,有时您需要使用 polymorphic SOQL 来获取您想要的字段。但是,该公式应该可以正常工作。