感谢您帮助我完成第一个Stack Overflow问题。我试图从一个名为" Applied Questionnaire&#34 ;;的对象中的几个字段中检索所有数据。但是,我不想检索任何名称为"培训网站"。
的记录目前,这是我的代码,有效:
quarterly_site_scores = rforcecom.retrieve(session, "AppliedQuestionnaire__c",
c("Site__c", "Site_Name__c", "Total_Score__c"))
%>% rename(site_id = Site__c, site_name = Site_Name__c)
quarterly_site_scores = quarterly_site_scores[!(quarterly_site_scores$site_name == "TRAINING PARK SITE" |
quarterly_site_scores$status != "Completed"),]
但是,我想知道这里是否有更优雅,更精简的解决方案。我可以在检索的同时进行过滤吗?或者有更好的方法来过滤这里? (我已经在这里简化了代码 - 我实际上已经在大约十个字段中进行了过滤并且过滤了大约五六个标准,就在这个例子中)。
谢谢。
答案 0 :(得分:0)
使用salesforcer软件包添加OP发现的内容作为答案,该软件包将SOQL结果集作为tbl_df
返回。
library(salesforcer)
library(tidyverse)
sf_auth(username, password, security_token)
# list all object names in a Salesforce org
ped_objects <- sf_list_objects() %>% .$sobjects %>% map_chr(~pluck(., "name"))
# list all the fields on a particular object
fields <- sf_describe_object_fields('AppliedQuestionnaireBundle2__c')
# write a query to retrieve certain records from that object
site_scores_soql <- "SELECT Site__c,
Site_Name__c,
Total_Score__c
FROM AppliedQuestionnaireBundle2__c
WHERE Site_Name__c != 'GENERIC SITE'
AND Site_Name__c != 'TRAINING PARK SITE'
AND Status__c = 'Completed'"
# run the query
quarterly_site_scores <- sf_query(site_scores_soql)
quarterly_site_scores
#> # A tibble: 3 x 3
#> Site__c Site_Name__c Total_Score__c
#> <chr> <chr> <dbl>
#> 1 A Site Name1 78
#> 2 B Site Name2 52
#> 3 C Site Name3 83