Update SysPackage
Set IsLocked = 0
Where [Name] = 'Имя пакета'

 

Нравится

Поделиться

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

Не совсем верно. На разблокировку (возможность редактировать пакет и схемы в пакете) влияют поля Maintainer (должно быть равно значению системной настройки "Издатель") и InstallType - (0 - разблокировано, 1 - заблокировано).

В большинстве случаев вам подойдет скрипт:

Update SysPackage
Set InstallType = 0, Maintainer = 'Customer'
Where [Name] = 'Имя пакета'

В своё время нам поддержка говорила делать ещё такой Update:

 

UPDATE SysSchema
SET
IsLocked = 0,
IsChanged = 0
WHERE SysPackageId = (Select id from SysPackage
where Name = 'Имя пакета');

 

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

Когда пытаюсь установить пакет , на новой среде, то выдает ошибку 
Конфликт инструкции INSERT с ограничением FOREIGN KEY "FKVJgxmU9tugUNJfIWHaADhTn9tE". Конфликт произошел в базе данных "ST_MENU_3503480_0906", таблица "dbo.SysCulture", column 'Id'. Выполнение данной инструкции было прервано.
Я пробовал методы из двух похожих тем, но не одна не помогла

Нравится

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

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

 

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

 

Если непонятно, о какой записи речь, можно записать неудавшийся запрос на вставку в профайлере и узнать её Id.

На версии 7.17.1 присутствует 19 строк.
Проверьте и дополните отсутствующие на своей БД.

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

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

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

 

Какие манипуляции необходимо выполнить для этого?

Нравится

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

Владимир, см. статью.

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

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

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

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

 

Для того что бы перенести признак деактивации процесса на другую среду необходимо к пакету привязать 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 среде не перетрут номер в продуктивной среде если не стоит галочка), так что если мыслить с такой точки зрения то логично. Но конечно было вы удобнее что бы создавалось уже с проставленными галочками принудительной перезаписи а не идти и менять руками при создании новых страниц

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

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

Ошибка обновления структуры таблицы для схемы "UsrRequestPos" из пакета "Verniy_Request_m_negriy". UId 18f0eb84-a642-4a7f-88c6-62e843da5a99: При выполнении действия обновления структуры схемы произошла ошибка "Exception of type 'Terrasoft.Core.DB.DBMetaActionValidationException' was thrown.", текст Sql сценария: "
SELECT
    CASE
    WHEN COUNT(*) > 0 THEN 0
    ELSE 1
    END [Result]
FROM
    [dbo].[UsrRequestPos] [ChildSchema]
WHERE
    NOT [ChildSchema].[UsrReqPosTypeId] IS NULL
    AND NOT EXISTS (
        SELECT
            *
        FROM
            [dbo].[UsrReqPosType] [ReferencedSchema]
        WHERE
            [ChildSchema].[UsrReqPosTypeId] = [ReferencedSchema].[Id]
    )"

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

Нравится

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

Проблема в том что не привязаны к пакету данные UsrReqPostType.

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

Добрый день! У вас срабатывает ограничение целостности по внешнему ключу. Т.е. отсутствуют записи UsrReqPostType, на которые ссылаюся записи UsrRequestPos. Исправьте базу, чтобы предложенный запрос возвращал 1

Проблема в том что не привязаны к пакету данные UsrReqPostType.

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

Григорий Чех,

Григорий Чех пишет:

Проблема в том что не привязаны к пакету данные UsrReqPostType.

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

Разработчик я. Подскажите, мне нужно добавить новый объект UsrReqPostType в пакет? Или добавить sql код? В общем как сделать привязку данных в справочник?

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

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

Mexanik,

Подробнее о привязке данных к пакету смотрите пост на Академии.

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

У меня имеется пакет установлен как и другие через репозиторий и он заблокировался каким-то образом. При попытке добавить файл выдает ошибку "Невозможно сохранить изменения элемента, так как пакет, в который он сохраняется, заблокирован другим пользователем". Попробовал поменять значения IsLocked и IsChanged в SysPackage, SysSchema. Привязанных данных нет. Почистил Redis, перезапускал Redis. Менял обратно значения. Ничего не помогает. Зафиксировать тоже не дает. Как такое лечить? Maintainer установлен также как в системных настройках. Другие пакеты в порядке

Нравится

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

Решил вопрос. Зашел через тортилку в repo-browser и снял блокировку с каждого файла в пакете. Сделал коммит в файловой системе, восстановил в БД из репозитория и там у пакета оказался maintainer прежним, до моего изменения. Не знаю почему так вышло, поменял maintainer как надо. всё работает

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

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

Имеется следующая проблема: Возникают различные ошибки при установке пакетов скачанных с marketplace. Устанавливаю стандартным способом, через интерфейс установки приложений в BPM. Например, установка валится на проверке зависимостей устанавливаемого пакета от пакетов в БД, или при выполнении sql скриптов установки справочных значений,  и т.д..

Вопрос: каким образом можно разобрать(распаковать) скачанный с marketplace пакет(приложение) на составляющие,  что-то поправить в нем и собрать обратно для загрузки на свой стенд BPM? Может есть инструкция(на академии не нашел) ?

Спасибо!

Нравится

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

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

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

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

Про marketplace понятно, что лучше обратиться к разработчику пакета. Но вопрос у меня в другом. Если например, стандартным способом выгрузить пакет из из системы, то он выгружается в архиве zip, а в нем архив gz, а в нем один файл. Вот вопрос - можно ли этот файл как-то открыть в VisualStudio например для редактирования?

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

Вот нашел, утилиту bpmcli

https://github.com/Advance-Technologies-Foundation/bpmcli  - может она умеет распаковывать пакеты?

Там упоминается команда:

Convert existing package to project

Convert package with name MyApp and MyIntegration, located in directory C:\Pkg

bpmcli convert -p C:\Pkg -n MyApp,MyIntegration

Convert all packages in directory C:\Pkg

bpmcli convert -p C:\Pkg

Её код — в файле PackageConverter.cs 

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

Да, уже попытался сделать этими командами, но получаю ошибку. Написал разработчикам...

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

Всем привет!

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

Сейчас стоит задача перенести все схемы и данные из объекта Custom в отдельный пакет, выгрузить его и дальше работать в отдельном пакете на локальной среде.

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

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

Просто вручную тыкать в каждый объект как-то не очень хочется (объектов больше 200)

Нравится

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

Владимир Соколов пишет:

Может, просто переименовать Custom? И создать новый Custom

 + Помимо переименования необходимо будет почистить системную настройку "Идентификатор пользовательского пакета" [CustomPackageUId], т.к. именно эта настройка отвечает за указание системного пакета.

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

Может, просто переименовать Custom? И создать новый Custom

Владимир Соколов пишет:

Может, просто переименовать Custom? И создать новый Custom

 + Помимо переименования необходимо будет почистить системную настройку "Идентификатор пользовательского пакета" [CustomPackageUId], т.к. именно эта настройка отвечает за указание системного пакета.

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

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

Клиент столкнулся с такой же ситуацией, начав разработку в Custom. Но переименование не помогает - при переносе пакета на production получаем ошибку, что такой Uid уже существует

Может, там действительно существует с таким же UId? Без подробностей сложно подсказать, где искать.

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

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

Есть пакет UsrPkg, который установлен как текущий пакет и все доработки хранятся в нем. пакет зависит от SalesEnterpriseSoftKey_RUS, SalesEnterpriseSoftKey, от пакета UsrPkg зависит Custom.

При попытке зафиксировать пакет UsrPkg в хранилище svn выходит ошибка "Пользовательский пакет не может быть зафиксирован в хранилище".
Я думала, что при попытке установки UsrPkg тянет за собой Custom, так как изначально в Custom были несколько доработок, но сейчас они удалены. перезапуск iis, очистка redis, очистка кэша проводились.
при открытии окна свойств пакета, где указаны название, версия и пр. для пакета usrPkg нет поля Хранилище системы контроля версий, для всех остальных пакетов это поле есть.
в базе данных у пакета usrPkg в поле sysrepositoryid прописан гуид нужного хранилища

Подскажите, пожалуйста, в чем может быть дело

Версия 7.10.0.1742

Нравится

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

Дополнительная информация: при открытии окна свойств пакета, где указаны название, версия и пр. для пакета usrPkg нет поля Хранилище системы контроля версий, для всех остальных пакетов это поле есть.
в базе данных у пакета usrPkg в поле sysrepositoryid прописан гуид нужного хранилища

Добрый день, Любовь.

Данное поведение пожет наблюдаться в случае если пакет UsrPkg указан в системной настройке [Идентификатор пользовательского пакета] (CustomPackageUId). В данной настройке должен быть указан пакет Custom.

Дополнительно прилагаю инструкцию по работе с пользовательскими пакетами (https://academy.terrasoft.ru/documents/technic-sdk/7-10/sozdanie-polzov…) и ссылку на статью об особенностях пакета Custom (https://academy.terrasoft.ru/documents/technic-sdk/7-10/paket-custom).

"Мария Ватулина" написал:Данное поведение пожет наблюдаться в случае если пакет UsrPkg указан в системной настройке [Идентификатор пользовательского пакета] (CustomPackageUId). В данной настройке должен быть указан пакет Custom

Большое спасибо! дело и правда оказалось в этом

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