Man skal passe på hvilken kode man indsætter i OnSave-eventen på formularer. I visse tilfælde kan det give en fejl når man f.eks. forsøger at genaktivere objekter, som f.eks. objektet Sager, og det er netop hvad dette indklæg handler om.
Problemet
En Sag er er afsluttet, men den forsøges genaktiveret, hvilket normalt ikke er et problem. Åbn Sagen og vælg Handlinger, Genaktiver. Følgende fejlmeddelelse fremkommer:

I ovenstående tilfælde handler det om, at der er indlagt kode på formularens OnSave-event, som blokerer for genaktiveringen. Koden var:
crmForm.all.<feltnavn>.ForceSubmit = true;
Problemet er, at når man genaktiverer en Sag, så kører formularens OnSave-event, og dermed ovennævnte kode. I dette tilfælde er det særdeles uheldigt - og ikke "best practice" at gennemtvinge ForceSubmit i en OnSave-event. Læs mere herom senere i dette indlæg.
Løsningen
Fjern ovennævnte kode fra OnSave-eventen. Hvis koden er nødvendig så placer den andetsted, se herunder.
Om egenskaben ForceSubmit
I mange tilfælde har man behov for at udfylde et felt, når det er skrivebeskyttet (read-only) eller vil blive indstillet til skrivebeskyttet (read-only) dynamisk. Felter som er indstillet skrivebeskyttet (read-only) vil dog ikke blive opdateret når man klikker på Gem eller Gem og luk. Det er netop her egenskaben ForceSubmit kommer til sin ret.
For at få et skrivebeskyttet (read-only) felt opdateret, kan man indstille ForceSubmit på feltet til true ved hjælp af javascript:
crmForm.all.<feltnavn>.ForceSubmit = true;
I realiteten sker der det, at ForceSubmit altid vil gemme den værdi der måtte være i feltet, også selv om feltet er tomt. Hvilket egentlig er i orden.
I ovenstående scenarie volder ForceSubmit problemer, idet koden køres fra OnSave-eventen, hvilket ikke accepteres når man genaktiverer en Sag. Faktisk bør man ikke anvende egenskaben ForceSubmit i OnSave-eventen, men i stedet benytte den i forbindelse med den kode, som i forvejen opdaterer det skrivebeskyttede felt (OnChange-eventen), som f.eks.:
crmForm.all.<feltnavn>.DataValue= '';
crmForm.all.<feltnavn>.ForceSubmit= true;