Klientkode - MS CRM Document Object Model

Almindelig DHTML kan anvendes til at manipulere de objekter, der er vist i formularer i MS CRM. Det forventes, at en udvikler, der tilpasser hændelser i MS CRM, i forvejen har erfaring med at arbejde med DHTML DOM.

MS CRM Form Object Model

MS CRM-formularer vises som HTML-sider i Internet Explorer, også når formulererne vises i MS CRM til Microsoft Office Outlook. Alle de HTML-dokumenter der vises i en browser indeholder objekter, der kan manipuleres ved hjælp af kode.

På alle formularer er der et Form-objekt, som hedder crmForm. Objektet er placeret under Body-objektet.

  <body scroll="no">
      <
table class="ms-crm-Form-Area" cellspacing="0" cellpadding
="0">
         <
col width="180"><col
>
            <
tr height
="80">
               <
td colspan="2">

      <
form name="crmForm" class="ms-crm-Form" setinitialfocus="true" formtype=2>
         <
input type="hidden" name="crmFormRootElem" value
="account"/>
            <
tr>

 Ovenstående konstruktion vil derfor betyde, at når man vil referere til et objekt på en formular er syntaksen:

crmForm.all.<navn på objekt>.<egenskab eller metode>

eksempel

crmForm.all.name.DataValue

 

Læsning af crmForm-egenskaber og -metoder

I visse situationer kan det være praktisk at kunne "aflæse" i hvilken tilstand en formular er i. Da man derved kan indrette sin kode derefter. I følgende liste er en række forskellige egenskaber og metoder.

Egenskab/Metode Forklaring
crmForm.FormType == 1 Der oprettes en ny post.
crmForm.FormType == 2 En eksisterende post redigeres.
crmForm.FormType == 3 Posten kan ikke opdateres da brugeren ikke har rettigheder til det.
crmForm.FormType == 4 Posten kan ikke opdateres, f.eks. fordi den er deaktiveret (disabled).
crmForm.FormType == 5 Oprettelse af post med hurtig oprettelse (Quick Create).
= crmForm.ObjectId Hente det entydige ID for posten (GUID).
= crmForm.ObjectTypeCode Identificere hvilken posttype der er tale om (nummer på Entity, f.eks. Account, Contact mv.).
crmForm.IsForOutlookClient==true Undersøge om brugeren anvender Outlook-klienten.
crmForm.IsForOutlookLightClient == true Undersøge om brugeren anvender Outlook Light-klienten.
crmForm.IsOnline==true Undersøge om brugeren arbejder med MS CRM online.
crmForm.IsDirty==true Undersøge om der er ændret værdier i et felt eller felter på formularen.

For at se nummeret på en entity, som kan bruges i forbindelse med ObjectTypeCode, kan man gøre følgende:

  1. Brug adressen http://<crm-server>/sdk/list.aspx



    En liste over alle entities vises.
  2. Klik på ikonen i kolonnen Definition.



    Man kan nu identificere ObjectTypeCode, sammen med andre informationer om den pågældende entity.

 

Brug af crmForm-metoder

I koden kan du kalde metoder for at udføre bestemte handlinger i formularen. I tabellen herunder beskriver de metoder, der er tilgængelige for crmForm-objektet. Disse svarer til handlinger, som brugeren kan udføre i formularen.

Metode Syntaks Forklaring
Gem crmForm.Save() Udløser lagringsfunktionen. Dette funktionskald kan bruges til at gennemtvinge den samme proces, som når brugeren trykker på Gem i formularen.
Gem og Luk crmForm.SaveAndClose() Udløser funktionen Gem og luk.

 

Fælles egenskaber

De fleste felter har en række fælles egenskaber. Min, Max og Accuracy anvendes kun af felter, som har numeriske datatyper. Følgende tabel beskriver de generelle feltegenskaber og datatyper, der anvendes sammen med dem. 

Egenskab Beskrivelse og datatype
DataValue Hente eller angive værdien i et felt. Værdien afhænger af felttypen.
Value Hente den uformaterede værdi i et felt, f.eks. hente en værdi som bliver vist som 10.250,00, men som hentes med Value og bliver vist som 10250,00.
MaxLength Hente den maksimale længde for en streng eller et memofelt. Heltalsværdi.
Disabled Deaktivere eller aktivere et felt. Boolesk værdi.
RequiredLevel

Læse det påkrævede niveau for et felt. Heltalsværdi.

0 = Ingen begrænsning (No Constraint)
1 = Forretning anbefalet (Business Recommended)
2 = Forretning krævet (Business Required)

 

IsDirty Afgøre, om feltets værdi er ændret. Boolesk værdi.
Min Bestemme den lavest tilladte værdi for et heltal, et flydende felt eller et valutafelt. Heltalsværdi.
Max Bestemme den maksimalt tilladte værdi for et heltal, et flydende felt eller et valutafelt. Heltalsværdi.
Accuracy Bestemme det tilladte antal cifre for flydende felter eller valutafelter. Heltalsværdi.

Om Henrik Jensen

Jeg har altid fingeren på pulsen når det drejer sig om Microsofts produkter & teknologier, og især når det handler om Microsoft Dynamics CRM.

Henrik Jensen

Jeg har arbejdet professionelt i IT-branchen mere end 16 års, deraf 12 år med CRM-systemer, og samtidig indehaver af mere end 30 Microsoft-certificeringer.

Jeg er ansat som Microsoft Dynamics CRM-arkitekt hos Logica.

Læs mere...

Downloads, værktøjer og installation

Downloade komponenter til MS CRM:
    • Microsoft Dynamics CRM 4.0
    • Microsoft Dynamics CRM 2011

Liste over Opdateringspakker (Rollups):
    • Microsoft Dynamics CRM 4.0
    • Microsoft Dynamics CRM 2011

Værktøjer til MS CRM 2011:
    • Liste med værktøjer til MS CRM 2011

Krav vedrørende installation:
    • Installation: Krav og opsætninger

Månedsliste

Forbehold

Alt hvad du læser på denne blog er alene udtryk for mine egne holdninger og meninger, og kan ikke henføres til andet end som så.

De løsninger jeg fremstiller på denne blog er ikke nødvendigvis testet i et driftsmiljø. Hvis du gør brug af mine løsninger er det på eget ansvar.