AllFusion ERwin Data Modeler API и ERwin Spy UtilityЗайцев С.Л.
AllFusion ERwin Data Modeler API (ERwin API) предлагает усовершенствованные возможности для задания пользовательских настроек, которые позволяют приложениям заказчиков иметь доступ к моделям AllFusion ERwin Data Modeler (ранее: ERwin) и управлять ими. Клиенты ERwin API имеют возможность доступа к информации модели в открытых моделях ERwin, в файлах с расширением "er1" и в моделях, сохраненных в AllFusion Model Manager. В этой статье обсуждается утилита ERwin Spy - приложение, которое по выбору может быть установлено с ERwin. ERwin Spy демонстрирует функциональные возможности ERwin API, а также представляет ряд полезных возможностей для изучения хранения данных моделей в ERwin. Установка ERwin включает два необязательных компонента API: ERwin API Sample Client и утилиту ERwin Spy. Эти компоненты предлагают пользователю ERwin пример программы-браузера ERwin API и саму утилиту ERwin Spy. Детали об установке данных компонентов и краткие инструкции о пользовании утилитой находятся в файле "…Doc\ERwinAPI_Readme.html". В данной статье обсуждается только утилита ERwin Spy, важность которой трудно переоценить. Она позволяет заглянуть в устройство моделей ERwin и является необходимой для любого, кто хочет разрабатывать приложения с помощью ERwin API. Любая модель ERwin - это сложная сеть объектов модели, свойств и перекрестных ссылок. ERwin Spy считывает метамодель ERwin и упрощает понимание запутанных деталей любой модели ERwin. В каталоге ERwin Spy имеется две доступные версии утилиты: автономный исполняемый файл ERwinSpy.exe и дополнительная динамически подсоединяемая библиотека ERwinSpy_AddIn.dll. Эти версии функционально эквивалентны и отличаются только способом запуска данного приложения. Автономная версия работает независимо от ERwin и имеет доступ к моделям, которые хранятся в файлах с расширением "er1". Вторая версия запускается из меню Tools программы ERwin и имеет доступ к моделям, находящимся в памяти ERwin или в er1-файлах. В дальнейшем обсуждается только библиотечная версия ERwin Spy. Детальное описание установки и регистрации утилиты как дополнительной библиотеки ERwin находится в файле ERwinAPI_Readme.html каталога DOC. Начнем с пустой логико-физической модели. Для этого следует запустить ERwin и создать новую пустую логико-физическую модель. Затем нужно запустить ERwin Spy с помощью опции Add-Ins в меню Tools. В меню Модель утилиты ERwin Spy необходимо выбрать верхний пункт с названием новой модели. Далее нужно развернуть (двойным щелчком мыши) объект Model в левосторонней панели утилиты.
Как можно заметить, имеется довольно большое количество объектов, перечисленных в ERwin Spy. Несмотря на то, что модель является "пустой", эти объекты необходимы для представления параметров ERwin, заданных по умолчанию. Обратите внимание, что такие задаваемые по умолчанию параметры, как Domains, Main Subject Area, Trigger Templates и так далее, являющиеся объектами, отмечены флажком {Default; } справой стороны от типа объекта модели. Теперь добавим некоторую информацию к данной модели. Для этого нужно закрыть ERwin Spy, вернуться к ERwin и создать пару сущностей, скажем, Ent1 и Ent2. Затем следует добавить атрибут первичного ключа к сущности Ent1 и переместить его к Ent2, путем создания взаимосвязи отождествления. Теперь снова откроем ERwin Spy. Следует обратить внимание на возникшее отличие. Теперь при развертывании объекта Model (двойной щелчок мышью) можно будет увидеть две сущности, которые были только что созданы. Выделим Ent1 и щелкнем на кнопку, расположенную в центре экрана. После этого, на правосторонней панели утилита покажет свойства выделенных объектов. Ниже перечислено то, что теперь должен показывать ERwin Spy.
Рассмотрим еще один пример. В левосторонней панели находим сущность Ent2, разворачиваем ее, чтобы увидеть ее дочерние объекты, затем находим атрибут a. Выделяем объект атрибута и смотрим его свойства на панели в правой части экрана. Заслуживает внимание свойство Parent Relationship. Поскольку рассматриваемый атрибут является результатом перемещения внешнего ключа, это свойство показывает, какой из связанных объектов используется для хранения данных об этом. Значения Id в колонке DT показывает, что свойство является ссылкой. Это означает, что данное значение является уникальным идентификатором связанного объекта. Для того чтобы отследить связанный объект, нужно просто посмотреть на его имя в колонке As String или найти объект с помощью его уникального идентификатора. Чтобы посмотреть идентификаторы объектов, необходимо сделать эту возможность доступной, поставив флажок Show Ids в Options из меню File. Тогда, если курсор расположен над объектом в левосторонней панели, то уникальный идентификатор появится во всплывающем окне. Интересно сравнить свойство Parent Relationship со свойствами Parent Attribute и Master Attribute. Нужно заметить, что последнее свойство имеет доступ только на чтение, так как оно служит исключительно для информационных целей и не может быть изменено с помощью API. Откроем модель, чтобы посмотреть, как эти свойства используются в ERwin для представления различных взаимосвязей в данной модели. Клиент ERwin XML - еще один пример приложения, основанного на ERwin API. В качестве интересного примера и для лучшего понимания того, как данные моделей представлены в языке XML, экспортируем одну из моделей в XML, используя опцию SaveAs из меню File и выбрав xml как тип. Затем открываем полученный файл в Internet Explorer и сравниваем результат с информацией, предоставляемой утилитой ERwin Spy. В заключение стоит повторить, что использование преимуществ утилиты ERwin Spy является прекрасным способом для того, чтобы просмотреть и понять необходимые детали данных в модели ERwin, доступной при использовании ERwin API. Для того, чтобы понять, как конкретные данные представлены в модели ERwin, нужно просто следовать сценарию, описанному выше. Необходимо начать с пустой модели, создать минимальную модель необходимую для представления рассматриваемой особенности и затем воспользоваться утилитой ERwin Spy для просмотра деталей представления данных. |