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

Создали первоначальную схему в которой есть метод обработки сообщений от бизнес-процесса. Далее создали замещающую схему на основе первой. В результате методы, кроме обработки сообщения от БП, выполняются замещенные. 

Метод инициализации в схемах:

init: function(){
  this.callParent(arguments);
  Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE, this.bpMessageListener, this);
}

При попытке отписаться и подписаться на сообщения так:

init: function(){
  this.callParent(arguments);
  Terrasoft.ServerChannel.un(Terrasoft.EventName.ON_MESSAGE, this.bpMessageListener, this);
  Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE, this.bpNewMessageListener, this);
}

в консоли браузера валятся ошибки:

all-combined.js:6 Uncaught TypeError: Cannot read property 'apply' of undefined
    at i.fire (all-combined.js:6)
    at i.continueFireEvent (all-combined.js:6)
    at i.fireEventArgs (all-combined.js:6)
    at i.fireEvent (all-combined.js:6)
    at i._translateDecodedMessage (all-combined.js:41)
    at i._channelMsgHandler (all-combined.js:41)
    at i.providerChannelMsgEventHandler (all-combined.js:41)
    at i.fire (all-combined.js:6)
    at i.continueFireEvent (all-combined.js:6)
    at i.fireEventArgs (all-combined.js:6)
fire @ all-combined.js:6
continueFireEvent @ all-combined.js:6
fireEventArgs @ all-combined.js:6
fireEvent @ all-combined.js:6
_translateDecodedMessage @ all-combined.js:41
_channelMsgHandler @ all-combined.js:41
providerChannelMsgEventHandler @ all-combined.js:41
fire @ all-combined.js:6
continueFireEvent @ all-combined.js:6
fireEventArgs @ all-combined.js:6
fireEvent @ all-combined.js:6
channelMsgHandler @ all-combined.js:41
(anonymous) @ all-combined.js:41

Как сделать так, чтобы обработка сообщений от сервера выполнялась замещенным методом?

Спасибо!

 

Нравится

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

На форме определенного объекта размещена кнопка "Создать актив".

По нажатию на кнопку вызывается метод, который открывает мини-карточку методом this.openMiniPage, туда подтягиваются defaultValues (поля из текущей карточки), создается другой объект.
 

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

 

Возможно, стоило бы заранее сформировать айдишник и заполнить им поле, но как быть, если объект не был в итоге создан? Неужели запрос для этого посылать перед заполнением?

 

Напрашивается организация колбэка, но не очень понятно как это провернуть со стандартным this.openMiniPage.

 

Просьба помочь с решением данной задачи.

 

Примерный код прикладываю:

 

//функция вызывается кнопкой
createAsset: function() 
{
    this.openMiniPage({
        recordId: Terrasoft.GUID_EMPTY,
        operation: Terrasoft.ConfigurationEnums.CardOperation.ADD,
        entitySchemaName: "NewObjectSchemaName", //схема создаваемого объекта
        valuePairs: this.getAddMiniPageDefaultValues(),
        miniPageSchemaName: "NewObjectMiniPage",
	});
    //далее требуется заполнить поле текущей карточки, что-то вроде
    //this.$Asset = newObjectId;
},

 

Нравится

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

А почему вы в процессе не хотите заполнить это поле?

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

В процессе нет информации об ID записи, из которой происходило нажатие на кнопку добавления

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

Добрый день! 

Подскажите, возможна ли авторизация пользователей с многофакторной аутентификацией?

Нравится

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

Я по этому поводу нашел всего одну статью 
https://community.terrasoft.ru/articles/dvuhfaktornaa-autentifikacia-v-…

 

Добрый день, Павел!

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

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

В Creatio реализована возможность авторизации через LDAP или с использованием SSO.

Спасибо, что помогаете делать наш продукт лучше!

С уважением,
Сидько Елена
Оператор
Группа компаний Terrasoft

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

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

При создании активности в шаге кейса, мне надо чтобы активность была обработана ответственным в заявке этого раздела. Но при попытке изменить с текущего пользователя на ответственного в заявке ничего не происходит. Тоесть, я кликаю на "Колонка текущей записи" текущего пользователя на  колонку основной записи и не появляется всплывающее окно с выбором колонки основной записи. В чем может быть проблема?

Спасибо.

Нравится

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

Похоже на баг.

Попробуйте прописать в формулу руками.

 

[#Основная запись.Ответственный#]

 

Где Ответственный - название (заголовок) вашего поля.

Артур Матюшок, добрый день!
Павел прав, очень похоже на баг. Проверьте нет ли ошибок в консоли браузера. Также, проверьте, воспроизведение на разных ПК.
Ручной ввод формулы тоже должен помочь.

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

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

Был ли у кого-то опыт размещения данного раздела на карточке? 

 

Нравится

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

Добрый день.

 

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

Пользовательских средств для реализации фильтра по умолчанию нет в коробке. Только разработкой.

 

Необходимо переопределить initQueryFilters
initQueryFilters: function(esq) {
                    this.callParent(arguments);
                    esq.filters.add("ConnectionType",
                            Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "ConnectionType",1));
                    }

 

Подобные вопросы рассматривались на портале, ссылки ниже:

https://community.creatio.com/questions/how-filter-section-list-records…

https://community.terrasoft.ru/questions/kak-predustanovit-uslovie-v-fi…

https://community.terrasoft.ru/questions/vidimost-sotrudnikov-v-kontakt…

https://community.creatio.com/questions/default-filter-section

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

Вы можете подсмотреть реализацию тут:
DocListInConditionPageV2
Там увидите подключение контейнера FilterProperties, в который подгружается FilterEditModule

Литвинко Павел,

Видимо, в текущей версии нет этого файла :( не могли бы поделиться его листингом?

Вадим Курунов пишет:

define("DocListInConditionPageV2", ["FilterEditModule"],
	function() {
		return {
			entitySchemaName: "DocListInCondition",
			attributes: {
				/**
				 * Filtration object schema name.
				 */
				"FilterEntitySchemaName": {
					"dataValueType": this.Terrasoft.DataValueType.TEXT,
					"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
					"dependencies": [{
						"columns": ["DocumentListStage"],
						"methodName": "updateFilterModule"
					}]
				}
			},
			mixins: {},
			diff: /**SCHEMA_DIFF*/[
				{
					"operation": "insert",
					"name": "Document",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": Terrasoft.DataValueType.LOOKUP,
						"value": {"bindTo": "Document"},
						"layout": {
							"column": 0,
							"row": 0,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "DocListGroup",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": this.Terrasoft.DataValueType.ENUM,
						"value": {"bindTo": "DocListGroup"},
						"layout": {
							"column": 0,
							"row": 1,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "DocumentListStage",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": Terrasoft.DataValueType.ENUM,
						"value": {"bindTo": "DocumentListStage"},
						"layout": {
							"column": 0,
							"row": 2,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "ParticipantRole",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": Terrasoft.DataValueType.ENUM,
						"value": {"bindTo": "ParticipantRole"},
						"layout": {
							"column": 0,
							"row": 3,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "DocumentType",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": Terrasoft.DataValueType.ENUM,
						"value": {"bindTo": "DocumentType"},
						"layout": {
							"column": 0,
							"row": 4,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "SysModuleReport",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": Terrasoft.DataValueType.LOOKUP,
						"value": {"bindTo": "SysModuleReport"},
						"layout": {
							"column": 0,
							"row": 5,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "IsRequired",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"layout": {
							"column": 0,
							"row": 6,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "FilterProperties",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"id": "FilterProperties",
						"itemType": Terrasoft.ViewItemType.CONTAINER,
						"items": [],
						"layout": {
							"column": 15,
							"row": 0,
							"colSpan": 9,
							"rowSpan": 12
						}
					}
				},
				{
					"operation": "remove",
					"name": "actions"
				}
			]/**SCHEMA_DIFF*/,
			messages: {
				/**
				 * Subscription on filter change.
				 */
				"OnFiltersChanged": {
					mode: Terrasoft.MessageMode.BROADCAST,
					direction: Terrasoft.MessageDirectionType.SUBSCRIBE
				},
 
				/**
				 * Subscription on receiving of filter module configuration object.
				 */
				"GetFilterModuleConfig": {
					mode: Terrasoft.MessageMode.PTP,
					direction: Terrasoft.MessageDirectionType.SUBSCRIBE
				},
 
				/**
				 * Publishing message about setting filter module.
				 */
				"SetFilterModuleConfig": {
					mode: Terrasoft.MessageMode.BROADCAST,
					direction: Terrasoft.MessageDirectionType.PUBLISH
				}
			},
			methods: {
 
				/**
				 * Returns Id of filtration module.
				 * @protected
				 * @return {String} Filtration module Id.
				 */
				getFilterEditModuleId: function() {
					return this.sandbox.id + "_ExtendedFilterEditModule";
				},
 
				/**
				 * Loads filter module.
				 * @protected
				 */
				loadFilterModule: function() {
					var moduleId = this.getFilterEditModuleId();
					this.sandbox.subscribe("OnFiltersChanged", this.onFiltersChanged, this, [moduleId]);
					this.sandbox.subscribe("GetFilterModuleConfig", this.onGetFilterModuleConfig, this, [moduleId]);
					this.sandbox.loadModule("FilterEditModule", {
						renderTo: "FilterProperties",
						id: moduleId
					});
					this.set("FilterModuleLoaded", true);
				},
 
				/**
				 * Sets FilterConfig by filter that was received from filtration module.
				 * @param {Object} args Object with serialized filter.
				 * @protected
				 */
				onFiltersChanged: function(args) {
					this.hideBodyMask();
					this.setFilterConfig(args.serializedFilter);
				},
 
				/**
				 * Sets field FilterConfigand flag HasFilters in objects.
				 * @param {String} serializedFilter Serialized filter.
				 * @private
				 */
				setFilterConfig: function(serializedFilter) {
					this.set("FilterConfig", serializedFilter);
					var filters = this.Terrasoft.deserialize(serializedFilter);
					this.set("HasFilters", this.Ext.isEmpty(filters) ? false : filters.getCount() > 0);
				},
 
				/**
				 * Returns config for filtration module.
				 * @protected
				 * @return {Object} Cofiguration object.
				 */
				onGetFilterModuleConfig: function() {
					return {
						rootSchemaName: this.get("FilterEntitySchemaName"),
						filters: this.get("FilterConfig")
					};
				},
 
				/**
				 * Unloads filter module.
				 * @protected
				 */
				unloadFilterModule: function() {
					var moduleId = this.getFilterEditModuleId();
					this.sandbox.unloadModule(moduleId);
					this.set("FilterModuleLoaded", false);
				},
 
				/**
				 * Creates Terrasoft.EntitySchemaQuery instance for receiving SysEntitySchemaName of FilterEntity that
				 * is specified in DocumentListStage record.
				 * @protected
				 * @return {Terrasoft.EntitySchemaQuery} Terrasoft.EntitySchemaQuery instance with initialized
				 * rootSchemaName and columns
				 */
				getEsqForInitFilterEntityByDocListStage: function() {
					var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
						rootSchemaName: "DocumentListStage"
					});
					esq.addColumn("FilterEntity.SysEntitySchemaName", "FilterEntitySchemaName");
					return esq;
				},
 
				/**
				 * Initializes FilterEntitySchemaName property depending on the DocumentListStage property and calls
				 * callback function.
				 * @protected
				 * @param {Function} callback The callback function.
				 * @param {Object} scope The scope of callback function.
				 */
				initFilterEntity: function(callback, scope) {
					var docListStage = this.get("DocumentListStage");
					if (docListStage && docListStage.value) {
						this.initFilterEntityByDocListStage(docListStage.value, callback, scope);
					} else {
						this.set("FilterEntitySchemaName", null);
						this.Ext.callback(callback, scope);
					}
				},
 
				/**
				 * Receives SysEntitySchemaName of FilterEntity that is specified in DocumentListStage record,
				 * sets is to FilterEntitySchemaName property and calls callback funcion.
				 * @protected
				 * @param {Guid} docListStageId Id of document list stage record.
				 * @param {Function} callback The callback function.
				 * @param {Object} scope The scope of callback function.
				 */
				initFilterEntityByDocListStage: function(docListStageId, callback, scope) {
					var esq = this.getEsqForInitFilterEntityByDocListStage();
					esq.getEntity(docListStageId, function(result) {
						var entity = result.success ? result.entity : null;
						this.initFilterEntityByDocListStageCallback(entity);
						this.Ext.callback(callback, scope);
					}, this);
				},
 
				/**
				 * Processes result of query in initFilterEntityByDocListStage method.
				 * @protected
				 * @param {Object} entity Object with entity that returned by query.
				 */
				initFilterEntityByDocListStageCallback: function(entity) {
					var entitySchemaName = !this.Ext.isEmpty(entity)
						? entity.get("FilterEntitySchemaName")
						: null;
					this.set("FilterEntitySchemaName", entitySchemaName);
				},
 
				/**
				 * Updates filter module. Clears filter if filter object is changed.
				 * @protected
				 * @param {Function} callback The callback function.
				 * @param {Object} scope The scope of callback function.
				 */
				updateFilterModule: function(callback, scope) {
					this.showBodyMask();
					this.initFilterEntity(function() {
						var filterEntitySchemaName = this.get("FilterEntitySchemaName");
						if (this.Ext.isEmpty(filterEntitySchemaName)) {
							if (this.get("FilterModuleLoaded")) {
								this.setFilterConfig(null);
								this.unloadFilterModule();
							}
							this.hideBodyMask();
						} else if (!this.get("FilterModuleLoaded")) {
							this.loadFilterModule();
						} else {
							var config = this.get("IsEntityInitialized") ? null : this.get("FilterConfig");
							this.setFilterModuleConfig(filterEntitySchemaName, config);
						}
						this.Ext.callback(callback, scope);
					}, this);
				},
 
				/**
				 * Publishes message SetFilterModuleConfig for filtration module.
				 * @param {String} entitySchemaName Name of object that conditions will be setting for.
				 * @param {String} filterConfig Serialized filter.
				 * @protected
				 */
				setFilterModuleConfig: function(entitySchemaName, filterConfig) {
					var moduleId = this.getFilterEditModuleId();
					this.sandbox.publish("SetFilterModuleConfig", {
						rootSchemaName: entitySchemaName,
						filters: filterConfig
					}, [moduleId]);
				},
 
				/**
				 * @inheritdoc Terrasoft.BasePageV2#onEntityInitialized
				 * @overridden
				 */
				onEntityInitialized: function() {
					this.callParent(arguments);
					this.updateFilterModule();
				},
 
				/**
				 * @inheritdoc Terrasoft.BasePageV2#onDiscardChangesClick
				 * @overridden
				 */
				onDiscardChangesClick: function() {
					if (this.isNew) {
						this.sandbox.publish("BackHistoryState");
						return;
					}
					this.set("IsEntityInitialized", false);
					this.loadEntity(this.get("Id"), function() {
						this.updateButtonsVisibility(false, {
							force: true
						});
						this.initMultiLookup();
						this.updateFilterModule(function() {
							this.set("IsEntityInitialized", true);
							this.discardDetailChange();
						}, this);
					}, this);
					if (this.get("ForceUpdate")) {
						this.set("ForceUpdate", false);
					}
				}
			}
		};
	});

 

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

Коллеги, используем решение на windows, хотел протестировать studio на платформе linux+postgres, есть прямая ссылка на дистрибутив?

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

Нравится

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

Добрый день,

 

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

 

 

С уважением,
Кучер Виталина
Оператор
Группа компаний Terrasoft

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

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

 

".. происходит на карточке активности фильтрация поля "Результат" по полю "Категория"

Категория: Визирование, Запрос мнений, подписание, ознакомление

Результат соответственно к категории по порядку:

  • Согласовано
  • Не согласовано
  • Согласовано с учетом замечаний
  • Завершено ввиду прекращения процесса согласования

 

  • Согласовано
  • Не согласовано
  • Согласовано с учетом замечаний
  • Завершено ввиду прекращения процесса согласования

 

  • Подписан
  • Не подписан

 

  • Ознакомлен

Нравится

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

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

 

Для добавления фильтрации поля "Результат" по полю "Категория"на странице редактирования первым делом в системе необходимо добавить соответствующие  справочники и вывести на страницу редактирования справочные поля в мастере раздела:
1. Добавить поле Категория со ссылкой на справочник Категории:

1. Добавить поле Результат со ссылкой на справочник Результат:


Детальнее в статье описан процесс:https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/250/sozdat_novyy_spravochnik
Далее необходимо в объекте справочника "Результат" добавить справочное поле связи "Категорией". В поле Категория в справочнике Результат нужно указать зависимость между двумя значениями. То есть задать какой Результат относиться к определённой Категории.
Добавление поля в объект справочника "Результат" можно провести через управления конфигурации:
1. Перейдите в раздел "Управления конфигурацией".
2. Найдите созданный объект "Результат" в пакете Custom.

3. Откройте объект.
4. Добавьте справочное поле на объект "Категория" и сохраните изменения.

5. Опубликуйте объект и дождитесь полного завершения процесса публикации.

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

Когда условие зависимости настроено вы можете переходить к настройке правила для фильтрации Результата относительно указанной Категории. Для этого вы можете воспользоваться функциональностью бизнес-правил. Детальнее описано по ссылке:https://academy.terrasoft.ru/docs/user/kastomizacija_no_code/nastrojka_biznes_logiki/nastroyka_biznes_logiki/nastroit_filtraciyu_znacheniy_v_spravochnom_pole
Пример,

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

Добрый день!

При развертывании стенда Creatio верси 7.17.3.1377_ServiceEnterprise_Softkey_PostgreSQL_ENU

После нажатия кнопки "Компилировать" получаю ошибку
"Errors occurred while compiling configuration. See logs for more details"

 

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

 

В логах по адресу C:\Windows\Temp\Creatio\IT4IT MVP 2\0\Log\2021_07_16
ошибка не обнаружена.

Установлены соответствующие компоненты 

microsoft .NET CORE SDK 3.1.301
microsoft .NET FrameWork 4.7.2 SDK

Настройка проведа по инструкции.

Ошибка как в данном посте https://community.creatio.com/questions/error-compilation

Нравится

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

Дмитрий,

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

 

https://dotnet.microsoft.com/download/thank-you/net472-developer-pack

https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-2.2.402-windows-x64-installer

https://support.microsoft.com/en-us/help/4054531/microsoft-net-framework-4-7-2-web-installer-for-windows

Олег Нефедьев,

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

Дмитрий Вавринюк,

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

 

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

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

Добрый день

Возникла сложность в переносах строк из поля Notes при печати отчета в FastReport.

так выглядит в приложении

Так выглядит в БД, если делать выбор в текст

Обратываю в FastReport

Cell24.Text = ((String)Report.GetColumnValue("EPMAccountChk.EPMNotes"))
.Replace("<div>","")
.Replace("</div>","")
.Replace("strong","b")
.Replace("em","i");

Сама ячейка имеет значение свойства TextRenderType = HtmlParagraph

Получаю на выходе

В принципе как в БД, не придраться, Но не так как на экране.

Если отключить мои замены и свойство TextRenderType перевести в Default, то вообще получаю полное соответсвие БД

Если свойство TextRenderType оставить равным HtmlParagraph, и не делать замен, то получим:

Если свойство TextRenderType сделать равным HtmlTags, и не делать замен, то получим:

Вопрос. Как сделать отображение как на экране в приложении? Как избавится от лишних переносов?

Нравится

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

Вам нужно удалить спец символы это перенос строки и каретку, как правило они обозначаются одним из следующих способов:
\n\r - C#
CHAR(10) и CHAR(13) - SQL
#10#13 - делфи если память не изменяет.

Посмотрите, что у вас в fastreport используется и добавить replace спец символа в ваш код 

Литвинко Павел,

Это первое, что пробовал. Забыл написать об этом.

Ура! Нашел. Метод, "если не можешь найти что делать - пробуй все подряд" работает))

Начал заменять подряд все комбинации "\n\r", "\r\n", "\n", "\r". Нашел.  Это не \n\r как ожидалось, а просто \n. после первой и второй стоки \n\n, в конце просто \n. В итоге делаю следующее:

Cell24.Text = ((String)Report.GetColumnValue("EPMAccountChk.EPMNotes"))
	.Replace("<div>","")
	.Replace("</div>","")
	.Replace("strong","b")
	.Replace("em","i")
	.Replace("\n\n","<br>")
	.Replace("\n","");

и свойство TextRenderType = HtmlParagraph

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

После добавления в Конфигурации колонки (целое число) в объект с именем UsrMinTicketPrice в пакете Custom система не хочет сохраняться. Пишет:

Не удалось обновить структуру для схем:

UsrRating, UsrRating, UsrRating, UsrRating, UsrRating

Нравится

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

Добрый день, 

Если попробовать выполнить обновления структуры БД по отдельности для каждой схемы из списка, какие ошибки возникают? 

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