0% found this document useful (0 votes)
129 views23 pages

80542a - Module 1 - Introduction To Customizing Microsoft Dynamics CRM 2013

This document provides an overview of customizing Microsoft Dynamics CRM 2013. It discusses using Solutions to organize customizations and keep related changes together. Solutions allow custom components to be packaged and exported for testing or deployment to other environments. The document defines important terminology and introduces the fictional Adventure Works Cycles business to demonstrate customization requirements. It also distinguishes between configuration/customization that can be done through the user interface versus development-level extensions.

Uploaded by

Mahesh Uma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
129 views23 pages

80542a - Module 1 - Introduction To Customizing Microsoft Dynamics CRM 2013

This document provides an overview of customizing Microsoft Dynamics CRM 2013. It discusses using Solutions to organize customizations and keep related changes together. Solutions allow custom components to be packaged and exported for testing or deployment to other environments. The document defines important terminology and introduces the fictional Adventure Works Cycles business to demonstrate customization requirements. It also distinguishes between configuration/customization that can be done through the user interface versus development-level extensions.

Uploaded by

Mahesh Uma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFT
DYNAMICSCRM2013

ModuleOverview

MicrosoftDynamicsCRM2013isahighlyflexiblesoftwareplatformthatcanbecustomizedtomanagemanyprocessesand
monitormanyaspectsofbusinessperformance.

ThecorefunctionalityisbuiltaroundCustomerRelationshipManagement,inparticularformarketing,salesandcustomer
serviceapplications.However,manycustomersuseMicrosoftDynamicsCRMtocontrolavarietyoffunctionsinalltypesof
commercial,governmentandnotforprofitsectors.ThisbroaderuseoftheplatformhasledtothetermxRMbeingused
wherethexrepresentsanythingrelationshipmanagement.

ThiscourseexplainshowMicrosoftDynamicsCRMcanbecustomizedtoletusersrecordandretrievestructuredinformation
thatisrelevanttotheorganizationandtheprocessesthatyouhavetomanage.

ThismoduleexplainshowtouseSolutionstomanageyourworkandalsointroducessomeimportantterminologyand
conceptsthatareusedwhenyoubuildthexRMimplementation.

Objectives
Theobjectivesare:

DescribehowtouseaSolutiontokeeprelatedchangestogether.

DiscusstheimportanceofusingPublishersandprefixestohelpidentifythesourceofchanges.

Defineimportantterminologyforcomponentsthatyoumighthavetocustomize.

IntroducethescenarioofthefictionalbusinessAdventureWorksCycles.OutlineAdventureWorksCycles
customizationrequirementsthatyouwillbuildinthelabsthatappearinthefollowingmodules.

CustomizationorDevelopment?

MicrosoftDynamicsCRM2013canbeadaptedtosuityourorganizationsrequirementsinseveralways.Youcanmakebig
changeswithpointandclickcustomizationofthesystem,butforsomebusinessrequirementsyoumighthavetouseother
methods,suchaswritingJavaScripttomanageclientsidebehaviorofforms,buildingWorkflowstoautomateyourprocesses
orcreating.Netpluginsforthemostcomplextasks.

SomewaysthatyoucanalterthebehaviorofMicrosoftDynamicsCRManddefinetherecordsandfeaturesthatarepresented
tousersmightbeconsideredconfiguration,customization,extendingordevelopment.Thislessondescribessomemethods
thatareavailabletocreateaMicrosoftDynamicsCRMsystemtosuitaparticularsetofrequirements,anddetailsthe
approachesthatarecoveredinthistraining.

CustomizationandConfiguration
https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSiz 1/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

ThefocusofthiscourseisabouthowtochangethewayMicrosoftDynamicsCRMworkstosuityourbusinessrequirements
byusingpointandclickmethods.Thesemethodsrequireonlythetoolsthatareprovidedintheuserinterface(UI),and
mightequallybedescribedascustomizationorconfiguration.Therefore,thesetermsareusedinterchangeablyinthiscourse.

Thistypeofcustomizationisdistinctfromextendingordevelopmentwhichrequiresexternalsoftwaretoolstocreatenew
componentssuchas.netpluginsorJavaScriptfunctions,orupdatingcomponentsbydirectlyeditingtheassociatedXMLin
anexportedsolutionpackage.AlthoughthesecomponentsandchangesmightbeincludedinaSolutionalongsideother
customizationsandmightbereferredtoincertainareasduringthiscourse,thereisnotrainingincludedabouthowtocreate
suchextensions.

Whenyouplan,implementandcustomizeyoursystemwerecommendthatyoureviewtheMicrosoftDynamicsCRM
ImplementationGuide.Thisguideisseparatedintoseveraldocumentstohelpwithyourplanningefforts.Thesedocuments
includethefollowing:

PlanningGuide

InstallingGuide

OperatingandMaintainingGuide

AdministrationGuide

ReportingGuide

CustomizationGuide(newforMicrosoftDynamicsCRM2013)

MicrosoftDynamicsCRM2013ImplementationGuidefordownload
http://go.microsoft.com/fwlink/?LinkId=313320

MicrosoftDynamicsCRM2013ImplementationGuideOnline
http://go.microsoft.com/fwlink/p/?LinkID=317735

MicrosoftDynamicsCRMSolutions

SolutionsinMicrosoftDynamicsCRMletyoupackagetogetherasetofcustomcomponentsthatworkwithoneanotherto
providefunctionalitythatsomeorallusersmusthave.ThislessondescribeshowtocreateanduseSolutionstoorganizeyour
customization,andtodeployyourchangesfromadevelopmentortestsystemtoaliveproductionenvironment.

WhyuseSolutions?
TocustomizeMicrosoftDynamicsCRMtosuitaspecificscenario,youmustfirstunderstandtheorganizationsrequirements.
Typically,abusinessanalystwillconductmeetingsandworkshopswithkeypeople.Thebusinessanalystwilldetermine
howuserscarryouttheirjobs,thedatathattheyworkwithandhowtheymustmeasureprogressandperformancefortheir
processes.

Thesediscussionswillresultinasetofbusinessrequirements.Thesemustthenbetranslatedintoaproposedsetofchanges

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSiz 2/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

thatwillprovideasolutiontothoserequirements.Thisinvolvesdiscussionsbetweenthebusinessanalystandthetechnical
expertswhocandeliverthenecessarycustomizations.Sometimesthismightbethesameperson,especiallyinsmaller
organizations.

Requirementsmightbeseparatedintodifferentphases,orfordifferentareasofthebusiness.Eachsetofrequirementsthatis
groupedtogetherwillhaveaproposedsolution.

InMicrosoftDynamicsCRM,aSolutionisawaytoorganizethecustomizationsthatyoumaketothesystemtomeeta
specificsetofbusinessrequirements.Bydoingthis,youcandeliverawholesetofchangesatthesametime.Thismight
includemanynewormodifiedcomponents,especiallyforyourinitialgolive.AdditionalSolutionsmighthavesome
incrementalchangesforlaterphasesofaproject,asyourollouttheusethesystemtomoredepartmentsoraddmorecomplex
functionality.

Solutionsprovidethefollowingbenefitstohelpyoumanagechanges:

Youcanworkonjustthecomponentsthatyoumusthavewithoutanydistractionorconfusionfromeverythingelseinthe
system.

ItmightbeeasiertorecordthechangesthatyouaremakingifyoucandetaileachSolutionseparatelyandthenrelateeach
Solutiontotheoriginalrequirements,insteadofjusthavingonelargedocument.

WhenyourSolutionisready,itcanbeexportedwithallthenecessarycomponentspackagedtogether,andthenyour
Solutioncanbeimportedintoanothersystemfortestingortouseinproduction.

Yourexportedsolutionpackagewillonlycontainthecomponentsthatyouhaveselectedtobeadded.Therefore,your
solutionpackagewillbesmallerandmoremanageablethanifyouexportthewholesystemSolution.

Youcansavethisexportedsolutionpackageaspartofyourchangecontrolrecords.

AnearlierSolutioncanbeusedtohelprollbackcertainunwantedchangesinsomecircumstances.

Note:EvenifyouonlyhaveoneMicrosoftDynamicsCRMsystem(onpremisesorMicrosoftDynamicsCRM
Online),youwillstillbenefitfrommanyoftheadvantagesofusingSolutionstomanageyourcustomizations.
Forexample,youcanusedifferentSolutionsandPublishersfordifferentsetsofrequirements,toupdateversion
numberstoalignwithyourdocumentation,andtoexportyourSolutiontokeeparecordofitscontentsorto
rollbacktoapreviousstate.However,youmightprefertoworkontheDefaultSolutiondirectlysothatyoucan
makeallthecustomizationsinonelocation.Thisisavalidchoice,andyoushouldworkinthewaythatgives
youthebestoutcome.

DefaultSolution
WhenanOrganizationiscreatedinMicrosoftDynamicsCRM,thesystemcreatesaSolutionnamedtheDefaultSolutionthat
containsallthecomponentsinthesystem.YoucanmodifythecomponentsofthesystemdirectlyintheDefaultSolution,or
createnewSolutionsforyourcustomizations.TheDefaultSolutioncanbeexportedfromtheapplicationandthenimported
intoanotherMicrosoftDynamicsCRMOrganization.

Note:YoucannotexporttheDefaultSolutionasaManagedSolution,andyoucannotdeployacompleteDefault
SolutionfromMicrosoftDynamicsCRMonpremisestoMicrosoftDynamicsCRMOnlineortheotherway
https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSiz 3/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

around.YoucandeployacustomSolutionbetweentwoMicrosoftDynamicsCRM2013systemsthatuseeither
platform.

However,workingintheDefaultSolutionapproachcanbecomemoredifficultasyoursystembecomesmorecomplex.You
willalwayshaveallthecomponentsofthesystemtobrowsethrough,althoughyoumightonlyneedsomeitemsforthe
requirementsthatyouareworkingon.Thisalsomeansthattheexportedsolutionpackageswillgrowlargerasyouaddmore
elementstothesystem.Italsobecomesdifficulttodeterminethecomponentsthathavechangedfromoneversionofyour
DefaultSolutiontothenextversion.

WerecommendthatyoucreateanewSolutionforeachseparatesetofbusinessrequirementsthatyouaretryingtomeet,
insteadofcustomizingtheDefaultSolutiondirectly.AnythingthatyouaddormodifyinyourSolutionwillupdatethe
DefaultSolutioninanycase.Thisalsomeansthatothercustomizerscanviewandbuildonyourworkasyouconfigurethe
system.

CreateaNewSolution
Tokeepasetofcustomizationstogether,youcancreateanewSolutiontoworkin.Todothis,followthesesteps.

1. SignintotheMicrosoftDynamicsCRMOrganizationwithauseraccountthathaseithertheSystemCustomizeror
SystemAdministratorSecurityRole.

2. Onthenavigationbar,clickorpointtoMicrosoftDynamicsCRM,andthenclickSettings.

3. IfyouarenotalreadyintheSolutionsarea,clickorpointtoSettingsinthenavigationbarandthenclickSolutions(you
mighthavetoscrollfurthertotherighttoaccessSolutions).

4. AlistofallSolutionswillbedisplayed.

5. ClickNewinthecommandbar.

6. TheNewSolutionformwillbedisplayed,asshownintheNewSolutionPropertiesfigure

7. Completethefieldsontheform(discussedinmoredetaillaterinthistopic),andthenclickSave.

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSiz 4/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

FIGURE1.1:NEWSOLUTIONPROPERTIES.

Note:MicrosoftDynamicsCRM2013workswithtouchscreendevices.Toavoidrepetition,allstepsinprocedures,
demonstrationsandlabsinthistrainingcoursethatrefertobuttonsorotherinterfaceelementswilluseonlythe
termclick.Unlessspecificallymentioned,youcantapbyusingatouchenableddeviceinsteadofclickingwith
amouse.Whenthetermsrolloverorpointtoareused,youmusttapyourtouchscreen,becausethereisno
equivalentgestureforthisaction.

EntertheDisplayNamethatyouwanttousetorefertothisSolution.YoucanchangetheDisplayNameatanytime.When
youmovefromtheDisplayNamefield,theformwillcopytheDisplayNametotheNamefield,andremoveanycharacters
thatarenotlettersornumbers(thisincludesremovingspaces).YoucannotchangetheNamefieldaftertheSolutionissaved.
Bydefault,theNameisalsousedaspartofthefilenameofyoursolutionpackagewhenyouexportaSolution.

CompletetheVersionfield,byusingtwo,three,orfournumbersthatareseparatedbydecimalpoints,intheform
major.minor.build.revision,suchas2.1.12.3.Ifyouuseonlyonenumbersuchas23,thesystemwilladdthreezerosafter
thisnumbersothatitisdisplayedas23.0.0.0.

Youcanuseanynumbersforthisfield,andyoucanupdatethenumbersinwhateverwayisbestsuitedtoyourchange
managementprocesses.Ifyouhavenoexternalreferencetofollow,youmightchoosetouseyear.month.day.revision,suchas
2013.10.28.3toindicatethelastdatethattheSolutionisupdated,andthethirdrevisiononthatsameday.

TheversionnumberthatyouenterforyourSolutionisappendedtotheNametocreatethedefaultfilenameforthepackage
whenyouexporttheSolution,althoughyoucanenteradifferentfilenameifyouprefer.

BestPractice:TheSolutiondescriptionshouldcontainasummaryofthefunctionalitythattheSolutionprovides.
YoumightalsowanttousetheSolutiondescriptionforshortchangecontroldetails,andtoaddinformation
aboutnewitemsormodificationsthataremade.Ifyoudothis,youshouldaddnewlinesatthetopinsteadofthe
bottom,becausethefieldcanonlyhold2,000charactersandwilltruncateanythingthatislonger.Itmightalsobe
quickertorefertotheSolutiondescriptionifthelatestinformationislocatedatthetop.Thedescriptionis
includedintheXMLinyoursolutionpackagewhenyouexport.

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSiz 5/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

PublishersandPrefixes
BeforeyousavethenewSolution,youmustalsospecifyaPublisherfortheSolutionintheNewSolutionform.This
PublishershowsothercustomizersofyoursystemwhocreatedtheSolutionandthecustomizationstheSolutionincludes,and
alsospecifiesashortprefixformanynewcomponentsthatyoucreate.

Whenyoucreateanentity,fieldorrelationshipinanySolutionthatislinkedtothisPublisher,theprefixthatyoudefineis
addedbeforetheschemanamethatisusedinternallyinthesystemforthatcomponent.Thismakessurethattwocustomizers
whousedifferentprefixesfortheirPublisherswillalwayscreateuniquecomponentsthatwillnotconflictwhentheir
Solutionsaredeployedtothesamesystem,eveniftheynamethecomponentsthesame.

Theprefixthatyoudefineshoulddescribewhoisdoingthechanges,andpossiblyonbehalfofwhom.Thismeansthatyour
newcomponentswillalwaysindicatewhocreatedthecomponentsandwhy.Forexample,ifyouworkatAdventureWorks
CyclesandbuildaSolutiontomeettherequirementsofthesalesdivision,youmightuseaprefixofawcsales.Theawc
meansthattheseareinhousecustomizationsinsteadofcustomizationsthatarecreatedbyanexternalpartnerandsaleswill
helplaterwhenyoutrytorecallwhyaspecificnewfieldisadded,andyouwillknowwhichbusinessrequirementsdocument
toreferto,orwhotoask.Inlargerorganizations,youmightwanttoidentifypeoplefromtheprefixinsteadofjustthe
company.However,theprefixcanbenomorethaneightcharacters.

IfyouexportyourSolutionasaManagedSolution,thepublisherisespeciallyimportant.AfteryourSolutionisimportedinto
yourtargetsystem,onlySolutionswiththesamepublisherwillbeabletoupdatethosecomponents.ExportingSolutionsand
selectingmanagedorunmanagedsolutionsisdiscussedinmoredetailintheExportandImportSolutionslesson.

TocreateandspecifyanewPublisherforyourSolution,followthesesteps.

1. ClickthelookupiconnexttothePublisherfieldontheNew

Solutionform.

2. IfthePublisherthatyouwanttouseisnotshowninthelist,clickLookUpMoreRecords.

3. IntheLookUpRecorddialogbox,clickNew.

4. EnteraDisplayNameforyourPublisher.Whenyoumoveawayfromthefieldthenameischangedtolowercaseletters
andiscopiedtotheNamefield,withnonalphanumericcharactersandspacesremoved.

5. AddimportantinformationtotheDescriptionfieldthatoutlinesinformationforthePublisherrecord.

6. EnteraPrefixofaminimumoftwoandnomorethaneightlowercaselettersandnumbers.

7. WhenyouclickortabawayfromthePrefix,theOptionValuePrefixisautomaticallygenerated.

8. EnteryourContactDetailsifyouwantto.Thisismoreimportanttoindependentsoftwarevendors(ISVs)orother
partnersthatcreateSolutionstobesoldtoorusedbytheircustomers.However,theContactDetailscanalsobeuseful
inlargeorganizationsforinternalcustomizationwork.

9. ClickSaveandClose.YouwillbereturnedtotheLookUpRecorddialogboxthathasyournewPublisherselected.

10. ClickAddtousethisPublisherforyourSolution.

WhenyoumodifyanOptionSettoaddnewitems,theOptionValuePrefixnumberprovidesthedefaultintegervaluesfor

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSiz 6/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

theseitems,tohelpavoidconflictsbetweenoptionsthatareaddedbydifferentcustomizers.Werecommendthatyouaccept
thisdefaultvalueinyournewPublisher.YoucanchoosetooverridetheofferedvaluesforanyparticularOptionSetitemif
youmust.MoreinformationabouthowtocreateandmodifyOptionSetscanbefoundintheCustomizingFieldsmodule.

BestPractice:WhenyoucreatetheMicrosoftDynamicsCRMOrganizationthesystemwillcreateaPublisher
calledDefaultPublisherfor<yourOrganizationname>,thatisusedbytheDefaultSolution.Youcaneditthe
prefixonthisPublisheranduseitinsteadofhavingtocreateyourownPublisher.Ifyouhavemorethanone
customizerworkingondifferentsetsofrequirements,werecommendthatyoucreateoneormorenewPublishers
andusetheseforyourSolutionstobeabletoseparatethecustomizationstheycreate.Youdonothavetohavea
differentPublisherforeverySolution,onlyforSolutionsthatarebeingmodifiedbydifferentpeopleorfor
differentpurposes.Ifyouonlyhaveonepersoncustomizingthesystem,youcouldusetheDefaultPublisher.
However,werecommendthatyouchangetheprefixthattheDefaultPublisheruses.

WorkwithMultipleSolutions
YournewSolutionisacontainerforasetofcomponentsthatworktogethertoprovidethefunctionalityforwhichyouare
asked.Tomodifythecomponents,youcancreatenewcomponentsinyourSolution,oraddexistingcomponentsfromthe
systemtoyourSolution.

EvenwhenyouareworkinginyourownSolution,anycomponentsyoucreateormodifyarechangedintheDefaultSolution,
becauseyourSolutiononlycontainsreferencestothesecomponents,notcopiesofthecomponents.Thismeansthatifyou
deletetheSolutionthatyouarecustomizingthisremovesthewrapperaroundthecomponentsthecomponentsremainin
thesystem.

ItalsomeansthatiftwocustomizersworkonthesameitemintwoseparateSolutionsonthesamesystem,eachcustomizer
willbeabletoviewtheothercustomizerschanges.Additionally,bothsetsofchangesarepresentinanysolutionpackage
thatthecustomizersexport.Youmightconsiderthisanadvantagebecauseanyinteractionbetweenthosechangescanbe
viewedandtested.However,youcouldalsoconsiderthisadisadvantage,ifonesetofchangesisincompletewhentheother
setofchangesisdeployedtoanothersystem.Youhavetoconsiderhowtohandlesuchsituationsifyouhaveseveralpeople
whoworkdirectlyonthesamesystematthesametime.

Note:AnySolutionthatyoucreateandmodifywillbeinanunmanagedstate.ASolutiononlybecomesa
ManagedSolutionwhenitisexported,andthenimportedintoatargetsystem.IfyoudeleteaManagedSolution,it
willdeleteallthecomponentsthattheSolutionincludes,andanyrelateddatafromcustomentitiesinthe
Solution.

Onealternativeisforcustomizerstoworkonseparatesystemsandthendeploytoasingletestsystemandthendeploytoyour
liveenvironment.Thedisadvantageofthisapproachisthatitcouldleadtosomeduplicationofeffort,orconflictsinthe
functionalitythatarenotdiscovereduntiltheSolutionsarebroughttogether.

Whenyoureceiveanupdatedsetofrequirementsthatbuildonworkthatyouhavealreadycompleted,youcanchooseto
reusethesameSolutionandupdatetheversionnumber,orcreateawholenewSolution.

Ifthechangesareminor,suchasthosechangesthatareinresponsetofeedbackthatisreceivedfromuseracceptancetesting
beforeyoudeploytotheproductionenvironment,youshouldusetheexistingSolutionandupdatetoanewversionnumber.

YoumightwanttouseanewSolutioniftheoriginalSolutionhasmanycomponentsthatnolongerhavetobeupdated.A
https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSiz 7/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

newSolutionwouldbeeasiertomanageifthenewrequirementsincludeupdatesforonlyafewelementsoryoumustcreate
newcomponents,suchasinasecondphaseoftheMicrosoftDynamicsCRMproject.

SolutionComponents
YoucancreateoraddmanycomponentstoyourSolution.Somecomponentsmakeupthemetadatathatdescribeshowthe
componentsworktogetherandhowthecomponentsarepresentedtousers.Othercomponentsrepresentmoredirectlyhow
dataisstoredintheSQLdatabase.Thechangesoradditionstoentities,fields,relationshipsandoptionsetsthataremadeby
usingtheuserinterface(UI)toolsortheapplicationprogramminginterface(API)affecttheschema,withouthavingtomake
changesdirectlyintheSQLdatabase.

OtherSolutioncomponentsstorethedefinitionofUIcomponents,suchasforms,views,chartsanddashboards.Security
Roles,Processesandpluginsdescribehowthesystemoperatesandbehaves.Youcanalsoinclude,forexample,templatesfor
emailmessages,Contracts,andknowledgebaseArticlesinyourSolution.

Together,thesecomponentsformyourcompleteSolution,andprovidethefeaturesthatyouarebuildingbyusingthe
MicrosoftDynamicsCRMplatform.

AddingNeworExistingComponentstoyourSolution

ToaddcomponentstoaSolution,followthesesteps.

1. NavigatetoSettings>Solutionsandthendoubleclickyour

Solutioninthelisttoopenit.

2. ClickComponentsinthesolutionexplorernavigationpaneontheleftsidetoviewalistofallthecomponentsinyour
Solution.

3. ClickthedropdownarrowontheNewbuttonandthenselectacomponenttypetoopenaformforanewcomponentof
thattype.

4. ClickthedropdownarrowontheAddExistingbuttonandthenselectacomponenttypetoadd.Inthedialogboxthat
appears,selectaspecificcomponentofthattypetoaddareferencetothatcomponentinyourSolution.

5. Or,selectanodefromthesolutionexplorertreeandthenclicktheNeworAddExistingbuttonstoaddacomponentof
thattype.Forexample,clickDashboardsandthenNewtocreateanewDashboard.

RemovingComponentsfromyourSolution

ToremoveacomponentfromaSolution,youmustfirstselectthecomponentonthemainlistorontherelevantnodeofthe
solutionexplorer.Youcanthenselecttodeleteorremovethecomponent.WhenyouselectRemove,thisremovesthe
referencefromyourSolution.However,thecomponentremainsintheDefaultSolution.WhenyouselectDelete,thistriesto
removethecomponentfromthewholesystem.Somecomponentscannotbedeleted,suchassystementities(thosethatare
builtintothesystem,suchastheAccountorContactentity)ortheSystemAdministratorSecurityRole.Acomponentthat
dependsonanothercomponentcannotbedeleted.

WhatCannotbeAddedtoaSolution?

SomechangesyoumaketothesystemcannotbeaddedtoaSolution.Exceptionsincludeusers,Teams,BusinessUnits,

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSiz 8/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

Queues,Goals,theSubjecthierarchy,andanythingthatrelatestotheproductcatalog,becausethesearedatarecords,and
theymustbecreatedindependentlyineachOrganizationthatyouuse.

Ifyouhaveviews,reportsorcustomcodethatusesthesetypesofrecords,youshouldmakesurethattheyhavematching
namesinallsystems,andrelyontherecordnamesforanyqueriesorreferences.Tosavetimeandreducetheriskofhuman
error,youmightchoosetocreatesomerecordsbyusingtheImportDataWizardorsimilarmethods.Then,youcaninclude
GUIDsfortherecordsinyourimportfiletomakesurethattheserecordsareidenticalinallsystemsandthatanyview,report
orcustomcodethatreferencestheserecordsisreliable.Adetaileddiscussionabouthowtoimportdataisnotpartofthescope
forthiscourse.

ExportandImportSolutions
Afteryouhavecompletedasetofcustomizations,youcanexportyourSolution.Thisexportedsolutionpackageisa
compressedfilethathasazipfilenameextension(.zip).The.zipfilecontainsseveralXMLfilesandothertypesofcontent
suchas.xaml,.dllandimagefiles,dependingonthecomponentsintheSolution.Youshouldkeepacopyofthissolution
packageinasecurelocationaspartofyourchangemanagementprocess.

Typically,youwillworkonchangesinoneMicrosoftDynamicsCRMOrganizationandthenexportasolutionpackageto
importintoanotherOrganization(thismightbeonthesameserverorinadifferentenvironment).Thismightbeyour
productionsystem,oryoumighthaveanadditionalOrganizationthatissetupforuseracceptancetesting(UAT)ortraining
beforeyoureleasenewfeaturesfortheusers.YoumightperformseveralrevisionsandchangestoaSolutionbeforeitis
signedoffasmeetingtheoriginalrequirements.

ToexportyourSolution,selectanytoplevelcomponentnodeinsolutionexplorer,oronInformationorComponents,and
thenclickExportSolutionintheribbon.YoucanalsonavigatetoSettings>Solutions,selectyourSolutioninthelistand
thenclickExportinthetoolbar.

TheExportSolutionwizardguidesyouthroughtheprocess,checkingdependenciesandaskingyouforadditionalsettings
thatyoumightwanttoinclude.MakesurethatyouselectthecorrectPackageType,asshownintheExportSolution
WizardSelectPackageTypeStepfigure.

FIGURE1.2:EXPORTSOLUTIONWIZARDSELECTPACKAGETYPESTEP

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSiz 9/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

Forinternalchangesthatarebeingdeployedfromonesystemtoanother,youshouldusuallyselecttoexportyourSolutionas
Unmanaged.

ManagedSolutionsareusedtodistributecustomizations,forexampleifyouworkforanIndependentSoftwareVendor(ISV)
thatcreatesMicrosoftDynamicsCRMaddonstoselltoyourcustomers.ManagedSolutionshavefeaturesthatmakeiteasier
forasoftwarevendortocontrolwhathappenstoitsSolutionafterdeployment,anditcanalsohelptoprotectthesoftware
vendorsintellectualproperty.

OnlyduringtheexportprocesscanyoudeterminewhetheraSolutionismanagedorunmanaged.Ifyouexportamanaged
Solution,wealsorecommendthatyouexportanunmanagedcopy.Thishelpsmakesurethatyoucanimportthatcopyifyour
originalenvironmentfailsforanyreason.Then,youcanmakemorechanges,whereasthecomponentsofamanagedSolution
couldbelockeddownbyusingmanagedpropertiestopreventanychangesthatmightinterruptthefunctionalityofthe
Solution.

ToimportaSolution,navigatetoSettings>Solutions,clickImportonthetoolbar,andthenfollowthestepsfortheImport
Solutionwizard.

IntheimportofanunmanagedSolution,allthechangesarewritteninthesystem,andthechangescanbeviewedinthe
DefaultSolution.TheSolutionthatisinthesystemonlyholdsreferencestothesecomponents.Ifthesystemthatyouimport
intodiffersfromthesystemthatyoubuiltintheSolution,thedifferenceswillappearinyourcomponents.Referringtothe
Solutioninthenewsystemafteritisimportedisnotanaccuraterecordofwhattransported.Forexample,ifthetargetsystem
alreadyhadsomecustomfieldsontheAccountentity,andtheSolutionfileincludestheAccountentity,thenwhenyourefer
totheimportedSolution,althoughthecustomfieldsarenottransportedwiththisSolution,thecustomfieldsarevisible.The
prefixesoncustomcomponentshelpidentifychangesthatbelongtothesameSolution.However,theonlyaccuraterecordof
whatisimportedisthesolutionpackagecompressedzipfile.

YoucannotuninstallanunmanagedSolutionbutyoucandeleteit.DeletingaSolutiondoesnotreversetheimportprocess,
becausetheimportedchangesareincorporatedcompletelyintothesystem.IfyoudeleteanunmanagedSolution,no
componentsaredeleted,regardlessofwhethertheSolutioniscreatedinthissystemortheSolutionisimported.

WhenseveralSolutionsareimportedthatcontainchangestothesamecomponents,thelastSolutionthatisimported
overwritespreviouschangesinthesystem.IfSolutionsareimportedtoatestenvironment,andthenimportedtoaproduction
environment,makesurethatyouimportallSolutionsinthesameorderortheresultsmightdiffer.

IfyouimportamanagedSolution,nochangesaremadetothesystemcomponents.TheSolutionkeepsthedefinitionsofits
componentsseparately,andtheapplicationdisplaysacombinedversionoftheDefaultSolution,allmanagedSolutions,and
anyotheradditionalunmanagedchangesthataremade.ThismeansthatwhenyoudeleteamanagedSolutionitdeletesall
thecomponentsthatareimported,andleavesthesystemthesameasbeforetheSolutionisimported.Thisletsyouimporta
managedSolutionwiththeconfidenceofknowingthatyoucanremovetheSolutionlater,ifthisisnecessary.

Note:AdetaileddiscussionabouthowtousemanagedSolutions,configuremanagedpropertiesandunderstand
layeringandthecoexistenceofmultipleSolutionsisnotinscopeforthistrainingcourse,andismoreappropriate
fordevelopers,insteadofcustomizers.

MicrosoftDynamicsCRMVersionsandSolutions

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 10/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

YoucannotimportaSolutionthatisexportedfromasourceenvironmentthathasalatermajororminorversionthanthe
target,topreventissueswheretheSolutiondoesnotworkasexpected.Forexample,asystemthatisrunningMicrosoft
DynamicsCRMversion6.0.0.809couldnotimportaSolutionthatiscreatedinasystemthatisrunningversion6.1.0.0
becausetheminorversionnumberofthetarget(0inthiscase)isearlierthanthesource(1inthisexample).

Onlythemajorandminorversionnumbersarerelevant(thefirsttwonumbers),nottheupdaterolluporbuild(thelasttwo
numbers).

ToenableyoutoexportaSolutionintendedtobeimportedonasystemthathasanearlierversion,anewfeaturewillbe
availableinMicrosoftDynamicsCRM2013aroundthesametimeframeasthefirstminorversionupdate.Youcanusethis
featuretomodifyanexportedSolutiontoremovecomponentsorpropertiesthatarenotsupportedonanearliersystem
version.Thisfunctionalityisknownasdownleveling,andisnotavailableinthereleasetomanufacture(RTM)versionof
MicrosoftDynamicsCRM2013.Thefeatureisnotneededatthistimebecausetherearenopreviousversionsavailable.

Thisfeaturewillonlysupportdifferentminorversions.YoucannotexportaSolutionfromMicrosoftDynamicsCRM2013to
useonaMicrosoftDynamicsCRM2011system,andyoucannottargetadifferentmajorversionusingdownleveling
(internallytheseareversions5and6).

IntroductiontoEntityCustomization

Acommonbusinessrequirementforanycustomdatabaseapplicationistostoreadditionaltypesofdatathatdonotmatchthe
modeloftheexistingsystem.Thismightbesomethingsimple,suchaspiecesofdataaboutanexistingtypeofrecord,suchas
aContact,oramorecomplexrequirementtomanageinformationaboutawholenewclassofobjects,suchasprojects,
buildingsorfundingapplications.

Thislessonintroducesimportantterminologyforthistypeofcustomizationworkthatisusedintherestofthecourse.Italso
describeshowsomeofthesepartsarestoredinaSolution,andsomeconsiderationsforhowcomponentsdependonone
another.

Entities,Fields,Forms,Views,andCharts
InMicrosoftDynamicsCRM,somecomponentsarefrequentlycustomizedtogether.Thesearethebuildingblocksofhow
dataisstructured,storedandretrievedinyoursystem.

Anentityisatypeofrecord,suchasAccount,Case,ProductorGoalMetric.Whenyoucreateanentity,theMicrosoft
DynamicsCRMplatformcreatesatableintheSQLdatabasetostorerecordsthatuserscreate,andeachrecordisstoredina
rowofthattable.

However,thetermentityisusedinMicrosoftDynamicsCRMinsteadoftablebecausetheconceptofanentityalso
includesothermetadatathatdescribeshowrecordsaredisplayedtousers.Whenyouexpandanentitynodeinthesolution
explorer,othernodesshownbelowtheentity,andinanexportedsolutionpackagethenodesareinsidethesectionofthe
XMLforthatentity.

Fourofthecomponentsthatareshownundertheentitynodeincludethefollowing:

Fields

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 11/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

Forms

Views

Charts

Althoughthesecomponentsarediscussedinmoredetailinlatermodules,theyaredefinedheretomakesurethattheseterms
areclearlyunderstood.

Note:Thesecomponentsdescribemetadataofanentityandhowtheentityisdisplayedtousers.Thecomponents
arepresentedinthesolutionexplorerandintheXMLofanexportedSolutionPackageaspartoftheentity.
However,thecomponentsarenotallpartsoftheentity.FormsandChartsarestoredintheSystemFormentity
whileViewsarestoredintheSavedQueryentity.Althoughyoucanviewthesecomponentsaspartoftheentityyou
mustunderstandhowtheyarestored.ThemetadatabrowserisatoolthatisincludedintheSoftwareDevelopment
Kit(SDK)asamanagedSolutionfilethatcanhelpyoudeterminehowtheseelementsarestoredandrelatedto
oneanother.DetailsofwhereyoucanfindthemetadatabrowserintheSDKandhowtostartusingthemetadata
browseraredescribedintheImplementationGuideintheCreateandEditMetadataarticle.

OnlinearticleaboutfeaturesoftheMetadataBrowserforMicrosoftDynamicsCRM
http://go.microsoft.com/fwlink/?LinkId=329103

Fields

Fieldseachstoreonepieceofinformationaboutarecord.IntheSQLdatabase,eachfieldisacolumninthetableforthe
entity.However,otherpropertiesabouthowafieldisdisplayedandusedarestoredasXMLmetadata.Forauser,afieldis
eitheracolumninavieworacontrolonaform.Whenyoucreateanentity,severalsystemfieldsareautomaticallyaddedto
it.Youcanaddmorefieldstostoredataofdifferenttypesthatareimportanttoyourbusinessprocesses,suchastext,or
numbers.Developerswillusuallyrefertofieldsasattributesbecauseofhowtheyarereferredtoincode.However,thistermis
notusedintheUI.

Forms

FormsdefinetheUIforasinglerecordfordataentryandretrieval,andthewaymostuserswillinputdataandreaddetailed
informationaboutasinglerecord.Formsdescribethelayoutoffields,subgridsandothercomponents,andeventhandlersto
controlthebehaviorofscripts.Youcancreatemultipleformstodisplayrecordsindifferentwaysforusersaccordingtothe
requirementsoftheirrole.

Views

Viewsarelistsofmultiplerecordsthatarefilteredtoshowonlythoserowstheuserwantsvisible,andtoshowthecolumns
forthespecificdetailsthattheusermusthave.Whenyoucreateanentity,theMicrosoftDynamicsCRMplatformcreates
severalviewsthatyoucanmodify.Youcanalsocreateadditionalviewsifyoumustdoso.Theuserselectsthebestviewfor
thedataheorshewantstobevisible.AviewthatiscreatedthroughcustomizationisnotrelatedtoanSQLview.

Charts

ChartsinMicrosoftDynamicsCRMdescribethelayoutofavisualizationofsomedata,andarealwaysusedwithaview.The
viewfilterstherows(thecolumnsoftheviewareignored)andthechartthendisplaysdataaboutthoserecordsinthewaythat

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 12/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

youhaveconfiguredit,suchasacolumnorlinechart.Severalchartsareincludedalreadyforsomeentitiesandyoucan
modifyoraddtothese.Whenyoucreateanentityyouhavetocreateanychartsthatyoumusthave.Youcancreatemany
chartsbyusingtheUItools,ormodifyingtheXMLdefinitionformorecontroloverthepresentationofthechart.

Note:Withinanentitynodeinthesolutionexplorer,youcanalsoviewlinkstoseveraltypesofRelationshipsand
BusinessRules.Youcanfindmoreinformationaboutbothtypesofcomponentsinlatermodulesofthiscourse.

RemoveEntityComponentsfromaSolution
WhenyouaddanentitytoaSolution,theform,view,chartandfieldnodesarealsoaddedtothesolutionexplorer.You
cannotremoveindividualsubcomponentsfromtheSolutiondirectly,onlythewholeentity.

Note:Ifyoudeleteacustomcomponent,suchasanunwantedfieldorview,thisisremovedfromthewholesystem.
WhenyouexportthesolutionpackagethiscomponentisnotmentionedanywhereintheXMLbecauseitnolonger
existswhenthepackageiscreated.
WhenyouimportaSolutionthatdoesnotincludeacomponent,thecomponentisnotdeletedfromthetarget
system.ThisenablessupportfortheimportofSolutionsfromdifferentsourcesthatdonothavethesame
components.Thismeansthatanycomponentsthatyoudeletefromthedevelopmentsystemmustalsobedeletedin
thetargetsystemsindividuallybecausethecomponentswillnotbementionedinanyexportedsolutionpackage.
Youmustmaintaingooddocumentationandfollowclearchangemanagementprocessestomakesurethatthe
deletionofcomponentsisreplicatedinalltheenvironments.

PublishCustomizations
WhenyouconfiguretheMicrosoftDynamicsCRMsystem,youwillmakeseveralchangesbeforeyouhavesomethingtotest.
Forexample,youmightcreateanewfield.However,thefieldmustbeaddedtoaformbeforeuserscanenterdata,andyou
mightalsowanttoincludethefieldinaview.Insteadofmakingeveryindividualmodificationvisibletousers,yousavethe
changesthatyoumakeandthenpublishallthechangeswhenyouareready.

Thismeansthatotherusersofthesystemwillnotexperiencesomethingthatisunexpecteduntilyouarereadytoshowthe
finishedsetofchanges.Therearealsoperformancebenefitstothisapproach,becausetheclientsoftwaredoesnothaveto
fetchthedefinitionorthedataforUIcomponentseverytimethatthecomponentsareaccessed,becausetheclientsoftware
cancachethis.Whenyoupublishchanges,thisupdatesthedatabasesothattheclientisawarethatthereisanewversion
availableanditwillfetchthatupdateddefinition.

Whenyoupublishchangestoanentity,thisincludesallchangestoforms,views,chartsandfieldsfortheentity.Youcannot
publishonlyonesubcomponentsuchasaformorviewbyusingthetoolsintheUI.Topublishchangestoanentity,select
theentitynodeinthesolutionexplorerandthenclickPublishintheribbonatthetopofthescreen.Or,ifyouhaveaform
thatisopenforediting,youcanclickthePublishbuttonandthispublishesallchangesfortheentity,notjusttheform.

Topublishcomponentsotherthanentities,selectthenodeforthattypeofcomponent,andthenselecttheindividualitemin
thelist(onlyentitiesappearinthesolutionexplorerasanexpandablehierarchy).ClickPublishinthemenubarthatis
locatedatthetopoftheview.

YoucanpublishmorethanonecomponentatatimebyselectingtheComponentsnodeofthesolutionexplorer,andthen
selectingmultipleitemsofthesametypeinsidethelistandthenclickingPublishinthetoolbar.

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 13/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

Topublishallcustomizationsthatyouhavemadetothesystematthesametime,youcanselectanyiteminthesolution
explorerexceptforanentitynode,andthenclickPublishAllCustomizationsintheribbon.

Note:IfyouusePublishAllCustomizations,allsavedchangesarepublished,forallcomponentsinthewhole
system,notjustthoseintheSolution.Ifyouhavemorethanonepersonmakingchangestothesystemthismight
meanchangesaremadevisiblebeforetheyareready.Whenyoucan,publisheachofyourchangesindividually.

Somecomponentsdonothavetobepublished.Forexample,SecurityRolesareimmediatelyupdatedandenforcedassoonas
theyaresaved,whereasprocessesmustbeactivatedbeforetheycanbeused.

Whenyoucreateacomponentorsubcomponent,itispublishedwhenyoufirstsaveit.Therefore,thecomponentor
subcomponentcanbeusedelsewherebeforeyoupublishyouroverallsetofchanges.Youshouldpayadditionalattentionto
thiswhenyoucreatecustomactivityentities.Thecustomactivityentitiesareimmediatelyvisibletootherusers.Alsonotice
thatifyouuseSaveAstocreateacopyofcomponents,suchasviewsordashboards,thenthismeansthatthesavedversionis
visibleimmediately.Althoughatthatpoint,thesavedversionisacopyoftheoriginalversionuntilyoumodifyit,savethe
newversion,andthenpublishyourchanges.

ComponentDependencies
Beforeyoucandeleteacomponentfromthesystem,youmustmakesurethatnoothercomponentsdependonit.Ifyoutryto
deleteacomponentwithoutfirstremovingthesedependencies,thedeleteoperationwillfailandanerrormessageis
displayed.Generally,thereisadependencywhenonecomponentisreferencedordisplayedbyanother.Adashboarddepends
ontheviewsandchartsthatareusedonthedashboard.Theseviewsandchartsdependonseveralfields,andontheentityor
entitiesthattheyreceivedatafrom.

Tocheckwhatdependenciesexistforacomponent,selectthecomponentinthesolutionexplorerandthenclickShow
Dependencies.Theresultsshowthedependentcomponentsthatdependonthecomponentthatyouselected,andtherequired
componentsonwhichthiscomponentdepends,asshownintheDependenciesforaCustomEntityfigure.

FIGURE1.3:DEPENDENCIESFORACUSTOMENTITY

Alsoconsiderthatifyoudeleteacustomentity,thisalsodeletesalldatarecordsforthatentity.Thisisdiscussedinmore

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 14/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

detailintheCustomizingEntitiesmodule.Moreinformationaboutthedependenciesforsomespecificcomponenttypesis
availableintherelevantmodulesinthiscourse.

DependentComponents

Thedependentcomponentsdialogboxliststheothersystemcomponentsthatpreventyoufromdeletingthecomponentthat
youarechecking.IntheDependenciesforaCustomEntityfigure,theBookingentitydependsontheEvententitybecause
thereisarelationshipbetweenthetwoentities.ThisrelationshipmustbedeletedbeforeyoucandeletetheEvententity.In
thiscase,therelationshipispartoftheBookingentityasalookupfield.Ifthisfieldislocatedonaformandinaviewfor
Bookings,thenitmustberemovedfromtheformandtheviewbeforethefieldandtherelationshipcanbedeleted.

Todeleteoneitem,youmighthavetotrackbackthroughseverallayersofdependenciestoachieveyourgoal.

RequiredComponents

Therequiredcomponentslistshowsthecomponentsthatarerequiredbythecomponentthatyouselecttoshowdependencies
for.However,theserequiredcomponentswillnotpreventyoufromdeletingtheentity.TheDependenciesforaCustom
EntityfigureshowsthattheEvententitydependsontwoWebResources.Inthisexample,therequiredcomponentsare
customiconimagesthataredisplayedintheapplication,forexampleinamixeditemviewsuchasaQueue.

IfyouhavealreadydeployedtheEvententitytoyourproductionsystemonetime,togetherwiththeseWebResources,you
donothavetokeeptheWebResourcesinyourSolutiontoexporteverytime.Ifthisisanewentity,thenyoumustmakesure
thattherequiredcomponentsareincludedinyoursolutionpackageotherwisetheimportoftheSolutionwillfail.

WhenyouaddanexistingcomponenttoyourSolution,youmightreceiveamessageliketheonethatisshowninthe
MissingRequiredComponentsDialogWhenAddingComponentstoaSolutionfigure.Youcanselectwhethertoinclude
thecomponentsornot.However,youcannotselecttoincludeonlysomecomponentsthatareoffered.Ifyoudonotinclude
thesedependenciesandyoutrytoimportyourSolutionintoasystemwheretheydonotexist,theimportwillfailwitherrors.
Manytimestherequiredcomponentsaresystementitiesthatyouknowmustbepartofanothersystem.Therefore,youcan
safelyignorethiswarningifyouhavenotcustomizedthoseentities.

FIGURE1.4:MISSINGREQUIREDCOMPONENTSDIALOGWHENADDINGCOMPONENTSTOASOLUTION

MicrosoftDynamicsCRM2013CaseStudy
https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 15/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

ThiscourseincludesseveraldemonstrationsandlabsthatwillshowhowtocustomizeMicrosoftDynamicsCRMtomeetan
organizationsrequirements.ThedemonstrationsandlabsinthiscoursefollowacommonthemehowtocreateaSolutionto
meettherequirementsofAdventureWorksCycles.Theserequirementsaredescribedinthislesson.

Youwillneedtocompletethelabsanddemosinthemodulesofthiscourseinthecorrectsequence,becauselabsinlater
moduleswillcontinuetobuildoncustomizationsperformedinearliermodules.Eachlabwilldescribeifanyearlierlabsmust
becompletedfirst,intheLabSetupsectionofthelabinformation.

AdventureWorksCyclesBusinessRequirements
AdventureWorksCyclesmanufacturesandsellsbicycles,parts,accessoriesandclothingthroughtheirretailpartnersand
directlyontheirwebsitetomembersofthepublic.

AdventureWorksCyclesisalreadyusingMicrosoftDynamicsCRM2013successfullytomanagesales,marketingand
customerserviceprocesses.

EventManagement

TheMarketingdepartmentwantstouseMicrosoftDynamicsCRMtomanageitsinvolvementinseveralevents.Thisis
becomingalargerfunctionasthecompanyexpands.Inparticular,theMarketingdepartmentmustbeabletotrackcorporate
hospitality,tradeshowsandthesponsorshipofracesandotheractivitiesinthecyclingcalendar.AlthoughtheMarketing
departmenthassuccessfullyusedCampaignstosendinvitationsforsucheventsinthepast,itwantstobeabletotrackwho
attendstheeventssothatitcanfollowupwiththeattendeesaftertheevents.

Becausetherearealreadysomekeydatesinthecalendar,theMarketingdepartmentmusthaveasolutionworkingquickly
thatwillnotrequiremuchdevelopmentandtesting.Ifthepilotphaseofthisprojectprovessuccessful,amoredetailedsetof
requirementsmightbedevelopedlatertocustomizeMicrosoftDynamicsCRMtomanageeventsmoreclosely.

TheMarketingdepartmentmustalsorecordinformationabouteventvenuesthatwillmakedecisionmakingeasierandbuild
sharedknowledgeaboutthevenuesthatworkbetterfordifferenttypesofevents.Themarketingmanageralsowantstobuild
closerrelationshipswithvenueoperatorstotakeadvantageofgroupratesandmultieventdeals.

NewProductDevelopment

TheNewProductDevelopment(NPD)teamintheMarketingdepartmentalsowantstouseMicrosoftDynamicsCRMto
managesomeconceptsfornewproductsandservices.TheNPDteamwantstotrackallnewideasforproductsorservices,
decideontheideasthatareworthbuildingasprototypes,andinvolveexistingcustomersintestingtheprototypes.Inthe
future,theremightbeabonusschemetorewardemployeeswhoseideasleadtoprototypesthataredevelopedandreleasedas
newproducts.Therefore,theNPDteammustalsotracktheprototypesthataredevelopedandreleasedasnewproductsas
theyprogressthroughtheprocess.

TheMarketingdepartmentwillkeepownershipandvisibilityofanyCasesthatareloggedbycustomerswhoaretestingthe
prototypes.BecausetheCustomerServicedepartmentalreadyhasprocessesdevelopedtoprovidesupportforproductsthat
arebeingsold,theCustomerServicedepartmentwillworkwiththeMarketingdepartment.

Onesuggestionforthisprocessincludedrecordingstructuredfeedbackabouttheprototypesthatarebeingtested.However,it
becameapparentthatthissuggestionwouldbeofamoregeneraluseamongthebusinesstotrackfeedbackandthe
satisfactionaboutcustomerinteractionsfromsalestosupport.Thecustomizationsthatarebeingmadetorecordthisfeedback

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 16/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

informationmustbemadeavailabletoalldepartmentstouseandtoreporton.Eachdepartmentwilldecidehowtousethis
foritsarea.TheServicedepartmentwantstostarttorecordcustomerfeedbackassoonaspossible.

Afteryoucollectedtherequirements,youidentifiedtwoseparateareasthathavetobeconfigured.Becauseyouwanttohave
theworkcompletedquickly,youhaveseparatedthetasks.AcolleaguewillperformsomecustomizationsinoneSolutionand
youwillcompletetherestofthecustomizationsinanotherSolutionatthesametime.

Yourcolleague(theinstructor)willcompletethefollowingconfigurationchangesforeventmanagement:

VenueCustomentity

EventCustomentity

VenueOperatorUsingexistingAccountentity

ConnectionRolestomanagerelationshipsbetweenEvents,ContactsandUsers

YouwillperformthechangesthatarerequiredtomanagetheNPDprocess.Theseincludethefollowing:

IdeaCustomentity

PrototypeCustomentity

FeedbackCustomactivityentity,tobemadeavailabletoallthebusinessareas

ProductDevelopmentSecurityRoletomanagethesharingofprocesseswithCustomerService

NPDDashboardtoprovidemanagementinformationabouttheprogressoftheprocesses

Demonstration:CreateaNewSolution
DemonstrationSteps

1. CreateanewSolutioncalledEventManagement.

a. BrowsetotheStartscreenofthevirtualmachineandthenclicktheInternetExplorericon.

b. ThebrowserwindowshouldopentothehomepageURLhttp://lon
dc1:5555/AdventureWorksCycles/main.aspx.

c. Inthenavigationbar,clickorpointtoMicrosoftDynamicsCRM,andthenclickSettings.

d. Inthenavigationbar,clickorpointtoSettings,andthenclickSolutions(youmighthavetoscrolltotherightto
viewthis).

e. InthemenubaratthetopofthelistofSolutions,clickNew.TheSolution:NewSolutionformwillbedisplayed.

f. InDisplayName,enterEventManagement.

g. Enter1.0.0.1astheVersionNumber.

2. CreateanewPublishernamedAWCEventManagement,andusetheprefixawcevent.

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 17/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

a. IntheSolution:NewSolutionform,inthePublisherfield,clickthelookupicon.

b. ClickLookUpMoreRecords.

c. IntheLookUpRecorddialogbox,clickNew.

d. EnterAWCEventManagementfortheDisplayName.

e. EnterawceventforthePrefix(noticethisconvertstolowercaselettershoweveryoutypeit).

f. Inthetoolbar,clickSaveandClose.

g. IntheLookUpRecorddialogbox,clickAdd.

h. IntheSolution:NewSolutionform,inthetoolbar,clickSave.

3. AddexistingAccount,CampaignandGoalentities.

a. IntheSolution:EventManagementform,inthesolutionexplorerontheleftside,clickEntities.

b. Inthemenubaratthetopofthe(empty)listofentitiesintheSolution,clickAddExisting.

c. IntheSelectSolutionComponentsdialogbox,noticethattheComponentTypeisfilteredtoEntityonly.

d. ClicktotheleftsideoftheentitiesAccountandCampaigntoenteracheckmarknexttoeach.

e. ClickOK.

f. IntheMissingRequiredComponentsdialogbox,selectNo,donotincluderequiredcomponents,andthenclick
OK.

g. LeavetheSolutionwindowopenforuseinlaterdemonstrations.

Lab:CreateaSolutionandpublisher

Scenario

AsamemberoftheMicrosoftDynamicsCRMprojectteamforAdventureWorksCycles,youhavetomakeaseriesof
modificationstothesystem.ThemodificationswillhelptheNewProductDevelopment(NPD)teammanageitsprocesses.
Youhavetocreateseveralnewentities,addfieldstostorespecificdatathatisrequiredbytheNPDteam,andcreateforms
andviewsthattheNPDteamcanusetoworkwithitsnewrecords.

Beforeyoustarttomakechanges,youwanttocreateanewSolutiontocontainyourcustomizations.Whenyouhave
completedthenecessaryconfiguration,youcanexportthesechangesasasolutionpackagetoimportintoanotherMicrosoft
DynamicsCRMOrganization.Bydoingthis,userscantestthechangesthatyoucreatedandprovidefeedbackbeforeyou
deploytotheliveproductionsystem.Youalsowanttoeasilyidentifythesechangesinthefutureashavingoriginatedfrom
theNPDteam.Therefore,youwillcreateanewPublishertomakesurethatthenewcomponentshaveanappropriateprefix.

AfteryoucreateyourSolution,youmustaddsomeentitiesthatyouthinkmightrequiresomecustomizationtomeetthe
businessrequirementsthatyoureceived.MakesurethatyoudonotincludeanythingintheSolutionthatyouhavenot
modified,becauseyoudonotwantyourSolutiontobecomelargerthanisnecessary,orincludeunexpectedchangesthatare
madebysomeoneelse.

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 18/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

Note:TheSolutionthatyoucreateinthislabisusedinallremaininglabsthroughoutthecourseasacontainerto
performallcustomizations.WerecommendthatyoukeeptheSolutionwindowopenthroughoutsothatitiseasy
toswitchbetweenyourconfigurationenvironmentandthemainnavigationwindowtoviewandtestyourchanges
asyouprogress.BytheendofthecourseyouwillhaveaSolutionthatcontainsallthecomponentsandchanges
thatyouhavemadeineverymodule.

HighLevelSteps

1. CreateanewSolutionnamedNPDandFeedback.

2. CreateaPublishernamedNPDandFeedback,andusetheprefixawcnpd.

3. AddAccount,ContactandUserentitiestotheSolution.

4. RemovetheCampaignentityfromtheSolution.

DetailedSteps

1. CreateanewSolutionnamedNPDandFeedback.

a. BrowsetotheStartscreenofthevirtualmachine,andthenclicktheInternetExplorericon.

b. ThebrowserwindowshouldopentothehomepageURLhttp://lon
dc1:5555/AdventureWorksCycles/main.aspx.

c. IfastartupscreenFirstthingsfirstisdisplayed,selectDonotshowmethisagainandtheninthelowerright
cornerclickNo,thanks.

d. Inthenavigationbar,clickorpointtoMicrosoftDynamicsCRM,andthenclickSettings.

e. Inthenavigationbar,clickorpointtoSettings,andthenclickSolutions(youmighthavetoscrolltotherightto
viewthis).

f. Inthemenubar,abovethelistofSolutions,clickNew.TheSolution:NewSolutionformwillbedisplayed.

g. EnterNPDandFeedbackastheDisplayName.

h. Enter1.0.0.1astheVersionNumber.

2. CreateaPublishernamedNPDandFeedback,andusetheprefixawcnpd.

a. IntheSolution:NewSolutionform,inthePublisherfield,clickthelookupicon.

b. ClickLookUpMoreRecords.

c. IntheLookUpRecorddialogbox,clickNew.

d. EnterAWCNPDandFeedbackfortheDisplayName.

e. EnterawcnpdforthePrefix(noticethisconvertstolowercaselettershoweveryoutypeit).

f. Inthetoolbar,clickSaveandClose.

g. IntheLookUpRecorddialogbox,clickAdd.

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 19/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

h. IntheSolution:NewSolutionform,inthetoolbar,clickSave.

3. AddAccount,CampaignandContactentitiestotheSolution..

a. IntheSolution:NPDandFeedbackform,inthesolutionexplorerattheleftside,clickEntities.

b. Inthemenubar,atthetopofthe(empty)listofentitiesintheSolution,clickAddExisting.

c. IntheSelectsolutioncomponentsdialogbox,noticethattheComponentTypeisfilteredtoEntityonly.

d. ClicktotheleftsideoftheentitiesAccount,CampaignandContacttoenteracheckmarknexttoeach.

e. ClickOK.

f. IntheMissingRequiredComponentsdialogbox,selectNo,donotincluderequiredcomponents,andthenclick
OK.

Note:Becausenocustomizationsaremadeyet,thesemissingrequiredcomponentsmustallbesystem
componentsthatwillalreadyexistinanytargetsystemthatyoudeployto.Inyourownenvironment,
youmustdeterminewhetherthisisthecorrectresponseforagivensituation.

4. RemovetheCampaignentityfromtheSolution.

a. IntheSolution:NPDandFeedbackform,inthecomponentlist,selecttheCampaignentity.

b. Inthemenubar,atthetopofthecomponentlist,clickRemove.

c. KeeptheSolutionwindowopenforuseinlaterlabs.YoucanswitchbetweentheSolutionandthemain
navigationscreenofMicrosoftDynamicsCRM2013byusingtheWindowstaskbar.

ModuleReview

ThismoduleexplainedtheadvantagesofusingSolutionstomanagethechangesthatcanbemadetoMicrosoftDynamics
CRM2013.ThemodulealsoshowedhowtoexportaSolutionasasolutionpackagetodeploythosechangestoother
systems.

IncludedinthemoduleareimportantdefinitionsforsomecorecomponentsandsubcomponentsofaSolutionthatarecovered
inmoredetailinlatermodules.

Themodulealsoexplainedhowtopublishchangesandhowtomakethechangesvisiblefortesting,andhowthismight
affectthecomponentsthatotherusershavechangedoutsidetheSolution.Alsoincludedinthemoduleisabriefdescription
oftheconceptofcomponentdependencies.

ThemodulealsodescribedtheAdventureWorksCyclesscenarioandtherequirementsforitsMicrosoftDynamicsCRM
system.Thedemonstrationsandlabsinothermoduleswillconfigurecomponentstomeettheserequirements.

TestYourKnowledge
Testyourknowledgewiththefollowingquestions.

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 20/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

1. DescribethreeadvantagesofworkinginsideanewSolution,insteadofmakingchangestothedefaultSolutiondirectly.

2. Youcreateacustomviewforanentityanddeploythisfromdevelopmenttotheproductionsystem.Sometimelater,the
usersnolongerrequirethisview,soyoudeletethisviewfromtheSolutioninyourdevelopmentsystem.Whatelsemust
youdotoremovethisviewfromtheproductionenvironment?

() Publishtheentityindevelopment,exporttheSolutionandimporttheSolutionintoproduction.
() Nothing,youcannotremoveasinglecomponent,youhavetodeletethewholeentityandreimporttheSolution
withtheviewomitted.
() RemovetheentityfromtheSolutionthatyoupreviouslyimportedinproduction,thenexporttheSolutionfrom
developmentandimporttheSolutionintoproduction.
() Browsetotheentityintheproductionsystemanddeletetheviewdirectly,andthenpublishtheentity.
() Extractthecustomizations.xmlfilefromthesolutionpackage,deletetheXMLthatrelatestotheview,compress
thesolutionpackageagainandthenreimportthesolutionpackageintotheproductionsystem.

3. WhathappensifyouaddthebuiltinAccountentitytoaSolutionandthentrytodeleteit?

() TheAccountentityisremovedfromtheSolution.However,theAccountentityremainsintheDefaultSolution.
() TheAccountentityisdeletedfromthesystemandalldependenciesareremoved.
() Theentitywillonlybedeletedifithasnodependencies.Otherwise,youwillreceiveanerrormessage.
() Youwillreceiveanerrormessagebecauseyoucannotdeletesystementities.
() AllthechangestotheAccountentityareremovedthereforeitisbacktotheoriginaldefaultstate.

4. YouopenanexistingviewfortheContactentityanduseSaveAstocreateacopy,makesomechangestothecolumns
andSaveandClosethevieweditor.WhenyounavigatetoContactstoviewyourresults,whatwillyoufind?

() Theviewdoesnotappearinthelistofsystemviewsforthecontactentity.
() Theviewappearsinthelistofsystemviews.However,whenyouselectityoureceiveanerrormessage.
() Theviewappearswithallthechangesthatyoumadebecauseyousavedthechanges.
() Theviewappearsinyourpersonalviewsbecauseyouhavenotpublishedtheviewyet.
() Theviewappearsinthelist.However,ithasthesamecolumnsastheviewthatyoucopied.

5. YouhavebuiltaSolutionanddeployedittoyouruseracceptancetesting(UAT)environment.Theprojectstakeholders
agreetheSolutionmeetstheirrequirements.Therefore,youimporttheunmanagedsolutionpackageintotheproduction
system.Everythingisfineforafewdays.However,thentheusersstarttocomplainthatsomeoftheirformshavelostthe
changesthatyoumade.Whatisthemostlikelycauseofthis?

() SomeonehasdeletedyourSolutionfromtheproductionsystem.
() SomeonehasimportedanotherSolutionthatcontainsanearlierdefinitionoftheforms.
() SomeonehasexportedyourSolutionfromtheproductionsystem.
() Someonehasunpublishedallchangesinthesystem.
() SomeonehaschangedtheversionnumberonyourimportedSolutiontoanearlierrevision.

TestYourKnowledgeSolutions

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 21/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

ModuleReviewandTakeaways

1. DescribethreeadvantagesofworkinginsideanewSolution,insteadofmakingchangestothedefaultSolutiondirectly.

MODELANSWER:
Someanswersincludethefollowing:
Youcanworkonselectedcomponentsandmoreeasilydocumentthechangesthatyoumaketothosecomponents.

ByusingacustomPublisherandprefix,somechangesthatyoumakearetaggedpermanentlytoshowtheirorigin.

YourexportedSolutionwillonlycontainthecomponentsthatyouhaveselectedtoaddtoit,andthishelpsavoid
unintendedchangesfrombeingdeployedwithyourcustomizations.

Youcansavetheexportedsolutionpackageaspartofyourchangecontrolrecords.

2. Youcreateacustomviewforanentityanddeploythisfromdevelopmenttotheproductionsystem.Sometimelater,the
usersnolongerrequirethisview,soyoudeletethisviewfromtheSolutioninyourdevelopmentsystem.Whatelsemust
youdotoremovethisviewfromtheproductionenvironment?

() Publishtheentityindevelopment,exporttheSolutionandimporttheSolutionintoproduction.
() Nothing,youcannotremoveasinglecomponent,youhavetodeletethewholeentityandreimporttheSolution
withtheviewomitted.
() RemovetheentityfromtheSolutionthatyoupreviouslyimportedinproduction,thenexporttheSolutionfrom
developmentandimporttheSolutionintoproduction.
() Browsetotheentityintheproductionsystemanddeletetheviewdirectly,andthenpublishtheentity.
() Extractthecustomizations.xmlfilefromthesolutionpackage,deletetheXMLthatrelatestotheview,compress
thesolutionpackageagainandthenreimportthesolutionpackageintotheproductionsystem.

3. WhathappensifyouaddthebuiltinAccountentitytoaSolutionandthentrytodeleteit?

() TheAccountentityisremovedfromtheSolution.However,theAccountentityremainsintheDefaultSolution.
() TheAccountentityisdeletedfromthesystemandalldependenciesareremoved.
() Theentitywillonlybedeletedifithasnodependencies.Otherwise,youwillreceiveanerrormessage.
() Youwillreceiveanerrormessagebecauseyoucannotdeletesystementities.
() AllthechangestotheAccountentityareremovedthereforeitisbacktotheoriginaldefaultstate.

4. YouopenanexistingviewfortheContactentityanduseSaveAstocreateacopy,makesomechangestothecolumns
andSaveandClosethevieweditor.WhenyounavigatetoContactstoviewyourresults,whatwillyoufind?

() Theviewdoesnotappearinthelistofsystemviewsforthecontactentity.
() Theviewappearsinthelistofsystemviews.However,whenyouselectityoureceiveanerrormessage.
() Theviewappearswithallthechangesthatyoumadebecauseyousavedthechanges.
() Theviewappearsinyourpersonalviewsbecauseyouhavenotpublishedtheviewyet.
() Theviewappearsinthelist.However,ithasthesamecolumnsastheviewthatyoucopied.

5. YouhavebuiltaSolutionanddeployedittoyouruseracceptancetesting(UAT)environment.Theprojectstakeholders
agreetheSolutionmeetstheirrequirements.Therefore,youimporttheunmanagedsolutionpackageintotheproduction
system.Everythingisfineforafewdays.However,thentheusersstarttocomplainthatsomeoftheirformshavelostthe

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 22/23
7/27/2015 MODULE1:INTRODUCTIONTOCUSTOMIZINGMICROSOFTDYNAMICSCRM2013

changesthatyoumade.Whatisthemostlikelycauseofthis?

() SomeonehasdeletedyourSolutionfromtheproductionsystem.
() SomeonehasimportedanotherSolutionthatcontainsanearlierdefinitionoftheforms.
() SomeonehasexportedyourSolutionfromtheproductionsystem.
() Someonehasunpublishedallchangesinthesystem.
() SomeonehaschangedtheversionnumberonyourimportedSolutiontoanearlierrevision.

https://skillpipe.coursewaremarketplace.com/reader/enGB/Book/BookPrintView/499e3c68bb1448a696a6afc28944342e?ChapterNumber=3&FontSi 23/23

You might also like