Подобная простановка ссылок не одобряется администрацией вики и считается спамом. BPMN используют десятки программ, для соблюдения справедливости надо упоминать или все известные, или ни одной.
Спасибо за предложение! Действительно, платформа BPMonline использует нотацию BPMN для моделирования бизнес-процессов. И было бы хорошо связать BPMonline и BPMN в Википедии. Для этого, мы сделали ссылку на страницу, посвященную BPMN со страницы BPMonline CRM (http://ru.wikipedia.org/wiki/BPMonline).
Думаю, что обратная ссылка не совсем ложится в контекст страницы BPMN в Википедии. Хотя, если когда-нибудь на странице появится раздел со ссылками на системы, использующие эту нотацию, мы будем рады быть включенными в раздел.
Здравствуйте.
Можно в процессе карточки с кнопкой, после события нажатия кнопки, добавить элемент "Открыть карточку редактирования", заполнив необходимые параметры.
Дмитрий, я зашел в процесс обработки события кнопки, там один событийный подпроцесс со скриптом обработки нажатия на кнопку. Я добавил карточку редактирования, но при этом я могу изменить только свойства в правой части а окно с параметрами не могу открыть. Подскажите пожалуйста пример кода, как это можно сделать из скрипта. В приложенном скрине процесс, на нем видно что приложение не дает возможности открыть окно с параметрами.
Здравствуйте! Необходимо понять принцип использование своих классов. Создал в конфигурации файл с исходным кодом (назвал данный файл к примеру GetTextSourceCode):
Далее я создаю страницу на которой одна кнопка и Label, куда по нажатию на кнопку будет выводится текст. Как создать объект данного класса в скрипте обработчика события по нажатию на кнопку? Необходимо или нет использовать в классе пространство имен?
Данный метод не сработал. Не находит мой класс:
"The type or namespace name 'MessageBoxMy' does not exist in the namespace 'Terrasoft.Configuration' (are you missing an assembly reference?)"
Configuration находится в Terrasoft.Core.Configuration. Но и это тоже не работает, выдает ту же ошибку
Возможно, вы не сохранили схему исходного кода GetTextSourceCode или не опубликовывали ее? Это необходимо сделать, чтобы созданный вами класс был скомпилирован, после чего он будет "виден" для других элементов конфигурации.
Также, мне кажется, имеет смысл объявить конструктор класса MessageBoxMy как public...
Не получается. Создаю исходный код с классом . добавляю нужные ссылки, создаю класс, опубликовываю. Далее генерирую исходный код для данного элемента(правой кнопкой по элементу->исходный код->сгенерировать для выделенных элементов) . Затем создаю событие от нажатия на кнопку, и в этом событие в скрипте пытаюсь обратиться к классу "Terrasoft.Configuration.Название класса .Название метода(параметры)". Но при этом выдает ошибку что такого типа не существует. Может метод зависит от версии приложения? У меня BPMonline Версия 5.4.0.591 On-Demand
Попробуйте все таки обратиться к классу без указания пространства имен.
Я повторила ваш пример - создала файл с исходным кодом для класса MessageBoxMy (но с конструктором public), скомпилировала, затем в обработчик кнопки добавила код:
Добавила на тестовой среде новое "рабочие места" и "раздел" (Версия 5.4.0.591)(AttachFile:рабочие места.jpg). Но почему-то, они не отображаются. А в демо-версии наоборот. Все мною созданные разделы без проблем отображаются. Не смогли бы, подсказать, в чем причина?
К сожалению, у меня ничего не получилась. После очистки кеша редис сервера ничего не изменилось. Права доступа на основной объект раздела не настроены. Как быть?
Для диагностики необходимо тестирование на Вашей базе данных. В соответствии с телефонным разговором, просим предоставить обезличенную копию базы данных в техническую поддержку в рамках инцидента 0137616
Добрый день. Помогите пожалуйста с таким вопросом - я добавил в карточку редактирования, рядом с полем ввода, кнопку. Нужно, чтобы по нажатии этой кнопки скрипт проверял, не совпадает ли текст, введённый пользователем в поле с какой-либо записью в одной из колонок БД. Не могли бы оптыные разработчики указать на пример такой реализации или по шагам объяснить как это сделать? Заранее спасибо.
1) уточните пожалуйста, правильно ли я понимаю, что мы говорим о пользовательском поле типа "справочник" , если же это текстовое поле, то пользователь имеет свойство ошибаться и написать одно и тоже слово можно по разному.
2) так же, укажите СУБД, версию Terrasoft.
1) уточните пожалуйста, правильно ли я понимаю, что мы говорим о пользовательском поле типа "справочник" , если же это текстовое поле, то пользователь имеет свойство ошибаться и написать одно и тоже слово можно по разному.
2) так же, укажите СУБД, версию Terrasoft.
Нет, поле текстовое. На данном этапе мне интересен сам механизм создания подобного функционала. Буду очень признателен за помощь!
MSSQl, версия BPM 5.3.0.332
Проверку, совпадает ли введенное пользователем значение с какой-либо записью БД можно выполнить через EntitySchemaQuery (EntitySchemaQuery – класс, с помощью которого осуществляется создание запросов в базу данных).
Подробное описание работы с данным классом Вы можете посмотреть в темах http://www.community.terrasoft.ru/blogs/8977 http://www.community.terrasoft.ru/blogs/8557
Добавил такую же кнопку в стандартную карточку добавления лида - и всё заработало. С чем это связано?
Единственная видимая причина - при нажатии за знак молнии возле свойства "нажата" в процессе лида новая дорожка, сообщение и пустой сценарий появились автоматически, тогда как в описанном мною примере выше я всё создавал вручную...
string name1 = Page.NameEdit.Value.ToString();
string text ="Книга с таким названием уже существует";
var manager = Page.Schema.SchemaManagerProvider.GetManager("EntitySchemaManager") as EntitySchemaManager;
var esq =new EntitySchemaQuery(manager, "Book");
esq.AddColumn("Name");
var filter = esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Name", name1);
esq.Filters.Add(filter);
var q = esq.GetEntityCollection(UserConnection);if(q.Count>0){
Page.BaseMessagePanel.Clear();
Page.BaseMessagePanel.AddMessage(Warning, text.ToString(), MessageType.Warning);}returntrue;
EntitySchemaManager. Я так понял, это какая-то промежуточная таблица, создаваемая на лету?
string name1 = Page.NameEdit.Value.ToString();
string text ="Книги с таким названием уже существуют: ";
var manager = UserConnection.EntitySchemaManager;
var esq =new EntitySchemaQuery(manager, "Book");
esq.AddColumn("Name");
esq.AddColumn("Author");
var filter = esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Name", name1);
esq.Filters.Add(filter);
var q = esq.GetEntityCollection(UserConnection);if(q.Count>0){
var b =new System.Text.StringBuilder();
foreach(Terrasoft.Configuration.Book book in q){
b.Append(book.Name+" ("+ book.Author+"); ");}
string books = b.ToString();
Page.BaseMessagePanel.Clear();
Page.BaseMessagePanel.AddMessage(Warning, text+books, MessageType.Warning);}returntrue;
в системе предусмотрен справочник Типы контрагентов, в котором подразумевается указание отношений с контрагентами: Заказчик, подрядчик, агент, конкурент и т.д.. В нашем бизнесе, нет такого четкого деления - один контрагент может быть для нас одновременно клиентом по одному типу продукта, поставщиком по другому и партнером по третьему. Как лучше в таком случае категорировать контрагентов, ведь одному контрагенту можно присвоить только один тип?
Значит, надо делать деталь "Типы" в разделе контрагентов. С существующим полем в карточке можно синхронизировать подобно тому, как это с адресами и средствами связи.
Здравствуйте, Владислав.
Думаю, что Ваш вопрос затрагивает не просто «типизацию», а «типизацию по..»
Важно не просто присвоить тип Контрагенту, а ещё и детализировать, к какому виду сотрудничества принадлежит именно этот тип.
Вообщем-то можно реализовать несколькими способами на Ваше усмотрение.
Как один из вариантов: В уже существующем справочнике: «Типы» добавить значение «Смешанный». Это будет означать, что данный контрагент помимо «Заказчика» является ещё и подрядчиком, например.
Далее, просто надо понять, где Вы фиксируете типы продуктов по этому контрагенту (например, в продажах, счетах или проектах)
Создать соответствующий механизм отображения в разделе КОНТРАГЕНТЫ. Например, создать деталь «Детализация» и там отображать. Как вариант можно создать закладку в карточке записи.
Примерно будет выглядеть так:
ООО «Полянка», тип «Смешанный»
Детализация
Тип продукта – тип контрагента:
ПК – клиент
ПО – поставщик(разработчик)
Антивирусы – партнер
В Отчеты подтягивается на УРА!!!
Добрый день, коллеги!
Для решения проблемы нужно выполнить:
1. Выгрузить файл метаданных на диск.
2. Открыть его в блокноте
3. Удалить строчку с параметром "HierarchyColumn"
4. Загрузить файл обратно
5. Опубликоваться.
Например, HierarchyColumn может быть задан такой строкой:
"HierarchyColumn": "65aa6f84-1120-45c5-9771-ad6690a1c2cb"
Подскажите можно ли для новосозданных разделов скачивать шаблон для импорта записей из Excel. Потому что кнопки как н-р у раздела Контакты или Контрагенты для скачивания шаблона и импорта в BPMonline 5.4.0 не наблюдаю
Для нового раздела скачивание шаблона для импорта невозможно. В базовой версии импорт реализован только для разделов контакты, контрагенты и продукты.
Но реализовать импорт возможно, вот приблизительный алгоритм:
1. Создать в системе пользовательский инструмент импорта;
2. Реализовать возможность выборочного импорта (по заданным параметрам);
3. Сформировать Подстановку стандартного шаблона для импорта;
4. Создать процесс импорта, с помощью бизнес-логики.
"Maxim Gritsenko" написал:Но реализовать импорт возможно, вот приблизительный алгоритм:
Максим, если можно, то с этого места поподробней... Т.е. где посмотреть саму функцию процесса импорта из Excel-файла?
Копала код "Импортирование контрагентов", но, к сожалению, не нашла ответ на свой вопрос. Возможно, оно так "зашифровано", что я его упустила? Также нашла схему этого процесса -- но там только, насколько я поняла, окошки с сообщениями и вывод лог-файла, сам импорт не совсем понятно где...
В общем, подскажите, куда копать? Т.е. где описан сам процесс импорта (создание активИкс екселя, считывание данных из ячеек и запись их в бд) и как его настроить под свой шаблон файла?
спасибо, Максим!
Искала, даже пыталась создать копии схем, по аналогии с импортом контрагентов + параллельно обратилась в Поддержку для уточнения "где посмотреть функцию импорта".
ответ меня "порадовал":
"Олейник Дмитрий" написал:
В целом, вопрос импорта из екслеля в сущности системы очень сложный, и для каждого раздела есть свои особенности. Реализовать новый импорт простым копированием схем – не выйдет. Нужно писать свой класс импорта, строить сложный процесс, парсить построчно файл ексель с использованием Open XML и т.д.
В целом, даже нашим разработчикам потребуется значительное время для реализации данной задачи. Поэтому не рекомендую Вам реализовывать данный функционала самостоятельно. Как вариант, могу предложить Вам связаться с ответственным менеджером по Вашей компании для обсуждения деталей реализации в рамках проектной доработки.
Поскольку задача была срочная, то ее решили по-другому, не задействуя функционал бпм-онлайн.
Насчет Вашего ответа. Спасибо. Схемы, про которые Вы говорите, я нашла. Сами шаблоны я не находила -- спасибо за "наводку".. Но меня интересовал сам процесс импорта, где-что-как скорректировать и как "привязать" это действие к нужному разделу (у меня был нестандартный импорт продаж, продуктов и продуктов в продаже), как "связать" схему с нужным шаблоном...
В 3ке можно создавать ЭктивОбжект приложения ексель и обращаться к содержимому ячеек -- где такое прописано в бпм, к сожалению, я так и не нашла...
Если Вы можете эти моменты разъяснить -- буду признательна (хотя интерес уже только "спортивный" или на будущее, т.к. задача решена "в обход").
Спасибо.
Оказывается, есть куча способов.
1) самый "простой" (исходя из опыта импорта в обычной 3ке, т.е. в Террасофте версии 3.х), это написать "обычный" импорт в джей-скрипте +триггеры при вставке записей в таблицу. Импорт я завязала на кнопку в окошке, которое может запускаться без "оболочки" ТС (подробнее можно почитать тут). Примечание: импорт написан свой, без использования встроенной утилиты, т.к. поля в файле были нестандартные, обьединенные ячейки и т.п.
другие способы я нашла, но из-за а. срочности задачи и б. недостатка опыта в той области (точнее, его отсутствия), толком в них не разбиралась (возможно, разберусь позже, "на досуге":smile:). Итак.
2) в менеджмент студии есть функция "импорт из файла" -- можно сразу выгружать данные из ексель в выбранную таблицу бд.
недостаток -- там вроде только одна таблица указывается, да и взаимосвязи настроить у меня не получилось. т.е. способ подойдет, когда нужно "тупо" выгрузить данные в одну таблицу.
3)написать утилиту на чем-то другом (Сшарпе, Джаве, Делфи или еще на чем-то) -- вариант почти сразу отпал из-за нехватки опыта, т.е. нужно "сидеть и разбираться"
4) еще пару вариантов нарыла в гугле, например, тут, т.е. был вариант загружать данные, используя сам SQL. я даже выяснила примерный алгоритм:
1) преобразовать ексель в csv, т.е. в текстовый формат
2) загрузить во временную таблицу скула данные
3) курсором пройтись по ним и вставить их, куда нужно.
Возможно, есть еще варианты и/или способы получше. Буду рада их рассмотреть)
о, еще вспомнила:
5) в самом екселе, начиная с 2007 версии, можно настроить соединение с бд и как-то напрямую "брать"/"заливать" данные.
но тоже нужно разбираться и тоже вроде для одной таблицы..
1. В BPMOnline есть модуль управление проектами?
2. Есть ли такого модуля нет, то предполагается ли его появление??
3. Возможен ли перенос процессов из Terrasoft XRM в BPMOnline ?
Добрый день!
1. Модуль управления проектами включен в продукт BPMonline XRM.
2. Перенос процессов Terrasoft 3.x в BPMonline невозможен в связи с отличием методологии и механизма реализации.
Меня также интересует возможность работы с проектами в BPMonline XRM (аналог раздела "Проекты"). В каком виде это будет реализовано? Можно ли на сегодняшний день где-либо посмотреть демо-версию?