Nothing
## ---- echo = FALSE------------------------------------------------------------
NOT_CRAN <- identical(tolower(Sys.getenv("NOT_CRAN")), "true")
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
purl = NOT_CRAN,
eval = NOT_CRAN
)
options(tibble.print_min = 5L, tibble.print_max = 5L)
## ----auth, include = FALSE----------------------------------------------------
suppressWarnings(suppressMessages(library(dplyr)))
suppressWarnings(suppressMessages(library(here)))
library(salesforcer)
token_path <- Sys.getenv("SALESFORCER_TOKEN_PATH")
sf_auth(token = paste0(token_path, "salesforcer_token.rds"))
## ----load-package, eval=FALSE-------------------------------------------------
# library(dplyr, warn.conflicts = FALSE)
# library(salesforcer)
# sf_auth()
## -----------------------------------------------------------------------------
n <- 4
prefix <- paste0("Bulk-", as.integer(runif(1,1,100000)), "-")
new_contacts <- tibble(FirstName = rep("Test", n),
LastName = paste0("Contact-Create-", 1:n),
My_External_Id__c=paste0(prefix, letters[1:n]))
## -----------------------------------------------------------------------------
# REST
rest_created_records <- sf_create(new_contacts[1:2,],
object_name="Contact",
api_type="REST")
rest_created_records
# Bulk
bulk_created_records <- sf_create(new_contacts[3:4,],
object_name="Contact",
api_type="Bulk 1.0")
bulk_created_records
## ---- include=FALSE-----------------------------------------------------------
n <- 2
prefix <- paste0("Bulk-", as.integer(runif(1,1,100000)), "-")
new_contacts <- tibble(FirstName = rep("Test", n),
LastName = paste0("Contact-Create-", 1:n),
My_External_Id__c=paste0(prefix, letters[1:n]))
## -----------------------------------------------------------------------------
object <- "Contact"
created_records <- sf_create(new_contacts, object_name=object, api_type="Bulk 1.0")
created_records
# query bulk
my_soql <- sprintf("SELECT Id,
FirstName,
LastName
FROM Contact
WHERE Id in ('%s')",
paste0(created_records$Id , collapse="','"))
queried_records <- sf_query(my_soql, object_name=object, api_type="Bulk 1.0")
queried_records
# delete bulk
deleted_records <- sf_delete(queried_records$Id, object_name=object, api_type="Bulk 1.0")
deleted_records
## -----------------------------------------------------------------------------
n <- 20
prefix <- paste0("Bulk-", as.integer(runif(1,1,100000)), "-")
new_contacts <- tibble(FirstName = rep("Test", n),
LastName = paste0("Contact-Create-", 1:n),
test_number__c = 1:n,
My_External_Id__c=paste0(prefix, letters[1:n]))
created_records_v1 <- sf_create(new_contacts[1:10,],
object_name = "Contact",
api_type = "Bulk 1.0")
created_records_v1
created_records_v2 <- sf_create(new_contacts[11:20,],
object_name = "Contact",
api_type = "Bulk 2.0")
created_records_v2
## ---- warning=FALSE, message=FALSE--------------------------------------------
soql <- "SELECT Id, Name FROM Contact"
bulk1_query <- function(){sf_query(soql, "Contact", api_type="Bulk 1.0")}
bulk2_query <- function(){sf_query(soql, api_type="Bulk 2.0")} # Bulk 2.0 doesn't need object name
res <- microbenchmark::microbenchmark(
bulk1_query(),
bulk2_query(),
times=8,
unit = "s"
)
res
suppressWarnings(suppressMessages(
ggplot2::autoplot(res) +
ggplot2::scale_y_continuous(name="Time [seconds]", n.breaks=6)
))
## ---- include=FALSE-----------------------------------------------------------
sf_delete(c(created_records_v1$Id, created_records_v2$sf__Id),
object_name = "Contact", api_type="Bulk 2.0")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.