Добрый день!
Есть такой процесс в ITIL - процесс наполнения очередей единого окна,
который запускается автоматически ( когда пользователь в системе) каждые 5 минут ( в соответствии с указанным интервалом-системной настройкой "интервал обновления очередей единого окна")

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

Нравится

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

Здравствуйте, Дарья!

Эта логика прописана в самом процессе - перед завершением он записывает время своего следующего выполнения в планировщик, предварительно "посмотрев" на системную настройку.

Вот такой он бессмертный!

Добрый день, Александр!
Спасибо за секрет бессмертия))
Видела элемент в процессе "актуализировать задание планировщика"
UserConnection userConnection = context.UserConnection;
Terrasoft.Configuration.QueuesUtilities.UpdateQueuesTrigger(userConnection);
return true;

Но не поняла до конца, где находится сам планировщик, что он собой представляет в bpm? - (хотела бы записывать туда время выполнения еще одного процесса)

Здравствуйте, Дарья!
Александр Вам в этом случае не поможет - будет помогать Алексей.:smile:

Добавьте в задание-сценарий код:

string schedulerJobGroupName = "MyProcessGroup";//- Любое имя
string jobProcessName = "ProcessingEmail"; //- Название процесса
string schedulerJobName = "MyJobName"; //- Любое имя
int startOffset = 30; //- Количество секунд до старта
AppScheduler.RemoveJob(schedulerJobName, schedulerJobGroupName);
var job = AppScheduler.CreateProcessJob(schedulerJobName, schedulerJobGroupName, jobProcessName, UserConnection.Workspace.Name, UserConnection.CurrentUser.Name);
var trigger = new SimpleTriggerImpl(schedulerJobName + "Trigger", schedulerJobGroupName, DateTime.UtcNow.AddSeconds(startOffset));
AppScheduler.Instance.ScheduleJob(job, trigger);
return true;

Укажите в Usings Quartz.Impl.Triggers (с пустым псевдонимом), Quartz (с псевдонимом Quartz ), Terrasoft.Core.Scheduler (с пустым псевдонимом).

спасибо, Алексей))

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

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

спасибо, все получилось)

Добрый день, при использовании следующего кода

string schedulerJobGroupName = "MyProcessGroup";//- Любое имя
string jobProcessName = "ProcessingEmail"; //- Название процесса
string schedulerJobName = "MyJobName"; //- Любое имя
int startOffset = 30; //- Количество секунд до старта
AppScheduler.RemoveJob(schedulerJobName, schedulerJobGroupName);
var job = AppScheduler.CreateProcessJob(schedulerJobName, schedulerJobGroupName, jobProcessName, UserConnection.Workspace.Name, UserConnection.CurrentUser.Name);
var trigger = new SimpleTriggerImpl(schedulerJobName + "Trigger", schedulerJobGroupName, DateTime.UtcNow.AddSeconds(startOffset));
AppScheduler.Instance.ScheduleJob(job, trigger);
return true;

В 7.5 все работает нормально, в 7.7 выдает следующую ошибку
1
В чем может быть ошибка и как ее исправить?

Добрый день!

Пример добавления триггера в планировщик для версии 7.7:
var userConnection = Get("UserConnection");
string schedulerJobGroupName = "MyProcessGroup";//- Любое имя
string jobProcessName = "UsrTestScheduler"; //- Название процесса
string schedulerJobName = "MyJobName"; //- Любое имя
int startOffset = 20; //- Количество секунд до старта
AppScheduler.RemoveJob(schedulerJobName, schedulerJobGroupName);
var job = AppScheduler.CreateProcessJob(schedulerJobName, schedulerJobGroupName, jobProcessName, userConnection.Workspace.Name, userConnection.CurrentUser.Name);
var trigger = new SimpleTriggerImpl(schedulerJobName + "Trigger", schedulerJobGroupName, DateTime.UtcNow.AddSeconds(startOffset));
AppScheduler.Instance.ScheduleJob(job, trigger);
return true;

Добрый день!
При попытке использовать следующий код, который привел Олег

var userConnection = Get("UserConnection");
string schedulerJobGroupName = "MyProcessGroup";//- Любое имя
string jobProcessName = "UsrTestScheduler"; //- Название процесса
string schedulerJobName = "MyJobName"; //- Любое имя
int startOffset = 20; //- Количество секунд до старта
AppScheduler.RemoveJob(schedulerJobName, schedulerJobGroupName);
var job = AppScheduler.CreateProcessJob(schedulerJobName, schedulerJobGroupName, jobProcessName, userConnection.Workspace.Name, userConnection.CurrentUser.Name);
var trigger = new SimpleTriggerImpl(schedulerJobName + "Trigger", schedulerJobGroupName, DateTime.UtcNow.AddSeconds(startOffset));
AppScheduler.Instance.ScheduleJob(job, trigger);
return true;

Выдает следующую ошибку:
1

Олег,

Извиняюсь, глаз замылился;) Текст в треугольных скобках в комментах опускается.

Добрый день,
Подскажите реально ли поставить в планировщик БП передавая попутно параметры?

"Зарицкий Олег" написал:Пример добавления триггера в планировщик для версии 7.7:

Пора в документацию вставлять

Владимир, скоро появится.

"Зарицкий Олег" написал:

Владимир, скоро появится.

Здравствуйте! Каким образом можно в бизнес-процессе не только создавать триггер в планировщик, но и во всех активностях, где Завершение < DateTime.Now, устанавливать “Просроченная активность” = true?
(чекбокс “Просроченная активность” - пользовательское поле, созданное нами)

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

Используйте элемент "Изменить данные". В элементе "Изменить данные" Вам необходимо в поле "Просроченная активность" установить значение true.

В фильтре укажите "Завершение" <= "Текущий час" и "Завершение" <= "Сегодня".

"Демьяник Алексей" написал:

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

Используйте элемент "Изменить данные". В элементе "Изменить данные" Вам необходимо в поле "Просроченная активность" установить значение true.

В фильтре укажите "Завершение" <= "Текущий час" и "Завершение" <= "Сегодня".

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

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

"Демьяник Алексей" написал:

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

Планировщик на каждые, допустим, 5 минут + описанный вами процесс - единственно возможное решение кейса, Алексей? Или можете подсказать еще какое-то решение?

Здравствуйте!
Не получается в sales team 7.8 реализовать в бизнес-процессе, чтобы активности отмечались просроченными, если Завершение <= Текущие дата и время.

Бизнес-процесс состоит из элемента "Задание-сценарий" (там размещен код планировщика) и из элемента "Изменить данные активности", где Данные какого объекта изменить: Активность, а в фильтре указано, что менять нужно активности, у которых Состояние не равно "Завершена" И Завершение <=Текущие дата и время (Текущие дата и время - это параметр процесса со значением "[#Системная переменная.Текущее значение даты и времени#]").

Проблема: планировщик запускается с нужным интервалом, но меняет все незавершенные активности, игнорируя фильтр по дате завершения в элементе "Изменить данные активности". Что делаю неправильно?
Предложенный Алексеем вариант условия "Завершение" <= "Текущий час" и "Завершение" <= "Сегодня" также не работает.

Также пробовали в элементе "Изменить данные активности" в фильтре указывать условия:

Состояние не равно Завершена
И
Завершение<Текущие дата и время (где Текущие дата и время - параметр процесса со значением "[#Системная переменная.Текущее значение даты и времени#]").

С данными настройками процесс вообще перестал менять активности.

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

Добрый день!

Подскажите, пожалуйста, может кто-нибудь сталкивался с такой проблемой..

В системе есть объект Product (Продукт) и Tax (Налог). У продукта есть поле "Тип" (Type), и у налога тоже "Тип продукта" (UsrTypeProduct). То есть налог зависит от типа продукта.

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

Я попробовала сделать следующим образом (с помощью кода подстановки):

                attributes: {
                       
                        "Tax": {
                dependencies: [
                   {
                        columns: ["Product"],
                        methodName: "changeTax"
                   }
                ]
            },
                        "Product": {
                                 lookupListConfig: {
                                        columns: ["Type"]
                                }
                        }
                },
                methods: {
                       
                        changeTax: function() {
                                var Product = this.get("Product");
                                if (Product.Type.displayValue === "Спермопродукция") {
                                        var ProductType=Product.Type;
                                        var esq = Ext.create('Terrasoft.EntitySchemaQuery', {
                                                rootSchemaName: "Tax"
                                        });
                                        var self = this;
                                        esq.addColumn("Id");
                                        esq.addColumn("UsrTypeProduct");
                                        esq.filters.add("Id", Terrasoft.createColumnFilterWithParameter(
                                                Terrasoft.ComparisonType.EQUAL, "UsrTypeProduct", ProductType.value));
                                        esq.getEntityCollection(function(result) {
                                                if (result.success) {
                                                        Terrasoft.each(result.collection.getItems(), function(item) {
                                                                self.set("Tax", item.get("Id"));
                                                        });
                                                }
                                        });
                                }
                        }
                }

Но в поле "Налог" подставляется undefined, он не может однозначно определить налог как я понимаю.

Сюда больше подходит фильтрация скорее всего, но хотелось бы, чтобы сразу подставлялось значение в список.

Нравится

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

Настя, попробуйте добавить в esq вместо колонки "UsrTypeProduct" колонку "Name". Колонку типа продукта добавлять нет необходимости, так как она нужна Вам только для фильтрации.

Результат запроса попробуйте сохранять в атрибут схемы в виде:

self.set("Tax", {
	value: item.get("Id"),
	displayValue: item.get("Name")
});

Спасибо! Так все работает!)

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

Добрый день!
Скажите, пожалуйста, где в 7.6 itil заполняется контактом текущего пользователя при создании карточки обращения поле ответственный
в 7.5. было непосредственно в объекте case, а где в 7.6?

Нравится

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

Проставляется значение по умолчанию из системной переменной [Контакт текущего пользователя].
Пакет CaseITIL, объект Case, колонка Owner. Это и по умолчанию, и при сохранении.

это в 7.5 было так
в 7.6 по-другому
в 7.6 - только по умолчанию, и где проставляется - не могу найти

В 7.6 логика на объекте была убрана.
Сейчас логика присутствует на карточке CasePage пакета CaseService в методе setOnwer:
/**
* Устанавливает ответственного для нового обращения.
* @protected
*/
setOwner: function() {
var isPortalUser = Terrasoft.CurrentUser.userType === Terrasoft.UserType.SSP;
if (this.isNew && !isPortalUser) {
this.set("Owner", Terrasoft.SysValue.CURRENT_USER_CONTACT);
}
}

спасибо

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

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

EXEC [dbo].[tsp_RegisterSection]
@ModuleCaptionRus = N'[Значение для колонки Caption в русской локализации]',
@ModuleCaptionEng = N'[Значение для колонки Caption в английской локализации]',
@ModuleName = N'SectionModule',
@ModuleSchemaName = N'[Название страницы раздела]',
@ModuleEntityName = N'[Название объекта раздела]',
@ModuleHeaderRus = N'[Заголовок страницы раздела в русской локализации]',
@ModuleHeaderEng = N'List of [Заголовок страницы раздела в английской локализации]',
@ModulePosition = -1,
@TypeColumnName = '[Название колонки типа объекта]'

Здесь, если я не добавляла страницу раздела и не создавала новый объект для раздела что мне следует писать в @ModuleSchemaName = N'[Название страницы раздела]',
@ModuleEntityName = N'[Название объекта раздела]',

Спасибо!

Нравится

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

Здравствуйте, Сабина!

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

Нет, раздел есть. Объекта нету.
Этому разделу при открытии передаются Id.
А в разделе отображаются и контакты и активности.
Как на прикрепленной картинке.

Как вы считаете, что правильнее создавать для этого раздел или страницу?

Спасибо

Сабина, раздел это и есть страница редактирования.
У каждого раздела/страницы редактирования/детали есть объект. У одного объекта может быть несколько страниц редактирования.

Если судить по картинке, то это участники активностей с Вашей стороны и со стороны клиента, а также все активности, которые были. (это на уровне предположения)
В системе уже реализованы подобные детали - "Участники активности" ("Участники продажи") и деталь "Активности" в разделе "Продажи".

Что должен отображать созданный раздел?

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

Здравствуйте, Сабина!

Для изменения прав доступа в системе реализован соответствующий элемент бизнес-процесса "Изменение прав доступа".

Вашу задачу попробуйте реализовать процессом.

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

Добрый день,
Возникла необходимость добавить кнопку звонка к полю, аналогично детали "Средства связи"
1
Как подобное возможно реализовать?

Нравится

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

Здравствуйте.
Добавление кнопки на примере кнопки позвонить описан на форуме:
http://www.community.terrasoft.ru/forum/topic/11933#comment-51756

"Клименко Николай" написал:

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

Добавление кнопки на примере кнопки позвонить описан на форуме:

http://www.community.terrasoft.ru/forum/topic/11933#comment-51756


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

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

В противном случае проще добавить кнопку в требуемый Вам контейнер путем добавления стандартного кода:
diff: {

{
"operation": "insert",
"name": "UsrCommentButton",
"values": {
"caption": "Button",
"click": "call",
"itemType": Terrasoft.ViewItemType.BUTTON,
"style": Terrasoft.controls.ButtonEnums.style.BLUE,
"layout": {"column": 0, "row": 0, "colSpan": 2}
},
"parentName": "Header",
"propertyName": "items",
},

}

Пример использования нажатия кнопки можно посмотреть в CTIBaseCommunicationViewModel функцией onLinkClick: function() которая отправляет сообщение "CallCustomer", c параметрами: номер, идентификатор абонента и название объекта (Контакт или Контрагент).
Данное описание было Вам предоставлено ранее:
http://www.community.terrasoft.ua/forum/topic/12519

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

Добрый день, уважаемое сообщество!

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

Поразмыслив, решили, что это получается отрэндеренный раздел но только по сути на вкладке другого раздела. На данном этапе это не связанные объекты по колонкам, но в перспективе по "Маршрутам" будут создаваться "Активности".

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

Буду признателен за совет! Возможно кто-то уже сталкивался с подобного рода задачами.
Спасибо!!!

Нравится

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

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

Если в дальнейшем Вам придется создавать активности по маршрутам, следует создать отдельно раздел маршруты который будет работать с объектом маршрут. Далее добавить кнопку в тот раздел из которого будет выполняться переход в раздел Маршруты (например в ActivitySectionV2). Представления привязаны к объекту. Следует учитывать, что кнопка будет выполнять исключительно функцию перехода, так как будет работать с другим объектом.

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

Подскажите, пожалуйста, ещё - как добавлять колонки в существующие родительские и базовые объекты?

Нравится

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

Здравствуйте, Евгений!

Для этого в системе можно создавать замещающие объекты. Подробнее Вы можете ознакомиться в документации http://academy.terrasoft.ru/documents/docs/technic/SDK/7.6.0/SectionCon….

Цитирую:
"Если вам необходимо внести изменения в объект или страницу, которые являются частью базового пакета, в меню [Добавить] выберите [Замещающий объект] либо [Замещающая страница] соответственно, и в свойствах созданной схемы в поле [Родительский объект] или [Родительская страница] укажите схему, которую следует замещать в текущем пакете."

То есть, Вы можете создать замещающий объект и добавить в него желаемые колонки.

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

При создании новой задачи СРМ дает возможность отправить сообщение (выскакивает в окошке). Если согласиться, то ответственному сотруднику на e-mail приходит уведомление.

Проблема в том, что письмо некорректно отображает информацию (не подтягивает ни одного поля) (пример см.ниже)

Заголовок: #Заголовок#
Контакт: #Контакт#
Контрагент: #Контрагент#
Ответственный: #Ответственный#
Автор: #Автор#
Дата начала: #Дата начала#
Дата завершения: #Дата завершения#
Тип: #Тип#
Приоритет: #Приоритет#
Состояние: #Состояние#
Результат задачи: #Результат задачи#
Результат подробно: #Результат подробно#
Автор: #Автор# Дата создания: #Дата создания#
Изменил: 116 Дата изменения: #Дата изменения#

В то же время в самой СРМ задача отображается абсолютно правильно.

Помогите исправить данную проблему.

Спасибо

Нравится

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

Посмотрите свойства шаблона «Уведомление по задаче», есть ли там связь с разделом «Задачи» и запросом «Задача» и всё ли в порядке в этом запросе.

В свойствах Шаблона есть связь с Задачами
http://prntscr.com/89hrki
Но нет запроса "Задача". Там можно выбрать файл, но где его взять?

Нужно создать новый запрос в разделе «Запросы». Как это делать, описано в «Руководстве администратора».

Возможно, впрочем, что запрос «Задача» уже есть, просто с ним не указана связь.

Александр. спасибо большое!
Разобрался. Точно "Задача" уже есть, надо было указать связь с ней.

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

Здравствуйте, подскажите пожалуйста, как правильно собрать пакет на версии 7.6.
При создании пакетов получаю ошибку

E:\WWW\project76\Terrasoft.WebApp\DesktopBin\WorkspaceConsole>Terrasoft.Tools.Wor
kspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=D
efault -operation=SaveSVNContent -destinationPath=D:\Temp\Repository\ -contentTy
pes=Repository -workingCopyPath=D:\Temp\Source\ -repositoryUri=http://SERVER-iis
:8888/svn/project76/trunk/project76 -sourceControlLogin=Supervisor -sourceControl
Password=myPass
Ошибка: Unable to load one or more of the requested types. Retrieve the LoaderEx
ceptions property for more information.
Работа утилиты закончена.

лог:
Ошибка: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.Assembly.GetTypes()
at Terrasoft.Common.ReflectionUtilities.FindTypeByShortName(Assembly assembly, String name)
at Terrasoft.Core.SchemaManagerItem`1.get_TypeName()
at Terrasoft.Core.Entities.SystemEntitySchemaManager.InitializeSafeSchema(ISchemaManagerItem schemaManagerItem, Assembly assembly)
at Terrasoft.Core.SchemaManagerItem`1.get_SafeInstance()
at Terrasoft.Core.Manager`2.FindInstanceByName(String name)
at Terrasoft.Core.SystemUserConnection.InitializeCurrentUser(String userName, TimeZoneInfo timeZone, String clientIP, String agent, Boolean logSessionStart)
at Terrasoft.Core.AppConnection.InitializeSystemUserConnection(ConfigurationSection schemaManagerProviderConfigurationSection)
at Terrasoft.Core.AppConnection.Initialize(ConfigurationSectionGroup appConfigurationSectionGroup)
at Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.Initialize(ConfigurationSectionGroup appConfigurationSectionGroup)
at Terrasoft.Tools.Common.BaseConsoleApplication`2.Run(String[] args)

Работа утилиты закончена.

Нравится

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

Здравствуйте, Александр!

У нас такая же ошибка возникала, если бинарные файлы были распакованы через проводник Windows, а не через архиватор.
Распакуйте бинарные файлы с помощью действия "Extract to.." WinRAR или 7-zip, подготовьте заново WorkspaceConsole согласно с разрядностью Вашей операционной системы. После этих действий у нас ошибки не возникало.

Странно,но действительно помогло. Спасибо!

Проводник Windows при копировании файлов из архива может так и оставить часть данных в сжатом виде.
Отсюда делаем выводы, что лучше всё же пользоваться архиваторами, они знают своё дело :)

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

Ошибка: Пакет с именем "УказанноеНазваниеПакета" не найден

Александр, прошу определиться, где Вам лучше вести диалог - на community или на портале.

Александр, удобнее на community.На портале был создан вопрос из-за важности срока реакции.

Ок, тогда перенесу сюда свой ответ:

Для этого есть параметр -packageName. Там Вы и указываете название пакета. Убедитесь, что он есть в прописанном Вами пути.

Можно выгрузить просто все пакеты:

1) Выгрузка рабочего пространства (из БД) в репозиторий (zip-архив)

Terrasoft.Tools.WorkspaceConsole.exe -operation=SaveDBContent -workspaceName=Default -destinationPath=D:\Temp\Repository\ -contentTypes=Repository

2) Выгрузка рабочего пространства (из Svn) в репозиторий (zip-архив)

Terrasoft.Tools.WorkspaceConsole.exe -operation=SaveSvnContent -workspaceName=Default -destinationPath=D:\Temp\Repository\ -contentTypes=Repository -workingCopyPath=D:\Temp\Source\ -repositoryUri=http://tscoredev5:8050/svn/ts5conf/Product/trunk -sourceControlLogin=[Имя пользователя для SVN] -sourceControlPassword=[Пароль пользователя для SVN]

О возможности выгрузки всего рабочего пространства из базы данных я знаю, но хотелось бы понять, почему не получается выгрузить из репозитория.
Во втором случае я как-раз получаю указанную ошибку, если указан ключ -packageName
Если данный ключ не указывать, то получаю пустой манифест. В конфигурации 1 пользовательский пакет и пакет Custom.

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

Структура репозитория приведена на картинке

Александр, пожалуйста, вышлите текст ошибки которая возникает при указании ключа -packageName

Ошибка: Пакет с именем "[ИмяПкета]" не найден
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.GetPackageByName(PackageStorage storage, String packageName)
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.SetNotDependsOnPackagesNotChangedStateByName(PackageStorage storage, String packageName)
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.ComposeWithoutSaving(PackageStorage sourceStorage, String sourceStoragePrimaryInfo, PackageStorage targetStorage, String targetStoragePrimaryInfo, SysPackageInstallType skipInstallType, String packageName, Boolean loadBeforeCompose)
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.Compose(PackageStorage sourceStorage, String sourceStoragePrimaryInfo, PackageStorage targetStorage, String targetStoragePrimaryInfo, SysPackageInstallType skipInstallType, String packageName, Boolean loadBeforeCompose)
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.SaveSvnRepository(WorkspaceConsoleOptions options)
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.SaveSvnContent()
   в Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.Execute()
   в Terrasoft.Tools.Common.BaseConsoleApplication`2.Run(String[] args)

Также после сбора пакета из БД пытаюсь установить пакет на бандл 7.6.0.996_SalesOmnichannel_Marketing_Softkey_MSSQL_RUS
и возникает следующая ошибка

Ошибка: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.Assembly.GetTypes()
   at Terrasoft.Common.ReflectionUtilities.FindTypeByShortName(Assembly assembly, String name)
   at Terrasoft.Core.SchemaManagerItem`1.get_TypeName()
   at Terrasoft.Core.Entities.SystemEntitySchemaManager.InitializeSafeSchema(ISchemaManagerItem schemaManagerItem, Assembly assembly)
   at Terrasoft.Core.SchemaManagerItem`1.get_SafeInstance()
   at Terrasoft.Core.Manager`2.FindInstanceByName(String name)
   at Terrasoft.Core.SystemUserConnection.InitializeCurrentUser(String userName, TimeZoneInfo timeZone, String clientIP, String agent, Boolean logSessionStart)
   at Terrasoft.Core.AppConnection.InitializeSystemUserConnection(ConfigurationSection schemaManagerProviderConfigurationSection)
   at Terrasoft.Core.AppConnection.Initialize(ConfigurationSectionGroup appConfigurationSectionGroup)
   at Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.Initialize(ConfigurationSectionGroup appConfigurationSectionGroup)
   at Terrasoft.Tools.Common.BaseConsoleApplication`2.Run(String[] args)
 
Работа утилиты закончена.

Дополнительно прошу выслать все параметры указанные в WorkSpаce Console без исправлений.

Параметры вызова в приложении
wc_scripts.txt

При загрузке пакета ошибка похожа на проблему из первого поста, но распаковка файлов из архива не помогла. Установлена система Win 8.1 + NetFramework 4.6

Александр, предлагаю продолжить наше взаимодействие в рамках обращения в техническую поддержку.
Пожалуйста, направьте на support@terrasoft.ru cодержимое папки "Packages".

Сергей,добрый день! Отписался в техническую поддержку 1 сентября после прочтения Вашего поста. Скажите пожалуйста, есть ли какие-то результаты по данному вопросу?

Сергей,добрый день! Отписался в техническую поддержку 1 сентября после прочтения Вашего поста. Скажите пожалуйста, есть ли какие-то результаты по данному вопросу?

Здравствуйте, Александр!

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

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