Вытащить данные из другого объекта в CRM 3.0? - PullRequest
1 голос
/ 03 августа 2010

У меня есть форма с тремя полями, которые я хотел бы заполнить на основе трех атрибутов другой сущности.Какой лучший способ сделать это?Я попробовал это, основываясь на материалах, которые я нашел в Интернете:

if (crmForm.all.new_name.DataValue == null) { return; }
var sdk = new XrmDataContext(null, null);
var id = crmForm.all.new_name.DataValue[0].id;
var fetchXml = "<fetch mapping=\"logical\"><entity name=\"mag_identificationtype\"><all-attributes /><filter type=\"and\"><condition attribute=\"new_advertisingrate\" operator=\"eq\" value=\"" + id + "\" /></filter></entity></fetch>";
var result = sdk.Fetch(fetchXml);
for (var i = 0; i < result.length; i++) {
crmForm.all.new_mediapaymentplan.DataValue = parseFloat(result[i].attributes["new_mediapaymentplan"]);
}
for (var i = 0; i < result.length; i++) {
crmForm.all.new_yellowpagepayment.DataValue = parseFloat(result[i].attributes["new_fixed_yellowpages_fee"]);
}
for (var i = 0; i < result.length; i++) {
crmForm.all.new_extrapayment.DataValue = parseFloat(result[i].attributes["new_extraadvertisingpayment"]);
}

... но это не работает, и я подозреваю, что это потому, что он предназначен для 4.0.Есть ли способ сделать это в 3.0, и если да, то что это?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2011

Раньше у меня была похожая проблема, как сказал Марк, вы используете классы в CRM 4 и более, разработанные сообществом XRM.

В вашем случае я бы использовал необработанный вызов веб-службы сXMLHTTP, как показано в этой статье.

http://blog.customereffective.com/blog/2008/02/calling-the-crm.html

http://ayazahmad.wordpress.com/2006/12/14/calling-custom-web-services-through-mscrm-30-form-a-way-to-duplicate-detection/

Во-первых, для вызова служб CRM, и я думаю, что пример, объясненный на нем, взят изCRM 3.0.С другой стороны, вторая ссылка говорит только о вызове веб-службы из javascript, процесс такой же, как и при вызове веб-службы CRM, вам нужно изменить только URL-адрес конечной точки.

Способсделать это, чтобы создать конверт SOAP вручную.Я помню, что была какая-то библиотека javascript для извлечения, создания, обновления ... от javascript до CRM, но не помню, где это, и я думаю, что это было сделано для CRM 4.0, в любом случае, я собираюсь найти иопубликуйте это здесь.

Увидимся

РЕДАКТИРОВАТЬ:

Эта ссылка содержит некоторую информацию о том, что я объяснил:

https://community.dynamics.com/product/crm/crmtechnical/b/crmdelvingintodynamics/archive/2008/07/11/a-microsoft-dynamics-crm-javascript-sdk.aspx

В Ascentium раньше был CRM SDK для javascript в их сети, но большая часть доступной ссылки теперь отправляется в блог Avanade, так что это хорошее место для поиска дополнительной информации.

http://blogs.infinite -x.net / 2008/07/15 / ascentium-crmservice-javascript-library /

http://www.avanadeblog.com/xrm/

Но следите заверсия, к которой он подготовлен.

Увидимся.

0 голосов
/ 07 августа 2010

Вы правы, что используете в своем коде Advanced Developer Extensions для MS CRM 4.0, и он не будет работать на 3.0.

Существует несколько способов сделать это в MS CRM 3.0.

  1. Вы можете использовать сборку выноски, когда объект или связанный объект создается или обновляется.

  2. Вы можете использовать настраиваемый рабочий процесс при создании или обновлении объекта или связанного объекта.

  3. Вы можете создать запланированное приложение для заполнения этих полей.

  4. Вы можете вызвать веб-сервисы CRM из JavaScript в форме, чтобы найти эти поля.

Что мне не понятно, так это то, как эти сущности связаны. 1: N или N: 1

...