Аддоны
29
Мар
36

Javascript Grid Editor

Редактор Javascript Grid Editor это 100% Javascript-программа, которая расширяет функциональные возможности представлений CRM, позволяя добавить и редактировать записи непосредственно в представлениях. Обеспечивается это путем размещения в представлениях полей ввода и соответствующих функций, которые переносят введенные данные в CRM с помощью SOAP.

Установка:

  • Скачайте скрипт Javascript Grid Editor;
  • Откройте файл скрипта и в самом его вверху задайте следующие параметры:
    • GEO_ENTITYNAME: имя схемы объекта, который будет отображаться в представлении;
    • GEO_RESTRICTEDATTRIBUTES: набор переменных (в виде массива Array() ), которые не будут редактироваться в представлении;
    • GEO_ADD_DEFAULTVALUES.Properties или GEO_ADD_DEFAULTVALUES.Collections: набор названий схемы целевых атрибутов и значения по умолчанию для них (эти дефолтные значения будут отображаться в полях ввода);
  • «Закодируйте» скрипт в формат XML (т.е. замените служебные символы, безопасными). Вы можете сделать это автоматически с помощью XML Escape Tool или онлайн с помощью сервиса blogcrowds.
  • Экспортируйте ISV.config из CRM и откройте в каком-нибудь редакторе данных.
  • Создайте две новые кнопки (с заголовками «Insert Mode» и «Edit Mode»), которые будут выполнять скрипт:
    <Button Icon="" JavaScript="
    
    ">
    	<Titles>
    		<Title LCID="1049" Text="Edit Mode" />
    	</Titles>
    	<ToolTips>
    		<ToolTip LCID="1049" Text="Action Button: Edit/Save" />
    	</ToolTips>
    </Button>
    <Button Icon="" JavaScript="
    
    ">
    	<Titles>
    		<Title LCID="1049" Text="Insert Mode" />
    	</Titles>
    	<ToolTips>
    		<ToolTip LCID="1049" Text="Action Button: Insert/Cancel" />
    	</ToolTips>
    </Button>
    

    Учтите, что заголовки кнопок используются в различных операциях в скрипте. Поэтому изменение их названия потребует соответствующего изменения скрипта.

  • Вставьте скрипт (уже «закодированный» для XML) в атрибут Javascript каждого элемента Button (один и тот же скрипт два раза 🙂 ).
  • Загрузите ISV.config обратно в CRM.

Использование:

  • Доступ к функциям редактирования и создания новых записей из представления осуществляется по кнопкам «Insert Mode» и «Edit Mode» над представлением (которые мы добавили в ISV.config);
  • Чтобы сохранить или отменить вносимые изменения нажмите «Save [New/All]» или «Cancel [New/All]», соответственно;
  • В режиме создания новой записи, в крайней левой колонке будет отображаться значек зеленой стрелки. При нажатии на него будет создаваться новые строки создания записей;
  • Таким образом, за один раз Вы сможете создать несколько записей. Каждая такая дополнительная строка будет содержать красный значек «Х», при нажатии на который, строка удалится;
  • В Режиме вставки значок зеленой стрелки представит себя в крайнем левом столбце для новой строки. Нажмите это, чтобы создать дополнительные строки вставки для того, чтобы создать множественные отчеты сразу. Дополнительные строки вставки содержат красный-X значок, который может быть нажат, чтобы удалить его строку;
  • Учтите, что если Вы измените запись, а затем снимаете выделение с нее, то изменения не будут внесены.

Требования:

  • Пользователи должны иметь доступ к метаданным: объектам, атрибутам и отношнниям;
  • Javascript Grid Editor работает (создает изменяет) только записи имеющие statecode равное 1 (т.е. Активный, Открытый и .т.д.). Это необходимо, чтобы иметь возможность редактировать какие-либо/все поля записей;
  • Скрипт заданный на форме объекта (onLoad, onSave и onChange) не выполняется в Javascript Grid Editor;
  • Режим создания записи будет работать только когда Business Required и System Required поля вынесены в представление. Режим редактирования от этого требования не зависит;
  • Javascript Grid Editor считывает заголовки нажатых кнопок. Поэтому если на момент нажатия кнопок, заголовки не будут отображены (например из-за маленького размера экрана), то компонент не активируется.



Комментарии (36)
  • Kipetcoff 29.03.2010

    Super!

  • Николай 29.03.2010

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

  • slivka_83 29.03.2010

    В описании об этом ничего не сказано, так что только методом проб и ошибок можно узнать 🙂

  • Николай 29.03.2010

    не работает! даже в главном представлении, все делал по инструкции.

  • slivka_83 29.03.2010

    1. Откуда брали компонент? отсюда или с сайта автора?
    2. В чем проявляется неработоспособность?
    3. Если в том, что ничего не происходит при нажатии кнопок, то соблюдены ли все условия?

  • Николай 29.03.2010

    Сейчас практически заработало, Да все сделал брал с вашего сайта, сейчас работает но не так как написано в описании:
    Есть только кнопки save и cancel, но хотелось бы что бы еще была возможность создавать запись (зеленая стрелочка)
    1 Или нужны какие-нибудь доп условия, чтоб она появилась?
    2 ДА и мой первый вопрос, на связанном представлении работает, но если создать свои связи 1:N то уже не работает.

  • slivka_83 29.03.2010

    save и cancel появляются только после нажатия либо кнопки вставки строки либо кнопки редактирования строки 🙂 Так что кнопка Insert Mode должна быть 🙂

  • Николай 29.03.2010

    Спасибо все появилось,просто в коде случайно русская буква проскочила))

    У меня вопрос — на связанном представлении появляются кнопки, а вот когда это представление отображаем через iFrame — кнопок нет! В чем может быть проблема, подвох?)))))

    Спасибо за помощь!

  • slivka_83 29.03.2010

    Очень странно… кнопки добавляются через ISV конфиг, а значит теоретически должны появляться… никогда не сталкивался с такой проблемой 🙂

  • Николай 29.03.2010

    А как тогда решить данную проблему?

  • slivka_83 29.03.2010

    Я могу попробовать воспроизвести ситуацию, но два вопроса:
    1. Где у Вас находится iFrame?
    2. Каким образом Вы вынесли в iFrame представление (ссылку в студию 🙂 )?

  • scint 29.03.2010

    блин всю голову изломал. При нажатии кнопки Edit Mode валится ошибка. Запустил debug и ругается на строчку
    httpObj.open(«GET», SERVER_URL + «/AdvancedFind/AdvFind.aspx», false);

    Permission denied.

    При том, что выполняю из под админа. Есть идеи?

  • slivka_83 29.03.2010

    Сейчас уже вышла версия 4.09 попробуйте ее поставить (найти сможете на сайте автора 🙂 )

  • Andrey 29.03.2010

    В Режиме редактирования, изменяя Ваши выбранные отчеты динамически изменяет отчеты, которые отредактируются. Будьте предупреждены, однако, что, если Вы производите изменение на отчете, и затем снимаете выделение этого, от Ваших изменений тихо откажутся.

    перечитайте 🙂

  • slivka_83 29.03.2010

    Блин… чето я не то курил 🙂 Спасибо что подсказали 🙂

  • Andrey 29.03.2010

    Вопрос, по сути тот же, который был озвучен выше.
    Важно иметь возможность делать то же в связном представлении.
    У меня основной объект quote, привязанный quotedetail.
    Кнопки добавляет, но при нажатии пишет, «Unable to identify a valid state for the entity on this grid»
    Короче не может определить статус записи.
    Почитав инструкцию
    http://crmentropy.blogspot.com/p/javascript-grid-editor.html
    вписал так:
    var GEO_ADD_DEFAULTVALUES = new Object();
    GEO_ADD_DEFAULTVALUES.Properties = new Object();
    GEO_ADD_DEFAULTVALUES.Properties[‘quotestatecode’] = ‘1’;
    GEO_ADD_DEFAULTVALUES.Collections = new Object();
    Не работает 🙂
    Может быть еще есть мысли?

  • slivka_83 29.03.2010

    Ну, ок… на выходных попробую (ща времени нет) 🙂 но могу и забыть 🙂 так что напоинайте 🙂

  • Андрей 29.03.2010

    Привет! Вы просили напомнить про использование грида в связном представлении 🙂

  • slivka_83 29.03.2010

    Попробовал сейчас изменить связанную запись Бизнес-партнера (Дочернии организации на форме Бизнес-партнера) — у меня прекрасно отработало (я использовал не последнюю версию, а ту что приаттачена в этом посте).

  • Николай 29.03.2010

    В связанном представлении работает, отлично! Попробуйте раскрыть форму на весь экран, иногда кнопки спрятаны и при обычном режиме просмотра их не видно! (понимаю глупый совет, а вдруг. Отпишите по результату)

  • Andrey 29.03.2010

    Если делать в обычном связном представлении — работает. НО! если представление Продукта для Предложения, в котором 2 грида на существующие и вписанные продукты, то выдает то, что писал выше «Unable to identify a valid state for the entity on this grid».
    В Заказе тоже самое. Есть продукты для заказа с аналогичными статусами.

  • slivka_83 29.03.2010

    Вот, сейчас автор работает над обновлением, после которого можно будет редактировать Связанные продукты 🙂 http://feedproxy.google.com/~r/CrmEntropy/~3/zeRxs6gkaKc/update-to-javascript-grid-editor.html

  • Akka 29.03.2010

    Здравсвуйте, slivka_83.

    Поставил данное рещшение. Проблема в следующем:

    все работает, даже во всех представлениях, но только у одного пользователя (один из админов)

    у остальных — ошибка на странице, даже у доменного админа

    не знаете ли вы, с чем это может быть связано?
    настройки браузера у всех одинаковые

  • slivka_83 29.03.2010

    А что имеется ввиду под «одним» пользователем? У него на комптютере или под его акаунтом?

  • Akka 29.03.2010

    Под одним аккаунтом (роль — сисадмин).

  • slivka_83 29.03.2010

    Т.е. если всем юзверам выдать роль сисадмина, то у Васех будет работать?

  • Akka 29.03.2010

    Нет. Всего 3 сисадмина, помимо остальных пользователей. Работает только у 1 сисадмина.

  • scint 29.03.2010

    а ни у кого не было такого, что в Edit Mode при переходе от одной записи к другой, сбрасываются значения?

  • rurik 29.03.2010

    Доброго времени суток, Подскажите пожалуйста я выполнил следующие действия:
    1)Скачал скрипт Javascript Grid Editor;
    2)из параметров в скрипте поменял только
    var GEO_ENTITYNAME = «account»;
    3)Закодировал скрипт в формат XML с помощью blogcrowds
    4)Экспортировал ISV.config из CRM с помощью Isv.config Manager http://mmcrm.ru/?p=660

    5) соответственно две кнопки создал в этой же утилитке
    // в данных комментах нельзя скрин приложить,было бы удобно если бы я выложил скрин моих настроек из этой утилитки
    Может быть мне на почту скрины автору этого сайта скинуть?
    6) экспортировал обратно

  • rurik 29.03.2010

    Собственно проблема в том что не работает , при дебаге выдает ошибку 80020101

    Какой шаг я мог сделать не правильно? и Isv.config Manager не мог подвести?

  • slivka_83 29.03.2010

    Добрый день!

    А откуда брали дистрибутив?

    Отсюда или с сайта автора? 🙂

    P.S. попробуйте также с помощью XML Escape Tool убрать спецсимволы.

  • rurik 29.03.2010

    от сюда брал. с помощью XML Escape Tool тоже пробовал, аналогично не работает

  • slivka_83 29.03.2010

    Только что протестировал на Бизнес-партнере.. выгрузил ISV.config — добавил в него кнопки — в файле The Javascript Grid Editor прописал в качестве объекта account — с помощью XML Escape Tool убрал спецсимволы из файла The Javascript Grid Editor — поместил скрипт внутрь кнопок — испортировал кастомизацию — вынес в представлени «Мои активные организации» поле Ответственный (т.к. требуется чтобы все обязательные поля присутствовали в представлении) — готово 🙂

  • rurik 29.03.2010

    а можете дать кусок как вы кнопки добавили(прямо сам код из конфига)
    P.S. может удобнее мне прямо на почту или в личку (я правда не знаю есть ли на сайте личка)

  • Александр 29.03.2010

    Добрый день, а есть ли для CRM 2011 какой-нить инструмент или скрипт?

  • slivka_83 29.03.2010

    Добрый день!

    Платные есть, бесплатных пока нет 🙂

*

code