04.09.2011, 00:32 | #1 |
Участник
|
CRM 2011. Вопрос. Обновление значений полей связанных объектов
Здравствуйте!
Подскажите, пожалуйста, кто знает. Есть задача с помощью Javascript обновить значения полей связанных объектов (пользовательских). Скажем на форме основного объекта, например, Счета, есть поле с числовым значением. Есть связанный объект, например, Оплата (1:N). Надо во всех связанных с данным счетом Оплатах обновить какое-либо поле, например, умножить его значение на значение из счета. Запускаться скрипт будет из счета. Использовать плагины нельзя. Как это сделать с помощью бизнес-процессов известно, но есть минусы, хотелось с помощью javascript. Спасибо! |
|
04.09.2011, 00:57 | #2 |
Чайный пьяница
|
Здравствуйте.
Вычитайте дочерние записи и обновите их используя примеры, которые предоставлены следующей ссылкой - http://technet.microsoft.com/en-us/l.../gg309549.aspx
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
05.09.2011, 14:26 | #3 |
Участник
|
Спасибо за ответ!
Вычитал все значения. Количество (json.results.length) показывает правильное, но обновить удается только одно, т.е. цикл не отрабатывает больше одного раза. Вот код цикла: for (var i = 0; i < json.results.length; i++) { alert (i); var json = json.results[i]; var n = Xrm.Page.getAttribute("new_n").getValue(); var ta = json.new_ta; var changes = new Object(); changes.new_f1 = ta * n; alert (json.new_fId); updateF(json.new_fId, changes); } Функция обновления: function updateF(id, fObject) { //Parse the entity object into JSON var jsonEntity = window.JSON.stringify(fObject); //Asynchronous AJAX function to Update a CRM record using OData $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", datatype: "json", data: jsonEntity, url: Xrm.Page.context.getServerUrl() + "/XRMServices/2011/OrganizationData.svc/new_fSet(guid'" + id + "')", beforeSend: function (XMLHttpRequest) { //Specifying this header ensures that the results will be returned as JSON. XMLHttpRequest.setRequestHeader("Accept", "application/json"); //Specify the HTTP method MERGE to update just the changes you are submitting. XMLHttpRequest.setRequestHeader("X-HTTP-Method", "MERGE"); } }); } Подскажите, пожалуйста, в чем может быть проблема. Спасибо! |
|
05.09.2011, 14:34 | #4 |
Участник
|
А всего параметров случаем не 2?
|
|
05.09.2011, 14:36 | #5 |
Участник
|
Не очень понял вопрос.
Вы спрашиваете про количество возвращенных строк? Их, например, 4. Или не про них? |
|
05.09.2011, 15:10 | #6 |
Участник
|
Вы переопределяете здесь Вашу глобальную переменную.
Поэтому у Вас цикл и бежит один раз. Попробуйте использовать другое имя.
__________________
Читайте SDK!!! |
|
05.09.2011, 15:25 | #7 |
Участник
|
Н-да ...
Спасибо! Помогло- |
|
|
|