Добрый день!

наблюдаем такую странную картину поведения процесса.

а именно: Задача "Изменить данные заявки" выполняется на 1 раз больше чем две предыдущие задачи "Версия+1" и "Читать данные 2"

(нижний ряд задач)

 

может у кого-то была такая проблема? не могу понять как такое происходит

первый пример

Изображение удалено.

 

второй пример

 

Изображение удалено.

Нравится

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

Любовь, здравствуйте!

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

Если же такое поведение наблюдается для этого процесса регулярно, рекомендую обратиться в техническую поддержку, так как по скриншоту сложно определить всю структуру и логику процесса.

Также, не рекомендую реализовывать циклические процессы, они создают дополнительную нагрузку на приложение и могут некорректно отрабатывать, если в записи вносятся изменение в момент выполнения процесса. Сложную логику лучше реализовывать в рамках элемента [Задание - сценарий].

Контактная почта - support@terrasoft.ru

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

Добавили в деталь файлы и ссылки ссылку на shared folder



https://community.terrasoft.ua/questions/ssylka-na-lokalnyi-fail

ссылку записываем в виде

file://192.168.127.41/Upload/Dng/40624003.txt

при нажатии на ссылку - ничего.

если скопировать ссылку и вставить в браузер - скачивается.

с ftp ссылками проблем нет

Нравится

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

Здравствуйте, Любовь

Данное поведение в большей части связано с работой самого браузера. Использование ссылок на локальные файлы будет проходить корректно только в случае использования браузера IE 11 или Chrome с отключенным плагином WebSecurity.

Показать все комментарии
Доброго времени суток.
Добавил следующий фильтр на атрибуте
attributes: {
      "OwnerGroup": {
        lookupListConfig: {
          filter: function() {
            return this.filterByUserGroup();
          }
        }
      }
    }
    
methods: {
      filterByUserGroup: function() {
        var filterGroup = this.Terrasoft.createFilterGroup();
        filterGroup.addItem(Terrasoft.createIsNotNullFilter(
          Ext.create("Terrasoft.ColumnExpression", {
            columnPath: "ParentRole"
          })
        ));
        return filterGroup;
      }
    }

OwnerGroup смотрит на объект администрирования.
Фильтр работает, все хорошо.
Но хотелось бы сделать тоже самое с помощью бизнес-правила.
Делаю следующее:

rules: {
"OwnerGroup": {
     "FiltrationByGroup": {
      "ruleType": BusinessRuleModule.enums.RuleType.FILTRATION,
      //"autocomplete": true,
      //"autoClean": false,
      "baseAttributePatch": "ParentRole",
      "comparisonType": Terrasoft.ComparisonType.IS_NOT_NULL      
     }
}

Не работает и ошибок нет.
Пробовал другой вариант:

"OwnerGroup": {
     "FiltrationByGroup": {
      "ruleType": BusinessRuleModule.enums.RuleType.FILTRATION,
      //"autocomplete": true,
      //"autoClean": false,
      "baseAttributePatch": "ParentRole",
      "comparisonType": Terrasoft.ComparisonType.NOT_EQUAL,
      "type": BusinessRuleModule.enums.ValueType.CONSTANT,      
      //"value": "ea43b2a0-96b6-485b-b0a9-847d7c921bb2"
      "value": null
     }
}
Тоже не работает. Если указать конкретное значение GUID для 
value, то работает. 
    

Нравится

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

Добрый день

Вот пример фильтрации поля Контрагент в карточке контакта, где отображаются все контрагенты, которые не привязаны к контактам

"Account": {
    "AccountFilter": {
        "ruleType": BusinessRuleModule.enums.RuleType.FILTRATION,
        "baseAttributePatch": "[Contact:Account:Id].[Account:Id:Account].Id",
        "comparisonType": Terrasoft.ComparisonType.IS_NULL,
        "type": BusinessRuleModule.enums.ValueType.CONSTANT,
        "value": "00000000-0000-0000-0000-000000000000"
    }
}

В итоге, вам нужно просто исправить значение для value на "00000000-0000-0000-0000-000000000000"

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

Добрый день!

в рамках функционала производится отправка письма, в котором есть ссылка вида

http://ххх.ххх.ххх.хх:83/0/ViewModule.aspx#CardModuleV2/ICLRequestPage/…

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

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

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

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

Нравится

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

Здравствуйте, Любовь!

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

Рекомендуем Вам обратиться с данным кейсом службу технической поддержки.

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

Коллеги, добрый день!

В ITIL есть понятие major incident, в продукте Service Enterprise не нашли аналогичных понятий и методов работы с такими инцидентами.

Поделитесь опытом, кто как решает и регистрирует такие инциденты ?

Заводить несколько обращений и потом решать каждое руками, с вставкой шаблона решения - идея не очень, хорошо если обращений пара-тройка штук, а если 100?)

И в данном случае связка с родительским обращением не дает эффекта.

Нравится

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

И в данном случае связка с родительским обращением не дает эффекта.

Дает, если написать процесс, который при изменении статуса родителя на "Решено" или "Закрыто" будет автоматом менять статус всем детям на "Решено" или "Закрыто", также можно и передать сам текст решения. Сам процесс можно будет запускать из кейса.

 

А раздел «Проблемы» — это не оно?

Проблема — это корневая причина одного или нескольких обращений (как возникающих, так и возможных). Например, проблемой может быть наличие частых поломок определенного узла изделия. Раздел ПРОБЛЕМЫ предназначен для обработки найденных проблем и планирования работ по их разрешению. Эффективное управление проблемами снижает влияние обращений на обслуживание и предотвращает их возникновение.

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

Зверев Александр,

 нет, проблема это причина массового инцидента. За идею спасибо!

Интересная мысль спасибо!

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

Добрый день.

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

В дизайнере процессов в свойствах действия пользователя «Выполнить задачу» можно указать только конкретный контакт.

Как обычно решаются такие вопросы?

Нравится

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

Владислав, здравствуйте!

Если Вам нужно поставить задачу на определенную группу пользователей, то вы можете создать БП (скриншот 1) со следующей логикой:

- Выбрать [Действия системы]-[Добавить данные], где установить соответствующие фильтры (скриншот 2).

       Предварительно следует добавить нужные контакты в определенную роль.

 

Добрый день, Максим. Спасибо за ответ.

Попробовал предложенный вариант. В результате система создала по отдельной задаче для каждого пользователя входящего в роль. Система создала несколько копий на разных ответственных.

Хотелось бы поставить одну общую задачу на отдел. Если кто-то из сотрудников отдела берет задачу в работу, то другие ее уже не должны выполнять, т.е. кто первый взял, тот и делает её.

А сейчас получается если даже кто-то один задачу сделал, у других всё равно отображаются их собственные задачи и они не знают, что уже делать ничего не надо, работа выполнена.

Как-то это можно настроить?

Владислав, добрый день!

Предлагаю Вам следующее решение (скриншот 1):

1. Создать необходимую активность (скриншот 2);

2. Добавить всех участников отдела (скриншот 3);

3. Воспользоваться промежуточным событием [Обработка сигнала], при переводе активность в другое состояние (скриншот 4);

4. Убрать активность из расписания участников (скриншот 5), закрепив ее только за сотрудником, который взял задачу в работу (скриншот 6).

Вы можете сами кастомизировать данное решение на основании Ваших потребностей.

 

Максим, спасибо за подробный ответ!

Идея понятна, надо пробовать.

Добрый день. Мне подсказали еще один вариант реализации через очереди и единое окно:

1. Добавить в активность поле "Организационная единица" (ссылка на подразделение)

2. При создании задачи из процесса заполнять это поле нужным подразделением, а отвветственного оставлять пустым.

3. Настроить очереди с отбором по значению подразделения из активности

Например:

а) "Очередь бухгалтерия (активность.подразделение = бухгалтерия)

б) "Очередь Отдел продаж МСК (активность.подразделение = Отдел продаж МСК)

В очередях указать в командах указать пользователей каждого отдела

4. Сделать активность объектом очереди, настроить системный БП запускаемый, когда берется активность из очереди.

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

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

Здравствуйте, Владислав!

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

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

Добрый день!

в письме, которое отправляется пользователю, есть ссылка на конфигурационный сервис следующего вида



http://xxx:83/0/rest/UsrLogisticVariantsService/ApproveLogistic/330ed31…

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

 

401 - Unauthorized: Access is denied due to invalid credentials.

если авторизован, то ссылка отрабатывает корректно.

можно ли как-то настроить систему так, чтобы 

1) прокидывало на страницу авторизации, как в случае со ссылкой на карточку записи

2) возможно есть возможность явно прописать учетные данные для работы данного сервиса

 

Нравится

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

Добрый день.

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

а можно делать анонимными отдельные сервисы внутри системы?

это же конфигурационный сервис, его кодом просто внутри можно настроить? потому что в iis другая настройка стоит 

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

.\Terrasoft.WebApp\ServiceModel\http\services.config

                add section:

                               <service name="Terrasoft.Configuration.MandrillService.MandrillService">

                                               <endpoint name="MandrillServiceEndPoint"

                                                               address=""

                                                               binding="webHttpBinding"

                                                               behaviorConfiguration="RestServiceBehavior"

                                                               bindingNamespace="http://Terrasoft.WebApp.ServiceModel"

                                                               contract="Terrasoft.Configuration.MandrillService.MandrillService" />

                               </service>

 

.\Terrasoft.WebApp\ServiceModel\https\services.config

                add section:

                               <service name="Terrasoft.Configuration.MandrillService.MandrillService">

                                               <endpoint name="MandrillServiceEndPoint"

                                                               address=""

                                                               binding="webHttpBinding"

                                                               behaviorConfiguration="RestServiceBehavior"

                                                               bindingNamespace="http://Terrasoft.WebApp.ServiceModel"

                                                               contract="Terrasoft.Configuration.MandrillService.MandrillService" />

                               </service>

 

.\Terrasoft.WebApp\Web.config

                "ServiceModel/MandrillService.svc" append into <add key="AllowedLocations" value="

                               exsample: <add key="AllowedLocations" value="ServiceModel/MandrillService.svc" />

                add section:

                               <configuration>

                                               <location path="ServiceModel/MandrillService.svc">

                                                               <system.web>

                                                                              <authorization>

                                                                                              <allow users="*" />

                                                                              </authorization>

                                                                              <httpRuntime requestValidationMode="2.0" />

                                                                              <pages validateRequest="false" />

                                                               </system.web>

                                               </location>

Terrasoft.WebApp\ServiceModel

                create file MandrillService.svc

                paste text:

                               <%@ ServiceHost Language="C#" Debug="true" Service="Terrasoft.Configuration.MandrillService.MandrillService" %>

Больше спасибо! буду пробовать

Кот Владимир Владимирович,



нужно после настройки что-то делать?

какой тип аутентификации должен стоять в IIS? 

iis и redis перезапускала - ошибка 401 сохраняется/

ошибка есть и для CaseRatingManagementService. 

в конфиге пробовала и   <allow users="?" /> и <allow users="*" />

 

поменяла и файл C:\Windows\System32\inetsrv\config\applicationHost.config.

значение 

      <sectionGroup name="authentication">

                    <section name="anonymousAuthentication" overrideModeDefault="Allow" />

 

Воможно у вас не включена анонимная аутентификация в IIS? Если включена и сервис настроен согласно инструкции, напишите, пожалуйста, письма на support@terrasoft.ru со ссылкой на это обсуждение и доступом к вашей среде чтобы мы могли отладить проблему.

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

Добрый день!

Пожалуйста, подскажите решение проблемы.

После удаления группы полей (где оставались поля), они почему-то стали отображаться ниже.

В мастере не отображаются. Хотелось бы их удалить. 

Прикрепленные файлы

Нравится

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

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

Реализацию/настройку элементов, которые отображаются на странице можете посмотреть также в самой схеме на уровне конфигурации (например, AccountPageV2). 

Скорее всего у данных полей другой указан parentname (см. секцию diff).

Для удаления найдите в схеме по названию колонки кусок кода в секции diff и удалите либо закомментируйте код (/* текст кода */). Затем сохраните изменения и перезагрузите страницу (кнопка F5). Также попробуйте очистить кэш в браузере.

Большое спасибо! Получилось. 

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

Добрый день!

Столкнулись с проблемой с манифестами мобильного приложения

На дев среде был указан префикс, издатель = ХХХ.

создали рабочее место в мобильном приложении. Манифест содержит в себе префикс ХХХ.

Перенесли на тест среду пакет с изменениями. На тест среде префикс пустой. Наше рабочее место не открывается. Прописали на тест среде наш префикс XXX. Все заработало.

Кроме нас на проекте есть еще другая компания, которая поставляет свои пакеты с префиксом YYY. Но у них пока нет доработок мобильного приложения

Вопросы:

1) Как повлияет указание префикса XXX на промышленной среде на работу в системе? все ли будет доступно из нашего пакета(префикс XXX) и из пакеты другой организации(префикс YYY)? Где еще может всплыть проблема с префиксом? мне казалось, что он отвечает только за сам префикс создаваемых объектов и схем.

2) Как создавать рабочие места в мобильном приложении и вообще настраивать его без привязки к префиксам?

Нравится

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

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

bpm'online по особому обрабатывает схемы манифестов мобильного приложения.

В ядре идет завязка на имя схемы.

Имя должно быть либо MobileApplicationManifestXXX либо PrefixMobileApplicationManifestXXX , где Prefix берется из текущего значения системной настройки «SchemaNamePrefix».

 

Рекомендуем следующее:

  1. В момент настройки мобильного приложения, через дизайнер, делать системную настройку «SchemaNamePrefix» пустой, чтоб все манифесты были без префикса.

(по окончании работы с мастером не забудьте ее снова вернуть)

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

При этом префикс может быть любой (главное чтоб не пустой).

 

Вильшанский Дмитрий,

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

каждый раз при настройке мобильного приложения нужно будет устанавливать префикс в пустое значение?

 

Zaitova Liubov,

1) без разницы какой будет

2) каждый раз когда создаете новое рабочее место через дизайнер нужен пустой префикс

Вильшанский Дмитрий,

2) каждый раз когда создаете новое рабочее место через дизайнер нужен пустой префикс



а редактирование существующего рабочего места тоже с пустым префиксом должно быть или можно ставить свой ХХХ?

Zaitova Liubov,

Желательно пустым

Спасибо

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

Добрый день, Коллеги!

1. На community видел упоминание что есть инструкция как влючить логирование синхронизации с LDAP кто может, прошу поделится.

2. При добавлении пользователя через синхронизацию с LDAP пользователь помешается в группу "Все сотрудники компании", как коректно отключить этот механизм мне надо чтоб пользователь был только в тех группах с которыми он синхронизирован через LDAP?

3. Есть учетка в LDAP числится в нужной группе которая синхронизирована с организационной ролью BPM другие учетки есть а этой нет. Куда копать?

 

установка он сайт.

Нравится

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

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

По Вашим вопросам:

1. Настройка логирования LDAP

  1. Открываем файл log4net.config в папке <site>/Terrasoft.WebApp
  2. Находим фильтр:

                                <filter type="log4net.Filter.LoggerMatchFilter">

                                                <loggerToMatch value="Terrasoft.Core.LDAP" />

                                                <acceptOnMatch value="false" />

                                </filter>

Если данный фильтр отсутствует, то добавляем. Пример:

<?xml version="1.0" encoding="utf-8"?>

<log4net>

                <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">

                                <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

                                <connectionString value="Data Source=#SQLServer#; Initial Catalog=syslog; Persist Security Info=True; MultipleActiveResultSets=True; User ID=svc-log4net; Password=FoaFkplBSl0Iqqdbo2a7fj6JfdyE1jmu; Pooling = true; Max Pool Size = 100" />

                                <commandText value="INSERT INTO [dbo].[log4net] ([Date],[Host],[Site],[Thread],[Level],[Logger],[User],[Message],[Exception]) VALUES (@log_date, @log_host, @log_site, @log_thread, @log_level, @log_logger, @log_user, @log_message, @log_exception)" />

                                <bufferSize value="1" />

                                <filter type="log4net.Filter.LoggerMatchFilter">

                                                <loggerToMatch value="Terrasoft.Core.LDAP" />

                                                <acceptOnMatch value="false" />

                                </filter>

                                <parameter>

                                                <parameterName value="@log_date" />

                                                <dbType value="DateTime" />

                                                <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />

                                </parameter>

  1. Находим атрибут appender

                <appender name="ldapAppender" type="log4net.Appender.RollingFileAppender">

                                <file type="log4net.Util.PatternString">

                                                <converter>

                                                                <name value="AspNet" />

                                                                <type value="log4net.Util.PatternStringConverters.AspNetPatternConverter,log4net.Util.PatternStringConverters" />

                                                </converter>

                                                <conversionPattern value="${TEMP}\BPMonline\Site_%AspNet{SiteId}\%AspNet{ApplicationPath}\Log\" />

                                </file>

                                <appendToFile value="true" />

                                <rollingStyle value="Date" />

                                <datePattern value="yyyy_MM_dd'\\LDAP.log'" />

                                <staticLogFileName value="false" />

                                <layout type="log4net.Layout.PatternLayout">

                                                <conversionPattern value="%date [%thread] %-5level %username %logger %method - %message%newline" />

                                </layout>

                </appender>

Если не находим, то добавляем. Пример:

                </appender>

                <appender name="ldapAppender" type="log4net.Appender.RollingFileAppender">

                                <file type="log4net.Util.PatternString">

                                                <converter>

                                                                <name value="AspNet" />

                                                                <type value="log4net.Util.PatternStringConverters.AspNetPatternConverter,log4net.Util.PatternStringConverters" />

                                                </converter>

                                                <conversionPattern value="${TEMP}\BPMonline\Site_%AspNet{SiteId}\%AspNet{ApplicationPath}\Log\" />

                                </file>

                                <appendToFile value="true" />

                                <rollingStyle value="Date" />

                                <datePattern value="yyyy_MM_dd'\\LDAP.log'" />

                                <staticLogFileName value="false" />

                                <layout type="log4net.Layout.PatternLayout">

                                                <conversionPattern value="%date [%thread] %-5level %username %logger %method - %message%newline" />

                                </layout>

                </appender>

                <root>

                                <level value="WARN" />

                                <appender-ref ref="AdoNetAppender" />

                </root>

  1. Находим атрибут logger

                <logger name="Terrasoft.Core.LDAP" >

                                <level value="ALL" />

                                <appender-ref ref="ldapAppender" />

                </logger>

и устанавливаем  уровень логирования в ALL, вместо INFO или DEBUG

Если не находим, то добавляем. Пример:

                <root>

                                <level value="WARN" />

                                <appender-ref ref="AdoNetAppender" />

                </root>

                <logger name="Terrasoft.Core.LDAP" >

                                <level value="ALL" />

                                <appender-ref ref="ldapAppender" />

                </logger>

</log4net>

 

2. Если имеется ввиду то что, к примеру, создается пользователь (Администратор) который должен получить роль "Системные администраторы" а получает дополнительно роль "Все сотрудники компании" - то это корректное поведение приложения так как по логиге пользователь получает все родительские роли полученной роли, а так как роль системных администраторов является дочерней ролью Всех сотрудников компании то это правильно.

 

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

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