Field Service 日程安排板中的自定义选项卡
Custom Tab in the Field Service Schedule Board
作者在其中描述了使用配置在 Field Services Schedule Board
中创建新选项卡,方法是将其指向 CRM Web 资源。
该博客包含以下内容javascript:
function updateBooking()
{
var entityRecordGuid = "10B8A40B-D499-E611-80E6-A45D36FC5A4C";
// GUID is hardcoded to make the sample code easier to understand.
// We can extend this customization to be able to extract the selected booking IDs
// from the SChedule Board's DOM, but that is out of scope for now
var bookableResourceBooking = new XrmServiceToolkit.Soap.BusinessEntity("bookableresourcebooking", entityRecordGuid);
bookableResourceBooking.attributes["cus_urgency"] = document.getElementById('UrgencyInput').value;
bookableResourceBooking.attributes["cus_notes"] = document.getElementById('NoteInput').value;
var updateResponse = XrmServiceToolkit.Soap.Update(bookableResourceBooking);
if (updateResponse == "") { // clear fields if synced to crm
document.getElementById('UrgencyInput').value = "";
document.getElementById('NoteInput').value = "";
} else {
alert('Data didn't sync to CRM');
}
}
我遇到的问题是我不确定如何动态获取 entityRecordGuid
值。
似乎没有办法将网络资源配置为
将所选项目作为查询字符串的一部分
Field 似乎有未记录的 JavaScript 库
服务;但是,我无法从网络资源访问它们 IFrame
当然,它们没有记录。
有没有人试过这样做?我正在使用在线 CRM
我最终通过直接抓取 HTML 而不是尝试使用 Field One 中的任何 API 方法来完成此操作。
这对我来说并不是一个真正令人满意的答案。这取决于 Unscheduled Orders
板的特定顺序,并且由于最终用户可以更改,所以我的解决方案非常脆弱。
对于其他人来说,我确实设法找到了这些 API 方法;但是,我找不到它们的任何文档,因此假设它们不受支持。我也无法将它们捆绑在一起以实现我想要的
// get the id of the sub grid
F1SDK.SchedulerPage.UnscheduledOrdersGrid.id
// -> "UnscheduledGrid"
F1SDK.SchedulerPage.UnscheduledOrdersGrid.getItemId()
// -> "UnscheduledGrid"
F1SDK.SchedulerPage.UnscheduledOrdersGrid.getStore().storeId
// -> "UnscheduledWorkOrders"
F1SDK.SchedulerPage.UnscheduledOrdersGrid.getStore().data.items[0].internalId
F1SDK.SchedulerPage.UnscheduledOrdersGrid.selModel.selected.items[0].internalId
// Get a subgrid
FieldOneSkyUtils.Subgrid.GetSubgrid('id')
F1SDK.data.models.WorkOrder.getFields()
F1SDK.data.models.WorkOrder.getIdByWONumber('00106')
// -> {55caa97d-429a-e611-80e6-c4346bc4bef0}
作者在其中描述了使用配置在 Field Services Schedule Board
中创建新选项卡,方法是将其指向 CRM Web 资源。
该博客包含以下内容javascript:
function updateBooking()
{
var entityRecordGuid = "10B8A40B-D499-E611-80E6-A45D36FC5A4C";
// GUID is hardcoded to make the sample code easier to understand.
// We can extend this customization to be able to extract the selected booking IDs
// from the SChedule Board's DOM, but that is out of scope for now
var bookableResourceBooking = new XrmServiceToolkit.Soap.BusinessEntity("bookableresourcebooking", entityRecordGuid);
bookableResourceBooking.attributes["cus_urgency"] = document.getElementById('UrgencyInput').value;
bookableResourceBooking.attributes["cus_notes"] = document.getElementById('NoteInput').value;
var updateResponse = XrmServiceToolkit.Soap.Update(bookableResourceBooking);
if (updateResponse == "") { // clear fields if synced to crm
document.getElementById('UrgencyInput').value = "";
document.getElementById('NoteInput').value = "";
} else {
alert('Data didn't sync to CRM');
}
}
我遇到的问题是我不确定如何动态获取 entityRecordGuid
值。
似乎没有办法将网络资源配置为 将所选项目作为查询字符串的一部分
Field 似乎有未记录的 JavaScript 库 服务;但是,我无法从网络资源访问它们
IFrame
当然,它们没有记录。
有没有人试过这样做?我正在使用在线 CRM
我最终通过直接抓取 HTML 而不是尝试使用 Field One 中的任何 API 方法来完成此操作。
这对我来说并不是一个真正令人满意的答案。这取决于 Unscheduled Orders
板的特定顺序,并且由于最终用户可以更改,所以我的解决方案非常脆弱。
对于其他人来说,我确实设法找到了这些 API 方法;但是,我找不到它们的任何文档,因此假设它们不受支持。我也无法将它们捆绑在一起以实现我想要的
// get the id of the sub grid
F1SDK.SchedulerPage.UnscheduledOrdersGrid.id
// -> "UnscheduledGrid"
F1SDK.SchedulerPage.UnscheduledOrdersGrid.getItemId()
// -> "UnscheduledGrid"
F1SDK.SchedulerPage.UnscheduledOrdersGrid.getStore().storeId
// -> "UnscheduledWorkOrders"
F1SDK.SchedulerPage.UnscheduledOrdersGrid.getStore().data.items[0].internalId
F1SDK.SchedulerPage.UnscheduledOrdersGrid.selModel.selected.items[0].internalId
// Get a subgrid
FieldOneSkyUtils.Subgrid.GetSubgrid('id')
F1SDK.data.models.WorkOrder.getFields()
F1SDK.data.models.WorkOrder.getIdByWONumber('00106')
// -> {55caa97d-429a-e611-80e6-c4346bc4bef0}