Вопрос

Добрый субботний вечер!))

Есть у нас пакет, который сделан на Enterprise. Хотим его поставить на commerce.

В зависимости пакета  убираем SalesEnterprise пакет.

Добавляем зависимость от базовых пакетов Base, NUI, UIv2.
Но при удалении SalesEnterprise ошибка...  скрины

Что делаем ни так? 

Заранее спасибо!

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

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

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

На новом сайте попробуйте выполнить такой запрос:

delete from SysPackageDependency 
where SysPackageId = (select Id from SysPackage where Name = 'qrtHMS')
    and DependOnPackageId = (select Id from SysPackage where Name = 'SalesEnterpriseSoftkey_ENU')

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

Также на существующем сайте (там, где Вы пытаетесь через интерфейс убрать связь с пакетом) попробуйте выполнить это действие ещё раз, а потом после свала посмотреть логи приложения bpm'online.

Ошибка возникает именно при удалении?

Возможно, проблема заключается в том, что в Вашем пользовательском пакете есть схема или схемы, которые ссылаются на объекты, которые есть только в пакете SalesEnterprise.

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

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

 

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

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

Как можно узнать есть ли эти ссылки на пакет SalesEnterprise и если есть, то на какие объекты?

 

Елена К,

Определить схемы, в которых есть зависимость можно, выполнив такой запрос:

select SS.*
from SysSchema SS
   join SysSchema Parent on Parent.Id = SS.ParentId
where SS.SysPackageId = (select Id from SysPackage where Name = '<название Вашего пакета>')
    and Parent.SysPackageId = (select Id from SysPackage where Name = '<название пакета, на который могут ссылаться схемы>')

 

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

Алла, запрос 

select SS.*
from SysSchema SS
   join SysSchema Parent on Parent.Id = SS.ParentId
where SS.SysPackageId = (select Id from SysPackage where Name = 'qrtHMS')
    and Parent.SysPackageId = (select Id from SysPackage where Name = 'SalesEnterpriseSoftkey_ENU')

Запрос вернул 0 записей. Т.е. в нашем пакете нет ни одной схемы которая ссылается на SalesEnterpriseSoftkey_ENU.

Что думаете еще может быть?)

 

 

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

На новом сайте попробуйте выполнить такой запрос:

delete from SysPackageDependency 
where SysPackageId = (select Id from SysPackage where Name = 'qrtHMS')
    and DependOnPackageId = (select Id from SysPackage where Name = 'SalesEnterpriseSoftkey_ENU')

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

Также на существующем сайте (там, где Вы пытаетесь через интерфейс убрать связь с пакетом) попробуйте выполнить это действие ещё раз, а потом после свала посмотреть логи приложения bpm'online.

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

Предлагаю добавить в конфигурацию базовый пакет, который зависел бы от всех базовых пакетов системы (по аналогии с пакетом Custom), но позволял бы пользовательскому пакету добавить его в "Зависит от".
Т.о. при добавлении этого пакета в "Зависит от" клиентский пакет получает доступ ко всей функциональности системы без добавления большого числа пакетов в "Зависит от".

Пакет Custom так же может зависеть только от этого пакета и пользовательских пакетов.

 

Обсуждение
8 комментариев

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

Владимир Соколов,

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

 

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

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

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

Работа с зависимостями пакета не очень удобна.
И порой, когда пакет разработки нужно поставить Текущим пакетом вылазит много проблем при, например, работе с Мастерами разделов/деталей и приходится наследоваться от всех базовых пакетов (по примеру Custom).

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

Думаю, что на предложение реализации этой идеи однозначного ответа "Да" или "Нет" не существует.

Но я всё-таки за "Нет" - чем больше разрешений в системе, тем больше возможностей для ошибок.

Мотков Илья пишет:
Обратите внимание, что помимо Custom, новые пакеты нужно привязывать не ко всем предыдущим, а только к тем, чью функциональность нужно использовать в своём пакете

А как-то автоматизировать определения необходимости привязки к пакетам можно? 

Владимир, это потребует чего-то вроде полного синтаксического анализа CS и JS-кода всех схем в пакете. Вы можете реализовать такой механизм и опубликовать в Marketplace.

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

Добрый день!

На сервере svn создал новый branch, копию существующей главной ветки head. Вопрос, как настроить в bpmonline, чтобы при заливке в svn изменения фиксировались в эту новую ветку, а не в старую? При том, что хранилище одно и то же.

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

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

Добрый день, Дмитрий.

Для этого необходимо новую ветку выделить в отдельное хранилище и добавить его в список хранилищ в BPM'Online. Чтобы открыть список доступных хранилищ, на вкладке [Действия] в интерфейсе раздела [Конфигурация] нужно выбрать действие [Открыть список хранилищ].

Как настроить хранилище SVN

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

Здравствуйте, коллеги.

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

Вопрос: можно ли каким-то образом привязать эти печатные формы к пакету или придется наполнять печатные формы в релизе сначала.

Заранее спасибо!

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

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

Здравствуйте, Роман!

Печатные формы Word можно перенести, записи о них хранятся в объектах SysModuleReport, табличные части - в SysModuleReportTable. Достаточно заместить их в нужном пакете.

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

Объясните, пожалуйста, нужен ли и для чего сервер SVN в версиях 7.10-7.11?
Ведь разработка идет в пакеты?

Есть ли документация по настройке и работе с SVN для версий 7.10-7.11?

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

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

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

workspaceconsole

Настройка SVN

Терещенко Алексей,

А чем это лучше чем из интерфейса выгружать?

Vladimir Kov,

Рекомендуемая последовательность разработки - "Для переноса изменений между средами разработки необходимо обязательно использовать систему контроля версий (SVN)."

У меня несколько сред: разработка (DEV) и тестирование (Pre-Prod) . Мне удобно пакеты между ними таскать с помощью SVN.

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

 

Терещенко Алексей,

Спасибо Алексей.

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

Доброго времени суток. На данный момент я хочу разработать приложение на marketplace, но исходя из документации у меня возникло много вопросов.
Ситуация следующая
Если API определнного продукта, который будет возвращать список документов, при необходимости документы можно открыть в iframe отредактировать и так далее, после чего iframe закрываеться, документы храняться на нашем сервере и все манипуляции происходят на нашей стороне.

Идея заключаеться в том что бы сделать custom section (для sales, marketing и так далее) при переходе на которую будет делатся call на наш сервис и получаться список документов, или если человек не авторизирован, он должен пройти процес регистрации/авторизации на нашем ресурсе. после чего человек выбирает документ и смотрит какие действия он может сделать, скажем удалить, изменить, переименовать, загрузить новый.

Итак, следующие вопросы:

1) Для создания приложения достаточно сделать add package набросать туда элементы сделать экспорт и в панели разработчика закрепить архив на созданом приложении?
2) Можно ли кастомизировать отображение, а точнее сам layout что бы при нажатии на секцию было скажем две колонки левая хранит список документов, правая информацию о документе и действия с ним
Как-то так: http://joxi.ru/GrqgDLRFQKQyL2
3) Достаточно ли для таких целей использовать лишь bpmonline studio с js кодом?
4) Если есть необходимость хранить токены закрепленные за юзером, можно ли хранить их на стороне bpmonline, что бы каждый пользователь имел доступ к своему личному аккаунту нашей системы, если да то как.
5) Есть ли какие-то вебинары по разработке приложений для marketplace (знаю что скоро будет проходить, но возможно есть старые какие-то)
6) https://academy.bpmonline.com/documents/technic-sdkmp/7-9/developing-adv... - здесь в примере указан код из hook.io (последний сниппет), но как я понял код дожен быть в bpm studio который показывает как открыть iframe, это ошибка или я чего-то недопонял.
Заранее благодарю за ответ

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

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

Очень странный вопрос) В моей голове примерно такая схема:
1) Выбираешь свой префикс, добавляешь свой пакет и в нём ведёшь разработку.
2) Разрабатываешь что угодно, как угодно (главное чтобы работало). Мы в разработке и интерфейсы перепиливали, и виджеты сторонние вставляли и разделы новые добавляли. Все доработки ограничены лишь вашим воображением)
3) Коммитишь всё в маркетплейс. С тобой связывается аналитик террасофта, проверяет устанавливается ли пакет с доработками(+справочники, сист. настройки и т.п.) Вроде бы протом надо ещё презенташку продукта защитить, но тут я не уверен.

Конкретно по вашим пунктам:
1) Да
2) Да
3) Да
4) Можно использовать справочник, добавить туда поле(тип - зашифрованная строка), туда складировать пароль.
5) Не слышал. Да и чисто логически - чем разработка дополнений/расширений отличается от обычных добаботок по тз? Заказчик иногда такое хочет, что влезло бы в 2-3 маркетплейс-расширения :smile:
6) Тут вообще другой код. С документацией какая-то фигня происходит)

"Варфоломеев Данила" написал:

Очень странный вопрос) В моей голове примерно такая схема:
1) Выбираешь свой префикс, добавляешь свой пакет и в нём ведёшь разработку.
2) Разрабатываешь что угодно, как угодно (главное чтобы работало). Мы в разработке и интерфейсы перепиливали, и виджеты сторонние вставляли и разделы новые добавляли. Все доработки ограничены лишь вашим воображением)
3) Коммитишь всё в маркетплейс. С тобой связывается аналитик террасофта, проверяет устанавливается ли пакет с доработками(+справочники, сист. настройки и т.п.) Вроде бы протом надо ещё презенташку продукта защитить, но тут я не уверен.

Конкретно по вашим пунктам:
1) Да
2) Да
3) Да
4) Можно использовать справочник, добавить туда поле(тип - зашифрованная строка), туда складировать пароль.
5) Не слышал. Да и чисто логически - чем разработка дополнений/расширений отличается от обычных добаботок по тз? Заказчик иногда такое хочет, что влезло бы в 2-3 маркетплейс-расширения :smile:
6) Тут вообще другой код. С документацией какая-то фигня происходит)

Спасибо дружище))) А вот по поводу создание своего префикса, я его создаю в developers page а потом захожу на акк bpmonline там в online studio я делаю сождание пакета скажем qweTestPackage и в него набрасываю элементы? И еще там в доке написано что типа потом надо зайти в Section Wizard и добавить свою секцию, и уже там почему-то префикс стоит Usr и его нельзя сменить
http://joxi.ru/Y2L0OXwS9GEvq2, для пакета marketplace оно по другому создаеться?

"Nickstery" написал:префикс стоит Usr

Префиксы меняются в сист. настройке
pic

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

Доброго времени суток!
Прошу объяснить принцип установки пакета из репозитория.
Объясню причину данного обращения, есть около 7 пакетов которые были созданы нами и вот когда мы попытались засетапить их на другую среду (заранее проясню что их версии и сборки абсолютно идентичны), после выполнения необходимых первоначальных действий установки зависимостей пакетов друг от друга, генерации исходного кода компиляции, обновлении структуры базы данных и, наконец, установки данных мы получаем ряд ошибок связанных с отсутствием необходимых колонок, если быть конкретнее то справочных полей.
Когда смотрим в таблицу в БД обнаруживаем, что действительно, данных колонок там просто нету.
Так вот вся суть в чем, каким образом тогда выполняются этапы установки пакета и чем стоит пользоваться при их установке?
Это будет SVN или лучше с помощью workspace console?
Прошу более детально ответить на данный вопрос.
Данная функциональность разрабатывается в рамках проекта РусТехЭксперт.

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

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

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

Попробуйте выполнить установку пакетов по очереди, начав с первого по иерархии.
Установить его из SVN (+ выполнить генерацию исходного кода, компиляцию, обновлении структуры базы данных).

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

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

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

Здравствуйте, Михаил.

Прикрепите пожалуйста логи установки.

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

Добрый день.
Ситуация следующая:
Есть два замещающих объекта Case. Один находится в пакете для разработке. Второй - в пакете Custom. Возникла необходимость реализовать логику в casePage, затрагивающую поля из Case в пакете Custom. Но дилемма в том, что логика должна быть реализована в пакете для разработки.
Вопрос как перенести объект Case из Custom в пакет для разработки (слить два замещающих объекта), чтобы не затереть существующую логику, уже реализованную в Case пакета разработки?

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

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

Добрый день, Игорь!

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

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

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

Слияние необходимо выполнить для 2-х типов схем: EntitySchema и ClientUnitSchema

Рассмотрим слияние EntitySchema:

В объекте Case из пакета Custom добавлены кастомные колонки, которые Вы хотите перенести.
Открываем объект Case из пакета разработки на редактирование добавляем колонки, которые сейчас есть в объекте Case пакета Custom с такими же именами и соответствующими типами. Не закрывая дизайнер удаляем объект Case из пакета Custom и сразу сохраняем и публиуем объект Case, в который Вы переносили изменения.

Рассмотрим слияние ClientUnitSchema:

Сливать ClientUnitSchema намного сложнее, так как необходимо анализировать обе схемы и сливать их значение в одно. Для примера выполним сливание схемы ContactPageV2 из пакета Custom в схему ContactPageV2 из пакета разработки.

1.Открываем обе схемы в дизайнерах. Если посмотреть на содержимое схем, то можно заметить, что некоторые свойства объекта содержат значение (в данном случае diff). Пример на скриншоте "image2".
2. Дальше необходимо анализировать содержимое каждого элемента в diff-е.
3. Ищем совпадающие элементы по полям «opperation» и «name»
4.Анализируем значение полей свойства «values»:
- Если в новой версии такого поля нет, то добавляем
- Если в новой версии такое поле есть, то подменяем его значение
5. Если в схеме, в которую переносим данные, нет элементов с соответствующими полями «opperation» и «name», то переносим элемент целиком. Пример на скриншоте image3
6. Выполняем п.п. 3-5 для всех элементов объекта, который возвращает функция.
7. После переноса/слияния всех данных, схему из пакета Custom можно удалить.

Михаил, здравствуйте!
Спасибо за ответ!
Как раз таки слияние ClientUnitSchema не взывает затруднения.
А вот к EntitySchema есть вопросы. Не затрётся ли содержимое переносимых полей при реализации описанной схемы?

Добрый день, Игорь!
Описанный ранее метод слияния EntitySchema вполне рабочий и несколько раз сам его применял.
Если все делать согласно инструкции, то проблем быть не должно. Единственный совет, откройте данные объекты (который будете удалять и который будете изменять) в разных браузерах, так будет надежнее. Если у Вас есть предостережения, Вы можете протестировать на тестовой сборке.

Всё получилось. Спасибо.

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

Добрый день.
Переношу пакет с доработками 7.4 на 7.5 средствами SVN и MD файлами.
В процессе переноса выявлена, что для замещающих клиентских модулей ActPageV2,
CorrespondencePageV2 отсутствует родитель.
Как быть в этой ситуации? Как переносить доработки с версии на версию, если от версии к версии изменяются схемы ядра?

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

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

Здравствуйте, Игорь.

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

В утилите и пакетах обновления на версию 7.5 предусмотрен учет данного изменения.
Прошу детализировать проблему и описать шаги, которые выполнялись Вами в письме на адрес support@tscrm.com.

Постараемся Вам помочь.
Заранее спасибо.

Я переносил указанные доработки md-файлами на другую базу, т.к. обновление не предполагалось.
Предоставьте, пожалуйста, инструкцию по использованию утилиты для корректного переноса доработок.

Игорь, здравствуйте!

Вариантом решения Вашего вопроса будет выгрузить пакеты с доработками через WorkspaceConsole и накатить их на другую базу. Для этого:

1) Сначала важно указать параметры подключения к БД, которые будет использовать WsC. WsC использует строку подключения из конфигурационного файла Terrasoft.Tools.WorkspaceConsole.exe.config (должен находиться в каталоге с WsC).
В секции указывается используемая строка подключения
В секции указываются значения строк подключения к БД.
...............................................................

2) Выполнить 1, 3 и 4 пункты из прикреплённой инструкции.
3) Сделать выгрузку пакетов из первой базы с помощью WorkspaceConsole, запустив файл update.bat со следующими параметрами:
Terrasoft.Tools.WorkspaceConsole.exe -operation=SaveDBContent -workspaceName=Default -destinationPath=D:\Temp\Repository\ -contentTypes=Repository
4) Выполняем первый пункт, указав теперь путь к базе, на которую накатываются пакеты.
5) Выполняем полностью прикрепленную инструкцию. Накатятся пакеты с доработками на другую базу.

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

Спасибо!

Не будет ли конфликта при обновлении, т.к. необходимый пакет будет выгружен со всеми наследуемыми им пакетами, а эти пакеты в целевой BPM 7.5 уже есть?

Игорь, добрый день!

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

Спасибо!

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

В SDK bpm'online добавлена серия статей, посвященных вопросам работы с системой контроля версий и пакетами в версии 7.6.
Заходите на сайт Terrasoft Academy в раздел "Документация SDK" и узнайте как

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

Поделиться

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

Татьяна, это актуально для 7.8 ? Ссылки ведут вникуда сейчас.

Есть ли информация, как зафиксировать пакет в svn, если пакет был создан раньше чем настроен svn?

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