de Wilson Wang

Frumusețea Heroku Connect: simplificarea sincronizării bazei de date

În prezent sunt dezvoltator pentru Plan, o organizație la UC Berkeley. Dezvoltăm software pro bono pentru organizații non-profit și avansăm tehnologia pentru binele social. Anul trecut, echipa mea a lucrat la construirea unei soluții pentru Proiectul Visului. Scopul este de a oferi o educație mai bună copiilor din Republica Dominicană.

Scriu această postare în speranța de a-mi împărtăși experiența de a face integrarea Salesforce folosind aplicația Heroku Connect pentru o aplicație Ruby on Rails / React Native.

Frumusetea lui Heroku Connect simplificarea sincronizarii bazei de date

Ce este Heroku Connect?

„Heroku Connect vă permite să creați cu ușurință aplicații Heroku care partajează date cu implementarea dvs. Salesforce. Folosind sincronizarea bidirecțională între Salesforce și Heroku Postgres, Heroku Connect unifică datele din baza de date Postgres cu contactele, conturile și alte obiecte personalizate din baza de date Salesforce. ”

O altă modalitate de a spune …

Heroku Connect vă ajută să înlocuiți baza de date Postgres a aplicației cu o bază de date Salesforce. Desigur, deoarece aplicațiile Rails se conectează nativ la Postgres, nu puteți efectua apeluri imediate și trimite la Salesforce fără un API cum ar fi Restforzați bijuteria.

În realitate, baza de date Postgres cu care va interacționa aplicația noastră Rails servește ca o deghizare pentru Salesforce. Este un intermediar care funcționează. Toate datele trebuie să le parcurgă înainte de a ajunge la Salesforce și invers. Heroku Connect este podul care combină capacitățile Force.com și Heroku fără a fi nevoie de o bijuterie.

S-ar putea să întrebați … de ce să vă deranjați chiar să învățați integrarea Salesforce?

Ei bine, integrarea Salesforce simplifică procesul de stocare și recuperare a datelor. Mai ales datele despre clienți pentru companii.

Puteți oferi clienților dvs. sisteme informatice modernizate pentru o experiență îmbunătățită a utilizatorului și flux de lucru. Veți accelera dezvoltarea aplicațiilor. De asemenea, creează instrumente mai bune pentru informarea managementului și a vânzărilor cu privire la performanța afacerii.

Acest lucru ajută întreprinderile să atingă niveluri eficiente de funcționare pentru aplicațiile business-to-consumer. Face acest lucru prin actualizări instantanee și precise.

Un exemplu de proiect pentru inspirație

Pentru a oferi câteva informații despre fragmentele de cod de mai jos în tutorial, voi explica în prealabil proiectul la care lucram. Acest proiect m-a făcut să fiu prezentat la Heroku Connect.

Anterior, Dream înregistra informații despre studenți într-o bază de date Salesforce. Acest lucru nu a fost ideal pentru profesori. Pentru a le face viața mai ușoară, am creat o aplicație ușor de utilizat. Aplicația a gestionat crearea cursului, înscrierea studenților și participarea la cursuri.

Datorită conexiunii slabe la internet din campusurile Dream, am apelat la Heroku Connect pentru sincronizarea constantă a actualizărilor. S-a sincronizat actualizările din partea bazei de date Heroku Postgres și din partea bazei de date Salesforce.

Tot codul descris în această demonstrație este disponibil în repo de proiect. De asemenea, puteți verifica partea React a aplicației aici.

Bine, să începem demo-ul …

Prezentare generală

Voi aborda această demonstrație în următoarea ordine:

  1. Descrierea Tech
  2. Configurare (Heroku Postgres și Heroku Connect)
  3. Heroku Connect Mappings + Note
  4. Modificări ale aplicației locale Rails

Descrierea Tech

Configurare: implementarea aplicației pe Rails

După configurarea aplicației Rails, doriți să implementați aplicația pe Heroku. Iată o prezentare rapidă despre implementarea aplicației:

  1. Conectați-vă la contul dvs. Heroku și veți fi redirecționat către tabloul de bord din dreapta sus. Veți vedea un buton „Nou” în partea dreaptă sus pentru a crea un proiect nou. Introduceți numele aplicației personalizate și creați-o.
  2. Veți fi redirecționat către pagina de implementare a noii aplicații. Derulați în jos până la secțiunea „Implementați utilizând Heroku Git”. Urmați instrucțiunile de pe pagină. (Notă: după ce adăugați telecomanda Heroku Git, puteți să vă actualizați întotdeauna aplicația Heroku. Actualizați adăugând și comitând modificările și în cele din urmă făcând o apăsare git Heroku maestru.)

Cel mai probabil, dacă este prima dată, veți întâmpina o eroare: „Implementarea Heroku a eșuat din cauza erorii sqlite3 gem”. Acest lucru se datorează faptului că Heroku folosește Postgres în loc de sqlite3. Pentru a remedia acest lucru, verificați acest lucru Stack Post overflow.

Heroku Postgres

Cu aplicația dvs. implementată, pagina de prezentare generală ar trebui să aibă programul suplimentar Heroku Postgres. Aceasta este baza de date obișnuită pentru aplicațiile Heroku implementate.

0*R9kFu8MDX4RC17HJ
Suplimente precum Heroku Postgres sau Heroku Connect apar în fila Prezentare generală sau fila Resurse.

Faceți clic pe acest supliment pentru a verifica informațiile bazei de date URL în fila Setări. Asigurați-vă că adăugați adresa URL a bazei de date Postgres în aplicația Rails.

Pentru a adăuga adresa URL a bazei de date, puteți crea fie o variabilă de mediu utilizând Figaro bijuterie:

sau pur și simplu includeți o variabilă URL în fișierul database.yml:

Heroku Connect

Apoi, faceți clic pe Configurare programe de completare sau fila Resurse și căutați Heroku Connect. Faceți clic pe provizion pentru a adăuga suplimentul.

0*g85k6DdH9HyNB1vJ

Veți fi apoi redirecționat către ecranul de mai jos. Rețineți că numele schemei este „salesforce” deocamdată (nu ezitați să îl modificați și) și sunteți bine să continuați.

1611501551 233 Frumusetea lui Heroku Connect simplificarea sincronizarii bazei de date

Faceți clic pe configurare conexiune. Introduceți informațiile de utilizator Salesforce pentru a stabili conexiunea cu detaliile corespunzătoare.

Acum ați terminat configurarea! Acum putem trece la mapări.

Cartografii

Am înregistrat un scurt videoclip cu crearea unei mapări pentru un obiect profesor:

Videoclipul este o prezentare generală pentru stabilirea mapărilor. Există câteva lucruri pe care vreau să le explic mai departe cu care personal m-am confundat. După ce am citit aceste precizări, aș recomanda revizionarea videoclipului pentru o mai bună înțelegere.

1. „__c”

S-ar putea să vă întrebați de ce sunt atât de multe „__c” care sunt atașate la sfârșitul obiectului profesorului și a câmpurilor profesorului. Ei bine, Salesforce adaugă acest fapt la fiecare clasă / câmp personalizat.

Deci, legându-mă înapoi la proiectul meu Rails, numele tabelului este acum Profesor__c în loc de Profesor și coloanele / câmpurile s-au schimbat de la nume precum Prenume, Prenume Prenume_c, Last_name__c. Unele câmpuri implicite cum ar fi sfid sau data creata nu sunt personalizate, deci nu necesită adăugarea „__c”.

2. Câmpuri personalizate

Deci, cum creați câmpuri personalizate? Ei bine, există de fapt o mică săgeată în partea dreaptă a ecranului pentru a edita obiecte și câmpuri.

0*BZ1PIjziwnyF2V3A
Faceți clic pe vizualizare obiect / câmpuri pentru a le modifica, respectiv.

După fiecare modificare, nu uitați să verificați dacă trebuie să modificați și mapările Heroku Connect.

3. Sincronizare bidirecțională

0*

Am vrut să subliniez două caracteristici foarte interesante despre sincronizarea bidirecțională a lui Heroku Connect. Primul este frecvența sondajelor, care reglementează frecvența cu care doriți ca baza de date Postgres să fie actualizată cu actualizări Salesforce. Bifarea casetei Accelerate Polling face ca majoritatea operațiilor să fie aproape instantanee.

A doua este secțiunea despre împingerea datelor din baza de date Postgres pentru a se sincroniza cu baza de date Salesforce. Trebuie să bifați caseta pentru ca această funcție să funcționeze deloc. Cu toate acestea, imediat după aceea, veți vedea cel mai probabil un avertisment pop-up:

„Avertisment: mapările de citire-scriere necesită un identificator unic pentru a fi specificat.”

Acesta este un strat de protecție pentru a vă asigura că nu creați accidental obiecte duplicat. Este minunat dacă aveți un identificator unic (în videoclip, fiecare profesor are un e-mail unic, așa că am făcut identificatorul meu). În caz contrar, puteți sări peste acesta și să aveți în continuare o mapare funcțională Heroku Connect. Cu toate acestea, vă recomandăm să programați aplicația pentru a verifica din nou înregistrările existente înainte de a crea un obiect.

Modificări ale aplicației locale Rails

Acum că aveți totul Heroku Connect frumos și configurat, este timpul pentru o ajustare locală rapidă înainte de a putea interacționa cu datele dvs. Salesforce.

0*qqvmsH kzF NeCh

În prezentare generală, veți vedea numele schemei dvs., în acest caz „salesforce”. Dacă ați fi ales un alt nume în timpul fazei de aprovizionare, acel nume ar apărea aici.

Deoarece numele tabelei aplicației mele Rails este încă profesor, trebuie să îl schimb în Profesor__c pentru a face referire corectă la datele Salesforce. Trebuie să schimb numele tabelului în format nume_schemă.nume_obiect sau salesforce.teacher__c pentru a reflecta schimbările.

Cealaltă modificare notabilă se aplică dacă modelul dvs. are afirmații validate, cum ar fi modelul meu de profesor. După cuvântul cheie validat, avem în continuare vechile nume de câmpuri, cum ar fi prenumele fără „__c” și prenumele fără „__c”. Trebuie să schimbăm aceste nume fie prin adăugarea „__c” la vechile nume de câmpuri, fie prin crearea de metode separate:

Apoi, creați câteva obiecte în Salesforce și deschideți consola Rails pentru a prelua aceste informații. (În videoclip, am sunat la Teacher.all pentru a afișa toate obiectele Salesforce Teacher în consola mea Rails.) Informațiile ar trebui să fie reflectate și în exploratorul Heroku Connect.

Reflecţie

Mi-am petrecut o jumătate bună a semestrului încercând să dau seama de integrarea Salesforce. Am făcut o mulțime de cercetări, am experimentat diferite soluții și mult sprijin. În cele din urmă, a fost o experiență foarte iluminatoare să lucrezi cu caracteristicile interesante ale Salesforce / Heroku / Rails. De asemenea, am aflat cât de mult am crescut ca dezvoltator și reflectez asupra punctelor mele tari și punctelor slabe.

De obicei oamenii pun în aplicare primele soluții pe care le găsesc. Fac asta fără să înțeleagă de ce este bine sau rău. Am cercetat și am planificat trei soluții separate înainte de a descoperi Heroku Connect. Prin aceasta, mi-am dat seama cât de important era să cântăresc avantajele și dezavantajele diferitelor soluții înainte de stabilire, chiar dacă se petrece mai mult timp cercetând în loc să pună în aplicare.

Folosind aceste cunoștințe, echipa mea și cu mine am construit o aplicație pentru a ajuta profesorii să ofere educație de calitate elevilor din școlile din Republica Dominicană care au o conexiune slabă la Internet. Am învățat să perseverăm când vremurile erau grele, deoarece știam că, în ciuda fiecărei sesiuni de lucru lungi, a fiecărei remedieri de erori, a fiecărei linii de cod, aveam o misiune și fiecare pas al drumului era un alt pas către îmbunătățirea lumii.

Această experiență m-a ajutat să prioritizez cu adevărat obiectivul și importanța de a face o muncă de calitate în loc să folosesc imediat cea mai rapidă cale de parcurs. Fiecare soluție merită cercetată avantajele și dezavantajele sale. Totul ține de rezistență și tenacitate.

Deci, pentru toți dezvoltatorii de acolo, indiferent de situația în care vă aflați, nu renunțați. Nu vă fie teamă să încercați soluții noi și să eșuați. Rămâi pozitiv și fericit Deving!

Wilson Wang este junior la UC Berkeley care studiază informatică și știința datelor. El este interesat de dezvoltarea de software pentru îmbunătățirea relațiilor între afaceri și clienți. Pe lângă tehnologie, Wilson este pasionat de artele marțiale, designul arhitectural și fotografia de peisaj.

Frumusetea lui Heroku Connect simplificarea sincronizarii bazei de date

Mulțumesc pentru lectură! Pentru a afla mai multe despre Blueprint, urmați-ne Facebook și Instagram, și vizitați-ne site-ul web!