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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.09.2011, 16:12   #1  
Borisvil is offline
Borisvil
Участник
 
123 / 36 (2) +++
Регистрация: 03.06.2011
Адрес: Санкт-Петербург
CRM2011: Не могу подключить JSON в JScript
Здравствуйте!

Нужно через JScript создать несколько подчиненных сущностей для кастомного объекта. В SDK для доступа к данным из JScript рекомендуется в том или ином виде использовать JSON, но все примеры содержат html страничку с которой запускаются скрипты и соответственно там-же подключается json2.js.
А как его подключить если мне нужно использовать скрипт напрямую, без html?
Нашел что нужно данный скрипт загрузить в отдельный веб-ресурс и опубликовать, сделал это но все равно мой скрипт, ссылающийся на JSON, не работает.
Старый 06.09.2011, 17:39   #2  
Borisvil is offline
Borisvil
Участник
 
123 / 36 (2) +++
Регистрация: 03.06.2011
Адрес: Санкт-Петербург
Цитата:
Сообщение от Borisvil Посмотреть сообщение
Здравствуйте!

Нужно через JScript создать несколько подчиненных сущностей для кастомного объекта. В SDK для доступа к данным из JScript рекомендуется в том или ином виде использовать JSON, но все примеры содержат html страничку с которой запускаются скрипты и соответственно там-же подключается json2.js.
А как его подключить если мне нужно использовать скрипт напрямую, без html?
Нашел что нужно данный скрипт загрузить в отдельный веб-ресурс и опубликовать, сделал это но все равно мой скрипт, ссылающийся на JSON, не работает.
Нашел в чем проблема: нужно веб-ресурс со скриптом json2.js опубликовать в форме, из которой он потом использоваться будет.
Теперь другая проблема - для создаваемого объекта могу установить значения только строковых полей, остальные видимо через JSON передаются не так просто и скрипт не отрабатывается. Может кто подскажет как их передавать?
Старый 06.09.2011, 23:22   #3  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Аватар для Konstantin Katsovich
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Регистрация: 22.10.2008
Адрес: Israel
А через какой сервис Вы обращаетесь к CRM
../OrganizationData.svc?
../Organization.svc?
__________________
Читайте SDK!!!
Старый 07.09.2011, 10:02   #4  
Borisvil is offline
Borisvil
Участник
 
123 / 36 (2) +++
Регистрация: 03.06.2011
Адрес: Санкт-Петербург
Цитата:
Сообщение от Konstantin Katsovich Посмотреть сообщение
А через какой сервис Вы обращаетесь к CRM
../OrganizationData.svc?
../Organization.svc?
Через OrganizationData.svc.

Код такой (REST через Odata, взят из примеров Microsoft):

X++:
var context = Xrm.Page.context;
 serverUrl = context.getServerUrl();
 ODataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc";
  
 var payment = new Object();
 var startTime = new Date();
 payment.xrm2b_day = startTime;
 var jsonpayment = window.JSON.stringify(payment);
 
 var createpaymentReq = new XMLHttpRequest();
 createpaymentReq.open("POST", ODataPath + "/xrm2b_paymentSet", true);
 createpaymentReq.setRequestHeader("Accept", "application/json");
 createpaymentReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
 createpaymentReq.onreadystatechange = function () {
  createpaymentReqCallBack(this);
 };
  createpaymentReq.send(jsonpayment);
Поле с датой и с типом строка принимает нормально, а вот денежное и guid никак не удается передать чтобы они заполнились в создаваемой сущности.
Вроде все делаю правильно:
X++:
 var sum = Xrm.Page.getAttribute("xrm2b_annuity").getValue();
 payment.xrm2b_payment_sum = sum;
а скрипт при этом не срабатывает.
Перерыл кучу источников, но везде пишут только об обратном преобразовании - как результат полученный через OData преобразовать к стандартным типам.
Старый 07.09.2011, 15:13   #5  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Обратитесь к главе "Query Microsoft Dynamics CRM Data Using the REST Endpoint". Там есть раздел Entity Properties, который освещает то, как задавать сложные типы, например Money:
Код:
"CreditLimit" :{     "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.Money" },     "Value": 500.0000 }
И Reference:
Код:
"PrimaryContactId" :{     "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.EntityReference" },     "Id": "78713858-5e81-df11-afdb-00155dba380a",     "LogicalName": "contact",     "Name": "Cathan Cook (sample)" }
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: Borisvil (1).
Старый 07.09.2011, 16:14   #6  
Borisvil is offline
Borisvil
Участник
 
123 / 36 (2) +++
Регистрация: 03.06.2011
Адрес: Санкт-Петербург
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Обратитесь к главе "Query Microsoft Dynamics CRM Data Using the REST Endpoint". Там есть раздел Entity Properties, который освещает то, как задавать сложные типы, например Money:
Код:
"CreditLimit" :{     "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.Money" },     "Value": 500.0000 }
И Reference:
Код:
"PrimaryContactId" :{     "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.EntityReference" },     "Id": "78713858-5e81-df11-afdb-00155dba380a",     "LogicalName": "contact",     "Name": "Cathan Cook (sample)" }
Спасибо, уже нашел!
Получается так:
X++:
//Поле Reference:
     payment.new_applicationid = {
         Id: Xrm.Page.data.entity.getId(),
         LogicalName: Xrm.Page.data.entity.getEntityName()
     };
//Поле Money:
     var sum = Xrm.Page.getAttribute("new_annuity").getValue();
     payment.new_sum = { Value: sum.toString() };
Старый 07.09.2011, 16:40   #7  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Ну или вот так:
Код:
var applicationid = new Object();
applicationid.Id = Xrm.Page.data.entity.getId();
applicationid.LogicalName = Xrm.Page.data.entity.getEntityName();

payment.new_applicationid = applicationid;
Не очень люблю анонимные переменные В данном случае код читаем, но ими все же лучше не злоупотреблять.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Microsoft Dynamics CRM Team Blog: Using Option Set Options with the REST Endpoint – JScript Blog bot Dynamics CRM: Blogs 0 31.05.2011 22:11
Microsoft Dynamics CRM Team Blog: JScript IntelliSense for Form Script Libraries Blog bot Dynamics CRM: Blogs 0 07.04.2011 19:11
CRMScape: CRM 2011 OData, JSON and CRM Forms Blog bot Dynamics CRM: Blogs 0 08.03.2011 20:12
Microsoft CRM: Dynamics CRM2011 outlook client features Blog bot Dynamics CRM: Blogs 0 04.12.2010 14:11
Microsoft CRM: CRM2011 new Features Blog bot Dynamics CRM: Blogs 0 22.11.2010 14:11

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

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

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