如何使用 soql 获取 simple_salesforce 活动表中计算字段的值

问题描述

我知道这适用于工作台:

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 来获取您想要的字段。但是,该公式应该可以正常工作。