Вопрос

Всем доброго дня. Версия 7.13.4.

На портал (в рабочее место портала) были добавлены разделы.

Они открываются под портальным пользователем. Там всё хорошо.

Но требуется, чтобы они были видны и под пользователем Сотрудника. В том же виде, что и на портале. Как это сделать?

Красные иконки с предупреждением сообщают нам о том, что данные каталога услуг и обращений будут доступны пользователям портала: "Объекты справочных полей на странице этого раздела не являются безопасными. Согласно текущим настройкам прав доступа все записи из перечисленных ниже объектов будут полностью доступны пользователям портала". Это явно не о том, база знаний, где предупреждения нет, тоже из рабочего места не доступна.

У меня такой же вопрос

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

Добрый день!

Если я не ошибаюсь, разделы портала отличаются от обычных и их нельзя добавлять в рабочие места обычных сотрудников (и наоборот). Как вариант обхода данного ограничения - создание дубликатов разделов на основе этих же объектов. Ну и не забудьте продумать настройку прав - кому и что должно быть доступно / видно.

Тёскин Дмитрий Валерьевич пишет:

Тёскин Дмитрий Валерьевич пишет:
Добрый день!Если я не ошибаюсь, разделы портала отличаются от обычных и их нельзя добавлять в рабочие места обычных сотрудников (и наоборот)

А как же "Обращения" и "База знаний"? 

Владимир, это полностью разные разделы. Общие у них только объекты, а страницы свои: PortalCaseSection, PortalCasePage, PortalCaseSectionActionsDashboard, PortalKnowledgeBaseSection, PortalKnowledgeBasePage и др.

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

Добрай день. При компиляции в WSC появляется данная ошибка. По всей видимости исполнитель заказа устанавливал надстройку "Flushing Redis cache for bpm'online" (имеется на маркетплейсе), тестировал и некорректно удалил (либо совсем не удалял), затем мне был передан пакет который не компилируется.

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

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

Как и где удалить все упоминания об этой надстройке? Деинсталлятора у нее не имеется.

У меня такой же вопрос

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

Удалите зависимость из descriptor.json вашего пакета

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

Хочу в процесса объекта на событии Saving (Перед сохранением) в событийном под процессе.

Сверять значение

Entity.GetTypedOldColumnValue<Guid>("Calendar")==Guid.Empty;

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

У меня такой же вопрос

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

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

Так же можно воспользоваться событийным слоем Entity

Алла Савельева пишет:

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

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

Entity.GetTypedOldColumnValue<Guid>("Calendar")==Guid.Empty

А в чём суть такой проверки? Так, если поле в какой-то момент стало пустое, больше никогда не сможете его заполнить и сохранить запись средствами ESQ.

Зверев Александр пишет:

Entity.GetTypedOldColumnValue<Guid>("Calendar")==Guid.Empty

А в чём суть такой проверки? Так, если поле в какой-то момент стало пустое, больше никогда не сможете его заполнить и сохранить запись средствами ESQ.

Поле календарь обязательно, и используется в расчетах.

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

Тогда зачем проверять GetTypedOldColumnValue? Оно же возвращает старое значение, а не нынешнее. Просто проверку обязательности для поля можно включить в дизайнере объекта.

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

Казанцев Андрей Юрьевич пишет:
Поле календарь обязательно, и используется в расчетах.При заполнении всех полей в реестре детали и нажатия на кнопку закрыть страницы. Это значение сохраняется пустым. А по нему идет расчет. 

Вашу задачу, действительно, можно решить одним из вариантов, предложенными выше Александром.

Если все-таки хотите решить эту задачу через сравнение старого и нового значения, то лучше это делать на клиентском, а не на серверном уровне. Посмотрите метод asyncValidate.

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

Не могу понять в чем ошибка... помогите разобраться...

https://[url_app]/0/ServiceModel/EntityDataService.svc/ActivityCollection?$filter=CreatedOn ge datetime'2018-12-01T00:00' возвращает ошибку - см. аттач.

У меня такой же вопрос

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

<message xml:lang="">Unrecognized 'Edm.DateTime' literal 'datetime'2018-12-12T00:00'' in '13'.</message>

Очень интересно...

https://[url_app]/0/ServiceModel/EntityDataService.svc/ActivityCollection?$filter=CreatedOn ge datetime'2018-12-12' - а вот так заработало...

Как оказалось, если нужно с часовым поясом, то надо «/0/ServiceModel/EntityDataService.svc/ActivityCollection?$filter=CreatedOn ge datetime'2018-12-01T00:00:00' », так работает.

А еще в статье  путаница: 

где-то в примере указывают ?select=Id, а где-то $select...

по факту работает так:

$filter=CreatedOn ge datetime'2018-12-01'&$select=Id...

В спецификации тоже везде с долларом.

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

Добрый день

Интегрируюсь с BPM Online 7.13 с использованием DataService.

Реализую метод добавления записи звонка Call. Создаю объект InsertQuery

InsertQuery insertQuery = new InsertQuery()
            {
                RootSchemaName = "Call",
                ColumnValues = new ColumnValues()
            };

и добавляю поля через

insertQuery.ColumnValues.Items = new Dictionary<string, ColumnExpression>();

При добавлении только значения Id запрос выполняется ок, запись сохраняется

При добавлении значения CreatedOn в формате [""\""2000-12-31T09:41:59\""""""""] (без экранирующих символов) после сериализации в JSON получается объект (во вложении) со следующим значением CreatedOn (с экранирующими символами)

"CreatedOn": {
                "ExpressionType": 2,
                "Parameter": {
                    "DataValueType": 7,
                    "Value": "\"\"\\\"\"2019-07-28T07:31:02\\\"\"\"\"\"\"\"\"",
                    "ShouldSkipConvertion": false
                },
                "FunctionType": 0,
                "MacrosType": 0,
                "DatePartType": 0,
                "AggregationType": 0,
                "AggregationEvalType": 0
            }

Вызов BPM DataService/json/reply/InsertQuery возращает ошибку формата JSON

HttpStatusCode: 500
 HttpResponseText: {"responseStatus":{"ErrorCode":"JsonReaderException","Message":"Additional text encountered after finished reading JSON content: \\. Path '', line 1, position 2.","Errors":[]},"rowsAffected":-1,"nextPrcElReady":false,"success":false}
 

Запрос JSON валидируется без ошибок.

Пробовал разные варианты формата, в ответ код JsonReaderException и текст ошибки те же, с отличием в position

Просьба подсказать, где ошибаюсь, и привести пример правильного значения даты после сериализации JSON

Спасибо

 

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

У меня такой же вопрос

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

Открыл Fiddler, записал контакту дату рождения, видно такой формат:

"Date":{  
   "expressionType":2,
   "parameter":{  
      "dataValueType":8,
      "value":"\"2001-07-08T11:46:07.000\""
   }
}

А вообще, при вставке как в таблицы разделов, так и деталей значения CreatedOn и ModifiedOn не передаются, как видно в том же Fiddler. Видимо, при пустом значении сервер сам подставляет текущую дату. Например, запрос на вставку на деталь знаменательных событий целиком:

{  
   "rootSchemaName":"ContactAnniversary",
   "operationType":1,
   "columnValues":{  
      "items":{  
         "Id":{  
            "expressionType":2,
            "parameter":{  
               "dataValueType":0,
               "value":"d5094019-1d92-4fc1-ac03-bbcf620a56c9"
            }
         },
         "CreatedBy":{  
            "expressionType":2,
            "parameter":{  
               "dataValueType":10,
               "value":"410006e1-ca4e-4502-a9ec-e54d922d2c00"
            }
         },
         "Contact":{  
            "expressionType":2,
            "parameter":{  
               "dataValueType":10,
               "value":"93a1c457-c22f-48a9-9f7f-65f1dd99dff3"
            }
         },
         "AnniversaryType":{  
            "expressionType":2,
            "parameter":{  
               "dataValueType":10,
               "value":"173d56d2-fdca-df11-9b2a-001d60e938c6"
            }
         },
         "Date":{  
            "expressionType":2,
            "parameter":{  
               "dataValueType":8,
               "value":"\"2019-07-08T11:46:07.000\""
            }
         }
      }
   }
}

 

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

Коллеги, привет. 

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

1) какой объект отвечает за эту кнопку, что использовать при разработке БП? 

При нажатии этой кнопки отправить уведомление пользователям 

2) Для отправки системных уведомлений на группу в коммьюнити рекомендовали создать канал и подписать на него сотрудников.

Что использовать в BPMN SD? 

У меня такой же вопрос

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

Что такое «BPMN SD» и «отправка системных уведомлений на группу в коммьюнити»?

По поводу кнопки, это EmailProcessedButton в схеме CommunicationPanelEmailSchema, а её обработчик setIsNeedProcessFalse находится в схеме EmailItemSchema. Это всё клиентская логика на JS, а не бизнес-процессы.

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

Всем добрый день. Версия 7.12.

В системе реализовано открытие мини-карточек для просмотра подробных данных, с помощью стандартных вызовов такого типа:

this.openMiniPage({
	recordId: Terrasoft.GUID_EMPTY,
	operation: Terrasoft.ConfigurationEnums.CardOperation.ADD,
	entitySchemaName: "UsrInvoice",
	valuePairs: defaultValues,
	isFixed: true,
	showDelay: 0,
	miniPageSchemaName: "UsrInvoicePage",
});

Схема самой мини-карточки наследуется от BaseMiniPage, вызов происходит в стандартной схеме карточки или детали.

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

В чём может быть причина? Возможно не хватает каких-нибудь параметров?

У меня такой же вопрос

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

Меня смущает параметр 

showDelay == 0

Это время показа карточки до закрытия? Попробуйте его убрать или увеличить.

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

Но всё равно иногда закрывается сама собой.

В версии 7.11 при проставлении в поле миникарточки даты через открывающийся календарь происходило произвольное закрытие этой миникарточки.

Такое же поведение, то есть произвольное закрытие миникарточки, наблюдалось, когда пользователю отображается информационное окно showInformationDialog("Какой то текст"); и пользователь нажимает ОК.

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

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

Диалоговое окно поверх мини-карточки открывается нормально.

Карточки закрываются сами по себе без действий пользователя. Причём всегда одни и те же. Отсюда и вопрос - может быть, что т о в параметрах или содержимом карточки мешает?

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

Коллеги, вопрос решён с помощью добавления свойства ShowValueAsLink: false в параметрах справочных полей в diff.

Проблема была связана в целом со всплывающими мини-карточками https://academy.terrasoft.ru/documents/technic-sdk/7-14/sozdanie-mini-kartochki

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

Всем добрый день. Версия 7.12.

Вопрос - можно ли добавить фильтр на данные в справочнике?

Есть справочник 1, содержащий ещё две справочные колонки (2 и 3). Создавать отдельный раздел или деталь под справочник - ну можно, но они не нужны на практике. Тем не менее, можно ли сделать так, чтобы именно в разделе "Справочники" при заполнении данных справочника 1 можно было фильтровать значения одной справочной колонки (3) по другой (2)?

У меня такой же вопрос

1 комментарий
Лучший ответ

Добрый день.

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

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

После того, как Вы перелогинитесь в срм, данные в Вашем справочнике можно будет редактировать через карточку редактирования с учетом фильтров:

Добрый день.

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

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

После того, как Вы перелогинитесь в срм, данные в Вашем справочнике можно будет редактировать через карточку редактирования с учетом фильтров:

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

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

Версия продукта: 7.14.1.935
Bpm Online Service

Действую согласно статье с академии:
https://academy.terrasoft.ru/documents/technic-sdk/7-14/polzovatelskaya…

В результате фильтрация нежелательных писем все равно не работает и происходит создание обращений по всем письмам.
Могло ли что-то поменяться в 7.14 версии? Возможно учитывать дополнительно какие-то методы?

Значения системных настроек:
1) Состояние нежелательных обращений по умолчанию
Установлен статус = отменено (как и было из коробки)
2) Создавать обращения по нежелательным письмам
Флаг не установлен (как и было из коробки). Полагаю, что это значит false.

У меня такой же вопрос

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

Если есть доступ к серверу, попробуйте отладиться, чтобы выяснить, срабатывает ли функция Check() в созданном для Вашей фильтрации классе, и правильный ли результат она возвращает. 

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

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

В рамках доработки по назначению задач на группы ответственных столкнулся с ситуацией, когда ответственный заполняется текущим пользователем по-умолчанию.
Отключил в объекте проверку на заполненность поля на уровне приложения.
Остается видимо еще дополнительная логика на уровне JS и C#, которая соответственно заполняет исполнителя при открытии карточки задачи в режиме создания и + при создании задачи логикой C# (при открытии карточки задачи уже после ее успешного создания поле все равно становится заполненным).
Просьба уточнить как снять заполнение поля на этих двух оставшихся шагах.

С уважением,
Кулиш Александр

У меня такой же вопрос

2 комментария
Лучший ответ

Добрый день!

Проверьте заполнено ли в EntityScheme в поле 'Ответственный' свойство 'Значение по умолчанию'. Если установлено, то нужно зайти в настройки данного свойства и выбрать вариант 'Не устанавливать значение по умолчанию'.

После этого нужно сохранить и опубликовать схему таблицы.

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

После этого перелогиниться в приложение и проверить заполняется ли поле 'Ответственный' в активностях.

Добрый день!

Проверьте заполнено ли в EntityScheme в поле 'Ответственный' свойство 'Значение по умолчанию'. Если установлено, то нужно зайти в настройки данного свойства и выбрать вариант 'Не устанавливать значение по умолчанию'.

После этого нужно сохранить и опубликовать схему таблицы.

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

После этого перелогиниться в приложение и проверить заполняется ли поле 'Ответственный' в активностях.

Алла Савельева,

Спасибо! Вопрос решен.

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