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

Нравится

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

Это решается не привязкой данных, а SQL-скриптом.



Посмотрите, какие Id и SysSchemaId у вас на среде разработки и их вставьте в подобный запрос. А перед эти проверьте, нет ли у вас уже property 'Enabled' для данного процесса (схемы) на среде, куда будете переносить



INSERT INTO "SysSchemaUserProperty"

("Id","Name","Value","SysSchemaId")

VALUES 

('0a16d853-9e01-4544-8a6f-3ebde5d3bbed','Enabled',false,'4944ebb5-1881-46a9-85df-b93d092424ad')

ON CONFLICT DO NOTHING

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

Было создано ручками более сотни Привязок данных, автоматический более 500 штук с типом Данных в Конфигурациях. Кто-нибудь решал вопрос с актуализацией данных? Как массово их актуализировать? Во время разработки куча изменений и очень трудоемко каждый запись актуализировать отдельно.

Нравится

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

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

 

Как вариант, можно использовать разработку в файловой системе. Если выгрузить привязки в ФС, то с помощью любого продвинутого текстового редактора и регулярных выражений можно произвести массовые изменения по файлам привязок, а потом загрузить полученные файлы обратно в БД (ну или залить в SVN). Аналогичные манипуляции можно провести напрямую в БД (таблица SysPackageSchemaData), только в таком случае процесс будет еще более сложным.

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

Добрый день!

Подскажите, пожалуйста!

Что значит данное сообщение?

Поиском по документации не нашел.

 

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

Нравится

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

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

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

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

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

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

 

Удалось успешно привязать к данных

  • Доступ к объектам - SysEntitySchemaOperationRight
  • Операции - SysAdminOperation
  • Права на операции - SysAdminOperationGrantee

 

Однако

  • настройку прав на колонки SysEntitySchemaColumnRight
  • и настройку прав по умолчанию SysEntitySchemaRecordDefRight

добавить в пакет не получается - просто не даёт выбрать такие объекты.



Как лучше поступить для решения?

Нравится

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

Добрый вечер.

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

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

Есть даже пример таких скриптов для переноса этих настроек?

 

Или, может, Terrasoft сделает возможным перенос стандартными средствами? 

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

 

Реализовать перенос настроек организационной структуры и прав доступа из одного стенда на другой можно с помощью SQL-скриптов. Для этого на эталонной среде необходимо сформировать insert-запросы на основании записей со следующих таблиц:

  • SysAdminUnit (Объект администрирования: пользователи и роли)
  • SysUserInRole (Непосредственные вхождения пользователей в роли)
  • SysFuncRoleInOrgRole (Вхождение функциональной роли в организационную)
  • SysAdminOperation (Системные операции, если необходимо)
  • SysAdminOperationGrantee (Доступ к системным операциям, если необходимо)
  • SysEntitySchemaOperationRight (Доступ к объектам)
  • SysEntitySchemaRecordDefRight (Доступ к записям по умолчанию)
  • SysEntitySchemaColumnRight (Доступ к колонкам объекта)
  • SysAdminUnitGrantedRight (Делегирование)

Для формирования запросов можно воспользоваться Microsoft SQL Server Database Publishing Wizard и подобными инструментами. Полученный SQL-скрипт необходимо прикрепить к пакету (вкладка - «SQL-сценарии»).

Если перенос происходит на продуктивную среду, то мы рекомендуем предварительно сделать резервное копирование данных, и, в первую очередь, заливать пакет на тестовую среду, чтобы проверить результат выполнения скрипта. Эти работы необходимо выполнять не в бизнес-время.

Ещё очень интересное поведение заметили.



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



Какие процессы могут полностью сменить Id в этой таблице? И на что это может повлиять?

 

Может, компилировали объект? Актуализацию прав запускали?

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

Может, компилировали объект? Актуализацию прав запускали?

Да, компиляция же происходит после каждой установки новых пакетов (с того же Marketplace), насколько я понимаю.



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

 

1. Но как это влияет на настройки доступа по колонкам?



2. И как переносить последующие изменения в настройках доступа по колонкам, если по Id уже не понять, это те же настройки или уже другие?

Владимир, логика перераздачи прав не предусматривает сохранения Id записей. Вы можете предусмотреть в своих скриптах привязку не к Id, а к SysAdminUnitId, SubjectColumnUId и SubjectSchemaUId, они должны быть стабильными.

Говорят, в будущих версиях планируется новый механизм прав, там будет возможна привязка их к пакету.

 

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

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

1. По умолчанию к схеме данных добавляются только ID и поле для отображения.

т.о. при переносе на prod можно получить очень не приятный сюрприз.

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

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

3. Тип установки Первичная установка по идее полностью перекрывается типом Установка (это из старого)

 

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

Игорь, получена следующая информация от разработчиков по Вашим тезисам:

  1. Зафиксировано пожелание, будут отслеживаться обращения на эту тему;
  2. Старую логику с фильтрами возвращать не планируется;
  3. Типы установки полностью повторили по аналогии со старой версией.

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

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

Есть необходимость перенести данные справочника Tax , включая id,на препрод

Я спросил как это правильно сделать, и мне посоветовали создать замещающий объект, но при попытке публикации пишет , что Элемент с именем "Tax" не найден

Для исправления ошибки, пробовал советы из этой темы  https://community.terrasoft.ru/questions/oshibka-sokhraneniya-element-n…

А именно генерацию исходных кодов, просто вылетает страница с ошибкой

А при компиляции всего, вылетает Элемент с именем "Tax" не найден

Нравится

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

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

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

Если второе, то нужно не создавать объект или замещающий объект вручную, а переносить с сайта-источника готовую схему (или путём выгрузки в md-файл, или через SVN, или пакетами).

Объект Tax — стандартный, у Вас в нём есть какие-то доработки?

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

Как пенести на другую среду признак деактивации процесса в пакете?

 

Для того что бы перенести признак деактивации процесса на другую среду необходимо к пакету привязать sql-скрипт.Изображение удалено.

В элементе sql-скрипт необходимо добавить следующий запрос. Запрос должен соответствовать СУБД, с которой работает система, ниже пример запроса подходящего для MSSQL и PostgreSQL : 

INSERT INTO "SysProcessDisabled" ("Name", "SysSchemaId")
SELECT "Name","Id"
FROM "SysSchema"
WHERE "Name" IN ('Название процесса (важно! не заголовок)')

Пример скрипта деактивации процесса "Квалификация продажи v7.8.0"

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

 

Название процесса можно найти в дизайнере процесса.

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

 

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

Нравится

Поделиться

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

А у меня всё равно такие процессы исполняются... 

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

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

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

 И, к сожалению, стартуют по сигналу. А надо совсем отключить

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

Подскажите как забиндить настройку страниц в разделе? Это я так вижу таблица и должна отдельно от настройки раздела быть, но не как не найду ее. При сохранение настроек (нажатие "Сохранить" в настройках раздела) нужные данные не сохраняются в пакет, и при установке его на другую среду таблица со списком есть но вторая колонка (справа) пустая, данные не сохраняются в ней

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

Нравится

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

Александр Тыра,

1. Уточните, пожалуйста, версию bpm'online, в которой Вы выполняете настройки?

2. Я правильно понимаю, что при создании нескольких страниц редактирования, через мастер разделов, не выполняется автоматическая привязка данных об этих страницах в таблицу SysModuleEdit?

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

У нас был похожий опыт переноса дополнительных страниц редактирования для стандартных разделов году в 2018. На сколько я помню, все кастомные разделы с несколькими страницами редактирования переносятся нормально, а для стандартных разделов нужно выполнить это не привязкой данных, а SQL скриптом на целевой среде после переноса. Я попробую поискать вариант скрипта в архивах. Если найду - вышлю вам.



 

Нашел.

Необходимо добавить связь в таблицу SysModuleEdit. Детальнее можно почитать здесь. Нам помогло.

 https://community.terrasoft.ru/questions/rucnaa-registracia-razdela

Сидоров Александр Валерьевич,

Спасибо, как раз привязку делал через эту таблицу, но не могу найти колонку что отвечает за справочник (таблицу в которой значения на основе которых разные страницы прописываются)

Александр Тыра,

1. Уточните, пожалуйста, версию bpm'online, в которой Вы выполняете настройки?

2. Я правильно понимаю, что при создании нескольких страниц редактирования, через мастер разделов, не выполняется автоматическая привязка данных об этих страницах в таблицу SysModuleEdit?

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

Александр Тыра пишет:

не могу найти колонку что отвечает за справочник (таблицу в которой значения на основе которых разные страницы прописываются)

В таблице SysModuleEntity колонка TypeColumnUId.

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

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

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

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

Колонка TypeColumnUId заполнена у страниц, проверил на корректность. Но справочник (выделенное поле) не заполнен, и потому думаю не происходит установка значений из пакета (связка видимо не дает)

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

Думаю это оно и есть, просто уже перенес данные и думаю потому не вижу разницы, но вот думаю это оно. Спасибо большое

Александр Тыра,

Интересно, исправлено ли это в последней актуальной на текущий момент версии 7.15.4?

Алла, с версии 7.14.3 заведена проблема «Перенос пакетов. При переносе пакетами раздела с несколькими страницами редактирования настройка типизированных страниц не переносится - используемые значения справочников не переносятся пока для колонки  TypeColumnValue не установить признак Force Update», она ещё не решена.

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

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

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

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

Привязываю данные к пакету, нажимаю кнопку [Показать данные] - 'Всего записей: 7'.

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

Потом перехожу во вкладку 'Привязанные данные', нажимаю кнопку [Проверить данные] и вижу, что у меня отображается 'Всего записей: 5', хотя должно отображаться 7.

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

По какой причине могут не отображаться ещё 2 значения?

Нравится

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

Алла, добрый день.

На вашем первом изображении отображается 7 записей - это кол-во записей в вашем приложении, которые подходят по фильтру.

На втором изображении 5 записей - это те записи, которые уже привязаны и находятся в вашей привязке. 

Т.е. Если вы хотите чтобы в вашей привязке были все 7 записей, которые на данный момент находятся в вашем приложении, вам необходимо перепривязать (пересохранить) вашу привязку.

На втором скрине данные которые уже привязаны к пакету и находятся в свн, а на первом 5 записей, которые уже давно привязаны к пакету и находятся в свн + 2 записи, которые вы привязали но еще не залили в свн

Миннекаев Айдар,

В данном случае вообще не работаю с SVN.

Все 7 записей ранее не были привязаны к пакету.

Из-за этого потом не могу привязать все 7 записей в таблицу LookupInFolder, выдается сообщение, что 2 записи не добавлены и это как раз те 2 записи, которые не отображаются на второй вкладке.

Есть ещё какие-то варианты?

Была подобная проблема связанная с локализацией. Попробуйте привязать по ИД. А еще после установки приложения https://marketplace.terrasoft.ru/app/data-binding-tool процесс привязки данных стал в разры проще.

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

Алексей Следь пишет:

Была подобная проблема связанная с локализацией. Попробуйте привязать по ИД.

Какая именно проблема - можете подробнее написать? С привязкой по Id работает аналогично.

 

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

Может, что-то не так с локализацией этих значений, когда строковые значения на разных языках хранятся в разных таблицах

С локализацией вроде все в порядке. Все справочники создавались под одной локализацией и не переводились на другие языки.

Какие ещё могут быть варианты?

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

Алла, добрый день.

На вашем первом изображении отображается 7 записей - это кол-во записей в вашем приложении, которые подходят по фильтру.

На втором изображении 5 записей - это те записи, которые уже привязаны и находятся в вашей привязке. 

Т.е. Если вы хотите чтобы в вашей привязке были все 7 записей, которые на данный момент находятся в вашем приложении, вам необходимо перепривязать (пересохранить) вашу привязку.

P.Shvedun пишет:

вам необходимо перепривязать (пересохранить) вашу привязку.

 А каким образом это сделать?

Алла, причина и способ устранения могут быть аналогичными этой теме.

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

В этом посте идет речь об обновлении существующих записей, а у меня вообще-то совсем другая ситуация.

О переносе речь не идет, так как данные не привязываются.

Значит, нужно смотреть, в чём разница между теми записями, что привязались, и что нет.

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

Уже смотрела, но разницы не нашла. Можешь конкретнее написать, что следует проверить?

Но если внешне одинаковые записи в одном и том же справочнике ведут себя различно, значит они не совсем одинаковые, разница либо в полях, либо в наличии/отсутствии ссылок из других таблиц. Есть скрипты по поиску Guid по всей базе, может, по Id этих справочников будет что-то интересное?

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

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

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

Коллеги всем доброго времени суток!

При обновлении пакета из SVN возник ряд ошибок - http://prntscr.com/lo4cyk

Хотя подвязка данных к пакету была выполнена без ошибок - http://prntscr.com/lo4djshttp://prntscr.com/lo4e0u и т.д.

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

Благодарю.

Нравится

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

Черным же по белому написано Название таблицы и Название Констрента. Смотрим Констрент и поля что входят в данный Констрейнт. Делаем выборки по 2 таблицам и ищем недостающие ID, что есть в Пакете но нет в этих 2 таблицах в Полях что Описаны в Констрейнте. Заливаем новые ID через данные и выполняем новое обновление и все взлетит.

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

Черным же по белому написано Название таблицы и Название Констрента. Смотрим Констрент и поля что входят в данный Констрейнт. Делаем выборки по 2 таблицам и ищем недостающие ID, что есть в Пакете но нет в этих 2 таблицах в Полях что Описаны в Констрейнте. Заливаем новые ID через данные и выполняем новое обновление и все взлетит.

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