Доработан пример реализации списка своих заданий для портала потоков работ Ensemble, с использованием ZEN-технологии

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

По просьбам читалей исправлены ошибки, доработано считывание значения введенных полей и протестировано на последнем релизе Ensemble 2009.1

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

Первая версия здесь

Вывод в файл информации об ошибках Ensemble

В дистрибутиве Ensemble уже существует класс  EnsLib.EMail.AlertOperation при помощи которого можно все сообщения об ошибках направлять администратору по почте.

Если Вам необходимо сообщения записывать в файл, то: Читать далее

Шаблон Studio для добавления вызова WorkFlow-задачи в XML-описание BPL-процесса

Если Вам захотелось автоматизировать процесс написания WorkFlow задач, то Вы можете сделать это при помощи прилагаемого шаблона.
После его установки у Вас появится новый шаблон “WorkFlow Operation” в меню Инструменты.
Этот шаблон позволяет не задумываться о именах полей сообщения EnsLib.Workflow.TaskRequest и EnsLib.Workflow.TaskRespons.
Этот шаблон работает только в XML-представлении бизнес-процесса.
Вы можете доработать эти CSP-страницы по Вашему усмотрению, или использовать их как они есть.
После добавления вызова, Вы можете исправить полученный код и приступить к тестированию.
Исходники – FWTaskWizard

Удачи!

Самая новая версия Cach? 2008.2

Всех разработчиков поздравляю с выходом новой версии Cach?!
Полное название версии Cach? 2008.2.0 сборка 526.
Формат лицензионного ключа не изменился.
Версия доступна для всех ранее поддерживаемых платформ кроме Solaris.
Наиболее важные улучшения:
-более быстрый доступ к свойствам и методам объектов,
-более быстрая компиляция программ,
-Студия отслеживает “неопределенные” переменные,
-Студия “подсказывает” имена локальных переменных,
-Zen поддерживает drag-and-drop технологию,
-в Zen добавлен новый tab control,
-улучшена поддержка Stream в SQL (в т.ч. через ODBC и JDBC),
-усовершенствована поддержка Light C++ Binding,
-добавлена поддержка JIS2004,
-в ^%MONLBL добавлена возможность определения узких мест на уровне подпрограмм,
-CSP поддерживает HTTP версии 1.1,
-усовершенствован инсталлятор Cach? для Linux,
-поддержка SSL для приложений работающих через порт суперсервера (Студия, JDBC и т.п),
-поддежка SSL для telnet под Windows,
-разграничение доступа к SQL-таблицам на уровне столбцов,
-поддержка WS-Security 1.1,
Более полную информацию о новых возможностях Cach? 2008.2.0 Вы можете посмотреть по адресу http://www.intersystems.com/cache/documentation/20082/pdfs/GCRN.pdf

Пожалуйста скачивайте новую версию через WRC,
тестируйте старые приложения и разрабатывайте новые.

Всем Удачи!!!

Альтернативный SQL-manager

Если при разработке или использовании Вашего приложения на Cach? Вам часто приходится выполнять SQL-запросы, а функциональности SQL-manager из портала управления Cach? Вам недостаточно, то советую обратить внимание на приложение CacheMonitor.

Альтернативный SQL-manager разработал наш партнер из Германии. Это кросплатформенное Java-приложение кроме выполнения SQL-запросов предоставляет следующие возможности:

1.Продвинутый редактор SQL-запросов:

подсветка синтаксиса Cach?-SQL

– интеллектуальный ввод SQL для таблиц, представлений и колонок (Intellisense)

– история выполнения SQL запросов

– форматирование SQL-запросов

 параллельное выполнение запросов

– графическое представление плана выполнения SQL-запроса с поддержкой индексов и selectivity

SQL сокращения (например ввод команды se преобразуется в “SELECT * FROM

– просмотр TuneTable для выбранных таблиц или всей области

– запись результатов выполнения запроса в таблицу

– DDL генератор (CREATE TABLE)

2.Просмотр следующей метаинформации в областях Cach?:

          Таблицы  

          Представления

          Программы (у меня показывает только список)

          Классы

          Кэшированные запросы

          Хранимые процедуры

          Индексы

3.Также Cach? Monitor помогает управлять Вашими Cach? серверами:

– Объединять сервера в группы для удобства просмотра информации

– Просматривать информацию о версии Cach?

– Просматривать «стоимость» выполнения запроса

– Быстрое открытие нового окна Query Analyzer для выбранного сервера

– Просмотр списка выполняемых процессов

– Просмотр таблицы блокировок

 

Все это Вы могли бы сделать самостоятельно на ZEN и CSP, но люди уже сделали на Java, так что пробуйте и используйте для пользы дела.

 

Скачать приложение можно на сайте разработчика http://www.cachemonitor.de (с первого раза у меня не получилось:)

Последнюю версию зарегистрированные пользователи могут взять здесь http://www.cachemonitor.de/protected_download.html

Весит архив примерно 3.7 МБ. Существует версия для Windows и Java-версия для всех платформ. Вместо инсталляции, файл из архива необходимо поместить вместе с CacheDB.jar в папку %CacheSys%\Dev\java\lib\JDKxxx. Если Вы решили использовать Java-версию, то вместо выполнения exe-файла Вам необходимо выполнить команду вроде:

“C:\Program Files\Java\jre1.6.0_07\bin\javaw -jar CacheMonitor.jar” в папке %CacheSys%\Dev\java\lib\JDKxxx.

 

Если я недостаточно понятно рассказал об  альтернативном SQL-manager, или у Вас просто не получается скачать его, то обращайтесь ко мне по почте Alexander.Kharitonov@InterSystems.com.

Настройка вызываемой бизнес-операции

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

При этом код бизнес-службы может выглядеть следующим образом:

Class Test.Service Extends Ens.BusinessService [ ProcedureBlock ]
{
Parameter ADAPTER = “EnsLib.File.InboundAdapter”;
Property TargetOperation As %String(MAXLEN = 256);
Parameter SETTINGS = “TargetOperation”;
Method OnProcessInput(pInput As %RegisteredObject, pOutput As %RegisteredObject) As %Status
{

                Set Msg = ##class(Ens.StringRequest).%New()
                Set Msg.StringValue=“Test”
                Set tSC = ..SendRequestAsync(..TargetOperation,Msg)
                Quit $$$OK
}
}

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

В общем случае более правильно для маршрутизации сообщений использовать MsgRouter.RoutingEngine (http://writeimagejournal.com/?p=23), но для реализации простой функциональности Enterprise Service Bus (ESB) может подойти и вышеуказанный способ.

Оптимизация приложений

Существует несколько причин, по которым Вы можете прийти к выводу о необходимости оптимизации разработанного приложения. Одна из них это значительное увеличение одновременно-работающих пользователей, а другая – неудовлетворительное время выполнения операций. Первое, что приходит в голову – может изменить настройки и все будет работать как надо, но не так много настроек в Cache’, чтобы изначально настроить сервер совсем не оптимальным способом. Вторая мысль – увеличить мощность сервера, но часто мы имеем желание увеличить производительность приложения на порядок, и замена сервера нам здесь скорее всего не поможет. Остается один выход – оптимизация приложений. Читать далее

Cach? & Ensemble 2008.2 Release Candidate доступен для скачивания на WRC

Cach? & Ensemble 2008.2 Release Candidate Build 506 можно скачать с

http://iron.intersys.com/wrc/BetaPortal.csp

Версия Cach? доступна для Apple Mac OS X, HP HP-UX, HP OpenVMS, HP Tru64, IBM AIX, Microsoft Windows x86-32 и x86-64, Red Hat Linux, Sun Solaris, SUSE Linux,

Release Notes c описанием новых возможностей – http://www.intersystems.com/cache/fieldtest/c2008_2/GCRN.pdf

Версия Ensemble доступна для Microsoft Windows x86-32 и x86-64. 
Release Notes c описанием новых возможностей Ensemble – http://www.intersystems.com/cache/fieldtest/e2008_2/EGRN.pdf

С нетерпеньем ждем Release новой версии

Пользовательская страница авторизации

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

При создании собственной страницы необходимо унаследовать ее от класса  %CSP.Login

Далее можно переопределить параметры  LOGINTITLE и LOGO, но скорее всего Вам придется переопределять методы  DrawTitle или  OnPage.

Вот пример класса:

 Class Test.Login Extends %CSP.Login
{
ClassMethod DrawTitle(pTitle As %String)
{
&html<
<table width=“100%” border=“0” 
style=“background: #388CCC margin:0px;”>
<tr>
<td><href=“http://www.issoft.ru”>
<img src=“/csp/app/images/logo.gif”></a>
</td>
    <td align=“left”>
    Сервер: <b>#($zu(110))#</b><br>
    Подразделение: <b>#(“$$$GetDepart”)#</b>
  </tr>
  </table>>
}

}
После создания класса необходимо в портале управления системы в разделе

[Домашняя страница] > [Управление безопасностью] > [CSP приложения] > [Редактировать CSP приложение]

настроить параметры CSP-приложения (на примере test):

Не аутентифицированный – выключить

Пароль – включить

 Страница входа в систему – csp/test/Test.Login.cls

После сохранения параметров пробуем открыть любую CSP страницу из нашего приложения и открывается наша страница авторизации.