Advertise with Googlier.comcrrm.ru - javascript
http://crrm.ru/category/tags/javascript
ruMicrosoft Dynamics CRM Q4 2012 Service Update
http://crrm.ru/articles/2013/01/ms-crm-q4-2012-service-update
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Вчера был опубликован <a href="http://support.microsoft.com/kb/2795627">Update Rollup 12</a> более известный как "Microsoft Dynamics CRM Q4 2012 Service Update", который помимо оптимизации производительности и дополненного SDK также принесёт нам поддержку новых браузеров: <a href="http://support.microsoft.com/kb/2784954">Browser compatibility introduced with Microsoft Dynamics CRM 2011 Update Rollup 12 or the December 2012 Service Update</a>.</p>
<p>В самое время задуматься, т.к. новое обновление, возможно, поломает некоторые клиентские скрипты. Проверить готовность можно с помощью специальной утилиты: <a href="http://blogs.msdn.com/b/crm/archive/2012/06/21/microsoft-dynamics-crm-2011-custom-code-validation-tool-released.aspx" title="Microsoft Dynamics CRM 2011 Custom Code Validation Tool">Microsoft Dynamics CRM 2011 Custom Code Validation Tool</a>. Перед её использованием нелишним будет ознакомиться и с этой статьёй: <a href="http://blogs.msdn.com/b/crm/archive/2012/05/29/resolve-breaking-script-issues-when-upgrading-to-the-next-release-of-microsoft-dynamics-crm.aspx" title="Resolve Breaking Script Issues When Upgrading Microsoft Dynamics CRM">Resolve Breaking Script Issues When Upgrading Microsoft Dynamics CRM</a>.</p>
<p>Голосование: <a href="/polls/2013/ms-crm-q4-2012-service-update" title="Голосование">А готовы ли вы к этому? Скрипты переписали?</a></p>
<!--break--></div></div></div><div class="form-item form-type-item">
<label>Язык </label>
Русский
</div>
<div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Метки: </h3><ul class="links"><li class="taxonomy-term-reference-0"><a href="/category/tags/javascript">javascript</a></li><li class="taxonomy-term-reference-1"><a href="/category/tags/maintenance">maintenance</a></li></ul></div><div class="field field-name-field-field-vote field-type-fivestar field-label-above"><div class="field-label">field_vote: </div><div class="field-items"><div class="field-item even"><div class="clearfix fivestar-average-stars fivestar-average-text"><div class="fivestar-static-item"><div class="form-item form-type-item">
<div class="fivestar-default"><div class="fivestar-widget-static fivestar-widget-static-vote fivestar-widget-static-5 clearfix"><div class="star star-1 star-odd star-first"><span class="on">2.931035</span></div><div class="star star-2 star-even"><span class="on"></span></div><div class="star star-3 star-odd"><span class="on" style="width: 93.1035%"></span></div><div class="star star-4 star-even"><span class="off"></span></div><div class="star star-5 star-odd star-last"><span class="off"></span></div></div></div>
<div class="description"><div class="fivestar-summary fivestar-summary-average-count"><span class="average-rating">Average: <span >2.9</span></span> <span class="total-votes">(<span >29</span> votes)</span></div></div>
</div>
</div></div></div></div></div>Thu, 10 Jan 2013 14:06:42 +0000Vladislav Osmanov89 at http://crrm.ruhttp://crrm.ru/articles/2013/01/ms-crm-q4-2012-service-update#commentsОбзор MSCRM 2011 beta SDK - Введение в REST
http://crrm.ru/articles/2010/11/mscrm-2011-beta-sdk-review-part-3-rest-introducing
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Пока пропущу один небольшой раздел из серии обзоров SDK и расскажу про REST.</p>
<p>Взаимодействие с Microsoft Dynamics CRM 4.0 на клиентской стороне сводилось к вызову XML Web-сервиса путём формирования в клиентском скрипте SOAP-запроса. Плюсом данной технологии является интероперабельность - возможность использования сервиса независимо от технологий и языков программирования. И это был единственный способ взаимодействия с системой на стороне клиента. Минусов куда как больше:</p>
<ul>
<li>сложная структура запроса - формирование объёмного XML-запроса занятие кропотливое,</li>
<li>трудности парсинга (разбора) ответа, т.к. необходимы знания объектной модели документа (DOM), регулярных выражений и XQuery/XPath для извлечения требуемых данных,</li>
<li>нетривиальная обработка ошибок.</li>
</ul>
<p>Для решения возникающих трудностей с вызовом XML Web-сервиса CRM различными командами были предложены обёртки, призванные облегчить эту задачу:</p>
<ul>
<li><a href="http://www.avanadeblog.com/xrm/2010/05/a-microsoft-dynamics-crm-javascript-sdk-in-celebration-of-an-amazing-year-.html" title="Ascentium CrmService JavaScript Library">Ascentium CrmService JavaScript Library</a>,</li>
<li><a href="https://github.com/6ix4our/CRM-Javascript-Library" title="David Berry's CRM Javascript Library">David Berry's CRM Javascript Library</a>.</li>
</ul>
<h3>Реализация REST в CRM 2011</h3>
<p>В Microsoft Dynamics CRM 2011 данные теперь доступны через конечную точку <a href="http://msdn.microsoft.com/ru-ru/magazine/dd315413.aspx" title="Введение в службы RESTful с использованием WCF">REST</a>. REST (Representational State Transfer) - архитектурный подход, который подразумевает использование ресурсов через обращение по уникальному URI-пути. А это значит, что теперь достаточно обратиться GET-, POST-, MERGE-, DELETE- или PUT-запросом на определённый URI, чтобы извлечь данные из CRM, обновить, удалить или сохранить запись.</p>
<!--break--><p>В Microsoft Dynamics CRM 2011 конечная точка REST реализована службой WCF с использованием <a href="http://www.odata.org/" title="Open Data Protocol (OData)">Open Data Protocol (OData)</a>.</p>
<p>OData принимает и возвращает данные в одном из двух форматов: ATOM или JSON (наиболее интересный для нас формат, т.к. позволяет десериализовать ответ службы в объекты JavaScript).</p>
<p>Все запросы производятся к базовому URI:</p>
<pre class="brush:text">[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc
</pre><p><em>О том как лучше всего сформировать этот путь читайте в статье <a href="/articles/2010/11/xrm-page-context-and-getglobalcontext-function" title="Xrm.Page.context и функция GetGlobalContext">"Xrm.Page.context и функция GetGlobalContext"</a>.</em></p>
<h3>Объектная модель данных OData</h3>
<p>OData Entity Data Model (EDM) - упорядоченный набор URI со структурой взаимосвязей сущностей CRM доступен через метаданные службы:</p>
<pre class="brush:text">[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/$metadata
</pre><p>Этот XML-документ использует CDSL - язык описания концептульаной схемы данных (аналог WSDL для XML Web-служб). Вы можете использовать этот документ для генерации классов в приложениях Silverlight или описания объектов в JScript.</p>
<h3>Ограничения</h3>
<p>Служба REST предоставляет альтернативу использования SOAP-запросов, но необходимо учитывать следующие ограничения:</p>
<ul>
<li><strong>Доступны только следующие типы запросов: Create, Retrieve, Update и Delete.</strong>
<ul>
<li>Не могут быть выполнены запросы, которые требуют использования метода Execute.</li>
<li>Создание и удаление связей между записями осуществляется как обновление (update-запрос).</li>
</ul>
</li>
<li><strong>Аутентификация возможна только в рамках приложения CRM.</strong>
<ul>
<li>Использование конечной точки REST наиболее эффективно в приложениях Silverlight и библиотеках JavaScript выполняемых как Web-ресурс CRM (<a href="/articles/2010/03/solution-management-in-crm5" title="Solution Management – управление компонентами в CRM5">CRM Web Resources - новый тип компонента, являющийся составной частью стороннего (ISV) решения</a>).</li>
</ul>
</li>
<li>Протокол OData реализован не полностью. Некоторые системные запросы не будут доступны.
<ul>
<li><a href="/articles/2010/11/mscrm-2011-beta-sdk-review-part-4-using-rest#odata-query-options" title="Использование запросов и ограничения System Query Options">Подробнее об ограничениях и возможностях OData запросов</a>.</li>
</ul>
</li>
</ul>
<p> </p>
<p>Продолжение в статье <a href="/articles/2010/11/mscrm-2011-beta-sdk-review-part-4-using-rest" title="Обзор MSCRM 2011 beta SDK - Использование REST: запросы и фильтры">Использование REST: запросы и фильтры</a>.</p>
</div></div></div><div class="form-item form-type-item">
<label>Язык </label>
Русский
</div>
<div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Метки: </h3><ul class="links"><li class="taxonomy-term-reference-0"><a href="/category/tags/javascript">javascript</a></li><li class="taxonomy-term-reference-1"><a href="/category/tags/sdk">SDK</a></li><li class="taxonomy-term-reference-2"><a href="/category/tags/crm-2011">CRM 2011</a></li><li class="taxonomy-term-reference-3"><a href="/category/tags/rest">REST</a></li></ul></div><div class="field field-name-field-field-vote field-type-fivestar field-label-above"><div class="field-label">field_vote: </div><div class="field-items"><div class="field-item even"><div class="clearfix fivestar-average-stars fivestar-average-text"><div class="fivestar-static-item"><div class="form-item form-type-item">
<div class="fivestar-default"><div class="fivestar-widget-static fivestar-widget-static-vote fivestar-widget-static-5 clearfix"><div class="star star-1 star-odd star-first"><span class="off">0</span></div><div class="star star-2 star-even"><span class="off"></span></div><div class="star star-3 star-odd"><span class="off"></span></div><div class="star star-4 star-even"><span class="off"></span></div><div class="star star-5 star-odd star-last"><span class="off"></span></div></div></div>
<div class="description"><div class="fivestar-summary fivestar-summary-average-count"><span class="empty">Голосов пока нет</span></div></div>
</div>
</div></div></div></div></div>Fri, 05 Nov 2010 15:51:49 +0000Vladislav Osmanov61 at http://crrm.ruhttp://crrm.ru/articles/2010/11/mscrm-2011-beta-sdk-review-part-3-rest-introducing#commentsXrm.Page.context и функция GetGlobalContext
http://crrm.ru/articles/2010/11/xrm-page-context-and-getglobalcontext-function
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Продолжаю обзор SDK поставки Microsoft Dynamics CRM 2011 beta.</p>
<p>Объект Xrm.Page.context предоставляет доступ к текущему контексту страницы. С помощью него можно получить информацию об организации и текущем пользователе. Xrm.Page.context предоставляет доступ к следующим функциям:</p>
<ul>
<li><strong>getAuthenticationHeader</strong> - возвращает закодированное значение SOAP-заголовка необходимого для вызова Web-сервиса (формата CRM 4.0) из скрипта;</li>
<li><strong>getOrgLcid</strong> - возвращает LCID - идентификатор культуры (локаль) текущей организации;</li>
<li><strong>getOrgUniqueName</strong> - возвращает уникальное имя текущей организации;</li>
<li><strong>getQueryStringParameters</strong> - возвращает массив GET-параметров текущего вызова;</li>
<li><strong>getServerUrl</strong> - возвращает базовый URL CRM (при использовании офлайн с клиентом Outlook для CRM возвращает ссылку на локальный сервис);</li>
<li><strong>getUserId</strong> - возвращает GUID текущего пользователя (отличная замена WhoAmI-запросам);</li>
<li><strong>getUserLcid</strong> - возвращает LCID - идентификатор культуры (локаль) текущего пользователя;</li>
<li><strong>getUserRoles</strong> - возвращает массив идентификаторов (GUID) ролей текущего пользователя.</li>
</ul>
<p>Но что делать, если вы хотите использовать эти чрезвычайно полезные функции в клиентском коде своих приложений а не с форм CRM? Для этого достаточно подключить скрипт с функцией GetGlobalContext как описано ниже:</p>
<!--break--><pre class="brush:xml"><head>
<title>HTML Web Resource</title>
<script src="../ClientGlobalContext.js.aspx"></script>
<script src="Scripts/jquery1.4.1.min.js" type="text/javascript"></script>
<script src="Scripts/ContosoScript.js" type="text/javascript"></script>
<link href="Styles/ContosoStyles.css" rel="stylesheet" type="text/css" />
</head>
</pre><p>Затем вы можете использовать функции контекста в скрипте, например, чтобы получить путь к адресу <a href="/articles/2010/11/mscrm-2011-beta-sdk-review-part-3-rest-introducing" title="Обзор MSCRM 2011 beta SDK - Введение в REST">REST-службы</a>:</p>
<pre class="brush:js">var serverUrl;
var ODataPath;
$(function ()
{
var context = GetGlobalContext();
serverUrl = context.getServerUrl();
ODataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc";
});
</pre></div></div></div><div class="form-item form-type-item">
<label>Язык </label>
Русский
</div>
<div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Метки: </h3><ul class="links"><li class="taxonomy-term-reference-0"><a href="/category/tags/javascript">javascript</a></li><li class="taxonomy-term-reference-1"><a href="/category/tags/sdk">SDK</a></li><li class="taxonomy-term-reference-2"><a href="/category/tags/crm-2011">CRM 2011</a></li></ul></div><div class="field field-name-field-field-vote field-type-fivestar field-label-above"><div class="field-label">field_vote: </div><div class="field-items"><div class="field-item even"><div class="clearfix fivestar-average-stars fivestar-average-text"><div class="fivestar-static-item"><div class="form-item form-type-item">
<div class="fivestar-default"><div class="fivestar-widget-static fivestar-widget-static-vote fivestar-widget-static-5 clearfix"><div class="star star-1 star-odd star-first"><span class="on">2.962965</span></div><div class="star star-2 star-even"><span class="on"></span></div><div class="star star-3 star-odd"><span class="on" style="width: 96.2965%"></span></div><div class="star star-4 star-even"><span class="off"></span></div><div class="star star-5 star-odd star-last"><span class="off"></span></div></div></div>
<div class="description"><div class="fivestar-summary fivestar-summary-average-count"><span class="average-rating">Average: <span >3</span></span> <span class="total-votes">(<span >27</span> votes)</span></div></div>
</div>
</div></div></div></div></div>Fri, 05 Nov 2010 14:53:39 +0000Vladislav Osmanov60 at http://crrm.ruhttp://crrm.ru/articles/2010/11/xrm-page-context-and-getglobalcontext-function#commentsJavascript Grid Editor - редактирование записей CRM в таблице
http://crrm.ru/articles/2010/03/javascript-grid-editor
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Интересную разработку выложил Dave Berry - <a href="http://crmentropy.blogspot.com/p/javascript-grid-editor.html" title="Javascript Grid Editor (JGE)">Javascript Grid Editor (JGE)</a> - скрипт, позволяющий редактировать таблицы с записями CRM. Т.е. записи редактируются без открытия отдельной формы сущности.</p>
<p><img src="/sites/default/files/img/javascript-grid-editor/JavascriptGridEditor-InsertMode.png" border="0" alt="Javascript Grid Editor - Insert Mode" width="640" height="147" /></p>
<p>Скрипт расширяет возможности системного компонента CRM Grid, заменяя ячейки на редактируемые поля. Изменения, конечно же, сохраняются в CRM.</p>
<!--break--><p><img src="/sites/default/files/img/javascript-grid-editor/JavascriptGridEditor-EditMode.png" border="0" alt="Javascript Grid Editor - Edit Mode" width="640" height="147" /></p>
<p>Процесс установки описан в <a href="http://crmentropy.blogspot.com/p/javascript-grid-editor.html" title="Javascript Grid Editor">блоге автора</a>.</p>
<h3>Использование</h3>
<p>В процессе настройки компонента на панели инструментов таблицы со списком записей появляются две новые кнопки: "Insert Mode" и "Edit Mode". Нажатие любой из них сначала приводит к инициализации скрипта, затем таблица переводится или в режим вставки новых записей или в режим редактирования существующих. В режиме вставки или редактирования имена кнопок меняются на “Save [New/All]” и “Cancel [New/All]”, действия которых описывать нет необходимости.</p>
<p><strong>В режиме вставки</strong> появляется строка со значком в виде стрелки, нажатие на который вставляет новую строку в таблицу. Вставленная строка будет иметь "крестик", щёлкнув на который можно удалить строку.</p>
<p><strong>В режиме редактирования</strong> выделение любой строки приведёт к переходу её состояния в редактируемое. Изменения не сохраняются автоматически (для этого есть кнопка “Save [New/All]”), так что, если вы внесёте изменения, а затем повторно выделите эту строку, ваши изменения пропадут.</p>
<h3>Ограничения</h3>
<ol>
<li>Пользователи, работающие с данным скриптом должны иметь <strong>доступ к метаданным</strong> (соответствующая настройка роли).</li>
<li>Изменять можно только записи, находящиеся в <strong>активном состоянии</strong>.</li>
<li>При изменении записей, <strong>не вызываются клиентские скрипты</strong>, которые сработали бы, если запись редактировалась обычным способом - через форму.</li>
<li>Режим вставки работает <strong>только</strong> если в представлении таблицы есть столбцы с обязательными полями (Business Required и System Required).</li>
</ol>
<p> </p>
<p><a href="http://crmentropy.blogspot.com/p/javascript-grid-editor.html" title="The Javascript Grid Editor by David Berry">The Javascript Grid Editor by David Berry</a> is licensed under a <a href="http://creativecommons.org/licenses/by-sa/3.0/us/" title="Creative Commons Attribution-Share Alike 3.0 United States License">Creative Commons Attribution-Share Alike 3.0 United States License</a>.</p>
</div></div></div><div class="form-item form-type-item">
<label>Язык </label>
Русский
</div>
<div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Метки: </h3><ul class="links"><li class="taxonomy-term-reference-0"><a href="/category/tags/tools">tools</a></li><li class="taxonomy-term-reference-1"><a href="/category/tags/javascript">javascript</a></li></ul></div><div class="field field-name-field-field-vote field-type-fivestar field-label-above"><div class="field-label">field_vote: </div><div class="field-items"><div class="field-item even"><div class="clearfix fivestar-average-stars fivestar-average-text"><div class="fivestar-static-item"><div class="form-item form-type-item">
<div class="fivestar-default"><div class="fivestar-widget-static fivestar-widget-static-vote fivestar-widget-static-5 clearfix"><div class="star star-1 star-odd star-first"><span class="on">5</span></div><div class="star star-2 star-even"><span class="on"></span></div><div class="star star-3 star-odd"><span class="on"></span></div><div class="star star-4 star-even"><span class="on"></span></div><div class="star star-5 star-odd star-last"><span class="on"></span></div></div></div>
<div class="description"><div class="fivestar-summary fivestar-summary-average-count"><span class="average-rating">Average: <span >5</span></span> <span class="total-votes">(<span >23</span> votes)</span></div></div>
</div>
</div></div></div></div></div>Tue, 16 Mar 2010 10:52:28 +0000Vladislav Osmanov12 at http://crrm.ruhttp://crrm.ru/articles/2010/03/javascript-grid-editor#commentsMS CRM ScriptXtractor
http://crrm.ru/articles/2010/02/mscrm-scriptxtractor
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Утилит для извлечения клиентских скриптов из файла кастомизации Microsoft Dynamics CRM существует несколько: одни являются надстройками над MS Word, другие - обычными Windows-приложениями.</p>
<p>На самом деле, задача эта не простая, а очень простая - файл кастомизации представляет собой XML-документ (схема и описание появились в <a href="http://msdn.microsoft.com/en-us/library/bb930443.aspx">SDK последних версий</a>).</p>
<p>А где XML, там и XSLT : )</p>
<p>Извлекать скрипты будем динамически верстая HTML-таблицу с навигацией. И чтобы применить трансформацию к нашей кастомизации достаточно нескольких строк на javascript.</p>
<!--break--><pre class="brush:jscript">
function LoadXml()
{
/* получаем путь к выбранному файлу кастомизации */
var customizationFile = document.getElementById("file");
/* в элемент DIV отобразим результат */
var result = document.getElementById("result");
/* загружаем таблицу стилей - наш XSL */
var xsl = new ActiveXObject("MSXML.DOMDocument");
xsl.load("ScriptXtractor.xsl");
/* загружаем XML с кастомизацией из выбранного файла */
var xmlCustomization = new ActiveXObject("MSXML.DOMDocument");
xmlCustomization.load(customizationFile.value);
/* тут-то и происходит трансформация */
var str = xmlCustomization.transformNode(xsl);
/* эскейпим символы для корректного отображения */
str = str.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&");
result.innerHTML = str;
}
</pre><p>Содержимое XSL-файла полностью не привожу, он есть в архиве и никакой сложности для понимания не представляет. Остановлюсь лишь на двух основных вещах: формировании выпадающего списка с перечнем сущностей и вёрсткой таблицы.</p>
<pre class="brush:xml">
<!-- определяем выпадающий список -->
<select onchange="NavigateToTheEntity(this)">
<!-- перебираем в файле кастомизации все элементы сущностей CRM -->
<xsl:for-each select="ImportExportXml/Entities/Entity">
<!-- определяем сортировку по имени сущности -->
<xsl:sort select="Name" order="ascending"/>
<!-- определяем переменную для хранения ObjectTypeCode сущности для скрипта навигации -->
<xsl:variable name="otc" select="ObjectTypeCode"></xsl:variable>
<!-- создаём элемент списка с именем сущности -->
<option value="{$otc}" >
<xsl:value-of select="Name"/> (<xsl:value-of select="ObjectTypeCode"/>) <xsl:value-of select="LocalizedName"/>
</option>
</xsl:for-each>
</select>
</pre><p>Думаю, основная идея XSL-преобразования понятна. Далее проходим по каждой сущности и формируем таблицу со скриптами: сначала получаем скрипты формы (события OnLoad/OnSave), затем для каждого поля.</p>
<pre class="brush:xml">
<!-- перебираем скрипты формы -->
<xsl:for-each select="FormXml/forms/entity/form/events/event">
<xsl:choose>
<!-- это скрипт приложения - доступный для редактирования пользователем -->
<xsl:when test="self::node()[@application = 'true']">
<tr class="appScript">
<td class="fieldNameCell">
<!-- имя события хранится в атрибуте name -->
<div class="eventLabel">Form event: <xsl:value-of select="@name"/></div>
</td>
<td class="scriptCell">
<!-- текст скрипта - в элементе script -->
<xsl:value-of select="script"/>
</td>
</tr>
</xsl:when>
<xsl:otherwise>
<!-- а это уже системные скрипты CRM (они не видны при настройке) -->
...
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</pre><p> </p>
<p>Cкрипты не извлекаются из файла в прямом смысле слова, просто исходную кастомизацию преобразуем (трансформируем) в таблицу.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="/sites/default/files/MSCRMScriptXtractor.png" border="0" alt="Microsoft Dynamics CRM ScriptXtractor" width="640" height="448" /></p>
<p>Скачать утилиту со всеми приведёнными в статье кодами можно по ссылке снизу.</p>
</div></div></div><div class="field field-name-upload field-type-file field-label-hidden"><div class="field-items"><div class="field-item even"><table class="sticky-enabled">
<thead><tr><th>Прикрепленный файл</th><th>Размер</th> </tr></thead>
<tbody>
<tr class="odd"><td><span class="file"><img class="file-icon" alt="Package icon" title="application/zip" src="/modules/file/icons/package-x-generic.png" /> <a href="http://crrm.ru/sites/default/files/tools/MSCRMScriptXtractor.zip" type="application/zip; length=3087" title="MSCRMScriptXtractor.zip">MSCRMScriptXtractor.zip</a></span></td><td>3.01 KB</td> </tr>
</tbody>
</table>
</div></div></div><div class="form-item form-type-item">
<label>Язык </label>
Русский
</div>
<div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above clearfix"><h3 class="field-label">Метки: </h3><ul class="links"><li class="taxonomy-term-reference-0"><a href="/category/tags/tools">tools</a></li><li class="taxonomy-term-reference-1"><a href="/category/tags/customization">customization</a></li><li class="taxonomy-term-reference-2"><a href="/category/tags/xslt">XSLT</a></li><li class="taxonomy-term-reference-3"><a href="/category/tags/javascript">javascript</a></li></ul></div><div class="field field-name-field-field-vote field-type-fivestar field-label-above"><div class="field-label">field_vote: </div><div class="field-items"><div class="field-item even"><div class="clearfix fivestar-average-stars fivestar-average-text"><div class="fivestar-static-item"><div class="form-item form-type-item">
<div class="fivestar-default"><div class="fivestar-widget-static fivestar-widget-static-vote fivestar-widget-static-5 clearfix"><div class="star star-1 star-odd star-first"><span class="on">2.925925</span></div><div class="star star-2 star-even"><span class="on"></span></div><div class="star star-3 star-odd"><span class="on" style="width: 92.5925%"></span></div><div class="star star-4 star-even"><span class="off"></span></div><div class="star star-5 star-odd star-last"><span class="off"></span></div></div></div>
<div class="description"><div class="fivestar-summary fivestar-summary-average-count"><span class="average-rating">Average: <span >2.9</span></span> <span class="total-votes">(<span >27</span> votes)</span></div></div>
</div>
</div></div></div></div></div>Thu, 25 Feb 2010 18:49:37 +0000Vladislav Osmanov3 at http://crrm.ruhttp://crrm.ru/articles/2010/02/mscrm-scriptxtractor#comments