Salesforce è nota per essere una piattaforma di Customer Relationship Management (CRM) e fornisce applicazioni basate su cloud per le vendite, l’assistenza e il marketing. Questo articolo ha lo scopo di fornire una comprensione più chiara dell’API di Salesforce e di come sia possibile sincronizzare i dati tra Salesforce e la propria applicazione Rails.
Per integrare l'API di Salesforce con la propria applicazione Rails, è necessario seguire i seguenti passaggi:
Utilizza la gemma Rails “restforce” – https://github.com/ejholmes/restforce
Installazione
Aggiungi ‘gem ’restforce‘, ’~> 2.5.3‘’ al tuo Gemfile Esegui ‘bundle install’ oppure "gem install restforce"
Configurazione
Nel file application.yml, imposta le seguenti variabili d'ambiente: –SALESFORCE_USERNAME: “nome utente” SALESFORCE_PASSWORD: “password” SALESFORCE_SECURITY_TOKEN: “token di sicurezza” SALESFORCE_CLIENT_ID: “ID cliente” SALESFORCE_CLIENT_SECRET: “segreto cliente” SALESFORCE_HOST: “nome dominio host” SALESFORCE_API_VERSION=”38.0″Prova a collegarti a Salesforce eseguendo “sf = Restforce.new”
Esecuzione di query su Salesforce
Salesforce può contenere diversi oggetti, quali Account, Certification_c, Learner ecc. Per accedere a questi oggetti, è possibile utilizzare le seguenti query.- richiesta
- query_all
- seleziona
- cerca
- creare
- trova
- aggiornamento
- distruggere
1. query
Esempio 1:accounts = sf.query(“select Id, Something__c from Account”)Esempio 2: Query basata sul tempo utilizzando la clausola WHERE # ora dell'ultima sincronizzazione
last_synced_at = (Time.now.utc – 1.hour).strftime(“%Y-%m-%dT%H:%M:%SZ”)#: ora di sistema corrente
current_time = Time.now.utc.strftime(“%Y-%m-%dT%H:%M:%SZ”)
sf.query(“select Id, Something__c from Account WHERE LastModifiedDate >= #{last_synced_at} AND LastModifiedDate <= #{current_time}”)
2. query_all
query_all consente di includere i risultati della query che Salesforce nasconde nel metodo “query” predefinito. Tra questi figurano anche i record sottoposti a cancellazione temporanea e quelli archiviati (ad esempio, i record relativi a attività ed eventi, che di solito vengono archiviati automaticamente dopo un anno dalla loro creazione)accounts = sf.query_all(“select Id, Something__c from Account where isDeleted = true”)
3. selezionare
Il comando `select` consente di recuperare un elenco specifico di campi da un singolo oggetto. Richiede una ricerca tramite `external_id`, ma spesso è molto più veloce di una query arbitraria.sf.select(‘Account’, ‘001D000000INjVe’, [“Id”], ‘Some_External_Id_Field__c’)
4. Ricerca
# Trova tutte le occorrenze di ‘bar’sf.search(‘FIND {bar}’)
5. creare
# Aggiungi una nuova certificazione_csf.create(‘Certification_c’, Certification_type_c: ‘CSR In-Person’)
6. trovare
# Trova una certificazione in base all'IDsf.find(‘Certification_c’, ‘001D000000INjVe’)
7. aggiornamento
# Aggiornare il file ‘Certification_c’ con l‘`Id` ’0016000000MRatd”sf.update(‘Certification_c’, Id: ‘0016000000MRatd’, Certification_type_c: ‘CSR Vertual’)
8. distruggere
# Elimina una certificazione in base all'IDsf.destroy(‘Certification_c’, ‘001D000000INjVe’)
Limiti API
Salesforce prevede un limite alle chiamate API per giorno e per ora. Pertanto, è sufficiente controllare il numero totale di chiamate API effettuate e quelle ancora disponibili.limits = sf.limits limits[“DailyApiRequests”]
Output = {“Max”=>15000, “Remaining”=>14746}Risoluzione degli errori di connessione all'API di Restforce
def self.connect_to_salesforce
sf = nil
begin
sf = Restforce.new
rescue Exception => e
error_message = "Impossibile connettersi a Salesforce utilizzando la gemma restforce!"
end
end Iscriviti per gli ultimi aggiornamenti
Articoli correlati