Operational Excellence - Automatisointikuvio
Lue lisää hyvin rakennetuista toimintatavoista → Automaatio ja tehokkuus
Kuvio
| Mistä etsiä | Miltä hyvä näyttää |
|---|---|
| Sovellusalusta | Mittaristot | ✅ Kaikki KPI-mittareihin liittyvät tilastot sisältyvät vähintään yhteen mittaristoon |
| Sovellusalusta | Dokumentaatio | ✅ Jokaisen automatisoinnin tulokset ovat mitattavissa ja ajoitettuja |
| Sovellusalusta | Dokumentaatio | ✅ Kuka tahansa KPI-mittari sisältää luettelon vastuullisista sidosryhmistä |
Anti-Mallit
| Mistä etsiä | Miltä huono näyttää |
|---|---|
| Sovellusalusta | Mittaristot | ⚡️ KPI-raportointia ei ole olemassa tai mittaristoista puuttuu joidenkin KPI-mittareiden tilastoja |
| Sovellusalusta | Dokumentaatio | ⚡️ KPI:t eivät sisällä vastuullisia sidosryhmiä |
| Sovellusalusta | Dokumentaatio | ⚡️ KPI-mittareita ei ole olemassa automaatioille tai niillä ei ole selkeitä ajanjaksoja mittauksille |
Kuvio
| Mistä etsiä | Miltä hyvä näyttää |
|---|---|
| Sovellusalusta | Kulku | ✅ Flow Builderia käytetään tietueiden käynnistämään automatisointiin (Process Builderin ja työnkulkusääntöjen korvaamiseen) |
| Sovellusalusta | Kulku | ✅ Tietueiden käynnistämiä kulkuja, joilla on ennen tallennusta suoritettu suoritus, käytetään kenttäjoukolle ennen tietueen luomista |
| Sovellusalusta | Kulku | ✅ Kulut käsittelevät päätöslogiikkaa, silmukoita, API-kutsuja, DML-operaatioita ja monimutkaista monivaiheista orkestrointia |
| Sovellusalusta | Kulku | ✅ Kulun transaktioiden hallintaa käytetään väliaikaisten muutosten tekemiseen tarvittaessa |
| Sovellusalusta | Kulku | ✅ Virheiden käsittely on toteutettu kulkujen virheiden helpottamiseksi |
| Sovellusalusta | Kulku | ✅ Reaktiiviset ruutukulut tarjoavat dynaamisia käyttökokemuksia |
| Sovellusalusta | Kulku | ✅ Deklaratiivinen automatisointi valitaan, kun yrityskäyttäjien tai pääkäyttäjien täytyy muokata logiikkaa ilman kehittäjien osallistumista |
| Sovellusalusta | Kulku | ✅ Muuttujat eivät viittaa kovakoodattuihin arvoihin (tietuetyypeille, käyttäjille jne.) |
| Sovellusalusta | Kulku | ✅ Kulkee manuaalisen logiikan Apexiin suurissa datamäärien konteksteissa |
| Sovellusalusta | Kulku | ✅ Alakulkuja käytetään prosessien osioissa, joita täytyy käyttää uudelleen koko yrityksessä |
| Sovellusalusta | Kulku | ✅ Kaikki automaattisesti käynnistyvät kulut käyttävät päätös- ja/tai keskeytyselementtejä arvioidakseen syöttöehdot ja estääkseen loputtomia silmukoita tai suorituksia suurille datamääriin |
| Sovellusalusta | Kulku | ✅ Käyttäjiä pyydetään antamaan tietoja vain, kun olemassa olevaa järjestelmädataa ei voi käyttää |
| Sovellusalusta | Kulku | ✅ Kulut on järjestetty hierarkkiseen rakenteeseen, joka koostuu pääkulusta ja tukevista alakulkuista |
| Sovellusalusta | Kulku | ✅ Kaikilla käyttäjien syöttämillä tiedoilla on selkeä käyttötarkoitus kulussa |
| Sovellusalusta | Kulku | ✅ Jokainen kulku tarjoaa yksittäisen käyttötarkoituksen |
| Sovellusalusta | Kulku | ✅ Jokainen vaihe suorittaa tietyn, tarkkaan määritetyn tehtävän |
| Sovellusalusta | Kulku | ✅ Kaikki käyttäjäkontekstissa käynnistetyt kulut, abstrakti järjestelmäkontekstien transaktiot alakulkuihin, asetetaan yhdenmukaisesti Tauko-elementin jälkeen luodakseen uuden transaktion |
| Sovellusalusta | Kulku | ✅ Kaikki tietueiden käynnistämät kulut sisältävät käynnistimen järjestyksen arvot |
| Sovellusalusta | Kulku | ✅ Ulkoisia järjestelmäkutsuja tai pitkäaikaisia prosesseja sisältävät kulut käyttävät asynkronisia polkuja |
| Sovellusalusta | Kulku | ✅ Asiaan liittyvien datatoimintojen monimutkaiset järjestykset luodaan Orchestratorilla (monoliittisen kulun useiden alakulkujen kutsumisen sijaan) |
| Sovellusalusta | Vahvistus | ✅ Datan eheys noudatetaan sovellusalustan tasolla käyttämällä vahvistussääntöjä, identtisyyssääntöjä ja pakollisia kenttiä |
| Sovellusalusta | Vahvistus | ✅ Vahvistussäännöt estävät virheellisen datan syöttämisen ennen tallennusta (tehokumpi kuin käynnistimen vahvistus) |
| Sovellusalusta | Hyväksymisprosessit | ✅ Monivaiheinen hyväksymisreititys käsittelee rinnakkaiset ja peräkkäiset hyväksymispolut valtuutettujen hyväksyjien kanssa |
| Sovellusalusta | Hyväksymisprosessit | ✅ Hyväksymisarkkitehtuuri huomioi poikkeusskenaariot (kaikki hyväksyjät lomalla, kiireellinen liiketoimintavaatimus ohittaa normaalin hyväksynnän) |
Anti-Mallit
| Mistä etsiä | Miltä huono näyttää |
|---|---|
| Sovellusalusta | Kulku | ⚡️ Process Builder ja työnkulkusäännöt, joita käytetään uuteen automatisointiin (Flow Builder on strateginen suunta) |
| Sovellusalusta | Kulku | ⚡️ Ohjelmallista automatisointia, jota käytetään, kun yrityskäyttäjien tai pääkäyttäjien täytyy muokata logiikkaa ilman kehittäjien osallistumista |
| Sovellusalusta | Kulku | ⚡️ Kulkujen vianmääritys puuttuu, mikä johtaa heikkoon virheiden palautukseen |
| Sovellusalusta | Kulku | ⚡️ Muuttujilla on kovakoodatut arvot |
| Sovellusalusta | Kulku | ⚡️ Kulkujen aktivoinnin täytyy kumota manuaalisesti ennen datan joukkolatausta |
| Sovellusalusta | Kulku | ⚡️ Kulun osia toistetaan kuluissa alakulkujen sijaan |
| Sovellusalusta | Kulku | ⚡️ Kulut käynnistävät käsittelemättömien poikkeusten ilmoitukset |
| Sovellusalusta | Kulku | ⚡️ Jopa yksinkertaiset kulut aiheuttavat säännöllisesti virheitä hallintarajoituksiin liittyen |
| Sovellusalusta | Kulku | ⚡️ Kulut vaativat lisätietoja asiayhteyden tarjoamiseksi |
| Sovellusalusta | Kulku | ⚡️ Kulut tarjoavat useita käyttötarkoituksia |
| Sovellusalusta | Kulku | ⚡️ Asiaan liittyvien vaiheiden ryhmät sisältävät toimintoja, jotka limittyvät muiden kulkujen vaiheiden ryhmien kanssa |
| Sovellusalusta | Kulku | ⚡️ Kulut pyytävät käyttäjiä syöttämään tietoja, kun tallennettua dataa voidaan käyttää niiden sijaan |
| Sovellusalusta | Kulku | ⚡️ Kulut vaativat syötteitä, joiden dataa ei käytetä |
| Sovellusalusta | Kulku | ⚡️ DML:n suorittaminen ruutukomponentista saaduilla kokoelmilla (käytä tietueen tai tietueen kokoelman ”Käytä tunnuksia ja kaikkia kenttäarvoja” -asetusta luodessasi, päivittääksesi tai poistaaksesi elementin, kun kokoelma saadaan ruutukomponentista) |
| Sovellusalusta | Kulku | ⚡️ Tietueiden käynnistämät kulut eivät käytä käynnistimen järjestyksen attribuutteja ollenkaan tai eivät käytä käynnistimen järjestyksen arvoja yhdenmukaisesti |
| Sovellusalusta | Kulku | ⚡️ Ei-synkronoituja polkuja, joita ei käytetä yhdenmukaisesti tai ollenkaan |
| Sovellusalusta | Kulku | ⚡️ Suuri, monoliittinen kulku yrittää koordinoida toisiinsa liittyvien datatoimintojen monimutkaisia sarjoja (alakulkujen kanssa tai ilman) |
| Sovellusalusta | Hyväksymisprosessit | ⚡️ Hyväksymisarkkitehtuuri ei huomioi poikkeusskenaarioita (kaikki loma-aikojen hyväksyjät, kiireelliset liiketoimintavaatimukset) |
| Sovellusalusta | Vahvistus | ⚡️ Datan eheyttä noudatetaan vain käynnistimissä vahvistussääntöjen sijaan (käynnistimen vahvistus on vähemmän tehokasta ja monimutkaisempaa) |
Kuvio
| Mistä etsiä | Miltä hyvä näyttää |
|---|---|
| Sovellusalusta | Apex | ✅ Käynnistimen käsittelijän kehysjärjestelmä käyttää yksittäistä käynnistintä objektikohtaisesti, bulkkaamista, huolenaiheiden erottamista ja rekurssiivisten suoritusten estämistä |
| Sovellusalusta | Apex | ✅ Käynnisti käsittelijöitä delegoimaan palveluluokkiin liiketoimintalogiikkaa varten, pitäen huolenaiheet selkeästi erillään |
| Sovellusalusta | Apex | ✅ Käynnistimet käyttävät rekurssin suojausta käyttämällä staattisia merkintöjä tai erillistä rekurssin hallintaluokkaa |
| Sovellusalusta | Apex | ✅ Tulevaa Apexia käytetään säästeliäästi callout-kutsuille tai järjestelmäobjektin DML:lle |
| Sovellusalusta | Apex | ✅ Ei-synkronoidut Apex käyttävät ‘chainable’-monimutkaista DML-tiedostoa transaktioissa |
| Sovellusalusta | Apex | ✅ Apex käytetään suurille datamääriin (käsittelee suuria määriä dataa käyttämällä erillisiä hallintarajoituksia per osa) |
| Sovellusalusta | Apex | ✅ Erätyöllä on virheiden käsittely, joka kirjaa lokiin epäonnistuneet tietueet pysäyttämättä koko erän suoritusta |
| Sovellusalusta | Apex | ✅ Bulk API -rajapintaa käytetään vain, kun suuria määriä dataa täytyy käsitellä (natiiviin SOAP- ja REST API -rajapintoihin hyödynnetään pienempiä määriä dataa) |
| Sovellusalusta | Apex | ✅ Queueable Apex on käytössä monimutkaisessa työnkulkujen orkestroinnissa, ulkoisissa callout-kutsuissa uudelleenyrityslogiikalla ja käsittelyssä, joka hyötyvät asynkronoinnin rajoituksista |
| Sovellusalusta | Apex | ✅ Ajoitettu Apex suorittaa käsittelyn kiinteillä aikatauluilla yöhoitoa, päivittäistä raportointia, säännöllistä integraation synkronointia ja aikaan perustuvia liiketoimintasääntöjä varten |
| Sovellusalusta | Suunnittelun standardit | ✅ Synkronoitujen ja ei-synkronoitujen toimintojen käyttöskenaariot automaatioissa on kuvattu selkeästi osana suunnittelun standardeja |
| Sovellusalusta | Dokumentaatio | ✅ Automatisointien suunnitellut ja mahdolliset suorituspolut on kuvattu selkeästi |
Anti-Mallit
| Mistä etsiä | Miltä huono näyttää |
|---|---|
| Sovellusalusta | Apex | ⚡️ Useat käynnistimet yhdelle objektille ennustamattomalla suoritusjärjestyksellä ja päällekkäisellä logiikalla |
| Sovellusalusta | Apex | ⚡️ Liiketoimintalogiikka upotettu suoraan käynnistimen tiedostoihin, mikä tekee testaamisesta vaikeaa |
| Sovellusalusta | Apex | ⚡️ Ei käynnistimen käsittelijän kehysjärjestelmää tai epäjohdonmukaisia käynnistimen kuvioita objekteissa |
| Sovellusalusta | Apex | ⚡️ Apex vaikutusalue on hyvin pieni (esimerkiksi vaikutusalueen koko = 1) |
| Sovellusalusta | Apex | ⚡️ Apex, jota käytetään ulkoisille callout-kutsuille (suuri määrä Salesforce-dataa, joka siirretään ulkoiseen järjestelmään Apex avulla) |
| Sovellusalusta | Apex | ⚡️ Asynkronoidut Apex, joita käytetään satunnaisesti (tulevaiset metodit ja jonossa oleva Apex käytetään epäjohdonmukaisesti tai vaiheittain) |
| Sovellusalusta | Apex | ⚡️ Async Apex, jota käytetään harvoin |
| Sovellusalusta | Apex | ⚡️ Tietokantaoperaatioilla ei ole selkeää ja yhdenmukaista logiikkaa suorituksen välittämiseksi Apexiin tarvittaessa |
| Sovellusalusta | Suunnittelun standardit | ⚡️ Synkronoitujen ja ei-synkronoitujen operaatioiden käyttötarkoituksia ei käsitellä |
| Sovellusalusta | Dokumentaatio | ⚡️ Automatisoinnin kutsua ei ole dokumentoitu |
Kuvio
| Mistä etsiä | Miltä hyvä näyttää |
|---|---|
| Sovellusalusta | Sovellusalustan tapahtumat | ✅ Sovellusalustan tapahtumia käytetään tapahtumiin perustuvaan automatisointiin, joka irrottaa julkaisijat tilaajista |
| Sovellusalusta | Sovellusalustan tapahtumat | ✅ Julkaisijat eivät tiedä tilaajista ja julkaisevat Fire-and-Forget-viestin |
| Sovellusalusta | Sovellusalustan tapahtumat | ✅ Useat tilaajat reagoivat tapahtumiin itsenäisesti sovellusalustan tapahtumien käynnistämien kulkujen, Apex tai ulkoisten integraatioiden kautta |
| Sovellusalusta | Sovellusalustan tapahtumat | ✅ Toistotunnuksia käytetään toistamaan puuttuvia tapahtumia mistä tahansa 72 tunnin säilytysajan pisteestä |
| Sovellusalusta | Sovellusalustan tapahtumat | ✅ Sovellusalustan tapahtumat -ominaisuus sallii organisaatioiden välisen viestinnän, ulkoisten järjestelmien ilmoitusten ja sisäisten työnkulkujen orkestroinnin |
Anti-Mallit
| Mistä etsiä | Miltä huono näyttää |
|---|---|
| Sovellusalusta | Sovellusalustan tapahtumat | ⚡️ Julkaisijoiden ja tilaajien välinen suora yhteys estää kompotoitavan automatisoinnin |
| Sovellusalusta | Sovellusalustan tapahtumat | ⚡️ Tilitason päivitys kutsuu suoraan mahdollisuuksien päivityksiä, tilitiimin ilmoituksia ja datan varaston synkronointia yhdessä transaktiossa (tiheä yhdistämistoiminto vaatii tilien logiikan muutoksia joka kerta, kun uusi alempi käsittely on tarpeen) |
| Sovellusalusta | Apex | ⚡️ Julkaise välittömästi sovellusalustan tapahtumat käytetään adhoc (reaaliaikaisia tapahtumia, joita käytetään Julkaise sitoumuksen jälkeen -vaihtoehdon sijaan, riippumatta julkaisujärjestyksen vaatimuksista tai tietueiden lukitsemisen riskeistä) |
Kuvio
| Mistä etsiä | Miltä hyvä näyttää |
|---|---|
| Sovellusalusta | Apex | ✅ SOQL-lausekkeet käyttävät positiivisen logiikan vertailuoperaattoreita (INCLUDES, IN) ensisijaisena tai ainoana logiikkana |
| Sovellusalusta | Apex | ✅ SOQL välttää = NULL, != NULL tai käyttää niitä säästeliäästi positiivisten vertailukertojen jälkeen |
| Sovellusalusta | Apex | ✅ SOQL ei käytä LIMIT 1-lausekkeita |
| Sovellusalusta | Apex | ✅ SOQL ei käytä ALL ROWS-avainsanaa |
| Sovellusalusta | Apex | ✅ SOQL ei näy silmukoissa |
| Sovellusalusta | Apex | ✅ Wildcard-ehdot näytetään SOSL:ssä (ei SOQL:ssä) |
| Sovellusalusta | Apex | ✅ SOQL-lausekkeet välttävät LIKE-vertailuja tai osittaisia tekstien vertailuja |
| Sovellusalusta | Apex | ✅ SOQL on rivitetty try-catch-lohkoihin |
| Sovellusalusta | Apex | ✅ Muuttujat eivät viittaa kovakoodattuihin arvoihin (tietuetyypeille, käyttäjille jne.) |
| Sovellusalusta | Apex | ✅ Jokainen luokka tarjoaa yksittäisen käyttötarkoituksen |
| Sovellusalusta | Apex | ✅ Jokainen metodi suorittaa tietyn, tarkkaan määritetyn tehtävän |
| Sovellusalusta | Apex | ✅ Kaikilla input-muuttujilla on selkeä käyttötarkoitus luokassa |
| Sovellusalusta | Apex | ✅ Koodin suorittaminen vaatii vähimmäismäärän resursseja |
Anti-Mallit
| Mistä etsiä | Miltä huono näyttää |
|---|---|
| Sovellusalusta | Apex | ⚡️ SOQL-lausekkeet käyttävät NOT-, NOT IN-ehtoja ensisijaisena tai vain vertailuoperaattorina (ei valinnaisena) |
| Sovellusalusta | Apex | ⚡️ SOQL-lausekkeet käyttävät avainsanaa ALL ROWS (ei valinnainen) |
| Sovellusalusta | Apex | ⚡️ SOQL-lausekkeet käyttävät = NULL-, != NULL-ehtoja ensisijaisena tai vain vertailuoperaattorina (ei valinnaisena) |
| Sovellusalusta | Apex | ⚡️ Muuttujilla on kovakoodatut arvot |
| Sovellusalusta | Apex | ⚡️ SOQL näytetään silmukoissa |
| Sovellusalusta | Apex | ⚡️ SOQL-lausekkeet käyttävät usein LIKE- ja yleismerkkisuodatusehtoja (ei valinnaisia) |
| Sovellusalusta | Apex | ⚡️ SOQL ei sisällytetä try-catch-lohkoihin |
| Sovellusalusta | Apex | ⚡️ SOQL-lausekkeet käyttävät LIMIT 1 (ei-valinnaista) |
| Sovellusalusta | Apex | ⚡️ SOSL-lauseketta käytetään harvoin tai ei jatkuvasti yleismerkkien valintaehdoille |
| Sovellusalusta | Apex | ⚡️ Luokat tarjoavat useita käyttötarkoituksia |
| Sovellusalusta | Apex | ⚡️ Metodit suorittavat useita tehtäviä tai metodit suorittavat tehtäviä, jotka eivät vastaa luokan määritettyä käyttötarkoitusta, johon ne kuuluvat |
| Sovellusalusta | Apex | ⚡️ Input-muuttujia ei käytetä metodeissa |
| Sovellusalusta | Apex | ⚡️ Metodit noutavat tietoja tarpeettomasti tietokannasta tai ulkoisista järjestelmistä |
Kuvio
| Mistä etsiä | Miltä hyvä näyttää |
|---|---|
| Sovellusalusta | Apex | ✅ Mukautettuja poikkeuksia käytetään edistyneiden virheviestien ja logiikan luomiseen |
| Sovellusalusta | Apex | ✅ Koodi käsittelee kaikki DML-, SOQL-, callout-kutsut ja muut prosessin kriittiset vaiheet try-catch-lohkoihin |
| Sovellusalusta | Apex | ✅ Tietokantaluokkien menetelmiä voidaan käyttää yksinomaan kaikille datatoiminnoille (DML:n sijaan) |
| Sovellusalusta | Apex | ✅ Asynkronointi- ja joukkokonteissa käytetään Database-luokan metodeja DML:n sijaan |
| Sovellusalusta | Aura | ✅ JavaScript rivittää kaikki datatoiminnot ja prosessin kriittiset vaiheet try-catch-lohkoihin |
| Sovellusalusta | Aura | ✅ try-catch-lohkojen sisällä natiivia JavaScript Error-funktiota käytetään heittolausekkeissa (ei käytetä $A.error()-funktiota) |
| Sovellusalusta | Aura | ✅ Kaikki korjattavat virhelogiikat näytetään catch-lausekkeissa ja tarjoavat käyttäjille selkeitä viestejä |
| Sovellusalusta | Kulku | ✅ Datatoimintoja, callout-kutsuja ja muuta kriittistä käsittelylogiikkaa sisältävillä kuluilla on vikapolkuja kaikille tärkeimmille toiminnoille |
| Sovellusalusta | Kulku | ✅ Ruutukulut näyttävät käyttäjille virheitä jatkuvasti vikaliittimillä |
| Sovellusalusta | Kulku | ✅ Mukautetut virheviestit on määritetty näytettäville virheille |
| Sovellusalusta | Lightning (LWC) | ✅ JavaScript rivittää kaikki datatoiminnot ja prosessin kriittiset vaiheet if ()/else if () lohkoihin |
| Sovellusalusta | Lightning (LWC) | ✅ Kaikki @wire-funktiot käyttävät API:n tarjoamia data- ja error-ominaisuuksia |
| Sovellusalusta | Lightning (LWC) | ✅ Kaikki if (error)/else if (error)-lausunnot sisältävät logiikkaa, joka käsittelee virheet ja tarjoaa informatiivisia viestejä |
Anti-Mallit
| Mistä etsiä | Miltä huono näyttää |
|---|---|
| Sovellusalusta | Apex | ⚡️ DML, SOQL, callout-kutsuja tai muita kriittisiä prosessin vaiheita, joita ei ole pakattu yhdenmukaisesti try-catch-lohkoihin |
| Sovellusalusta | Apex | ⚡️ Tietokanta-luokkien metodeja ei käytetä |
| Sovellusalusta | Apex | ⚡️ Vain DML:llä suoritetut datatoiminnot |
| Sovellusalusta | Apex | ⚡️ System.debug-lausunnot näytetään tuotanto-koodissa (ja niitä ei kommentoida) |
| Sovellusalusta | Aura | ⚡️ JavaScript ei rivitä datatoimintoja ja prosessin kriittisiä vaiheita yhdenmukaisesti try-catch-lohkoihin |
| Sovellusalusta | Aura | ⚡️ Komponentit käyttävät $A.error() |
| Sovellusalusta | Aura | ⚡️ Palautettavaa virhelogiikkaa ei näytetä yhdenmukaisesti catch-lausekkeissa eikä käyttäjille lähetettyjä virheviestejä näytetä selkeästi |
| Sovellusalusta | Kulku | ⚡️ Kulut eivät käytä vikapolkuja yhdenmukaisesti tai ollenkaan |
| Sovellusalusta | Kulku | ⚡️ Mukautettuja virheviestejä ei käytetä, joten käyttäjät näkevät oletusarvoisen “Tässä kulussa on tapahtunut käsittelemätön virhe” -viestin |
| Sovellusalusta | Lightning (LWC) | ⚡️ @wire-funktiot eivät käytä API:n tarjoamia data- ja error-ominaisuuksia (tai niitä ei käytetä yhdenmukaisesti) |
| Sovellusalusta | Lightning (LWC) | ⚡️ Jos käytetään ollenkaan, if (error)/else if (error)-lausunnot eivät sisällä oikeastaan logiikkaa, joka käsittelee virheet ja tarjoaa hyödyllisiä virheviestejä |
| Sovellusalusta | Lightning (LWC) | ⚡️ JavaScript ei käytä if ()/else if ()-lohkoja yhdenmukaisesti datatoimintojen tai kriittisten prosessien vaiheiden kanssa |