Создание фигуры. Документирование процессов и создание решений на основе Visio. Технические особенности. Хранение данных

Настоящая статья продолжает цикл публикаций, посвященных инструментам, которые российские компании могут использовать для решения задач моделирования и совершенствования бизнес-процессов без существенных рисков. Напомним, что в предыдущей статье данного цикла рассказывалось о продуктах компании IDS Scheer, занимающей наивысшие позиции в рейтингах аналитических компаний. Сегодня же мы поговорим о продукте иного ценового диапазона, не столь функциональном с точки зрения моделирования бизнес-процессов, но зато весьма популярном и массовом - Microsoft Visio.

И снова мнение аналитиков…

Невысокая стоимость Visio, наряду с такими факторами, как принадлежность к лидирующему семейству офисных продуктов, выпускаемому лидером индустрии программного обеспечения, привела к весьма значительной занимаемой им доле рынка средств моделирования бизнес-процессов (по данным Gartner - 34%) и высоким рейтингам в отчетах аналитических компаний. Так, аналитическая компания Gartner относит данный продукт к лидерам рынка (рис. 1).

Рис. 1. Ведущие производители средств анализа бизнес-процессов
(источник: Blechar M. Magic Quadrant for Business Process Analysis Tools,
2H07-1H08 - Gartner research note G00161090, 23 September 2008)

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

Visio на российском рынке

На российском рынке Visio представлен так же, как и другие офисные продукты Microsoft, - то есть доступен во всех регионах через весьма развитую партнерскую сеть. Через нее же оказываются услуги по сопровождению, технической поддержке и обучению на русском языке. Русская версия данного инструмента существует достаточно давно. Есть и книги о продукте, и решения на его основе (включая средства моделирования бизнес-процессов; впрочем, эти инструменты - предмет отдельного обсуждения, поскольку их доступность, возможности и цены существенно отличаются от доступности и возможностей оригинального продукта и цен на него).

Возможности продукта

Технические особенности. Хранение данных

Технически Visio представляет собой настольное приложение, манипулирующее отдельными файлами (документами). Документ Visio включает одну или несколько диаграмм, расположенных на одной либо ряде страниц. Каждый документ содержит набор символов (соответствующих объектам моделей) и коннекторов (соответствующих связям), при этом у символов, помимо имен, могут быть дополнительные атрибуты, определяемые пользователем в процессе моделирования.

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

Рис. 2. Шаблоны диаграмм из комплекта поставки Visio

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

Поддерживаемые методологии и нотации

Коль скоро набор символов и шаблонов Visio может быть произвольно расширен и сам продукт не предполагает глобальных ограничений на возможности применения символов и связей между ними, описание бизнес-процессов с помощью Visio формально может быть осуществлено в рамках практически любой методологии. При этом в комплекте поставки продукта в любой редакции (Standard, Professional) есть набор шаблонов моделей для наиболее распространенных нотаций, таких как диаграммы потоков данных, диаграммы цепочки добавленного качества, диаграммы типа Event-driven Process Chain, IDEF0, SwimLane, а также шаблоны для моделирования оргструктур компаний (рис. 3 и 4).

Рис. 3. Модель процесса типа Swim Lane

Рис. 4. Модель типа EPC (Event-driven Process Chain)

Документирование процессов и создание решений на основе Visio

Microsoft Visio включает среду исполнения кода Visual Basic for Applications, позволяющую как записывать код во время работы пользователя, так и создавать его с помощью среды разработки (рис. 5).

Рис. 5. Среда разработки VBA в Microsoft Visio

Для доступа к данным моделей Visio предоставляет соответствующую объектную модель, доступную через COM-интерфейсы как из среды исполнения кода VBA внутри самого приложения, так и из внешних приложений. Отметим, что и язык программирования, и объектные модели всех приложений Microsoft Office, включая Visio, отлично документированы. Это означает, что при определенном навыке VBA-программирования пользователю доступны и генерация отчетов любой сложности, и создание средств переноса данных между Visio и другими средствами моделирования, и генерация моделей путем создания решений на основе приложений данного семейства, и расширение функциональности самого инструмента моделирования, и создание разнообразных решений (например, для имитационного моделирования, автоматизированной публикации моделей в Интернете и выполнения других задач).

Помимо VBA для документирования процессов можно использовать средства интеграции Visio с приложениями Microsoft Office, такие как вставка диаграмм Office Visio 2007 в документы Microsoft Office в качестве иллюстраций и создание диаграмм Visio 2007 непосредственно в этих приложениях, средства формирования календарей в Visio 2007 с использованием данных Office Outlook 2007, инструменты подключения диаграмм Visio 2007 к электронным таблицам Excel 2007 или базам данных Access 2007 для интеграции источников данных и компонентов диаграмм, средства формирования графиков и диаграмм Ганта в Visio 2007 путем импорта соответствующих данных из Project 2007, средства экспорта информационной составляющей диаграмм Ганта и графиков Visio 2007 в Office Project 2007, средства построения организационных диаграмм на основе глобальной адресной книги Exchange.

Для документирования процессов интересны также средства сохранения результатов работы в виде веб-страниц, предоставляемые последней версией Visio, а также средства динамического обмена данными о процессах с другими приложениями с использованием стандартизованных форматов обмена на основе XML, таких как ODX и BPEL.

Ограничения и возможные проблемы

Использованное в одном из предыдущих разделов статьи словосочетание «в рамках практически любой методологии» отнюдь не означает, что Visio - наилучший инструмент для моделирования и анализа бизнес-процессов. Так, в отличие от продуктов семейства ARIS, Visio не содержит в явном виде решения проблемы «что такое один и тот же объект» - правила, по которым принимается решение, отображают ли два символа на одной и той же модели один и тот же объект, пользователи должны выработать самостоятельно и самостоятельно же соблюдать, при этом технических средств, поддерживающих выработанное правило, продукт не предоставляет - их придется создавать самостоятельно с помощью имеющихся программных интерфейсов.

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

Механизма методологических фильтров (инструментов ограничения типов моделей, объектов, связей, доступных конкретному пользователю или группе пользователей для конкретного проекта), аналогичного имеющемуся в ряде других инструментов (например, в продуктах семейства ARIS), Visio также не предоставляет.

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

Сравнение с другими продуктами

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

Основным преимуществом Visio перед продуктами упомянутых семейств является низкая стоимость и простота применения, что делает его неплохим стартовым инструментом для компаний, которые только начали описывать свои бизнес-процессы и пока заинтересованы главным образом в их визуальном представлении. Еще одним достоинством данного продукта является его идеальная интеграция с другими приложениями Microsoft Office - офисным пакетом, безусловно лидирующим на рынке. Немаловажным преимуществом данного продукта являются и отлично документированные программные интерфейсы - благодаря им на основе Visio создано немало решений, в том числе и более дорогостоящих средств моделирования и анализа бизнес-процессов, разработанных компаниями - партнерами Microsoft.

Недостатки же Visio как средства моделирования бизнес-процессов - это, по сути, продолжение его достоинств. Простота применения оборачивается отсутствием функциональности, которая обычно ожидается от таких инструментов, например отсутствием средств разграничения доступа к данным, анализа и проверки корректности моделей, поддержки целостности и непротиворечивости данных. Это означает, что, решив использовать Visio на этапе становления процессного управления и анализа бизнес-процессов, в дальнейшем, скорее всего, придется обратить внимание на другие, более функциональные инструменты моделирования, к примеру на продукты компании IDS Scheer.

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

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

После того как объектная переменная объявлена, перед ее использованием необходимо поместить в нее ссылку на объект. Это делается путем присваивания этой переменной объектного выражения с помощью ключевого слова Set. Например:

Set objShapeObject = ThisDocurcent.Pages(1).Shapes(4)

Обратите внимание, что синтаксис в данном случае немного отличается от того, каким вы присваивали данные обычным переменным (см. главу 9). Точно так же, как в случае данных других типов, между именем переменной и приписываемым ей объектом помещается знак равенства. Единственное отличие в том, что здесь оператор должен начинаться с ключевого слова Set.

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

Сделать это совсем просто. С помощью оператора Set присвойте переменной ключевое слово Nothing, как в следующем примере:

Set objPriceIsNoObject = Nothing

Если объект, с которым вы собираетесь работать, еще не существует, вам придется его создать. В простых VBA-программах для этого используется метод Add, предназначенный для создания объектов, встроенных в ваше VBA-приложение, т.е. в приложение, с которым ассоциируется ваш проект. (В некоторых приложениях, возможно, именем такого метода будет что-то типа AddShape или AddDocument - проверьте в справочной системе приложения, чтобы знать точно.)

Самое главное - выяснить, метод Add какого именно из объектов следует применить. Цель - найти объект, который должен служить контейнером для создаваемого объекта. Обычно (но не всегда) подходящий контейнер представляет собой коллекцию.

Например, предположим, что нужно создать новый объект Layer в Visio. Объект Layer соответствует слою изображений в Visio. т.е. группе графических элементов, с которыми можно работать одновременно. Каждый объект Layer принадлежит объекту Layers, представляющему коллекцию из (одного или нескольких) слоев изображений. Исходя из лих соображений, для создания нового слоя вы должны выбрать метод Layers . Add.

Конечно, необходимо идентифицировать тот конкретный объект Layers, в котором

VBA придется создать ваш новый объект Layer. Коллекция Layers принадлежит конкретному объекту Page в объекте Document. Поэтому полностью оператор для создания нового объекта Laye r должен выглядеть примерно так:

ThisDocument.Pages(2).Layers.Add ("Новый слой")

Объект Layer тоже имеет метод Add, но его нельзя использовать для создания подобного нового слоя. Метод Add объекта Layer добавляет объект Layer в данный слой, а не создает еще один такой же Layer.

Точно так же, если нужно добавить новый слайд в презентации PowerPoint, понадобится примерно такой оператор:

АсtivePresentation.Slides.Add1.ppLayoutTextAndClipart

Как видите, новый слайд тоже добавляется в подходящий объект-контейнер - коллекция Slides.

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

Dim objМойМалыш As Glide

Set objМойМалыш = ActivePresentation. Slides .Add 1, _

ppLayoutTextAndClipart

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

* Создание новой копии объекта, уже существующего в проекте.

* Использование объекта из другого приложения или компонента ActiveX (COM).

* Создание экземпляра объекта на основе класса, созданного вами в модуле класса.

В зависимости от ситуации, при этом используется либо ключевое слово New в объявлении переменной или операторе Set, либо функция Create Object. Здесь я не собираюсь объяснять, как конкретно используется такая техника - она относится к тонким вопросам программирования и обсуждается в главах 10 и 19. Я только обращаю ваше внимание на существование ключевого слова Mev,- и функции CreateObjеct с помощью которых создаются обычные объекты.

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

Проверить идентичность двух ссылок на объекты можно с помощью оператора Is. Значением соответствующего выражения будет True, если ссылки идентичны, и False, если ссылки указывают на разные объекты. Вот фрагмент программного кода, иллюстрирующий использование оператора Is:

Dim objObject l As Object, objOb]ect2 As Object

If objObjectl Is objObject2 Then

MsgBox "Это тот же самый объект!"

Else

MsgBox "Это разные объекты."

End If

С помощью оператора Is можно сравнить объектную переменную и с объектным выражением, например, так:

If objObiect3 Is ThisDocument.Pages(2).Shapes(3) Then

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

Эффективная работа с объектами в программе

Для упрощения работы с объектами в программе в VBA можно использовать две многострочные программные конструкции, называемые операторами With и Each . . .Next.

Использование оператора With

И когда для ссылки на объект используется мнемоническая переменная с коротким именем, и когда используется вполне инструктивное объектное выражение, их приходится вводить снова и снова. Но, оказывается, даже этого можно избежать.

Если в программе один и тот же объект используется в нескольких идущих один за другим операторах, то оператор With позволяет указать объект только один раз. Это не только избавит вас от необходимости печатать имя объекта для каждого из операторов, но и делает программный код более понятным, а его выполнение более быстрым. Например:

With objПолнаяОбъективность

Name = "Опрос общественного мнения" " установка свойства Name

DisplayName " вызов метода DisplayName

sngРегион = .Area " выяснение значения свойства Area

intПодтасовка = .Rotate(60) " вызов метода Rotate (Поворот)

" и сохранение возвращаемого им значения в переменной

End With

Как видите, конструкция With. . .End With может включать операторы, в которых читаются и устанавливаются свойства, вызываются методы. Обратите внимание на то, что данная конструкция не задает цикл - входящие в нее операторы выполняются только один раз.

Конструкции, использующие With, можно вкладывать одну в другую. Это удобно, когда нужно выполнить ряд действий и по отношению к некоторому объекту, и по отношению к одному из содержащихся в нем объектов. Пример предоставляет следующий фрагмент программного кода. В нем выполняются самые различные действия с объектом Block в AutoCAD. Во вложенной структуре With обрабатывается один из графических объектов, содержащихся в объекте Block.

Разобраться в деталях вам помогут комментарии.

With Block.Item("Монстр")

Вы можете создавать собственные фигуры и добавлять их в набор элементов Избранное или другой настраиваемый набор элементов. Ваша фигура становится образцом фигуры . Настраиваемыми являются набор элементов Избранное и наборы, созданные вами; наборы элементов, которые предоставляются с шаблонами Visio, изменять нельзя.

Дополнительные сведения о создании настраиваемой фигуры см. в статье Рисование линий и фигур с помощью инструментов "Карандаш", "Линия", "Дуга" и "Полилиния" . Дополнительные сведения о создании настраиваемого набора элементов см. в статье Создание, сохранение и совместное использование настраиваемых наборов элементов .

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

Чтобы создать образец фигуры и добавить его в набор элементов

Чтобы создать новую фигуру, сделайте следующее:

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

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

В последнее время в некоторых (даже весьма уважаемых) источниках появляются примерно такие утверждения:
"Рисунки, связанные с данными – это функция Visio профессиональный 2013 и Visio Pro для Office 365 и она недоступна в Visio стандартный 2013".
"Обновление данных работает только в одну сторону (из базы на диаграмму), т.е. штатными средствами обновление данных в источнике не сделать".
Неправда все это! Вернее это бывает правдой в определенных случаях. Но начинающий пользователь не всегда может разобраться в тонкостях, поэтому такие утверждения сплошь и рядом его обманывают.
Любая версия Visio всегда обеспечивала как минимум несколько способов связи рисунка с данными. Вот основные из них.

Возможность разработки своего дополнения, обеспечивающего связь рисунка Visio с листом Excel или таблицей базы данных, существовала всегда (по крайней мере, последние 15 лет). Это работало и в простейших и в самых профессиональных версиях. Причем дополнение могло писать данные в любую ячейку шейп-листа, то есть в любой атрибут шейпа (фигуры). Естественно, этот путь работает и сейчас, в том числе и в Visio 2013. Только он не для всех удобен, потому что требует навыков разработки дополнения (или написания макросов).
Со временем Microsoft написала более-менее универсальное дополнение и стало включать его в комплект поставки. Это 5 визардов (помощников) для работы с БД. Визарды появились где-то в районе Visio 2000. Они считались ценными и включались в состав только профессиональных, дорогих версий. В Visio 2013 они тоже есть (только в профессиональном и Pro для Office365).
Дополнение не было в должной мере документировано, поэтому осваивается непросто. По сравнению с произвольным дополнением набор функций был конечно ограничен, но достаточно широк для решения многих универсальных задач. Передача данных поддерживается в обе стороны – из БД в шейпы и из шейпов в БД.
В качестве основного приемника данных в шейпах используются данные шейпа (Shape Data или несколько ранее Custom Properties). Хотя могут использоваться и другие атрибуты шейпов.
С введением этого дополнения стала возможным связь рисунка Visio с источником данных без программирования, только с помощью настроек.
В Visio 2007 введен еще более "продвинутый" элемент – окно "Внешние данные" и поддерживающий его транспорт данных. Принцип "без программирования" стал выражен еще ярче. Количество настроек снизилось. Количество выполняемых функций – тоже.
Новая технология стала однонаправленной. Теперь данные движутся только от базы данных в рисунок Visio. Обратный путь не обеспечивается. Дополнение работает только в профессиональных версиях Visio.
Одновременно введен еще и специальный элемент для отображения внешних данных Data Graphics – специальные выноски, которые могут автоматически прилепляться к любому шейпу после связывания его с внешними данными.
И как всегда, наиболее широко рекламируется самое последнее достижение. В случае Visio им как раз и стала связка окна "Внешние данные" и отображение в Data Graphics. То есть наиболее простая для пользователя технология с минимум функций. Именно она обладает указанными в начале свойствами – однонаправленность передачи данных и поставка только с профессиональными версиями.
Но забывать про наличие ранних, более мощных технологий – это большая ошибка. Да, они осваиваются чуть тяжелее. Зато их возможности намного превышают последний урезанный вариант. И, что тоже очень существенно, свое дополнение позволяет обойтись минимальной комплектацией Visio, а это может сэкономить (для Visio 2013) до 10 000 руб. на каждой лицензии.

Технология "Рисунки, связанные с данными"

Про эту технологию в последнее время сказано достаточно много. Вот несколько ссылок:
Связывание схем с внешними данными – пошаговый пример настройки связи между Visio 2010 и листом Excel. Тема Data Graphics не затрагивается.
Создание новых рисунков, связанных с данными – пошаговый пример добавления к шейпам предыдущей схемы элементов Data Graphics для отображения внешних данных.
Trilogy-meter Data Graphics Part I , Part II , Part III , – к сожалению, только на английском. Подробное описание решения задачи с использованием связи Visio с внешними данными. В трех последовательных статьях показан как сам процесс настройки связи с данными, так и решение сопутствующих задач (создание своих элементов Data Graphics, импорт изображений, технология обновления данных). Создавалось еще в 2009 г. для Visio 2007.
Building Custom Data Graphics for Visio 2007 – базовая статья Марка Нельсона о том, что такое Data Graphics, какие они бывают, как их создавать и как применять. Тоже на английском. От 2006 г., когда Data Graphics только зарождались.
Creating custom data graphics in Visio – современный пошаговый пример создания собственных значков. На английском.
Особенности технологии: данные двигаются только в одном направлении – из БД в рисунок Visio; технология доступна только в профессиональных версиях Visio.
Подробности
Начиная с Visio 2007 объект документ Visio содержит коллекцию объектов DataRecordSet. Объект DataRecordSet отвечает за передачу данных из БД в Visio.
Данные из DataRecordSet отображаются в окне "Внешние данные". Именно это окно пользователь видит и использует для настройки связи внешних данных с шейпами. Но программист имеет доступ и к самому объекту DataRecordSet, что позволяет использовать его в своих дополнениях, обеспечивающих, например, автоматическое соединение внешних данных с шейпами по определенному алгоритму.
В момент создания связи строки внешних данных с шейпом в шейпе автоматически создаются строки данных шейпа (Shape Data), соответствующие полям внешних данных. Строки добавляются только в том случае, если шейп не имеет строк данных с нужными наименованиями. То есть, если нужные поля создать заранее, они будут найдены и заполнены автоматически.
Область применения
Сокращенные возможности технологии предполагают и соответствующее сужение области применения. Технология применяется там, где нужно быстро добавить индикацию внешних данных на каком-либо готовом рисунке.
Яркий пример использования приведен на странице Карта Российских регионов . Здесь к основе (множество шейпов, составляющих карту) подключаются данные с сайта переписи населения в формате Excel. В результате на карте появляются в виде индикаторов данные о составе населения. Естественно, к одной и той же основе могут быть подключены различные источники данных для отображения нужной информации.
Основа не обязательно создается вручную. Она может быть получена другим дополнением Visio, например, путем автоматического построения оргсхемы организации. То есть сначала с помощью визарда оргсхем изображается структура организации, потом на нее накладывается нужная текущая информация из другой базы или файла.
Технология не обязательно заканчивается на Data Graphics. Для многих применений достаточно того, что данные появляются в Shape Data. При этом они легко могут просматриваться в интерактивном режиме через окно "Данные шейпа".
Наконец после появления внешних данных в Shape Data они могут отображаться не только в индикаторах, добавляемых к шейпу-основе. Этот шейп сам по себе может быть выполнен по технологии смарт-шейпа и изменяться в зависимости от данных. Вот пример, в котором смарт-шейпы применены в качестве таких сложных индикаторов, отображающих интенсивность использования веб-сервисов на предприятии.


Здесь каждый универсальный индикатор получает через внешние данные текущее значение измеряемого показателя, ограничители для раскраски и десяток предыдущих значений для отображения предыстории. Данные обновляются и публикуются по расписанию. Таким образом, довольно простыми средствами формируется экран для отображения измеряемых показателей.

Технология DataBase визардов

Пример подключения внешних данных из Excel к рисунку Visio 2003 рассмотрен в статье Связь шейпов Visio с данными в Excel . Пример охватывает подготовку файла в Excel, настройку связи, настройку шейпов для отображения данных, прямое и обратное обновление данных. Как уже отмечалось, по этой технологии передача данных осуществляется в обе стороны.
Через меню Add-Ons / Visio Extras в Visio 2007 доступны следующие дополнения:
  • Database Export Wizard
  • Database Refresh
  • Database Settings...
  • Database Update
  • Database Wizard
  • Export to Database...
  • Link to ODBC Database.
Два из них (Database Refresh и Database Update) являются простыми исполняющими дополнениями, а остальные 5 выполнены по типу визардов, подразумевающих настройку выполняемых операций.
Совсем не обязательно использовать весь этот комплект дополнений полностью. В описанном выше примере понадобились только Database Settings, Link to ODBC Database, Database Refresh и Database Update. В других задачах могут быть задействованы другие комбинации.
Общая схема передачи данных следующая
DataBase дополнение использует выбираемый при настройке ODBC драйвер, связывающий его с нужным источником – таблицей БД или файлом Excel. В рисунке Visio данные поставляются в секцию Shape Data.
Так же как и в вышеописанной технологии, целевой шейп может быть автоматически подстроен для приема данных в момент настройки соединения. В секцию добавляются именованные строки для приема данных, существующих в присоединяемой таблице.
Технология в основном рассчитана на ручную работу, хотя синхронизирующие дополнения Refresh и Update, как и любое дополнение могут быть вызваны программным путем из некоторого пользовательского приложения.
Область применения
Технология в принципе могла бы использоваться везде, где сейчас используется технология с окном "Внешних данных", и дополнительно в тех случаях, когда нужна обратная передача данных. Она тоже не требует знания программирования.
Тем не менее, широкого распространения она не получила. Причина скорее всего в том, что она уже вызывала трудности освоения у неподготовленного пользователя и в то же время не давала той свободы, которую предоставляет технология с разработкой своих дополнений.
Существенным ограничением является то, что связь устанавливается между конкретным шейпом и конкретной таблицей БД. Связываемые объекты должны появиться заранее и не поддерживаются сложные связки данных.

Разработка своих дополнений

Главное отличие этой технологии в том, что во всех остальных пользователю приходилось подстраиваться под функции, предоставляемые чужим дополнением. В этой технологии подстраиваться не надо, сделать можно все, что угодно.
Для связи с базой данных обычно используется ADODB, предоставляющий всю мощь SQL, произвольные запросы к любым таблицам БД.


К рисунку Visio доступ осуществляется через объектную модель Visio, то есть к произвольным объектам.
Но большие возможности сопровождаются большим разнообразием решений. Единственная типовая схема приложения типа окна "Внешние данные" уже не сможет закрыть всего этого разнообразия.
Один из возможных примеров, в котором Visio выступает в качестве графического редактора данных, находящихся в базе, показан в статье . О других примерах, различных областях применения и возможных схемах приложений, пожалуй, лучше поговорить отдельно.

Назначение Microsoft Visio

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

Типы документов Microsoft Visio:

    Диаграммы и блок-схемы различного назначения (аудит, дерево ошибок, организационные диаграммы, причинно-следственные связи, диаграммы маркетинга и др.).

    Карты вычислительных сетей, каталогов LDAP и Active Directory.

    Карты сайтов, связи между объектами в программном обеспечении, структуры и интерфейсы программ, потоки данных.

    Планы помещений, этажей, инженерно-технических коммуникаций.

    Схемы рабочего процесса.

    Чертежи и схемы электронных устройств.

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

    открыть шаблон,

    перетащить в документ подходящие фигуры,

    применить темы.

Шаблоны Visio

Создать новую или реконструировать существующую базу данных в модель можно с помощью шаблона "Схема модели базы данных" (рис.1) и воспользоваться его набором элементов:

    "Сущность-связь" - для баз на основе SQL92 и более ранних версий стандарта,

    "Объектно-реляционная схема" - для баз на основе SQL99 и более поздних версий стандарта.

Рисунок 1. Создание документов

Анализ предметной области

Рассмотрим на примере предметной области – процесса оформления заявки на отправление груза с заданного адреса на заданную станцию.

Построение модели базы данных состоит из трех этапов:

      Выделяются сущности и их атрибуты,

      Проектируются сущности (таблицы),

      Создаются связи между сущностями (таблицами).

Составляем список всех сущностей, информацию о которых, потребуется сохранять в базе данных, причем, для каждой сущности определен необходимый список атрибутов и список всех связей, которые потребуются, в формате, указанном в таблице 1.

Таблица 1

Номер

Сущность

Атрибуты

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

ДатаВремяИзмерения

дата/время измерения

город, улица, дом

Исполнитель

фамилия, имя, отчество, отдел, должность

Примечание 1: информацию о дате и времени всегда лучше выносить за пределы таблицы фактов (главной таблицы) по нескольким причинам: размерность числового ключа обычно меньше, чем размерность типа данных для даты/времени - экономится место в главной таблице; в этом случае удобно использовать дополнительные флаги, например, рабочие/нерабочие дни, сезонности и т.п. Примечание 2: разбиение значения адреса на более мелкие удобно, если, например, потребуется поднять результаты измерений для определенного города

Номер связи

Первая сущность

(дочерняя)

Вторая сущность

(родительская)

Тип связи (один-к-одному, один-ко-многим, многие-к-одному, многие-ко-многим)

ДатаВремяИзмерения

Многие-к-одному

Многие-к-одному

Многие-к-одному

Исполнитель

Многие-к-одному

Создание новой схемы модели базы данных

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

Параметры документа базы данных

    Откройте вкладку Файл .

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

    На вкладке База данных в группе Управление нажмите кнопку Показать параметры .

    В диалоговом окне Параметры документа базы данных (вкладка Отношение) выберите нужный набор символов и другие параметры таблицы и связи (рис.2), а затем нажмите кнопку ОК .

Рисунок 2. Параметры документа базы данных

Создание таблиц

    Установите удобный вам размер схемы с помощью кнопок + - внизу панели (например, 100 %), а затем из контейнера Объекты реляционной базы данных (раскрыв его щелчком мыши) перетащите на диаграмму элемент Сущность и выделите его мышкой .

    В открывшемся окне в списке Категории убедитесь, что выбрана строка Определение и введите следующие значения (табл.1):

Физическое имя Меры , (заголовок таблицы)

Концептуальное имя Меры ,

    Перейдите на строку Столбцы , убедитесь, что переключатель стоит в положении Физический тип данных (Microsoft Access) , введите физическое имя и выберите тип данных, как показано на рисунке 3. Чтобы изменить тип данных для столбца, щелкните его поле Тип данных , а затем из списка выберите тип данных или введите тип данных в список. Поле Заметки заполнять не обязательно, значения в нем генерируются автоматически.

    Установите флажок (галочку) Обязательное для столбцов, которые не могут иметь значения NULL. (колонка после колонки Типы данных)

    Установите флажок PK (первичный ключ) для столбцов, однозначно определяющих каждую строку таблицы базы данных (только для Код измерения).

    На вкладке Конструктор в группе Темы можно выбрать стиль оформления таблиц, например, Цветов Яркая, эффект Простая тень (рис.3)

Рисунок 3. Проектирование сущности Меры

Точно также создайте еще сущности Адрес, Станция, Исполнитель и ДатаВремяИзмерения со столбцами, как показано на рисунке 4. Имена сущностей задавать в Категории Определение. Индексы I1, I2, I3, I4 создаются позже.

б)

г)

Рисунок 4. Проектирование сущностей: а) Адрес, б) Станция, в) Исполнитель, г) ДатаВремяИзмерения.

Создание связей

После того, как создание всех объектов сущностей завершено, необходимо создать отношения между таблицами. Эта операция производится так:

    Убедитесь, что в схеме отображены все таблицы.

    Нажмите на кнопку Соединительная линия на вкладке Главная в группе Сервис (соседняя кнопка Указатель не должна быть нажата).

    Наведите указатель мыши на таблицу (родительскую) с первичным ключом (например, ДатаВремяИзмерения ). Таблица будет выделена красным.

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

    Если размерность связи не устраивает, то дважды щелкните связь. В окне Свойства базы данных в группе Категории выберите вариант Прочее . В группе Мощность выберите размерность, наиболее подходящую к связи. Для отношения «один-ко-многим» наилучшим вариантом будет 0 или более или 1 или более (Для отношения «один-к-одному» - 0 или 1 или ровно 1) .

Создание связей в первый раз получается не всегда. Обратите внимание, что в Visio для столбцов, между которыми создаются отношения, должен совпадать тип данных и название (с учетом регистра). Иначе будет создано дополнительное поле с внешним ключом FK 5 Код даты (рис.5), а поле FK 2 Код дата останется без соединения. В СУБД (например, Access) такое условие не является обязательным. В итоге схема может выглядеть так, как показано на рисунке 5.

Рисунок 5. Схема Отношения между таблицами в Visio.

Создание индексов

Использование индексов повышает производительность или скорость работы базы данных при выполнении запроса.

    Дважды щелкните таблицу (Меры) , к которой требуется добавить индекс (Соединительная линия должна быть отключена), а затем в окне Свойства базы данных в списке Категории выберите вариант Основной идентификатор и включите флажок Создать индекс при Создать: Первичный ключ.

    Затем в окне Свойства базы данных в списке Категории выберите вариант Индексы и нажмите кнопку Создать .

    В диалоговом окне Создать индекс введите имя (I1, I2 и т.д) для индекса (Меры ), а затем нажмите кнопку ОК .

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

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

    В списке Индексированные столбцы снимите флажок Убывание , чтобы создать последующие индексы с возрастающим порядком сортировки (рис.6).

    Аналогично создать индексы для других кодов измерения (см. рис.5 сущность Меры).

Рисунок 6. Создание индексов.

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

Использование проверки позволяет контролировать работу базы данных при выполнении запроса.

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

    В группе Категории выберите вариант Столбцы , а затем выберите столбец, которому требуется добавить предложение проверки (например, для столбца ДатаВремя измерения указать диапазон значений).

    Нажмите кнопку Изменить .

    На вкладке Проверка диалогового окна Свойства столбца введите диапазон проверки.