Публикация

Приветствую, уважаемые коллеги!

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

Сегодня я расскажу Вам о преимуществах и выгодах использования приложения для оперативной проверки структуры базы данных (далее - БД) на корректность (https://marketplace.terrasoft.ru/app/database-structure-check).

Проблематика.

После накатывания нового функционала на тестовую среду могут появиться ошибки структуры БД. Их особенности:

  • не всегда очевидны.
  • разработчиков может сбивать с толку тот факт, что на рабочей среде всё работает, а на тестовой – нет.
  • поиск и устранение может занять длительное время.

Всё это снижает эффективность разработки/обслуживания, приводит к дополнительным расходам ресурсов. 

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

  • падает надёжность системы.
  • повышается вероятность аварии.

Особенно это актуально, когда «окно» для обновления промышленной среды очень небольшое. Чем больше проект в плане доработок, тем больше ошибок структуры БД может возникать.

При использовании приложения все эти проблемы можно успешно решить!

Целевая аудитория.

Обращаю внимание партнёров Terrasoft: приложение предназначено для среднего и крупного бизнеса. То есть, основные преимущества от его использования получает именно клиент. Приложение универсально и подойдёт практически всем клиентам, у которых есть потребность в доработке базовых продуктов.

Степень необходимости приложения может варьироваться. Если в ходе выяснения потребностей выясняется, что:

  1. будет большой проект (или уже есть) со сложными связями между сущностями системы.
  2. есть потребность в максимальной надёжности.
  3. у клиента только небольшие «окна» для обновления промышленной среды.
  4. есть потребность в повышении эффективности разработки и обслуживания (клиент хочет как можно скорее получить готовую систему в пользование).
  5. есть потребность в повышении устойчивости к авариям системы.

- это всё покажет рост степени необходимости приложения. Я настоятельно рекомендую устанавливать приложение всем клиентам в случае, если имеет место хотя бы один пункт выше.

Выгоды.

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

  1. получит дополнительную меру повышения надёжности системы.
  2. сэкономит ресурсы на обнаружение ошибок структуры БД.
  3. обеспечит повышение эффективности разработки и обслуживания системы.
  4. обеспечит повышение устойчивости системы к авариям из-за ошибок структуры БД.

Есть также выгоды для разработчиков, облегчающие некоторые аспекты разработки/сопровождения. Разработчики: 

  1. смогут пользоваться самым рациональным решением для проверок структуры БД, которое не имеет аналогов.
  2. смогут пользоваться всем функционалом приложения в один клик.
  3. смогут проверять структуру БД на корректность в течение нескольких секунд.
  4. смогут оперативно выявлять отсутствующие таблицы и/или их колонки, обнаруживать несоответствия типов полей.
  5. после проверки структуры БД смогут понять, для каких объектов необходимо произвести повторное обновление структуры БД.
  6. после успешного анализа, будут точно знать, что БД целевой среды содержит все требуемые системой таблицы/поля, и что типы всех полей всех таблиц правильные.

Преимущества.

  1. Поиск ошибок структуры БД. Приложение выявляет отсутствующие таблицы и/или их колонки, а также обнаруживает несоответствия типов полей.
  2. Повышение надёжности. Использование приложения повышает надёжность системы за счёт минимизации времени, в течение которого в структуре БД есть ошибки.
  3. Экономия ресурсов. Использование дополнения сокращает расходы на обнаружение ошибок структуры БД. В ряде случаев очень серьёзно сокращает расходы.
  4. Подтверждение целостности. После успешного анализа, специалист будет точно знать, что база данных целевой среды содержит все требуемые системой таблицы/поля, и что типы всех полей всех таблиц соответствуют требуемым типам.
  5. Повышение эффективности разработки и обслуживания. Это происходит за счёт экономии ресурсов при использовании приложения, а также за счёт ускорения обнаружения ошибок структуры БД.
  6. Простота использования. Запуск функционала в один клик.
  7. Быстрая скорость работы. Проверка структуры БД в течении нескольких секунд.
  8. Простая и удобная форма отчёта приложения. После проверки, в случае наличия ошибок, специалисту будет предоставлено подробное информационное сообщение. Разработчик сразу поймёт, для каких объектов необходимо произвести повторное обновление структуры БД.
  9. Локализация на английский язык. Поддержка не только русского языка, но и английского.
  10. Самое рациональное решение для проверок структуры БД. На самом деле, можно проверить вручную, но это дольше (просмотреть все разделы, вкладки, детали, а также проверить работоспособность всего разработанного функционала) и не всегда возможно проверить вообще всё. Зачастую такого количества времени просто нет. 
  11. Уникальность. Инструмент для проверки структуры БД не имеет аналогов на маркетплейс.
  12. Смешная цена. За год использования, то есть возможно продление на следующий год. Продлевать нет смысла только если разработка/обслуживание полностью завершены. Экспертные продажи.
  13. Повышение устойчивости системы к авариям, вызванным ошибками структуры БД. Использование приложения позволяет обнаружить ошибки БД сразу же после обновления целевой среды, после чего сразу предпринять действия для исправления найденных ошибок.

Совместимость.

Приложение совместимо со всеми продуктами на платформе bpm’online (с версии 7.11, на остальных нужно тестировать, но скорее всего работать будет).
В данный момент не поддерживается работа на системах, для которых используется СУБД Oracle.

Большое спасибо всем, кто дочитал до конца!

Буду рад любым предложениям по совершенствованию продукта!

С уважением, Сергей Кузнецов.

Поделиться

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

yes

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

Добрый день. Подскажите, пожалуйста, способ вызова сторонних приложений из Terrasoft CRM X25 - 3.1.0.16? Вызов из вкладки Контрагенты с передачей параметра (id выделенного контрагента).

Спасибо!

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

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

Попробуйте

var wsh = new ActiveXObject("WScript.Shell");
wsh.Run("notepad.exe c:\\1.txt");

Здравствуйте, Сергей!

Некоторые примеры функций запуска внешнего приложения из скрипта Terrasoft CRM:

1.

function Main() {
            var CMDFile = 'C:\\WINDOWS\\notepad.exe';
            var Shell = new ActiveXObject("WScript.Shell");
            Shell.Run(CMDFile, 1, false);
}

2.

function StartOpenPhoneApplication(){
            var WorkingDir = Connector.WorkingDirectory;
            var OpenPhoneFile = WorkingDir + OpenPhone.Dir + '\\' +OpenPhone.FileExeName;
            if (IsEmptyValue(GetProcessIDByName(OpenPhone.FileExeName))){
                        var Shell = new ActiveXObject("WScript.Shell");
                        Shell.Run(OpenPhoneFile, 0, false);
            }           
}

Приятной работы!

Terrasoft Support Team

Спасибо!

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

http://msdn.microsoft.com/en-us/library/d5fk67ky(VS.85).aspx

А вообще третий параметр в метода Run в ответе саппорта сходу наталкивает на кое-какие соображения :)

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

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

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

Я по ссылке, данной Вами, разобрался с параметром, за что огромное спасибо. Проблема то состояла в том, чтобы найти мануал по функции. Где только не рыл. А вот на мелкософт заглянуть даже не подумал :-) Там же заодно просветился и по поводу второго параметра. Ссылочку запомнил, теперь будет настольная книга.

Рад что пригодилось.
Меняйте поисковик - гугл по запросу
WScript.Shell Run
выдает эту страницу первой в списке ссылок :)

А у меня тут же вопрос, а как потом получить результаты обратно в Terrasoft?

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

А жаль :)
Значит будем передавать через файлы.

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