Аддоны
13
Мар
6

Inline Grids для Заказов в Microsoft Dynamics CRM

Есть некоторые элементы управления в интерфейсе MS CrM, которые не очень удобны в поседневной жизни. Например, добавление товаров в Заказы: в то время как это хорошо подходит в случаи высокой стоимости сделки и при небольшом количестве операций, это не так эффективно работает при большом количестве транзакции и низкой цене каждой из них.

Поэтому разрешите представить Вам очень интересную кастомизацию, разработанную Daren Turner и которая позволяет быстро вставлять нужные товары в Заказ без лишних щелчков мышью. Самая классная вещь в том, что это — 100%-ый HTML и JavaScript. Никакого C # или VB.NET здесь нет вообще (если Вы посмотрите на код, Daren встроил сервис, который позволяет ему вызывать веб-службы CRM из JavaScript).

Начнем с кастомизации

  • Скачайте custom_order.zip. Разархивируйте его и поместите содержимое на сервере CRM по адресу C:\Inetpub\wwwroot\isv\custom_order;
  • Теперь нужно создать IFrame через который будет подтягиваться наша кастомизация. Перейдите Параметры — Настройка — Настроить объекты — дважды щелкните по Заказу;
  • В открывшееся форме на левой панели перейдите в Формы и представления и двойной щелчок по Форма;


  • Щелкните Добавить Интернет-кадр. В Имя веди order, а в URL http:///isv/custom_order/grid.htm, Снимите галку Ограничить использование сценариев между кадрами;
  • Перейдите на вкладу Форматирование. Число строк задйте 8 и Прокрутку поставьте в Никогда. ОК;
  • Щелкните Свойтва формы. На вкладке События выделите При сохранении и жмите Изменить. Отметьте галку Событие сделано активным и вставьте следующий код:
    var frame = document.getElementById("IFRAME_order");
    frame= frame.contentWindow;
    frame.Save();
    



  • Жмем ОК, сохраняем, закрываем и публикуем.


Добавим парочку товаров и прайс лист

Начнем с товаров:

  • Перейдите Параметры – Каталог продукции – Продукты – щелкните Создать;
  • Задайте Артикул равный 1 и заполните чем-нибудь другие поля;
  • Таким же образом создайте товары с артикулами 2 и 3.


Теперь Прайс-лист:

  • Перейдите Параметры – Каталог продукции – Прайс-листы – щелкните Создать;
  • Введите название прайс-листа и валюту. Щелкните сохранить;
  • На левой панели станет доступна опция Позиции прайс-листа, нажмите ее, затем Добавить Позиция пайс-листа. Укажите какой товар хотите добавить и ОК;
  • В открывшемся окне введите единицу измерения и сумму (за единицу товара). Сохраните и закройте. Аналогичным образом добавьте еще несколько товаров.



Тестируем

  • Перейдите Продажи – Заказы – щелкните Создать. В нижней части окна Вы увидите нашу кастомизацию. В левой сетке Вы вводите новые продукты, а в правой список всех продуктов, которые заказал данный клиент в трех прошлых заказах (включая этот);
  • Заполните чем-нибудь обязательные поля, а в качестве прайс-листа выберите тот, что мы создали чуть выше. И обязательно сохраните, прежде чем переходить к следующему пункту;
  • Щелкните кнопку New в левой сетке и введите в первый столбец 1 (это артикул продукта), а во второй количество этого продукта. В третий столбец автоматически подтянется название продукта. Подобным образом вбейте еще пару строк;
  • Щелкните Сохранить. Наши строки перенесутся в правый столбец, где хранится история заказов (3 последних). А чтобы увидеть сумму заказанных товаров щелкните в этом окне на верхней панели пересчитать;
  • Ну вот и все… можете если хотите покопаться в коде, чтобы, например, увеличить отображаемую историю заказов или еще что-нибудь.


Комментарии (6)
  • Camena 13.03.2009

    У меня возникла проблема с получением значения window.parent.document.getElementById(«crmFormSubmitId»).value;
    Возвращает пустое значение при открытии формы Заказа. Что делать?

  • slivka_83 13.03.2009

    А можно спросить… эээ… Вы о чем? 🙂 в этом посте такой строчки нет 🙂

  • crmexpert 13.03.2009

    У меня возникла проблема. При сохранении формы пишет ошибку «Permission denied»!??? Предварительно был накатан Ролап 11. Может в этом проблема!?

  • slivka_83 13.03.2009

    Добрый день 🙂 не совсем понял вопрос… Вы поставили этот компонент и при сохранении у Вас возникает ошибка «Permission denied»?

  • crmexpert 13.03.2009

    Да! Совершенно верно. При сохранении возникает ошибка «Permission denied»! Чтобы это могло быть?

  • slivka_83 13.03.2009

    Извините что так долго — был немного занят. Сейчас проверил — все работает. Проверял под сисадмином и как минимум с 8 ролапом.

    Остается выяснять в чем ошибка только методом перебора — выдавать разные роли, смотреть на разных машинах… и т.д.

    И еще: я подправил строчку http://localhost/custom_order/grid.htm на http://< сервер_CRM>/isv/custom_order/grid.htm
    А также поместить папку custom_order нужно в папку ISV сайта CRM.

*

code