Вопрос

У меня есть .htm файл, который лежит на серваке. Мне нужно этот файл поставить вместо баннера на главной странице. В ссылке на страницу прописываю путь (file://10.221.8.110/c$/portal_message.htm), не работает. Пишу (10.221.8.110/c$/portal_message) - тоже не работает. 

Подскажите пожалуйста, как мне это сделать? Может нужно в IIS в определенную папку файлик положить, или еще что?

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

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

Протокол file — это ссылка на файл на локальном компьютере. Том, где запущен браузер.

В обсуждаемом случае нужно поднять на сервере IIS (или другой веб-сервер, например, Apache) и сделать файл доступным по HTTP или HTTPS с других компьютеров. И прописать адрес по этому протоколу.

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

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

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

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

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

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

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

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

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

Добрый день!

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

Добрый день!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Так же можно воспользоваться событийным слоем 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() в созданном для Вашей фильтрации классе, и правильный ли результат она возвращает. 

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