AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.08.2013, 11:53   #1  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Нужно экспертное мнение по the REST SDK and JSON2
Добрый день!

Помогите прокомментировать скрипт и помочь разъяснить что не так. Нет рядом человека, кто мог бы помочь. Спасибо.
У меня есть сущность new_request, на сущности есть Lookup new_bonus_malus, я повесил этот скрипт на событие Onchange new_bonus_malus, и хочу чтобы из Lookup new_bonus_malus копировались значения атрибута new_test и присваивалось полю new_testfield сущности new_request.
Для реализации задачи надо подключить библиотеку json2.js - подключил.

Хочется, чтобы вы на этом примере помогли мне понят в каком направлении двигаться дальше.
Спасибо.

function getServerUrl() {
// From CrmRestKit.js
var localServerUrl = window.location.protocol + "/" + window.location.host;
var context = parent.Xrm.Page.context;

if (context.isOutlookClient() && !context.isOutlookOnline()) {
return localServerUrl;
}
else {
var crmServerUrl = context.getServerUrl();
crmServerUrl = crmServerUrl.replace(/^(http|https):\/\/([_a-zA-Z0-9\-\.]+)([0-9]{1,5}))?/, localServerUrl);
crmServerUrl = crmServerUrl.replace(/\/$/, "");
}
return crmServerUrl;
}

function Lookup_Changed(new_test, new_bonus_malus, callbackId, columns) {
var serverUrl = Xrm.Page.context.getServerUrl();
var ODataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc";

var lookup = Xrm.Page.data.entity.attributes.get(new_bonus_malus).getValue();
if (lookup===null) {
return false;
}

var id = lookup[0].id;
if (id == null) {
return false;
}

var retrieveReq = new XMLHttpRequest();

var url = ODataPath + "/"+entityName+"Set(guid'" + id + "')";
if (columns !== undefined && columns !== null) {
url = url + "?$select=" + columns.join(',');
}

retrieveReq.open("GET", url, true);
retrieveReq.setRequestHeader("Accept", "application/json");
retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
retrieveReq.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 200) {
var data;
var jData;
jData = JSON.parse(this.responseText);
if (jData && jData.d && jData.d.results && jData.d.results.length > 0) {
data = jData.d.results[0];
} else if (jData && jData.d) {
data = jData.d;
}

if (data == null) {
return;
}
retrieveReqCallBack(callbackId, data);
}
}
};
retrieveReq.send();
return true;
}

function retrieveReqCallBack(calltype, data) {
var toLookup=function(data) {
if (data==null || data=="" || (data.Id==null)) {
return null;
}

var result=new Array();
result[0] = {};
result[0].id = data.Id;
result[0].name = data.Name;
result[0].entityType = data.LogicalName;
return result;
}

switch (calltype) {
case 'pricelookup':
Xrm.Page.data.entity.attributes.get("new_pricecategorylookup").setValue(toLookup(data.new_pricecategorylookup);
break;
case 'new_bonus_maluslookup':
Xrm.Page.data.entity.attributes.get("new_testfield").setValue(data.new_test);
break;
default:
break;
}
}

Вот ссылка на оригинальный сайт
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
extraqs и JQuery+JSON2 на OnLoad spectr Dynamics CRM: Разработка 9 29.11.2012 17:38

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:41.