现场服务:通过 SDK/API 取消 BookableResourceBooking 的正确方法?

Field Service: correct way to cancel a BookableResourceBooking via SDK/API?

BookableResourceBooking 实体记录在此处:

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

我希望能够取消预订,但我似乎找不到任何解释如何取消预订的 SDK 或 API 文档。将 bookingstatus 值更改为“已取消”是否足以取消预订?我应该在哪里输入原因代码?

您可以使用 SDK 以及 API。

当您在 CRM 中看到可预订资源预订时,您可以看到停用按钮。单击它将停用可预订资源预订。

现在有一种更简洁的数据管理方式,您可以将预订状态设置为已取消,然后停用记录,这样您可以捕获完整的数据,因为可预订资源预订记录是 cancelled/deactivated。

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);
    }
);