Tutorial sa Developer ng Salesforce: Magsimula Sa Programfor ng Salesforce



Ipinapaliwanag ng tutorial blog na ito ang iba't ibang mga konsepto ng programa tulad ng visualforce at tuktok na dapat mong malaman upang simulan ang iyong karera bilang isang developer ng Salesforce.

Hangad mo bang maging isang developer ng application ng software? Nais mo bang bumuo ng iyong sariling aplikasyon sa Force.com platform? Kung oo ang iyong sagot sa mga katanungang ito, tiyak na dapat mong isaalang-alang ang pagiging isang developer ng Salesforce.

Sa mga dati kong blog, napag-usapan ko na , Mga sertipikasyon ng Salesforce at ipinakita din sa iyo sa bumuo ng isang pasadyang application gamit ang mga opsyon na nagpapahayag na magagamit sa Salesforce. Sa blog na ito, tatalakayin ko ang tungkol sa mga opsyon na programmatic na magagamit sa Salesforce upang paunlarin ang iyong aplikasyon.





Arkitektura ng MVC

Bago ako sumisid sa pagbuo ng isang application gamit ang Visualforce at Apex, tatalakayin ko muna ang tungkol sa arkitektura ng Salesforce Model-View-Controller. Nasa ibaba ang isang diagram na nagbabalangkas sa arkitektura ng Salesforce Model-View-Controller kasama ang iba't ibang mga bahagi ng Salesforce.

mvc - developer ng salesforce - edureka



Modelo: Ang modelo ay ang iyong mga bagay sa data ng Salesforce, mga patlang at mga ugnayan. Ito ay binubuo ng pamantayan (Account, Pagkakataon, atbp) at mga pasadyang bagay (mga bagay na iyong nilikha).

Tingnan: Ang view ay kumakatawan sa pagtatanghal ng data ie ang interface ng gumagamit. Sa Salesforce, ang view ay bumubuo ng mga pahina ng visualforce, bahagi, layout ng pahina at mga tab.

abstraction sa c ++

Controller: Ang controller ay ang bloke ng gusali ng aktwal na lohika ng application. Maaari kang magsagawa ng mga pagkilos tuwing nakikipag-ugnay ang gumagamit sa visualforce.



Salesforce sa Pagkilos

Upang maging isang developer ng Salesforce, kailangan mo munang malaman kung paano gumagana ang mga aplikasyon ng Salesforce. Nasa ibaba ang isang imahe na nagbibigay sa iyo ng kumpletong larawan ng Salesforce sa pagkilos. Ang kliyente o gumagamit ay maaaring humiling o magbigay ng impormasyon sa application ng Salesforce. Karaniwan itong ginagawa gamit ang Visualforce. Ang impormasyong ito pagkatapos ay maipasa sa layer ng lohika ng application, nakasulat sa Apex. Nakasalalay sa impormasyon, ang data ay maaaring ipinasok o inalis mula sa database. Nagbibigay din sa iyo ang Salesforce ng pagpipilian ng paggamit ng mga serbisyo sa web upang direktang ma-access ang lohika ng application.

Ang isang developer ng Salesforce ay maaaring lapitan ang pag-unlad alinman sa paggamit ng mga deklaradong o programmatic na pagpipilian. Nasa ibaba ang isang imahe na nagbibigay sa iyo ng mga detalye sa parehong mga nagdadeklara at programmatic na diskarte na magagamit sa bawat interface ng gumagamit, lohika sa negosyo at layer ng modelo ng data. Upang mabuo ang iyong user-interface, maaari mong gamitin ang alinmang diskarte sa pagdeklara na gumagamit ng mga layout ng pahina at mga uri ng talaan o gumamit ng pamamaraang programmatic tulad ng mga pahina ng visualforce at bahagi. Pangkalahatan, dapat mong gamitin lamang ang programmatic na diskarte lamang kapag hindi mo nakakamit ang kinakailangang user-interface gamit ang deklarasyong diskarte. Upang paunlarin ang layer ng lohika ng negosyo ng iyong application maaari mong gamitin ang alinman sa mga pagpipilian ng pagdeklara ng Salesforce ng daloy ng trabaho, mga patakaran sa pagpapatunay at mga proseso ng pag-apruba o gumamit ng pamamaraang programmatic tulad ng mga pag-trigger, pagkontrol at klase. Upang ma-access ang modelo ng data, maaari mong gamitin ang deklarasyong diskarte gamit ang mga bagay, patlang at ugnayan. Maaari mo ring ma-access ang modelo ng data nang program gamit ang metadata API, REST API at maramihang API.

Nakita namin kung paano gumagana ang mga aplikasyon ng Salesforce, ang arkitekturang MVC na ginamit para sa pagpapaunlad sa Salesforce at ang dalawang magkakaibang diskarte na magagamit para sa isang developer ng Salesforce. Ngayon, hayaan mo akong talakayin tungkol sa Visualforce at Apex.

Visualforce

Upang makabuo ng mga application sa platform ng Salesforce kailangan mong malaman kung paano paunlarin ang interface ng gumagamit at isulat ang lohika ng application. Bilang isang developer ng Salesforce, maaari mong paunlarin ang interface ng gumagamit gamit ang Visualforce. Ang Visualforce ay ang framework ng interface ng gumagamit para sa Force.com platform. Tulad ng kung paano mo magagamit ang balangkas ng javascript Angular-JS upang makabuo ng mga interface ng gumagamit para sa iyong mga website, maaari mong gamitin ang Visualforce upang magdisenyo at bumuo ng mga interface ng gumagamit para sa iyong mga aplikasyon sa Salesforce.

Maaari mong gamitin ang visualforce tuwing kailangan mo upang bumuo ng mga pasadyang pahina. Ilang mga halimbawa ng mga sitwasyon kung saan maaari mong gamitin ang Visualforce ay:

  • Upang makabuo ng mga template ng email
  • Upang makabuo ng mobile user-interface
  • Upang makabuo ng mga data ng PDF na nakaimbak sa Salesforce
  • Upang mai-embed ang mga ito sa iyong karaniwang mga layout ng pahina
  • Upang ma-override ang isang karaniwang pahina ng Salesforce
  • Upang bumuo ng mga pasadyang tab para sa iyong aplikasyon

Ang isang pahina ng visualforce ay binubuo ng dalawang pangunahing elemento:

  • Markup ng Visualforce - Kasama sa markup ng visualforce ang mga tag ng visualforce, HTML, JavaScript o anumang iba pang code na pinapagana ng web.
  • Isang Visualforce Controller - Naglalaman ang taga-kontrol ng visualforce ng mga tagubilin na tumutukoy sa kung ano ang nangyayari kapag ang isang gumagamit ay nakikipag-ugnay sa isang bahagi. Ang taga-kontrol ng visualforce ay nakasulat gamit ang wika ng programa ng Apex.

Maaari kang tumingin sa isang simpleng code ng pahina ng Visualforce kasama ang iba't ibang mga bahagi sa ibaba:

Sa ibaba ay ipinakita ko sa iyo ang mga hakbang upang magsulat ng isang simpleng pahina ng visualforce para sa pagpapakita ng mga bansa at ang kanilang mga halaga ng pera:

Hakbang 1: Mula sa Pag-set up, ipasok ang Mga Pahina ng Visualforce sa kahon na Mabilis na Hanapin, pagkatapos ay piliin ang Mga Pahina ng Visualforce at i-click ang Bago.

Hakbang 2: Sa editor idagdag ang sumusunod na code upang maipakita ang bansa at ang halaga ng pera:

Apex

Kapag natapos mo na ang pagbuo ng interface ng gumagamit, bilang isang developer ng Salesforce kailangan mong malaman kung paano magdagdag ng pasadyang lohika sa iyong application. Maaari kang magsulat ng code ng controller at magdagdag ng pasadyang lohika sa iyong application gamit ang wika ng Apex na programa. Ang Apex ay isang wika na nakatuon sa programa na nagbibigay-daan sa iyo upang magpatupad ng mga pahayag ng kontrol sa daloy at transaksyon sa platform ng Force.com. Kung nagamit mo na ang wika ng programang java bago maaari mong madaling malaman ang Apex. Ang Apex syntax ay 70% katulad ng sa java.

Maaari mong gamitin ang Apex tuwing nais mong magdagdag ng pasadyang lohika sa iyong application. Ilang mga halimbawa ng mga sitwasyon kung saan maaari mong gamitin ang Apex ay:

  • Kapag nais mong magdagdag ng mga serbisyo sa web at email sa iyong application
  • Kung nais mong magsagawa ng mga kumplikadong proseso ng negosyo
  • Kapag nais mong magdagdag ng mga kumplikadong patakaran sa pagpapatunay sa iyong aplikasyon
  • Kapag nais mong magdagdag ng isang pasadyang lohika sa mga pagpapatakbo tulad ng pag-save ng isang talaan

Nasa ibaba ang isang screenshot ng Apex code kasama ang iba't ibang mga bahagi nito tulad ng looping statement, control-flow statement at SOQL query:

Ngayon na naintindihan na namin kung ano ang Apex at kailan ito gagamitin, hayaan mo akong sumisid nang malalim sa Apex program.

Programming Sa Apex

Kung naintindihan mo ang mga konseptong inilarawan sa itaas, pagkatapos ay nasa kalahati ka ng iyong paglalakbay sa pagiging isang developer ng Salesforce. Sa seksyong ito, sisisid ako nang mas malalim sa Apex sa pamamagitan ng pagbibigay sa iyo ng impormasyon sa iba't ibang mga uri ng data at variable, iba't ibang paraan ng pagkuha ng data mula sa database at ipinapakita sa iyo kung paano magsulat ng isang klase at pamamaraan.

Mga Datatypes At Variable

Nag-aalok sa iyo ang Salesforce ng 4 na magkakaibang uri ng data at variable. Nagbibigay sa iyo ang talahanayan sa ibaba ng impormasyon sa bawat isa sa 4 na uri ng data:

Mga Uri ng Data At Variable Paglalarawan Halimbawa
Pauna-unaAng mga pangunahing uri ng data sa Salesforce ay may kasamang boolean, petsa, integer, object, string at oras.Boolean isSunny = totoo

Integer I = 1

String myString = 'Hello World'

Mga BagayAng sObject ay tumutukoy sa anumang bagay na maaaring maiimbak sa database.Account a = bagong Account ()

MyCustomObj__c obj = bagong MyCustomObj__c ()

Mga KoleksyonAng Apex ay may mga sumusunod na uri ng koleksyon:

  • Mga Listahan
  • Mga Mapa
  • Nagtatakda
Listahan ng var_lst = bagong Listahan ()

Itakda ang setOne = bagong Itakda ()

Mapa var_map = bagong Mapa ()

Mga EnumAng mga enum ay mga abstract na uri ng data na may mga halagang kumukuha sa isang may hangganang hanay ng mga identifier.Public enum Seasons {Taglamig, Spring, Tag-init, Taglagas}


SOQL At SOSL

Ang pagbuo ng mga aplikasyon ng software ay nangangailangan sa iyo upang malaman kung paano ipasok at makuha ang data mula sa mga database. Sa Salesforce, maaari mong makuha ang data mula sa mga database gamit ang SOQL at SOSL. Kung nais mong maging isang developer ng Salesforce, dapat mong malaman ang pareho ng mga wikang ito ng query. Binigyan kita ng isang detalyadong paliwanag ng mga wikang ito sa ibaba:

  • Ang SOQL ay nangangahulugang Wika ng Salesforce Object Query. Gamit ang mga pahayag ng SOQL, maaari mong makuha ang data mula sa database bilang isang listahan ng mga sObjects, isang solong sObject o isang Integer para sa bilang ng pamamaraan. Maaari mong isipin ang SOQL bilang isang katumbas ng isang SELECT SOQL query. Nagbigay ako ng isang halimbawa ng isang query sa SOQL sa ibaba:

Listahan ng accList = [SELECT Id, Pangalan MULA SA Account KUNG SAAN Pangalan = ”YourName”]

  • Ang SOSL ay nangangahulugang Wika ng Paghahanap ng Bagay ng Salesforce. Maaari mong gamitin ang mga pahayag ng SOSL upang makuha ang isang listahan ng mga sObjects, kung saan naglalaman ang bawat listahan ng mga resulta ng paghahanap para sa isang partikular na uri ng sObject. Maaari mong isipin ang SOSL bilang isang katumbas ng isang query sa paghahanap sa database. Nagbigay ako ng isang halimbawa ng isang query ng SOSL sa ibaba:

ListahansearchList = [HANAPIN ang ‘mapa *’ SA LAHAT NG LALAKING PAGBABalik ng Account (Id, Pangalan), Pakikipag-ugnay, Pagkakataon, Manguna]

Maaari mong gamitin ang SOQL kapag alam mo kung aling object ang naninirahan ang data at gumagamit ng SOSL kapag hindi mo alam ang pangalan ng bagay kung saan naninirahan ang data.

Mga Klase At Paraan

ano ang isang instance java

Tulad ng bawat iba pang wika na nakatuon sa orientation ng object, maaari kang bumuo ng mga klase at pamamaraan gamit ang Apex. Maaari mong isipin ang isang klase bilang isang blueprint na gumagamit ng aling mga indibidwal na mga bagay ang nilikha at ginamit. Maaari kang mag-isip ng isang paraan bilang isang subprogram, na kumikilos sa data at nagbabalik ng isang halaga. Binigyan kita ng syntax upang magsulat ng isang klase at pamamaraan sa ibaba:

Ipapakita ko sa iyo ngayon kung paano magdagdag ng isang klase at pamamaraan sa Apex:

Hakbang 1: Mula sa pag-setup ipasok ang Apex Classes sa QuickFind Box, pagkatapos ay piliin ang Apex Classes at i-click ang Bago.

Hakbang 2: Sa editor idagdag ang sumusunod na kahulugan ng klase:

Public class na HelloWorld {

}

Hakbang 3: Magdagdag ng isang kahulugan ng pamamaraan sa pagitan ng pagbubukas ng klase at pagsasara ng mga braket:

Public static void helloWorldMethod (Country__c [] mga bansa) {

Para sa (Country__c country: bansa) {

country.currency_value__c * = 1.5

}

}

Hakbang 4: Mag-click sa I-save at dapat mayroon ka ng iyong buong klase bilang:

Public class na HelloWorld {

Public static void helloWorldMethod (Country__c [] mga bansa) {

Para sa (Country__c country: bansa) {

country.currency_value__c * = 1.5

}

}

Maaari mong gamitin ang syntax at halimbawang ipinakita sa itaas upang bumuo ng iyong sariling mga klase at pamamaraan para sa iyong aplikasyon sa Salesforce. Upang maging isang developer ng Salesforce kailangan mong malaman ang higit pa sa pagsusulat ng mga klase at pamamaraan. Sa mga susunod na seksyon, tatalakayin ko ang mga paksa na ginagawang simple at madali ang pagbuo ng mga application sa platform ng Salesforce.

Nagpapalit

Dapat malaman ng bawat developer ng Salesforce ang konsepto ng mga pag-trigger ng Salesforce. Maaaring dati ay natagpuan mo ang mga pag-trigger habang nagtatrabaho sa iba pang mga database. Ang mga nag-trigger ay walang iba kundi ang nakaimbak na mga programa na naiimbitahan kapag nagsasagawa ka ng mga pagkilos bago o pagkatapos ng mga pagbabago sa mga tala ng Salesforce. Halimbawa, maaaring tumakbo ang mga nag-trigger bago isagawa ang isang pagpapatakbo ng insert o kapag isinagawa ang isang pagpapatakbo ng pag-update. Mayroong dalawang uri ng mga pag-trigger:

  • Bago mag-trigger - Maaari mong gamitin bago mag-trigger upang i-update o patunayan ang mga halaga ng record bago sila nai-save sa database.
  • Pagkatapos ng gatilyo - Maaari mong gamitin pagkatapos ng mga pag-trigger upang ma-access ang mga halaga ng patlang na itinakda ng system at makakaapekto sa mga pagbabago sa iba pang mga talaan.

Ang mga nag-trigger ay naisagawa bago o pagkatapos ng mga pagpapatakbo sa ibaba:

  • Isingit
  • Update
  • Tanggalin
  • Punta ka na
  • Oops
  • Undelete

Ipapakita ko sa iyo kung paano magdagdag ng isang gatilyo sa tuktok sa pamamagitan ng pagdaragdag ng isang gatilyo para sa bagay na Bansa na nakita mo sa klase sa itaas:

Hakbang 1: Mula sa mga setting ng pamamahala ng object para sa bansa, pumunta sa Mga Trigger at mag-click sa Bago.

Hakbang 2: Sa trigger editor, idagdag ang sumusunod na kahulugan ng pag-trigger:

Pag-trigger sa HelloWorldTrigger sa Country__c (bago ipasok) {

Mga bansang__c bansa = Trigger.new

HelloWorld.helloWorldMethod (mga bansa)

}

Ang code sa itaas ay ia-update ang pera ng iyong bansa bago ang bawat insert sa database.

Limitado ng Gobernador

Maaari mong malaman na ang Salesforce ay gumagana sa multi-tenant na arkitektura, nangangahulugan ito na ang mga mapagkukunan ay ibinabahagi sa iba't ibang mga kliyente. Upang matiyak na walang isang kliyente na i-monopolyo ang mga ibinahaging mapagkukunan, mahigpit na ipinatutupad ng Apex run-time engine ang mga limitasyon ng gobernador. Kung ang iyong Apex code ay lumampas pa sa isang limitasyon, ang inaasahang gobernador ay naglalabas ng isang eksepsiyon sa run-time na hindi mapangasiwaan. Kaya, bilang isang developer ng Salesforce kailangan mong maging maingat habang binubuo ang iyong aplikasyon.

Maramihang Pagpapatakbo

Bilang isang developer ng Salesforce, dapat mong laging tiyakin na ang iyong code ay nagpapanatili ng mga limitasyon ng gobernador. Upang matiyak na sumusunod ang Apex sa mga limitasyon ng gobernador, dapat mong gamitin ang pattern ng disenyo ng maramihang mga tawag. Ang isang maramihang operasyon ay tumutukoy sa paggawa ng higit sa isang record kapag gumawa ka ng isang pagpapatakbo ng DML. Bago ka gumawa ng isang operasyon ng DML kailangan mong laging tiyakin na idaragdag mo ang mga hilera sa isang koleksyon. Nasa ibaba ang isang imahe na nagbibigay sa iyo ng isang kumpletong paglalarawan ng pattern ng disenyo ng maramihang operasyon.

Mga DML At Pagpapatakbo ng Data

Nakita mo nang mas maaga kung paano makuha ang data mula sa database gamit ang mga query ng SOQL at SOSL. Tingnan natin ngayon ang iba't ibang mga pahayag na maaari mong gamitin upang magsingit ng data sa Salesforce database. Para sa isang developer ng Salesforce, kinakailangang malaman kung ano ang maaaring gawin ng mga pahayag na ito at kung paano ito gamitin.

Pahayag ng DML

Paglalarawan
IsingitNagdaragdag ng isa o higit pang mga sObject sa data ng iyong samahan
UpdateBinabago ang isa o higit pang mayroon nang mga tala ng sObject
OopsLumilikha ng mga bagong talaan at ina-update ang mga tala ng sObject
TanggalinTinatanggal ang isa o higit pang mayroon nang mga tala ng sObject
UndeletePinapanumbalik ang isa o higit pang mayroon nang mga tala ng sObject
Punta ka naPinagsasama hanggang sa tatlong mga tala ng parehong uri ng sObject sa isang record

Visualforce At Apex

Malayo na ang narating mo sa iyong pakikipagsapalaran upang maging isang developer ng Salesforce. Susunod kong tatalakayin tungkol sa kung paano mo maisasama ang iyong pahina ng visualforce at ang iyong apex code. Maaari mong ikonekta ang iyong pahina ng visualforce at ang iyong apex code sa pamamagitan ng paggamit ng mga Controller at extension.

  • Mga Pasadyang Controller -Kung nais mo ang iyong pahina ng visualforce na ganap na tumakbo sa system mode ibig sabihin nang walang mga pahintulot at seguridad sa antas ng patlang, gumamit ng isang pasadyang controller.

  • Extension ng Controller -Kung nais mong magdagdag ng mga bagong pagkilos o pag-andar na nagpapalawak sa pagpapaandar ng isang pamantayan o pasadyang tagakontrol, gumamit ng isang extension ng controller.

Sa code sa ibaba, ipinakita ko sa iyo kung paano isasama ang pasadyang controller sa iyong pahina ng visualforce:

labis na pag-andar sa c ++

Sa code sa ibaba, ipinakita ko sa iyo kung paano isasama ang extension ng controller sa iyong pahina ng visualforce:

Exception na Pangangasiwa

Kung nakagawa ka na ng mga application dati, tiyak na makakakita ka ng mga pagbubukod. Ang isang pagbubukod ay isang espesyal na kundisyon na nagbabago sa normal na daloy ng pagpapatupad ng programa. Halimbawa, ang paghahati ng isang numero sa pamamagitan ng zero o pag-access sa isang halaga ng listahan na wala sa mga hangganan. Kung hindi mo hahawakan ang mga pagbubukod na ito, pagkatapos ay ang pagpapatupad ng proseso ay hihinto at ang mga DML ay ibabalik.

Bilang isang developer ng Salesforce, kailangan mong malaman kung paano mahuli ang mga pagbubukod na ito at kung ano ang gagawin sa sandaling mahuli mo sila. Upang mahuli ang mga pagbubukod maaari mong gamitin ang subukan, mahuli at sa wakas ay bumuo. Kapag nahuli mo ang pagbubukod, maaari mo itong hawakan sa mga paraang nabanggit sa ibaba:

Pagbubukod Paano Ito Kakayanin
DMLGamitin ang addError () na pamamaraan sa isang talaan o isang patlang
VisualforceGumamit ng klase ng ApexPages.message
Nagpadala ng isang email nang may pagbubukodMaaari mong abisuhan ang developer sa pamamagitan ng email
Pag-log in sa isang pasadyang objectMaaari kang gumamit ng isang paraan sa hinaharap upang mahuli ang isang pasadyang object

Hanggang ngayon sa blog ng developer ng Salesforce na nakita mo kung paano paunlarin ang iyong user-interface gamit ang Visualforce, nakita mo kung paano magsulat ng pasadyang lohika gamit ang Apex at iba't ibang mga konsepto tulad ng mga pag-trigger, maramihang operasyon at paghawak ng pagbubukod. Huling ngunit hindi pa huli, susuriin namin ang balangkas sa pagsubok ng Salesforce.

Pagsubok

Bilang isang developer ng Salesforce, kailangan mong malaman kung paano subukan ang code na iyong sinusulat. Ang pagpapaunlad na hinihimok ng pagsubok ay isang mabuting paraan ng pagtiyak sa pangmatagalang tagumpay ng iyong application ng software. Kailangan mong subukan ang iyong aplikasyon upang mapatunayan mong gumagana ang iyong aplikasyon ayon sa inaasahan. Lalo na, kung bumubuo ka ng isang application para sa isang customer pagkatapos subukin ito bago maihatid ang huling produkto ay napakahalaga. Nagbibigay sa iyo ang Apex ng isang framework ng pagsubok na nagbibigay-daan sa iyo upang sumulat ng mga pagsubok sa yunit, patakbuhin ang mga pagsubok, suriin ang mga resulta sa pagsubok at magkaroon ng mga resulta sa saklaw ng code.

Maaari mong subukan ang iyong aplikasyon sa dalawang paraan:

  1. Sa pamamagitan ng interface ng gumagamit ng Salesforce, ang paraan ng pagsubok na ito ay mahalaga ngunit hindi mahuhuli ang lahat ng mga kaso ng paggamit para sa iyong mga application
  2. Maaari mong subukan ang maramihang pag-andar, hanggang sa 200 mga talaan ay maaaring maipasa sa iyong code gamit ang SOAP API o visualforce standard set controller

Ang mga klase sa pagsubok ay walang ginawang data sa database at na-annotate sa @isTest. Ipinakita ko sa iyo kung paano magdagdag ng isang klase ng pagsubok, sa pamamagitan ng pagdaragdag ng isang pagsubok na klase sa klase ng HelloWorld sa ibaba:

@isTest

pribadong klase HelloWorldTestClass {

static testMethod void validateHelloWorld () {

Country__c country = bagong Country__c (Pangalan = 'India', currency_value__c = 50.0)

Ipasok ang bansa

country = [SELECT currency_value__c MULA SA Bansa SAAN Id = bansa.Id]

System.assertEquals (75, country.currency_value__c)

}

}

Inaasahan kong naunawaan mo ang lahat ng mga konsepto na kailangan mong malaman upang maging isang developer ng Salesforce. Upang sumisid sa higit pang mga detalye, pag-checkout sa aming na kasama ng nagtuturo na humantong sa live na pagsasanay at karanasan sa proyekto sa totoong buhay. Kung mayroon kang anumang mga komento, mangyaring iwanan ang mga ito sa kahon ng komento sa ibaba.