15.11.2013, 16:23 | #1 |
Участник
|
JavaScript Entity Reference in CRM 2013.
Добрый день!
Разочарован, решил написать на форум. Задача: Создать кнопку, которая копирует Продукты из Проекта в Подпроект. Я реализовал кнопку на форме Подпроект, которая открывает сущность Выбрать Продукт, в гриде которой содержаться отфильтрованные по ИД Проекта Продукты. Чтобы просмотреть и выбрать записи из грида пользователь должен открыть их в отдельном окне. В этом отельном окне формы Продукт есть кнопка Создать продукт. При нажатии - должны копироваться выбранные записи и ассоциироваться с подпроектом. Проблема: Я не могу обратиться с открытого окна Продукты к родительской сущности Выбрать продукт. В 2011 это делалось очень просто, грид не открывался в отдельном окне, когда надо было просмотреть записи Вот пример кода: Цитата:
function CreateProduct (CrmParameters) { var Record = CrmParameters; //все что зачеркнуто ниже не работает //var EntityName = Xrm.Page.data.entity.getEntityName(); //var EntityId = Xrm.Page.data.entity.getId(); //var EntityId = Xrm.Page.getAttribute("erpc_entityid").getValue(); //var EntityName = Xrm.Page.getAttribute("erpc_entityname").getValue(); //var Parent = Xrm.Page.data.entity.attributes.get(0).getParent(); //var erpc_parent_record_id = pageParent.getAttribute("erpc_parent_record_id").getValue(); //var erpc_entityname = pageParent.getAttribute("erpc_entityname").getValue(); //var ParentName = parent.Xrm.Page.data.entity.attributes.get("erpc_entityname").getValue; var ParentID = window.parent.opener.Xrm.Page.data.entity.attributes.get("erpc_subproject").getValue()[0].id; var select = "*"; var id = null; for (var i = 0; i < Record.length; i++) { id = Record[i]; RetriveProduct (id, select,EntityName,EntityId) } //alert ("Копии задач созданы!"); } function RetriveProduct (ProductId, select,EntityName,EntityId) { InitializeRest(); SDK.REST.retrieveRecord( ProductId, 'InvoiceDetail', select, null, function (results) { var DataProduct = results; //Договор if (EntityName == "erpc_busines_contract") { DataProduct.InvoiceDetailId = null; DataProduct.erpc_campaign_invoicedetail = {Id: EntityId, LogicalName: "erpc_busines_contract", Name: "Name"}; CreateProductAndCopy(DataProduct) } // Подроект if (EntityName == "subproject") { DataProduct.InvoiceDetailId = null; DataProduct.erpc_subproject_invoicedetail = {Id: EntityId, LogicalName: "erpc_subproject", Name: "Name"}; CreateProductAndCopy(DataProduct) } //Счет if (EntityName == "invoice") { DataProduct.InvoiceDetailId = null; DataProduct.erpc_invoice_invoicedetail = {Id: EntityId, LogicalName: "invoice", Name: "Name"}; CreateProductAndCopy(DataProduct) } }, function (error) { alert(error.message); } ); } function CreateProductAndCopy (DataProduct) { InitializeRest(); SDK.REST.createRecord( DataProduct, 'InvoiceDetail', function (results) { }, function (error) { alert(error.message); } ); } Последний раз редактировалось GetLucky; 15.11.2013 в 16:26. |
|
|
|