Salesforce Apex – kartta

Salesforce Apex Kartta



Salesforce Apex -kartta on tietorakenne, jota käytetään pääasiassa trigger-skenaarioissa ja joka auttaa lataamaan enemmän tietoa kerrallaan Salesforce-tietokantaan luettelon muodossa. Mutta se tallentaa ja järjestää tiedot {avain:arvo}-parimuodossa. Keskustelemme karttakokoelmasta Apex-ohjelmointikielellä ja sen menetelmistä. Tässä käytämme Salesforcen Tilin vakioobjektia kaikissa esimerkeissä. Sukellaan nopeasti tähän opetusohjelmaan.

Kartta

Map ottaa {key:value}-paritiedot syötteenä ja tallentaa ne Salesforcen standardi- tai mukautettuihin objekteihin. Se voi ottaa sObjectin avaimeksi tai arvoksi.







Kartan luominen

Kartta voidaan luoda määrittämällä avaimen ja arvon tietotyypit sekä kohteen nimi. Tässä sen luomiseen käytetään uutta avainsanaa. Elementtien välittäminen luomisen aikana voi olla valinnaista.



Tyhjän kartan syntaksi:

Kartta map_obj = uusi kartta():

Yleinen syntaksi:

Map map_obj = new Map{

Avain => arvo,....};

sObjektin syntaksi:

Map map_obj = uusi kartta{

Avain => arvo,....};

Tässä sObject voi olla vakio- tai mukautettu objekti. Tässä koko artikkelissa käsittelemme vain karttaa, jossa on 'Tili' sObject.



Katsotaan Apexin 'kartta' -kokoelman tukemat menetelmät yksitellen.





Ympäristön asetukset

1. Kirjaudu nopeasti Salesforceen ja avaa 'Developer Console' napsauttamalla rataskuvaketta.



2. Avaa sitten 'Anonymous Window' napsauttamalla 'Debug' ja 'Open Execute Anonymous Window'.

Yleinen esimerkki:

Ensinnäkin näemme yleisen kartan luomisen luomalla kartan, jossa on kaksi aihetta: 'subject_id', joka toimii avaimena ja 'arvo' aiheen nimenä.

Kartta programming=uusi kartta{1=> 'Linux',2=> 'Python'};

system.debug(ohjelmointi);

Lähtö:

  1. Napsauta 'Suorita'.
  2. Valitse 'Vain debug' -vaihtoehto. Näet tulosten 'Suorituslokissa'.

Karttamenetelmät

Ensin luomme kartan 'Tili' -objektista. Luomme kolme tiliä nimillä yksitellen. Sitten julistamme kartan avaimella ja arvolla as kirjoita ja välitä kolme edellistä tiliä karttaan antamalla joitain arvoja.

// Luo 3 tiliä nimellä

Tili tili1 = uusi tili(Nimi='Linux Hint');

Tili tili2 = uusi tili(Nimi='Salesforce');

Tili tili3 = uusi tili(Nimi='Python');

// Lisää yllä olevat tilit avaimina map_obj:hen

Kartta map_obj = uusi kartta{

tili1 => 1000,tili2 => 2000,tili3 => 3000};

System.debug(map_obj);

Lähtö:

Näet, että 'map_obj' tallentaa kolme tiliä.

1. Map.values()

Jos haluat palauttaa vain arvot annetusta kartasta, voimme käyttää arvot()-menetelmää. Se ei ota mitään parametreja. Se yksinkertaisesti palauttaa arvoluettelon pilkulla erotettuna.

Syntaksi:

map_object.values()

Esimerkki:

Palautetaan kaikki arvot edellisestä kartasta. Varmista, että sinun on suoritettava edellinen esimerkkikoodi (luo kartta kolmella tilillä). Muuten saat virheilmoituksen. Koodin pitäisi olla myös konsolissa.

// Palauttaa arvot kaikille avaimille käyttämällä arvot()

System.debug(map_obj.values());

Lähtö:

Map_obj:ssa on vain kolme avain:arvo-paria. Arvot ovat: 1000, 2000 ja 3000.

2. Map.keySet()

Palauta avaimet ovat karttaobjektissa. Kuten Values(), tälle menetelmälle ei tarvitse välittää mitään parametria.

Syntaksi:

map_object.keySet()

Esimerkki:

Palautetaan kaikki avaimet edellisestä kartasta. Varmista, että suoritat edellisen esimerkkikoodin (luo kartta, jossa on kolme tiliä). Muuten saat virheilmoituksen. Koodin pitäisi olla myös konsolissa.

// Palauta kaikki avaimet käyttämällä keySet()

System.debug(map_obj.keySet());

Lähtö:

Map_obj:ssa on vain kolme avain:arvo-paria. Avaimet ovat: {Account:{Name=Linux Hint}, Account:{Name=Python} ja Account:{Name=Salesforce}.

3. Map.size()

Joissakin skenaarioissa meidän on tiedettävä Apex-kartassa olevien kohteiden (avain:arvo) -parien kokonaismäärä. Koko() on menetelmä, joka palauttaa map_object-objektissa olevat kokonaisparit (avain:arvo). Tätä menetelmää varten ei tarvita parametreja.

Syntaksi:

map_object.size()

Esimerkki:

Palauttaa edellisen karttaobjektin koon.

// Palauttaa parien kokonaismäärän käyttämällä size()

System.debug(map_obj.size());

Lähtö:

Koska paria on vain 3, palautettu koko() on 3.

4. Map.get()

Arvoihin pääseminen kartalta avaimella tapahtuu get()-menetelmällä. Tätä varten meidän on välitettävä avain parametrina get()-metodille. Jos tuntematon avain välitetään, se palauttaa virheilmoituksen.

Syntaksi:

map_object.get(avain)

Esimerkki:

Palauta avain-2- ja avain-1-arvot erikseen.

// saada toisen avaimen arvo

System.debug(map_obj.get(account2));

// saada ensimmäisen avaimen arvo

System.debug(map_obj.get(account1));

Lähtö:

Tässä 2000 on 'Salesforce'-avaimen arvo ja 1000 on 'Linux Hint' -avaimen arvo.

5. Map.clear()

Kaikki Apex-karttakokoelman parit voidaan poistaa kerrallaan clear()-menetelmällä. Se ei ota mitään parametreja.

Syntaksi:

map_object.clear()

Esimerkki:

Poista parit edellisestä 'map_obj'.

//Ennen tyhjennystä()

System.debug(map_obj);

// Poista kaikki parit käyttämällä clear()

map_obj.clear();

// Clear() jälkeen

System.debug(map_obj);

Lähtö:

Aikaisemmin 'map_obj'-kohdassa on 3 avainarvo-paria. Clear()-menetelmän käytön jälkeen kaikki 3 poistetaan.

6. Map.equals()

Voimme verrata kahta karttaobjektia käyttämällä equals()-menetelmää. Totuusarvo palautetaan, jos kaikki avaimet ja arvot ovat samat molemmissa karttaobjekteissa. Vaikka Boolen arvo false palautetaan, jos vähintään yksi arvo on erilainen.

Syntaksi:

kartta_objekti1.equals(kartan_objekti2)

Esimerkki:

Luodaan kolme karttaobjektia yhdellä avain:arvo-parilla, kukin 'Tili'-objektin suhteen. Vertaa näitä esineitä keskenään.

// Tili-1

Tili tili1 = uusi tili(Nimi='Linux Hint');

Kartta map_obj1 = uusi kartta{

tili1 => 1000};

System.debug('Kartta - 1:' + map_obj1);

// Tili-2

Tili tili2 = uusi tili(Nimi='Linux Hint');

Kartta map_obj2 = uusi kartta{

tili2 => 1000};

System.debug('Kartta - 2:' + map_obj1);

// Tili-3

Tili tili3 = uusi tili(Nimi='Python');

Kartta map_obj3 = uusi kartta{

tili3 => 2000};

System.debug('Kartta - 3:' + map_obj3);

// on yhtä suuri ()

System.debug('Kartta 1 ja kartta 2 ovat yhtä suuret: '+ map_obj1.equals(map_obj2));

System.debug('Kartta 1 ja kartta 3 ovat yhtä suuret: '+ map_obj1.equals(map_obj3));

Lähtö:

Ensimmäinen ja toinen karttaobjekti ovat samat, koska sekä avaimet että arvot ovat samat molemmissa objekteissa. Ensimmäinen ja kolmas karttaobjekti eivät ole samat, koska avaimet ja arvot ovat erilaisia.

7. Map.isEmpty()

Voimme tarkistaa, onko kartta tyhjä vai ei, käyttämällä isEmpty()-metodia. Tosi palautetaan, jos Apex-karttakokoelma on tyhjä. Muussa tapauksessa palautetaan false. Kuten size()-menetelmä, se ei ota mitään parametreja.

Syntaksi:

map_object.isEmpty()

Esimerkki:

Luodaan kaksi karttakohdetta, jotka liittyvät 'Tiliin' ja tarkistetaan ovatko nämä kaksi tyhjiä vai eivät.

// Tili-1

Tili tili1 = uusi tili(Nimi='Linux Hint');

Kartta map_obj1 = uusi kartta{

tili1 => 1000};



// Tili-2

Kartta map_obj2 = uusi kartta();

// on tyhjä()

System.debug('Kartta-1 on tyhjä: '+map_obj1.isEmpty());

System.debug('Kartta-2 on tyhjä: '+map_obj2.isEmpty());

Lähtö:

Ensimmäinen kartta ei ole tyhjä, koska se sisältää yhden avainarvoparin. Toinen kartta on tyhjä, koska siinä ei ole yhtään.

8. Map.remove()

Apex-karttakokoelman remove()-menetelmää käytetään tietyn avain-arvo-parin poistamiseen siinä parametrina määritetyn avaimen perusteella. Jos avainta ei ole, syntyy virheilmoitus.

Syntaksi:

map_object.remove(avain)

Esimerkki:

Luodaan kartta, jossa on kaksi kohdetta ja poistetaan ensimmäinen kohde.

Tili tili1 = uusi tili(Nimi='Linux Hint');

Tili tili2 = uusi tili(Nimi='Python');

Kartta map_obj = uusi kartta{

tili1 => 1000,tili2 => 4000};

System.debug('Olemassa oleva kartta'+ map_obj);

//Poista()

map_obj.remove(tili1);

System.debug('Ensimmäisen kohteen poistamisen jälkeen:'+map_obj);

Lähtö:

Kun ensimmäinen kohde on poistettu kartalta, vain yksi kohde on olemassa – {Account:{Name=Python}=4000}.

9. Map.put()

Tällä menetelmällä voimme lisätä suoraan yhden kohteen karttaobjektiin kerrallaan. Se hyväksyy kaksi parametria: 'avain' on ensimmäinen parametri ja 'arvo' on toinen parametri.

Syntaksi:

map_object.put(avain,arvo)

Esimerkki:

Luodaan kartta yhdellä avainarvoparilla. Sitten käytämme 'put'-menetelmää lisäämään 'account2'.

// Tili-1

Tili tili1 = uusi tili(Nimi='Linux Hint');

Kartta map_obj1 = uusi kartta{

tili1 => 1000};

System.debug('Todellinen kartta: '+map_obj1);

// Tili-2

Tili tili2 = uusi tili(Nimi='Python');

// laita()

map_obj1.put(tili2,2000);

System.debug('Lopullinen kartta: '+map_obj1);

Lähtö:

Aikaisemmin kartassa on vain yksi avainarvo-pari, joka on {Account:{Name=Linux Hint}=1000}. Kun olet lisännyt 'account2', lopullisessa kartassa on kaksi avainarvoparia, jotka ovat {Account:{Name=Linux Hint}=1000 ja Account:{Name=Python}=2000}.

10. Map.putAll()

Tällä menetelmällä voimme suoraan lisätä yhden tai useita kohteita karttaobjektiin kerrallaan. Se ottaa parametriksi karttakokoelmaobjektin.

Syntaksi:

map_object1.putAll(kartan_objekti2)

Esimerkki:

Luodaan kartta kahdella avainarvoparilla ja luodaan jälleen tyhjä karttaobjekti ilman kohteita. Käytä putAll()-metodia lisätäksesi ensimmäisessä karttaobjektissa käytettävissä olevat kohteet toiseen karttaobjektiin.

Tili tili1 = uusi tili(Nimi='Linux Hint');

Tili tili2 = uusi tili(Nimi='Python');

Kartta map_obj1 = uusi kartta{

tili1 => 1000, tili2=> 2000};

System.debug(kartta_obj1);

Kartta map_obj2 = uusi kartta();

//laita kaikki()

kartta_obj2.putKaikki(kartta_obj1);

System.debug(map_obj2);

Lähtö:

Johtopäätös

Kartta on tietorakenne, jota käytetään pääasiassa trigger-skenaarioissa ja joka auttaa lataamaan enemmän tietoa kerrallaan Salesforce-tietokantaan luettelon muodossa. Meillä on kaksi vaihtoehtoa lisätä kohteet karttaan: käyttämällä put() ja putAll(). Remove()-menetelmää käytetään tietyn kohteen poistamiseen Apex-karttakokoelmasta. Clear()-menetelmää käytetään kaikkien kohteiden poistamiseen. Lisäksi opimme palauttamaan arvot ja avaimet Value()- ja keySet()-menetelmillä.