Integrazione dell'API Salesforce con l'app Rails

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_c
sf.create(‘Certification_c’, Certification_type_c: ‘CSR In-Person’)
6. trovare
# Trova una certificazione in base all'ID
sf.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'ID
sf.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

Informazioni sull'autore del post

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


it_ITItalian