Denne artikel handler om grundlæggende programmering på klientsiden af MS CRM. Det er meningen at jeg vil oprette en række artikler, som kommer godt omkring klientside-kodning. Jeg har arbejdet en del med med klientside-kodning i MS CRM 3.0, men mine artikler er alle målrettet MS CRM 4.0.
Kommentarerne i min kode vil være skrevet på Dansk. Alle eksempler tager udgangspunkt i den Engelske (Amerikansk) udgave af MS CRM 4.0.
Programmeringssprog
Lad mig slå det fast med det samme: Programmeringssproget, som anvendes til kodning på klientsiden er JScript. JScript ligger tæt op ad JavaScript og ECMAScript, og er Microsofts bud på ditto.
Mange vil sikker spørge sig: Hvorfor kan man ikke programmere i vbScript, som jo ofte er anvendt i ASP-kodning, og som Microsoft tidligere har anvendt flittigt? Det naturlige svar er, at Microsoft ønsker at benytte et sprog som er så kompatibelt som muligt på flere platforme som muligt. Med det i tankerne skal man lige huske på, at det faktisk kun er muligt at afvikle MS CRM i Internet Explorer - i hvert tilfælde hvis al funktionalitet skal være tilstede.
Reference til fundemental Scripting: Windows Script 5.6 Documentation
Reference til DHTML: Introduction to Dynamic HTML
Hvorfor kodning på klientsiden?
I et webprogram skal der, for at opnå den bedste ydeevne, være balance i hvor behandling foretages. Behandling kan i visse tilfælde udføres mere effektivt på webserveren. Men behandling på serveren kræver, at der sendes og returneres oplysninger fra browseren til serveren. Denne dataudveksling kan resultere i forringet ydeevne. Der er også fare for, at serverens kan blive overbelastet, hvilket kan medføre problemer med ydeevnen.
Klienten er brugerens maskine. Ved at afvikle kode på klienten kan man minimere kode som afvikles på serveren, og derved ikke belaste serveren unødvendigt. Af den grund anvendes klientkode ofte til at besvare brugerhandlinger, validere data og manipulere brugergrænsefladen på basis af brugerhandlinger.
Klientkode i Microsoft CRM
I Microsoft CRM er det muligt at definere forretningslogik, som skal anvendes på bestemte hændelser, som finder sted, når brugeren udfører handlinger i programmet. Brugerdefineret forretningslogik defineres til at fungere sammen med den Microsoft CRM-webformular, der vises i browservinduet eller andre webprogrammer eller webtjenester.
Hændelser (Events)
Det er muligt at afvikle klientside kode på en formular og på formularfelter.
| Niveau |
Hændelse |
Beskrivelse |
| Formular |
OnLoad |
Finder sted, når CRM-formularen indlæses. |
| OnSave |
Finder sted, når du klikker på knappen Gem (eller Gem og luk) i CRM-formularen. |
| Felt |
OnChange |
Finder sted, når dataene i et felt i formularen ændres, og feltet mister fokus. |
Eksempel
I følgende eksempel vil vi oprette simpel kode på Account-formularen.
- Klik på Settings, Customization.
- I ruden til højre klikkes på Customize Entities.
- I listen Customize Entities dobbeltklikkes på Account.
- På formularen Account markeres Forms and Views, og der dobbeltklikkes derefter på Form.

- På den formular der åbnes, klikkes der, til højre på formularen, på Form Properties.

Ved hjælp at OnLoad og OnSave events er det muligt at afvikle klientside kode på formularniveau.
-
Hvis man vil afvikle kode på feltniveau skal man dobbeltklikke på et felt, og derefter klikke på fanen Events på formularen Field Properties.

Ved hjælp at OnChange event'en er det muligt at afvikle klientside kode på feltniveau.
-
Feltet Event is enabled skal være afkrydset for at aktivere koden.

Eksempel på kode hvor der er indsat kommentarer på forskellig vis.
-
Klik på knappen OK for at gemme koden.
-
På formularen Field Properties klikkes på knappen OK.
-
Afprøv koden ved at klikke på knappen Preview og vælg derefter Create Form.

Kommandoen Create Form giver mulighed for at afprøve formularen før den udrulles (deploy'es). Det er derved muligt at test og fejlrette koden før den sættes i drift.
-
Indtast f.eks. ordet "test" i det felt hvor der er påført kode, og fjern fokus fra feltet, f.eks. ved at tabulere.

Koden bag feltet afvikles da der er sket en ændring i feltet. Derved "fyrer" hændelsen (eventen) OnChange.
Publisere en formular og visninger
Når sin kode er testet og klar til at blive gjort tilgængelig for MS CRM-systemet, skal denne publiceres. Det gøres ved at klikke på knappen Actions og vælge Publish på den pågældende entity.
