Выездная служба: правильный способ отменить бронирование через SDK / API?

#dynamics-crm

#dynamics-crm

Вопрос:

Объект BookableResourceBooking задокументирован здесь:

https://docs.microsoft.com/en-us/dynamics365/customerengagement/on-premises/developer/entities/bookableresourcebooking

Я хотел бы иметь возможность отменить бронирование, но, похоже, я не могу найти никаких документов SDK или API, которые объясняют, как это сделать. Будет ли достаточно изменить значение bookingstatus на «отменено», чтобы отменить бронирование? Где я должен ввести код причины?

Ответ №1:

Вы можете сделать это, используя как SDK, так и API.

Когда вы видите Резервируемый ресурс в CRM, вы можете увидеть кнопку Деактивировать. Нажатие на него деактивирует резервируемый ресурс Booking.

Теперь есть еще один простой способ управления данными: вы можете установить статус бронирования на отменено, а затем деактивировать запись. Таким образом, вы можете получить полные данные о том, почему запись бронирования бронируемого ресурса отменена / деактивирована.

 var entity = {};
entity["bookingstatus@odata.bind"] = "/bookingstatuses(bbda588b-013a-eb11-a813-000d3a25bbe9)"; /* cancelled booking status ID*/
entity.statecode = 1; /*Inactive*/
entity.statuscode = 2; /*Inactive*/

Xrm.WebApi.online.updateRecord("bookableresourcebooking", "bbda588b-013a-eb11-a813-000d3a25bbe9", entity).then(
    function success(result) {
        var updatedEntityId = result.id;
    },
    function(error) {
        Xrm.Utility.alertDialog(error.message);
    }
);
 

Комментарии:

1. Спасибо за это! Попробую это сделать и посмотрю, как это работает!