Добрый день!
Как можно выгрузить все файлы из детали файлы и ссылки в сетевую папку на диск?
Сделать это нужно программно.

Нравится

6 комментариев

Добрый день, Александр!

bpmonline не предполагает таких операций. Тем не менее данную задачу можно попробовать реализовать через бизнес процесс. Вам необходимо перебрать все записи в соответствующей таблице (объекте). Для каждого раздела объект "Файлы и ссылки" свой (как и таблица в базе данных).

1) Начальный элемент
2) Получение данных о файле элементом "Чтение данных"
3) "Исключающее ИЛИ" с двумя условными потоками (если файлов для выгрузки больше нет, то конец процесса), иначе идем дальше.
4) Элемент "Задание-сценарий" с приблизительным кодом:

   public static string SaveDecompressFile(string FileName, SqlBytes CompressedFile)
    {
        if (CompressedFile.IsNull)
        return "Error";
 
        DeflateStream decompress = new DeflateStream(CompressedFile.Stream, CompressionMode.Decompress, true);
 
        try
        {
 
            FileStream file = File.Create(FileName);
 
            int sourcebyte = decompress.ReadByte();
            while (sourcebyte != -1)
            {
                file.WriteByte((byte)sourcebyte);
                sourcebyte = decompress.ReadByte();
            }
 
            file.Close();
        }
 
        catch (Exception)
        {
            return "Error";
        }
 
        finally
        {
            decompress.Close();
            decompress = null;
        }    
 
        return "OK";
    }

(источник)

Далее возвращаемся на элемент "Чтение данных".

В таком бизнес процессе необходимо будет увеличить максимальное число повторений (настраивается в свойствах процесса).

Все оказалось даже проще.
Может кому-то пригодится
Для работоспособности в using нужно добавить System.IO

//получаем stream из Entity 
MemoryStream ms=documentFile.GetStreamValue("Data");
//записываем его в файл
ms.SaveToFile(dir+name);  

ниже приведен полный код метода, используемого в сервисе

 [OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped,
    RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public void fileUnloadling(
	string documentId, //Id докумена
	string documentNumber
	)
{
	if (System.Diagnostics.Debugger.IsAttached)
	{
	    System.Diagnostics.Debugger.Break();
	}
	var UserConnection = (UserConnection)HttpContext.Current.Session["UserConnection"];
	var dir=Terrasoft.Core.Configuration.SysSettings.GetValue(UserConnection, "SxFilePathForUnloading")+documentNumber+"\\";
	EntitySchema schema = UserConnection.EntitySchemaManager.GetInstanceByName("DocumentFile");
    EntitySchemaQuery esq = new EntitySchemaQuery(schema);
    esq.AddAllSchemaColumns();
    esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Document", documentId));
    esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Type", "529BC2F8-0EE0-DF11-971B-001D60E938C6")); //тип файл
 
    EntityCollection documentFileEntities = esq.GetEntityCollection(UserConnection);
    foreach (Entity documentFile in documentFileEntities  )
    {
        var name=documentFile.GetTypedColumnValue<string>("Name");
		MemoryStream ms=documentFile.GetStreamValue("Data");
        try
		{
			if (!Directory.Exists(dir))
                    {
                        Directory.CreateDirectory(dir);
                    }
			ms.SaveToFile(dir+name);  
		}
		catch (Exception e) 
		{
 
		}
    }
 
}    }

Пащенко Александр Сергеевич

а как мы определяем из детали какого объекта файлы и ссылки и какой именно записи это объекта забираем файлы?

Сафронов Иван Александрович,

В моем случае не нужно было универсальное решение для всех объектов. Как вариант, можете в параметрах прокидывать название объекта или родительской схемы и идентификатор записи. 

Какая у Вас задача?

Пащенко Александр Сергеевич,

После завершения активности хотелось бы выгружать все приложенные файлы на детали Файлы и ссылки в отдельную папку в хранилище.

Сафронов Иван Александрович,

Тогда можете в БП отловить сигналом завершение активности, а дальше скриптом выгружать из ActivityFile.

Учтите, что в детали еще могут быть ссылки. Нужно в запрос добавить фильтр по типу

Схемы файлов обычно называются по шаблону [название раздела] + "File"

Показать все комментарии

Необходимо переопределить несколько ф-ий мастера раздела. Создаю замещающий клиентский модуль, наследуюсь от Модуля мастера создания раздела. Что бы я не делал, получаю ошибки: cannot read property 'replace' of undefined, или cannot read property 'isDestroyed' of undefined. Подскажите как сделать правильно.

Нравится

4 комментария

Олег, уточни, в каком момент возникает ошибка? при сохранении схемы?
А какие функции хотите переопределить? Может это не предусмотрено в bpm.

Здравствуйте, Олег!

Мастер раздела - это не только конфигурация, а еще и ядро. Изменение конфигурации не повлияет на ядро. Исправлять ядро пользовательскими средствами нет возможности, соответственно изменения функций мастера раздела смогут его сломать.

Правильно будет не трогать мастер раздела.

"Мотков Илья" написал:

Олег, уточни, в каком момент возникает ошибка? при сохранении схемы?

А какие функции хотите переопределить? Может это не предусмотрено в bpm.


Ошибка возникает при открытии мастера раздела. Причем я ничего не менял. Просто создал замещающий модуль SectionDesigner. Пробовал с "пустым" кодом:

define("SectionDesigner", [],
	function() {});

Пробовал полностью скопипастить код, или оставить файл пустым - безрезультатно. Мне бы просто его запустить, а дальше я разберусь.

"Сафонов Олег" написал:
Мотков Илья пишет:

Олег, уточни, в каком момент возникает ошибка? при сохранении схемы?

А какие функции хотите переопределить? Может это не предусмотрено в bpm.

Ошибка возникает при открытии мастера раздела. Причем я ничего не менял. Просто создал замещающий модуль SectionDesigner. Пробовал с "пустым" кодом:

define("SectionDesigner", [],

        function() {});

Пробовал полностью скопипастить код, или оставить файл пустым - безрезультатно. Мне бы просто его запустить, а дальше я разберусь.

Олег, при замещении необходимо полностью замещать модуль (локал. стринги, месседжи, параметры и т.д.). Т.е. здесь работает базовая логика замещение модуля.
Но хотелось бы отметить, если Вы переопределяете базовые методы и если обновите приложение на новые бинари, то базовые изменения не вступят в силу.

Показать все комментарии

Создал раздел через мастер разделов. В объекте раздела установил для справочного поля "Автор" значение по умолчанию - Текущий пользователь. При сохранении получаю ошибку - Конфликт инструкции INSERT с ограничением FOREIGN KEY "FKMUz8mt4GOdEmSGqDq6UKqFRng". Конфликт произошел в базе данных "ClientPortal_7.6.0_SO", таблица "dbo.Contact", column 'Id'.
Выполнение данной инструкции было прервано.
Если очистить поле - эффект тот же.
Если убрать значение по умолчанию - все сохраняется.

Нравится

2 комментария

Здравствуйте, Олег.

Правильно - не Текущий пользователь, а Контакт Текущего Пользователя.

Текущий пользователь ссылается на SysAdminUnit, в то время как колонка Автор - Contact.

Спасибо большое. И как я сразу не догадался...

Показать все комментарии

Здравствуйте!
В разделе "Активности" есть представление "Планирование визитов". На нем расположен список контрагентов, расписание и карта.
Если я добавляю эти объекты в свой раздел,то они располагаются друг под другом. Подскажите, пожалуйста, где можно настроить их позиции так, чтобы они были как на планировании визитов (т.е., в строчку, а не столбиком)?

Нравится

2 комментария

Добрый день, Никита.

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

Если я правильно понял, то Вы имеете в виду объекты: реестр, расписание и карта. Если это те объекты, о которых речь, то их позиционирование регламентируется CSS стилями. Подробнее о расположении элементов в строку с помощью CSS можно почитать тут:
http://htmlbook.ru/samlayout/blochnaya-verstka/strochno-blochnye-elemen…
И по запросу в Google:
css div расположение элементов в строку

"E.Podkovka" написал:

Если я правильно понял, то Вы имеете в виду объекты: реестр, расписание и карта. Если это те объекты, о которых речь, то их позиционирование регламентируется CSS стилями.


Действительно, добавил свой модуль с разметкой и подключил его. Все заработало. Спасибо!

Показать все комментарии

Здравствуйте.
Скажите пожалуйста, можно ли убрать из воронки продаж определенные стадии?
Стандартный функционал фильтрации не подходит, т.к. стадия в воронке все-равно присутствует, но со значением 0.

Как отфильтровать воронку,чтобы осталось всего 5 нужных стадий?

Нравится

8 комментариев

Добрый день, Александр!

Если необходимо минимум вмешательства, а стадии используются не совсем как задумано, то можно их отфильтровать следующим образом: в воронке не отображаются конечные не успешные стадии. То есть, можно всем тем, которые не должны отображаться, установить поле End = 1, а поле Successful = 0.

Если же этот функционал используется, то фильтрацию можно добавить только вмешательством в код. Необходимо замещать модуль OpportunityFunnelDrillDownProvider, полностью копировать его код в новый модуль, и вносить необходимые изменения в метод getFunnelAllowedStagesFilters (для версии 7.6) либо в initOpportunityStage (для версии 7.5).

а разве это не решается через Справочники - Стадии продаж?

"Антон Кравченко" написал:а разве это не решается через Справочники - Стадии продаж?

На базе без данных мы удалили ненужные стадии. Правда, клиент не использует референтный процесс

"Антон Кравченко" написал:а разве это не решается через Справочники - Стадии продаж?

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

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

"Пащенко Александр Сергеевич" написал:Изначально был сделан новый процесс продаж и лишние стадии были удалены, но они снова появились после очередного обновления системы и установки данных, привязанных к пакетам.

Лишние стадии мешают не только в воронке продаж, но и в самой карточке продажи

"Пащенко Александр Сергеевич" написал:Изначально был сделан новый процесс продаж и лишние стадии были удалены, но они снова появились после очередного обновления системы и установки данных, привязанных к пакетам.

если используется свой доработанный процесс, то вариант с удалением значений из справочника вполне подойдет, так как ненужные стадии не используются.

Решение, настроить фильтрацию была принято для того, чтоб не удалять стадии при очередном обновлении.

Показать все комментарии

Добрый день, уважаемое сообщество!

Прошу подсказать о возможности реализации следующего кейса. Возникла задача создания на вкладке в разделе "Активности" отображения другого обособленного раздела "Маршруты" со всеми возможностями базового функционала (Фильтрация, группирование и т.д.).

Поразмыслив, решили, что это получается отрэндеренный раздел но только по сути на вкладке другого раздела. На данном этапе это не связанные объекты по колонкам, но в перспективе по "Маршрутам" будут создаваться "Активности".

Как мы думаем, это создание дублирующего клиентского модуля BaseSectionV2 с его функционалом, но как избежать нарушений в мэсэджах и ивэнтах стандартного BaseSectionV2.

Буду признателен за совет! Возможно кто-то уже сталкивался с подобного рода задачами.
Спасибо!!!

Нравится

1 комментарий

Здравствуйте!

Если в дальнейшем Вам придется создавать активности по маршрутам, следует создать отдельно раздел маршруты который будет работать с объектом маршрут. Далее добавить кнопку в тот раздел из которого будет выполняться переход в раздел Маршруты (например в ActivitySectionV2). Представления привязаны к объекту. Следует учитывать, что кнопка будет выполнять исключительно функцию перехода, так как будет работать с другим объектом.

Показать все комментарии

Коллеги, сегодня состоялся релиз новой версии bpm’online ITIL service 7.6 — системы для профессионального управления сервисом. Обновленный продукт помогает эффективно управлять всем контуром задач IT-департамента, используя эталонные бизнес-процессы: от обработки обращений до планирования изменений и выпуска новых релизов.

Для быстрого поиска корневой причины инцидента реализована сервисно-ресурсная модель — взаимосвязи конфигурационных единиц и сервисов отображаются в удобном графическом виде. Сотрудник сервисной службы может устранить проблему в считанные минуты, оперативно выявив нерабочий сервис и отследив его источник. В то же время, руководитель сервисной службы с помощью сервисно-ресурсной модели сможет определить, какие сервисы будут затронуты во время внутренних работ, и гибко управлять изменениями в IT-инфраструктуре компании.

Функциональность портала самообслуживания дополнена главной страницей для быстрого доступа пользователей к последним обращениям и популярным статьям базы знаний. Здесь можно зарегистрировать новое обращение и найти ответ на интересующий вопрос.

В обновленном продукте значительно расширен блок аналитики. Дэшборды разделов «Контакты» и «Контрагенты» помогут оценить уровень удовлетворенности клиентов, а итоги раздела «Активности» — определить самых продуктивных сотрудников. Новый виджет — индикатор KPI — поможет контролировать эффективность работы сотрудников: скорость реакции на обращение, количество закрытых обращений, уровень удовлетворенности пользователей и т.п. Система позволяет указать нормативные значения показателя, чтобы не только просматривать его текущее значение, но и анализировать отклонения.

Для гибкого управления исходящими и входящими коммуникациями в продукте стали доступны статические и закрытые очереди. Статическая очередь может быть наполнена руководителем вручную, например, списком тех контактов, от которых нужно получить обратную связь по качеству предоставленного сервиса. А в закрытой очереди общий список записей скрыт для оператора — система отобразит информацию по следующей записи только после взятия ее в работу.

В новой версии платформы bpm’online полностью обновлена интеграция с Facebook, на порядок упрощена работа с email-сообщениями. Видеозвонки добавят интерактивности в общении, а теги и новые фильтры — ускорят поиск данных. Новые виджеты в итогах, мультивалютные поля, визуализация взаимосвязей между компаниями — эти и другие возможности обеспечат комфорт и удовольствие каждому, кто работает в bpm’online. Подробнее >>

Узнайте больше о функциональности bpm’online ITIL service >>

Нравится

Поделиться

0 комментариев
Показать все комментарии

Здравствуйте, подскажите пожалуйста, как правильно собрать пакет на версии 7.6.
При создании пакетов получаю ошибку

E:\WWW\project76\Terrasoft.WebApp\DesktopBin\WorkspaceConsole>Terrasoft.Tools.Wor
kspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=D
efault -operation=SaveSVNContent -destinationPath=D:\Temp\Repository\ -contentTy
pes=Repository -workingCopyPath=D:\Temp\Source\ -repositoryUri=http://SERVER-iis
:8888/svn/project76/trunk/project76 -sourceControlLogin=Supervisor -sourceControl
Password=myPass
Ошибка: Unable to load one or more of the requested types. Retrieve the LoaderEx
ceptions property for more information.
Работа утилиты закончена.

лог:
Ошибка: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.Assembly.GetTypes()
at Terrasoft.Common.ReflectionUtilities.FindTypeByShortName(Assembly assembly, String name)
at Terrasoft.Core.SchemaManagerItem`1.get_TypeName()
at Terrasoft.Core.Entities.SystemEntitySchemaManager.InitializeSafeSchema(ISchemaManagerItem schemaManagerItem, Assembly assembly)
at Terrasoft.Core.SchemaManagerItem`1.get_SafeInstance()
at Terrasoft.Core.Manager`2.FindInstanceByName(String name)
at Terrasoft.Core.SystemUserConnection.InitializeCurrentUser(String userName, TimeZoneInfo timeZone, String clientIP, String agent, Boolean logSessionStart)
at Terrasoft.Core.AppConnection.InitializeSystemUserConnection(ConfigurationSection schemaManagerProviderConfigurationSection)
at Terrasoft.Core.AppConnection.Initialize(ConfigurationSectionGroup appConfigurationSectionGroup)
at Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.Initialize(ConfigurationSectionGroup appConfigurationSectionGroup)
at Terrasoft.Tools.Common.BaseConsoleApplication`2.Run(String[] args)

Работа утилиты закончена.

Нравится

19 комментариев

Здравствуйте, Александр!

У нас такая же ошибка возникала, если бинарные файлы были распакованы через проводник Windows, а не через архиватор.
Распакуйте бинарные файлы с помощью действия "Extract to.." WinRAR или 7-zip, подготовьте заново WorkspaceConsole согласно с разрядностью Вашей операционной системы. После этих действий у нас ошибки не возникало.

Странно,но действительно помогло. Спасибо!

Проводник Windows при копировании файлов из архива может так и оставить часть данных в сжатом виде.
Отсюда делаем выводы, что лучше всё же пользоваться архиваторами, они знают своё дело :)

А каким образом собрать именно необходимый пакет или все пакеты из конфигурации? WC не может найти требуемый пакет.

Ошибка: Пакет с именем "УказанноеНазваниеПакета" не найден

Александр, прошу определиться, где Вам лучше вести диалог - на community или на портале.

Александр, удобнее на community.На портале был создан вопрос из-за важности срока реакции.

Ок, тогда перенесу сюда свой ответ:

Для этого есть параметр -packageName. Там Вы и указываете название пакета. Убедитесь, что он есть в прописанном Вами пути.

Можно выгрузить просто все пакеты:

1) Выгрузка рабочего пространства (из БД) в репозиторий (zip-архив)

Terrasoft.Tools.WorkspaceConsole.exe -operation=SaveDBContent -workspaceName=Default -destinationPath=D:\Temp\Repository\ -contentTypes=Repository

2) Выгрузка рабочего пространства (из Svn) в репозиторий (zip-архив)

Terrasoft.Tools.WorkspaceConsole.exe -operation=SaveSvnContent -workspaceName=Default -destinationPath=D:\Temp\Repository\ -contentTypes=Repository -workingCopyPath=D:\Temp\Source\ -repositoryUri=http://tscoredev5:8050/svn/ts5conf/Product/trunk -sourceControlLogin=[Имя пользователя для SVN] -sourceControlPassword=[Пароль пользователя для SVN]

О возможности выгрузки всего рабочего пространства из базы данных я знаю, но хотелось бы понять, почему не получается выгрузить из репозитория.
Во втором случае я как-раз получаю указанную ошибку, если указан ключ -packageName
Если данный ключ не указывать, то получаю пустой манифест. В конфигурации 1 пользовательский пакет и пакет Custom.

Вызов WorkspaceConsole производился с такими же ключами, как указано выше.

Структура репозитория приведена на картинке

Александр, пожалуйста, вышлите текст ошибки которая возникает при указании ключа -packageName

Ошибка: Пакет с именем "[ИмяПкета]" не найден
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.GetPackageByName(PackageStorage storage, String packageName)
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.SetNotDependsOnPackagesNotChangedStateByName(PackageStorage storage, String packageName)
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.ComposeWithoutSaving(PackageStorage sourceStorage, String sourceStoragePrimaryInfo, PackageStorage targetStorage, String targetStoragePrimaryInfo, SysPackageInstallType skipInstallType, String packageName, Boolean loadBeforeCompose)
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.Compose(PackageStorage sourceStorage, String sourceStoragePrimaryInfo, PackageStorage targetStorage, String targetStoragePrimaryInfo, SysPackageInstallType skipInstallType, String packageName, Boolean loadBeforeCompose)
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.SaveSvnRepository(WorkspaceConsoleOptions options)
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.SaveSvnContent()
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.Execute()
   в Terrasoft.Tools.Common.BaseConsoleApplication`2.Run(String[] args)

Также после сбора пакета из БД пытаюсь установить пакет на бандл 7.6.0.996_SalesOmnichannel_Marketing_Softkey_MSSQL_RUS
и возникает следующая ошибка

Ошибка: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.Assembly.GetTypes()
   at Terrasoft.Common.ReflectionUtilities.FindTypeByShortName(Assembly assembly, String name)
   at Terrasoft.Core.SchemaManagerItem`1.get_TypeName()
   at Terrasoft.Core.Entities.SystemEntitySchemaManager.InitializeSafeSchema(ISchemaManagerItem schemaManagerItem, Assembly assembly)
   at Terrasoft.Core.SchemaManagerItem`1.get_SafeInstance()
   at Terrasoft.Core.Manager`2.FindInstanceByName(String name)
   at Terrasoft.Core.SystemUserConnection.InitializeCurrentUser(String userName, TimeZoneInfo timeZone, String clientIP, String agent, Boolean logSessionStart)
   at Terrasoft.Core.AppConnection.InitializeSystemUserConnection(ConfigurationSection schemaManagerProviderConfigurationSection)
   at Terrasoft.Core.AppConnection.Initialize(ConfigurationSectionGroup appConfigurationSectionGroup)
   at Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.Initialize(ConfigurationSectionGroup appConfigurationSectionGroup)
   at Terrasoft.Tools.Common.BaseConsoleApplication`2.Run(String[] args)
 
Работа утилиты закончена.

Дополнительно прошу выслать все параметры указанные в WorkSpаce Console без исправлений.

Параметры вызова в приложении
wc_scripts.txt

При загрузке пакета ошибка похожа на проблему из первого поста, но распаковка файлов из архива не помогла. Установлена система Win 8.1 + NetFramework 4.6

Александр, предлагаю продолжить наше взаимодействие в рамках обращения в техническую поддержку.
Пожалуйста, направьте на support@terrasoft.ru cодержимое папки "Packages".

Сергей,добрый день! Отписался в техническую поддержку 1 сентября после прочтения Вашего поста. Скажите пожалуйста, есть ли какие-то результаты по данному вопросу?

Сергей,добрый день! Отписался в техническую поддержку 1 сентября после прочтения Вашего поста. Скажите пожалуйста, есть ли какие-то результаты по данному вопросу?

Здравствуйте, Александр!

По результатам тестирования сегодня Вам будут направлены рекомендации.

Показать все комментарии

Здравствуйте.
Подскажите пожалуйста как изменить\переопределить существующий компонент. И как добавить свой.
На данный момент в модуле в котором использую компонент делаю так:

Ext.define("Terrasoft.controls.UsrTextEdit", {
        extend: "Terrasoft.BaseEdit",
        alternateClassName: "Terrasoft.UsrTextEdit",
        left: "",
        top: "",
        combineStyles: function() {
                var styles = this.callParent(arguments);
                var left = this.left ? this.left : "";
                var top = this.top ? this.top : "";
                var wrapStyle = styles.wrapStyle;
                if (left) {
                        wrapStyle.left = left;
                }
                if (top) {
                        wrapStyle.top = top;
                }
                return styles;
        },
        init: function() {
                this.callParent(arguments);
                this.addEvents(
                        "onmousedown",
                        "onmousemove",
                        "onmouseup"
                );
        },
        initDomEvents: function() {
                this.callParent(arguments);
                var el = this.getEl();
                el.on({
                        "onmousedown": {
                                fn: this.onMouseDown,
                                scope: this
                        },
                        "onmousemove": {
                                fn: this.onMouseMove,
                                scope: this
                        },
                        "onmouseup": {
                                fn: this.onMouseUp,
                                scope: this
                        }
                });
        },
        onMouseDown: function(e) {
                Console.Log('onMouseDown');
                this.fireEvent("onmousedown", this, e);
        },
        onMouseMove: function(e) {
                Console.Log('onMouseMove');
                this.fireEvent("onmousemove", this, e);
        },
        onMouseUp: function(e) {
                Console.Log('onMouseUp');
                this.fireEvent("onmouseup", this, e);
        }
});

Но таким способом не получилось подписаться на новые события, в лог ничего не выводиться, combineStyles отрабатывает нормально.

Нравится

2 комментария

Добрый день!

Попробуйте убрать приставку "on" из названия событий "onmousedown", "onmousemove", "onmouseup". Фреймворк должен сам определять, нужна она или нет.

Также для вывода в консоль необходимо использовать нижний регистр: console.log(...).

Олег, спасибо. Нужно было без приставки on.

Показать все комментарии

Правильно организованная работа в bpm’online и максимальное использование всех функциональных возможностей может принести бизнесу значительные преимущества.

Проверьте себя и своих сотрудников на сайте Академии Terrasoft.

Тестирования доступны для продуктов:

· Bpm’online sales team 7.6
· Bpm’online sales omnichannel 7.6
· Bpm’online sales enterprise 7.6
· Bpm’online sales commerse 7.6
Пройдите бесплатное тестирование на знание базовых возможностей системы и получите сертификат, подтверждающий вашу квалификацию!

*Тестирование доступно только для зарегистрированных пользователей

Нравится

Поделиться

0 комментариев
Показать все комментарии