现场服务计划委员会中的自定义选项卡

时间:2016-11-01 08:55:10

标签: javascript dynamics-crm-online

我找到了这个博客:http://www.powerobjects.com/2016/08/01/advanced-customizations-for-the-custom-tab-in-the-field-service-schedule-board/#collapse2

在其中,作者描述了使用配置通过将其指向CRM Web资源在Field Services Schedule Board中创建新选项卡。

该博客包含以下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 Online

1 个答案:

答案 0 :(得分:0)

我最后通过直接抓取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}