Salesforce fejlesztés alapjai

Bár rendszerkonfiguráció esetén a Salesforce lehetőségek széles tárházát kínálja fel számunkra, az ügyfelek többsége mégis próbálja a saját szervezeti és üzleti folyamatait viszont látni a rendszerben, túllépve a szabványos funkciókon.

Ezekben az esetekben kerülnek képbe a Salesforce fejlesztők, akik segítenek minél inkább testreszabni a rendszert az ügyfél igényeinek megfelelően.

Fontos tisztáznunk, hogy ebben az esetben nem a Salesforce hackeléséről van szó. A Salesforce-nak is érdeke, hogy támogassa a rendszerek testreszabhatóságát a legmagasabb szinteken, ennek érdekében olyan eszközöket nyújtson a fejlesztéshez, mint a saját keretrendszer. A fejlesztőknek csupán telepíteniük kell egy megfelelő fejlesztői környezetet (pl.: Welkin Suite, Eclipse, IntelliJ), majd abban létrehozniuk egy projektet az aktuálisan fejlesztendő rendszerhez csatlakozva, melyhez a pontosabb verziókövetés érdekében opcionálisan GitHubot is integrálhatunk.

Hétköznapi Salesforce fejlesztési példák

Lássuk, hogy mik is a lehetőségek a Salesforce fejlesztésben, valódi példákon keresztül:

  • Automatizált háttérfolyamatok: általában DML (Data Manipulation Language) parancsok váltják ki működésüket, melynek során létrehozhatunk új rekordokat, összegeket számolhatunk vagy objektumok üres mezőit tölthetjük ki és így tovább.
  • Szinkron/aszinkron folyamatok összetett adatkörökön: hasznos azokban az esetekben amikor időzítve akarunk nagyméretű adathalamazokon változást előidézni (például minden éjszaka törölni egy adott objektum összes rekordját).
  • Személyre szabott összetett oldalak belső és/vagy külső használatra (landing oldalak, web-to-lead oldalak leadek generáláshoz, web-to-case oldalak ügyfélszolgálatok számára, stb.): a Salesforce-on kívüli publikus oldalak hasznosak lehetnek a CRM rendszerbe történő valós idejű információáramlás megvalósításához.
  • Dokumentum létrehozás (PDF, DOC, XLS, CSV): ajánlatküldés, szerződéskiadás vagy bármilyen dinamikus adatokat tartalmazó dokumentum megvalósítható egyetlen gombnyomással. Az összes dinamikus adatot tartalmazó rész kitöltődik a megfelelő információval a rendszerből.
  • Integráció: bejövő és kimenő adatkapcsolatok valós időben vagy időzítve (SOAP API, REST API, CSV, Email, Email csatolmány): ezek mindennapos ügyfél igények. A Salesforce rendszerek gyakran kommunikálnak SAP-val, ERP-val vagy bármilyen más üzleti informatikai rendszerrel.

Backend alapok

A backend technológia a felsorolt képességek mögött egy Java alapú Apex nyelv néhány szintaktikai és szemantikai különbséggel az eredetihez képest. Az adatbázis kezeléséhez a Salesforce rendelkezik egy saját módosított SQL-lel, melynek a neve SOQL (Salesforce Object Query Language).

Frontend alapok

Frontend oldalon a Salesforce fejlesztés a Visualforce-ot használja, ami egy komponens alapú felhasználó interfész keretrendszer, mely magába foglal egy tag alapú leíró nyelvet (hasonlót a HTML-hez), ezen felül a HTML, a CSS és a Javascript használata is mindennapos a fejlesztőknél. Mivel általában ugyanaz az ember felel a frontendért és a backendért is, így a Salesforce fejlesztők általában full stack szerepkörben dolgoznak.

Tesztelés alapok

Minden éles rendszerhez tartozik legalább egy sandbox a fejlesztéshez és teszteléshez, de könnyedén létrehozhatunk újakat egy kattintással. A komponensek mozgatása az éles rendszerek felé védett. A felhasználói teszteken felül a fejlesztett komponenseknek rendelkezniük kell legalább 75%-os unit tesztekkel is az élesítéshez (a kódsorok összességére számolva).

Standard vagy custom

Egy utolsó fontos dolog. Mint minden felhő alapú rendszer, a Salesforce is rendelkezik a saját standardjaival és limitációival. Fontos a fejlesztőknek tisztában lenniük a standard megoldásokkal és használniuk azokat. Nem feladatuk feltalálni a spanyolviaszt (ha az már létezik). Ez azt jelenti, hogy a Salesforce fejlesztők adminok is egyben. A Salesforce a Trailhead nevű gyakorló training oldallal támogatja a kezdő (és haladó) fejlesztők fejlődését, ahol könnyen megtanulhatják az említett standardokat a Salesforce speciálisabb területeit egyaránt.