Displaying N-depth Parent Hierarchy in sObject Field
Haataja, Eeva (2017)
Haataja, Eeva
Metropolia Ammattikorkeakoulu
2017
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201705097232
https://urn.fi/URN:NBN:fi:amk-201705097232
Tiivistelmä
Insinöörityön tavoitteena oli löytää ratkaisu esittää itseensä viittaavan Salesforce-objektin tekstikentällä datahierarkiassa ylempien tallenteiden identiteettinumerot tekstimuodossa. Vaatimuksena oli, että hierarkian tulee olla rajaamaton ja rivin merkkien määrän suurin sallittu.
Toteutusympäristönä oli Salesforce, joka on johtava asiakkuudenhallintajärjestelmä (customer relationship management, CRM). Kehitysympäristönä toimi Salesforcen Developer Edition, ja datamallinnus on Salesforcen mallin mukainen. Salesforcen ympäristön objektin konfigurointi rajaamattoman syvyiseen hierarkiaan ei ole tavanomaista, joten tämän insinöörityön tarkoituksena oli selvittää, kuinka ratkaista siihen liittyvät käyttöongelmat.
Ensin projektissa suunniteltiin jokaiselle objektiin liittyvälle tapahtumalle, kuten luomiselle, poistamiselle ja päivittämiselle, vaatimusketju. Seuraavana vaiheena kartoitettiin ympäristön rajoittavat ominaisuudet, jotka voivat haitata ratkaisun löytymistä. Kartoituksen tavoitteena oli sulkea pois lähestymistapoja, mutta se toi myös esille huomioon otettavia rajoituksia, joita ei voitu välttää. Muun muassa tietokannan hakuihin ja toimintoihin liittyi paljon Salesforcen asettamia rajoituksia. Kartoituksen jälkeen kehitettiin Salesforcen Process Builder -työkalulla tapahtumaketju jokaiselle objektin tapahtumalle paitsi tallenteen poistamiselle. Seuraavana oli vuorossa automaattisesti käynnistyvän kulun kehitys sille, kuinka tallenne päivitetään ajantasalle. Kulkukehityksessä pyrittiin selkeään ja luotettavaan tulokseen. Viimeisenä vaiheena oli luoda Apex-käynnistin tallenteen poiston tapahtumaketjulle. Apex-käynnistimen tehtävänä oli poistaa yhteys alemman kerroksen tallenteiden ja poistettavan tallenteen väliltä ennen tallenteen poistamista.
Insinöörityö tuloksena syntyi toimiva ratkaisu, joka vastasi projektin päätavoitetta, eli objektin tekstikentälle pystyi luomaan tallenteen ylempien tallenteiden identiteettinumerot. Ratkaisussa huomattiin kuitenkin riskejä, kun tallenteiden määrä oli suuri tai hierakia oli rakennettu syväksi. Löydettyä ratkaisua on mahdollista vielä kehittää paremmaksi riskien vähentämiseksi sekä tapahtumaketjun kulun nopeuttamiseksi. Insinöörityön oli tilannut ohjelmistoalan start-up-yritys, joka on painottunut Salesforce-sovelluksen kehitykseen.
Toteutusympäristönä oli Salesforce, joka on johtava asiakkuudenhallintajärjestelmä (customer relationship management, CRM). Kehitysympäristönä toimi Salesforcen Developer Edition, ja datamallinnus on Salesforcen mallin mukainen. Salesforcen ympäristön objektin konfigurointi rajaamattoman syvyiseen hierarkiaan ei ole tavanomaista, joten tämän insinöörityön tarkoituksena oli selvittää, kuinka ratkaista siihen liittyvät käyttöongelmat.
Ensin projektissa suunniteltiin jokaiselle objektiin liittyvälle tapahtumalle, kuten luomiselle, poistamiselle ja päivittämiselle, vaatimusketju. Seuraavana vaiheena kartoitettiin ympäristön rajoittavat ominaisuudet, jotka voivat haitata ratkaisun löytymistä. Kartoituksen tavoitteena oli sulkea pois lähestymistapoja, mutta se toi myös esille huomioon otettavia rajoituksia, joita ei voitu välttää. Muun muassa tietokannan hakuihin ja toimintoihin liittyi paljon Salesforcen asettamia rajoituksia. Kartoituksen jälkeen kehitettiin Salesforcen Process Builder -työkalulla tapahtumaketju jokaiselle objektin tapahtumalle paitsi tallenteen poistamiselle. Seuraavana oli vuorossa automaattisesti käynnistyvän kulun kehitys sille, kuinka tallenne päivitetään ajantasalle. Kulkukehityksessä pyrittiin selkeään ja luotettavaan tulokseen. Viimeisenä vaiheena oli luoda Apex-käynnistin tallenteen poiston tapahtumaketjulle. Apex-käynnistimen tehtävänä oli poistaa yhteys alemman kerroksen tallenteiden ja poistettavan tallenteen väliltä ennen tallenteen poistamista.
Insinöörityö tuloksena syntyi toimiva ratkaisu, joka vastasi projektin päätavoitetta, eli objektin tekstikentälle pystyi luomaan tallenteen ylempien tallenteiden identiteettinumerot. Ratkaisussa huomattiin kuitenkin riskejä, kun tallenteiden määrä oli suuri tai hierakia oli rakennettu syväksi. Löydettyä ratkaisua on mahdollista vielä kehittää paremmaksi riskien vähentämiseksi sekä tapahtumaketjun kulun nopeuttamiseksi. Insinöörityön oli tilannut ohjelmistoalan start-up-yritys, joka on painottunut Salesforce-sovelluksen kehitykseen.