Reopen Closed Appointment Using JavaScript in D365 CRM
Introduction:
When an appointment is closed in D365 CRM, the appointment is not editable. There can be a requirment when Users wish to edit the closed appointment and add some missing data. This can be achieved by adding a new button on the Appointment form.
Solution:
Add a new button and use below JavaScript.
var AppointmentForm = { setActive:function(primaryControl) { var formContext= primaryControl; var status= formContext.getAttribute("statecode").getValue(); if (status==1) { formContext.getAttribute("statecode").setValue(0); formContext.getAttribute("statuscode").setValue(1); formContext.data.save(); } } }
To understand the status and status reason details, you can refer the Microsoft document- https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/appointment?view=dynamics-ce-odata-9
Note that, you need to update both statecode and statuscode, trying to update only one will give a system error.
Conclusion: You can Activate and edit the appointment, once done user can click on Mark Complete, to close the appointment.