как эти же команды реализовать з помощью WorkspaceConsole

Нравится

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

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

[09:46:11] Error has occurred during the loading of workspace build System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Creatio_7.14\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.WebApp\Terrasoft.Configuration\bin\Terrasoft.Configuration.dll'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.File.InternalReadAllBytes(String path, Boolean checkHost)
   at Terrasoft.Common.IO.FileWrapper.ReadAllBytes(String path)
   at Terrasoft.Core.DesignMode.FileSystemWorkspaceAssemblyLoader.LoadAssemblyToWorkspace(SysWorkspace workspace, String assemblyPath)
   at Terrasoft.Core.AppConnection.GetWorkspaceAssembly(SysWorkspace workspace)

В чем может быть проблема? Вижу, что путь не верный, но как попросить WorkspaceConsole обращаться по правильному пути, не понял.

Команда запуска:
 

C:\Creatio_7.14\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe ^
-operation=BuildWorkspace ^
-workspaceName=Default ^
-webApplicationPath="C:\Creatio_7.14\Terrasoft.WebApp" ^
-confRuntimeParentDirectory="C:\Creatio_7.14\Terrasoft.WebApp"

 

Нравится

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

Александр. Да, я видел этот пост, но видимо не очень внимательно прочитал.

Добавление параметра -configurationPath, указывающего на конфигурацию проекта ничего не дало.

Помогло добавление этого пути (к конфигурации) в параметр ConfigurationProjectPath файла: Terrasoft.Tools.WorkspaceConsole.exe.config

Ошибки теперь нет, всё работает как надо :-)

Добавлять ли это решение в документацию или нет, решайте сами. Какая то не очевидная штука. И, что характерно, видимо не частая, раз люди о ней не пишут.

Дмитрий, а в config-файле программы-консоли, который находится рядом с exe ничего подозрительного нет? Имею в виду неправильный путь, не прописан ли он там.

Александр, спасибо за вопрос! :-)
Нет, в Terrasoft.Tools.WorkspaceConsole.exe.config никаких подозрительных путей нет.
По сути видно, что путь в логах состоит из двух частей
1. Путь к WorkspaceConsole: 
 

C:\Creatio_7.14\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\

2. Путь от корня проекта к Terrasoft.Configuration.dll:
 

\Terrasoft.WebApp\Terrasoft.Configuration\bin\Terrasoft.Configuration.dll

Т.е. WorkspaceConsole использует для поиска Terrasoft.Configuration.dll не корень проекта, а собственную домашнюю папку. 
Каких то параметров у WorkspaceConsole относительно такого поведения я не нашел. Может тут тоже есть какая то хитрость с путями в параметрах? Хотя, всё сделано строго в соответствии с документацией.

Дмитрий, кажется, нашёлся аналогичный случай:

Решил указать параметр "configurationPath" и переменная "Assembly" стала инициализироваться.

Александр. Да, я видел этот пост, но видимо не очень внимательно прочитал.

Добавление параметра -configurationPath, указывающего на конфигурацию проекта ничего не дало.

Помогло добавление этого пути (к конфигурации) в параметр ConfigurationProjectPath файла: Terrasoft.Tools.WorkspaceConsole.exe.config

Ошибки теперь нет, всё работает как надо :-)

Добавлять ли это решение в документацию или нет, решайте сами. Какая то не очевидная штука. И, что характерно, видимо не частая, раз люди о ней не пишут.

Спасибо за решение, Дмитрий. Зафиксировал информацию об отсутствии этих тонкостей в документации.

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

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

Compilation started
--> ESN_Entity
--> Case_Case
Error: One or more errors occurred.
Utility finished working.

Запускаю так:
C:\SandboxCreatio\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe ^
--operation=BuildWorkspace ^
--workspaceName=Default ^
--webApplicationPath="C:\SandboxCreatio\Terrasoft.WebApp" ^
--confRuntimeParentDirectory="C:\SandboxCreatio\Terrasoft.WebApp"

Интересно, что тот же вызов с ключом RebuildWorkspace работает нормально.

В чем может быть проблема?
Как включить более подробное логирование ошибки?

Заметил один момент в документации:
Описание ключа webApplicationPath в документации WorkspaceConsole говорит о том, что здесь надо прописывать корневую папку приложения, где лежит ConnectionStrings.config. Однако в описании настройки IDE, тут надо указывать папку <root>\Terrasoft.WebApp. Где правда?
 

Нравится

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

Отвечу сам )
1. Ошибка вылечилась копированием файлов из Terrasoft.WebApp\bin в папку WorkspaceConsole. Где то тут нашел решение;
2. Оказалось в документации это есть, типо примечания, что при использовании ключа BuildWorkplace параметр confRuntimeParentDirectory должен принимать значение отличное от описанного в основной документации по утилите. Оптимизация, экономим на параметрах ))

Отвечу сам )
1. Ошибка вылечилась копированием файлов из Terrasoft.WebApp\bin в папку WorkspaceConsole. Где то тут нашел решение;
2. Оказалось в документации это есть, типо примечания, что при использовании ключа BuildWorkplace параметр confRuntimeParentDirectory должен принимать значение отличное от описанного в основной документации по утилите. Оптимизация, экономим на параметрах ))

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

Всем привет, подскажите кто-то сталкивался с такой проблемой?

 

Нравится

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

Александр, ошибка «sectionGroupName» связана с параметром webApplicationPath.
Это путь к веб-приложению, из которого будет вычитана информация по соединению с БД. Необязательный параметр. Если не указан — соединение будет установлено с базой, указанной в строке соединения в файле App.Config приложения. Если указан — соединение будет установлено с БД из файла ConnectionStrings.config веб-приложения. Используется для всех операций, в которых участвует БД.

В Вашем случает аргументом параметра является не корневая директория приложения (пример: C:\Bpmonline\WebApp\CRMBPM), которая содержит файл ConnectionStrings.config, а C:\Bpmonline\WebApp\CRMBPM\Terrasoft.WebApp, что является некорректным.

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

Спасибо.

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

Добрый день. Встречалась ли кому-нибудь такая ошибка при попытке установки пакетов через WorkspaseConsole? 

Лог ошибки:

Installing data
Error: Incorrect syntax near ')'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Terrasoft.Core.DB.DBExecutor.FailoverExecute[TResult](DbCommand command, Func`1 func)
   at Terrasoft.Core.DB.DBExecutor.Execute(String sqlText, QueryParameterCollection parameters)
   at Terrasoft.Core.DB.Query.Execute()
   at Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.InstallWorkspaceFromRepository(String sourcePath, String destinationPath, String packageName)
   at Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.InstallWorkspacesFromRepository(String sourcePath, String destinationPath, String packageName)
   at Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.Execute()
   at Terrasoft.Tools.Common.BaseConsoleApplication`2.Run(String[] args)

Скрипт запуска:

chcp 1251
SET IIS_NAME=Test
SET WS_NAME=Default
SET APP_WC_DIR=Z:\%IIS_NAME%\Terrasoft.WebApp\DesktopBin\WorkspaceConsole
 
SET CHECKOUT_PATH=C:\Workplaces\Kercher\Packages\DestinationPath
SET PKG_PATH=C:\Workplaces\Kercher\Packages\Create
SET LOG_PATH=C:\Workplaces\Kercher\Packages\Log
 
ECHO | %APP_WC_DIR%\Terrasoft.Tools.WorkspaceConsole.exe -packageName=KercherMain -workspaceName=%WS_NAME% -operation=InstallFromRepository -sourcePath=%PKG_PATH% -destinationPath=%CHECKOUT_PATH% -continueIfError=true -logPath=%LOG_PATH% -regenerateSchemaSources=true -updateDBStructure=true -installPackageData=true -installPackageSqlScript=true
 
pause

Само приложение находится на другом сервере. На диск Z замаплен путь к приложению.

Нравится

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

Такое сообщение означает ошибку в SQL-запросе, лишнюю или недостающую скобку или что-то подобное. Если возникает при установке какого-то конкретного пакета, в котором есть SQL-скрипты, то нужно в первую очередь проверить их.

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

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

Вопрос:

Можно ли загружать/выгружать пакеты в файловую систему, средствами WorkspaceConsole или другими методами, при этом не заходя в раздел [Конфигурация]?

Ответ:

Вышеперечисленные операции можно так же выполнить через WorkspaceConsole, установив в External tools (Visual Studio) эти команды (7.12.0.1808+

LoadPackagesToFileSystem [путь]\Terrasoft.Tools.WorkspaceConsole.exe (например, TSBpm\Bin\Debug\Terrasoft.Tools.WorkspaceConsole.exe)--operation=LoadPackagesToFileSystem --workspaceName=Default --webApplicationPath="[путь]\Terrasoft.WebApp" (например, TSBpm\Src\Lib\Terrasoft.WebApp.Loader\Terrasoft.WebApp)

 

LoadPackagesToDB [путь]\Terrasoft.Tools.WorkspaceConsole.exe--operation=LoadPackagesToDB --workspaceName=Default --webApplicationPath="[путь]\Terrasoft.WebApp"[v][v]

Примечание. Работа с флагом UseStaticFileContent.

При включенном флаге UseStaticFileContent для применения клиентских изменений модулей и объектов необходимо выполнить генерацию контента. Это действие выполняется при компиляции из приложения, а также из WorkspaceConsole.
При компиляции через WorkspaceConsole необходимо включить флаг UseStaticFileContent в app.config консоли.
В связи с тем, что для применения изменений необходимы дополнительные действия, использовать режим работы со статическим контентом НЕЛЬЗЯ при разработке исходных кодов в ФС.

Нравится

Поделиться

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

При работе и выполнении команд WorkspaceConsole.

Возникает ошибка.

Error: Object reference not set to an instance of an object.

Как ее решить?

Нравится

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

Необходимо проверить настройки подключения в файле Terrasoft.Tools.WorkspaceConsole.exe.config, который находится в той же директории WorkspaceConsole.

•В секции <connectionStrings> укажите параметры подключения, которые используются в файле конфигурации ConnectionStrings.config;

•В секции <db> укажите значение параметра connectionStringName="db".

Если рекомендации не помогут, нужен будет лог запуска консоли, сохраняется в папку WorkspaceConsole\Log 

Мотков Илья,

Аналогичная проблема при запуске команды "Build Workspace" при ведении разработки в файловой системе. 
Лог в папке WorkspaceConsole\Log не создается.
 

Аналогично, проверьте настройки. Без дополнительной информации Вам никто причину не определит.

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

Добрый день, хотел попросить уточнить что именно нужно сделать чтобы, WorkspaceConsole перестал при Update и Build, засорять логами папку Pkg.

https://academy.terrasoft.ru/documents/technic-sdk/7-12/nastroyka-utili…

Сказано что нужно всего то убрать:

  • SharpPlink-x64.svnExe;
  • SharpSvn.dll;
  • SharpSvn-DB44-20-x64.svnDll.

Но он тогда отказывается работать с ошибкой:

Ошибка: Could not load file or assembly 'SharpSvn, Version=1.8009.3299.43, Culture=neutral, PublicKeyToken=d729672594885a28' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
Ошибка: Could not load file or assembly 'file:///XXX\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\x64\SharpSvn.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
Работа утилиты закончена.

Если я конечно правильно понял, кто виновен в создании таких папок:

\Terrasoft.WebApp\Terrasoft.Configuration\Pkg\MyPackage\Schemas\ContactPageV2\Logs...

Ранее в 7.10 не было такого

Нравится

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

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

На странице SDK указано, что в случае выполнения операций с SVN эти файлы нужно скопировать, но никак не удалять:)

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

https://academy.terrasoft.ru/documents/technic-sdk/7-12/ispolzovanie-fa…

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

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

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

Эти процессы спокойно перенеслись через SVN на другие дев стенды и на QAS - и там начали работать по расписанию.

Но, когда перенесли наш пакет с помощью WorkspacecConsole, то на целевой среде они не запускаются по расписанию. Стартовые сигналы в таблице SysStartTimerInProcess появились, но триггеров в QRTZ_TRIGGERS нет.  Запускал вручную - они отлично отрабатывают, но далее по расписнию все равно не работают (триггеров по-прежнему нет).

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

Еще такой момент: на целевой среде, куда переносим пакет с помощью WsC - SalsesEnterprise, а на девах и QAS какая-то более сложна сборка с маркетингом и  сервисом. Версия везде 7.11.3.1175

 

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

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

Нравится

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

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

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

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

Tsopa,

Добрый день. Что сделал:

  1. Выключил пул приложений
  2. Установил пакет с помощью WorkspaceConsole
  3. Почистил redis
  4. Включил пул 
  5. Убедился, что в QRTZ_TRIGGERS триггеров нет
  6. Залогинился и сделал Генерировать исходные коды для всех
  7. Сделал компилировать все
  8. После этого в QRTZ_TRIGGERS появились нужные трриггеры
Показать все комментарии

Добрый день! При попытке установить пакет через WorkspaceConsole, выдает такую ошибку, может кто подскажет что она значит? (BPMonline7120Sales - название бд MSSQL)

Нравится

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

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

Не могли бы Вы предоставить строку подключения (app.config в workspace console) и логи консоли ?

Maksym Naumovets,

connectionString="Data Source=DULSKI\SQLEXPRESS; Initial Catalog=BPMonline7120Sales; Persist Security Info=True; MultipleActiveResultSets=True; User ID=BPM712Dulski; Password=BPM712Dulski; Pooling = true; Max Pool Size = 100; Async = true; Connection Timeout=500"
лог нет, не успел создаться наверно

Дульский Александр, пожалуйста, также укажите содержимое секции <db> в конфиге WorkspaceConsole.

Например  для MSSQL оно обычно такое: <db>
      <general connectionStringName="db" securityEngineType="Terrasoft.DB.MSSql.MSSqlSecurityEngine, Terrasoft.DB.MSSql" executorType="Terrasoft.DB.MSSql.MSSqlExecutor, Terrasoft.DB.MSSql" engineType="Terrasoft.DB.MSSql.MSSqlEngine, Terrasoft.DB.MSSql" metaEngineType="Terrasoft.DB.MSSql.MSSqlMetaEngine, Terrasoft.DB.MSSql" metaScriptType="Terrasoft.DB.MSSql.MSSqlMetaScript, Terrasoft.DB.MSSql" typeConverterType="Terrasoft.DB.MSSql.MSSqlTypeConverter, Terrasoft.DB.MSSql" binaryPackageSize="1048576" currentSchemaName="dbo" />
    </db>.

Maksym Naumovets,

<db>

<general connectionStringName="db" securityEngineType="Terrasoft.DB.MSSql.MSSqlSecurityEngine, Terrasoft.DB.MSSql" executorType="Terrasoft.DB.MSSql.MSSqlExecutor, Terrasoft.DB.MSSql" engineType="Terrasoft.DB.MSSql.MSSqlEngine, Terrasoft.DB.MSSql" metaEngineType="Terrasoft.DB.MSSql.MSSqlMetaEngine, Terrasoft.DB.MSSql" metaScriptType="Terrasoft.DB.MSSql.MSSqlMetaScript, Terrasoft.DB.MSSql" typeConverterType="Terrasoft.DB.MSSql.MSSqlTypeConverter, Terrasoft.DB.MSSql" binaryPackageSize="1048576" currentSchemaName="BPMonline7120Sales" />

</db>

<connectionStrings>

<add name="db" connectionString="Data Source=DULSKI\SQLEXPRESS; Initial Catalog=BPMonline7120Sales; Persist Security Info=True; MultipleActiveResultSets=True; User ID=BPM712Dulski; Password=BPM712Dulski; Pooling = true; Max Pool Size = 100; Async = true; Connection Timeout=500" />

</connectionStrings>

Александр, здравствуйте.
Скорее всего, ошибка вызвана тем, что Вы используете
неправильный параметр currentSchemaName="BPMonline7120Sales".
Для MSSQL он должен быть: currentSchemaName="dbo".

Maksym Naumovets,

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

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