Руководство пользователя ARIS SCRIPT Руководство пользователя ARIS SCRIPT. 2 СОДЕРЖАНИЕ 1. ОТЧЕТЫ, ОБЩАЯ ИНФОРМАЦИЯ. ............................................................................ 5 1.1. Методология использования скриптов для создания отчетов в системе ARIS .... 5 1.2. Структура базы данных ARIS ......................................................................................... 6 1.3. Примерная структура моделей базы данных ARIS ..................................................... 8 1.4. Рамки переносимости скриптов .................................................................................. 11 1.5. Положительные стороны использования скриптов в ARIS.................................... 12 2. ДОКУМЕНТИРОВАНИЕ ИНФОРМАЦИИ О ПРОЕКТЕ С ПОМОЩЬЮ ARIS SCRIPT ........................................................................................................................................... 13 2.1. Определения ................................................................................................................... 13 2.2. Этапы создания документации .................................................................................... 13 3. РАБОТА СО СПРАВОЧНОЙ СИСТЕМОЙ В ARIS .................................................... 16 3.1. Структура справочной системы ARIS ......................................................................... 16 3.2. Использование ARIS Help Topic ................................................................................... 16 3.3. Использование ARIS Method Help ................................................................................ 18 3.4. Использование ARIS Methods Manual ......................................................................... 19 3.5. Нахождение справки о классах, объектах и константах ARIS_Extension .............. 19 3.6. Нахождение справочной информации о встроенном в систему ARIS языке программирования Sax Basic .............................................................................................. 20 4. КРАТКОЕ ОПИСАНИЕ ЯЗЫКА SAX BASIC LANGUAGE ........................................ 21 4.1. Переменные и константы.............................................................................................. 21 4.2. Написание кода программы ......................................................................................... 23 4.3. Принятие решения в программе .................................................................................. 25 4.4. Использование циклов.................................................................................................. 27 4.5. Процедуры и функции ................................................................................................... 28 4.6. Классы и объекты .......................................................................................................... 29 5. РАБОТА СО СКРИПТАМИ В СИСТЕМЕ ARIS .......................................................... 31 5.1. Скрипты в системе ARIS, общие сведения ................................................................ 31 5.2. Запуск скрипта для создания отчета .......................................................................... 32 5.3. Создание скрипта с помощью Script Wizard .............................................................. 34 5.4. Редактирование скрипта с помощью Script Wizard .................................................. 39 5.5. Редактирование скрипта с помощью Script Editor .................................................... 41 5.6. Отладка скриптов, работа с закладкой Watch, работа с точками останова .......... 41 5.7. Вывод на экран вспомогательной информации в ходе выполнения скрипта .... 43 5.8. Использование различных языков в скриптах ARIS ................................................ 44 6. СТРУКТУРА, ФОРМАТ И МАКЕТ ОТЧЕТА ............................................................... 46 6.1. Операторы, формирующие структуру отчета ........................................................... 46 Руководство пользователя ARIS SCRIPT. Версия 6.1 3 6.2. Операторы, создающие нижний и верхний колонтитул макета отчета ................. 47 6.3. Операторы, вставляющие в отчет строки .................................................................. 47 6.4. Использование таблиц в отчете .................................................................................. 47 6.5. Различия используемых форматов отчетов ............................................................. 49 6.6. Операторы, создающие иллюстрацию и вставляющие ее в отчет ........................ 49 6.7. Пример скрипта, формирующего структуру отчета.................................................. 50 7. ИСПОЛЬЗОВАНИЕ ИНТЕРАКТИВНЫХ ЭЛЕМЕНТОВ ПРИ СОЗДАНИИ СКРИПТОВ В ARIS .......................................................................................................... 54 7.1. Использование Dialog Editor для создания экранных форм .................................. 54 7.2. Описание параметров диалоговых элементов ARIS SAX Basic ............................. 56 7.3. Обработка результатов выбора пользователя......................................................... 57 7.4. Использование стандартных экранных форм .......................................................... 57 7.5. Пример скрипта на использование экранных форм ................................................ 58 8. ОПИСАНИЕ СКРИПТОВ ОТЧЕТОВ, ПРИСУТСТВУЮЩИХ В СТАНДАРТНОЙ ПОСТАВКЕ ARIS ............................................................................................................. 60 9. СКРИПТЫ SEMANTIC CHECK ................................................................................... 69 9.1. Скрипты семантических проверок: общие сведения ............................................... 69 9.2. Запуск скрипта семантической проверки в системе ARIS ....................................... 71 9.3. Работа со стандартным (встроенным) скриптом семантических проверок ......... 73 10. КЛАССЫ И ОБЪЕКТЫ ARIS SAX BASIC................................................................ 74 10.1. Терминология ............................................................................................................... 74 10.2. Перечисление, общее описание классов и объектов ............................................. 75 10.3. Структура взаимоотношений моделей, древо классов, древо наследования... 78 11. ПОДРОБНОЕ ОПИСАНИЕ СВОЙСТВ И МЕТОДОВ КЛАССОВ ARIS .................. 81 11.1. Класс “ARIS_BASIC_Extension” .................................................................................. 81 11.2. Класс “BaseList” ........................................................................................................... 82 11.3. Класс “Item” ................................................................................................................... 83 11.4. Класс “Occ” ................................................................................................................... 84 11.5. Класс “Attr” .................................................................................................................... 84 11.6. Класс “Cxn” ................................................................................................................... 85 11.7. Класс “CxnOcc”............................................................................................................. 86 11.8. Класс “Database” .......................................................................................................... 86 11.9. Класс “Font” .................................................................................................................. 87 11.10. Класс “FontStyle” ........................................................................................................ 87 11.11. Класс “Group” ............................................................................................................. 88 11.12. Класс “Lane” ................................................................................................................ 89 11.13. Класс “Language” ....................................................................................................... 90 11.14. Класс “MethodFilter” ................................................................................................... 90 Руководство пользователя ARIS SCRIPT. Версия 6.1 4 11.15. Класс “Model” .............................................................................................................. 91 11.16. Класс “ObjDef” ............................................................................................................ 96 11.17. Класс “ObjOcc” ........................................................................................................... 98 11.18. Класс “Output” ............................................................................................................ 98 11.19. Класс “Picture” .......................................................................................................... 101 11.20. Класс “Table” ............................................................................................................. 102 11.21. Класс “User” .............................................................................................................. 102 11.22. Класс “UserGroup”.................................................................................................... 103 12. ВВЕДЕНИЕ В ARIS API ........................................................................................... 104 12.1. Описание ARIS API ..................................................................................................... 104 12.2. Краткое описание возможностей ARIS API............................................................. 105 13. ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ ПРИЕМЫ ПРИ РАБОТЕ С БАЗОЙ ARIS .. 107 13.1. Пример на использование Occurrence и Definition объекта ................................ 107 13.2. Пример создания своих списков объектов и их сортировки .............................. 111 13.3. Пример рекурсивной программы ............................................................................ 115 13.4. Пример анализа топологии (геометрии) модели................................................... 119 13.5. Пример применения теории графов для анализа модели с помощью ARIS Script...................................................................................................................................... 121 14. ОСНОВНЫЕ ПРИЕМЫ КОЛЛЕКТИВНОЙ РАБОТЫ НАД СКРИПТАМИ............ 125 14.1. Форматирование текста программы – соглашения об отступах, переносы ..... 125 14.2. Соглашения об именах переменных и функций ................................................... 126 14.3. Отказ от свободного преобразования типа ........................................................... 126 14.4. Объявление и комментирование переменных...................................................... 126 14.5. Комментирование операторов ветвления ............................................................. 126 14.6. Комментирование процедур и функций ................................................................. 126 Руководство пользователя ARIS SCRIPT. 5 1. Отчеты, общая информация. 1.1. Методология использования скриптов для создания отчетов в системе ARIS Инструментарий ARIS используется для описания бизнес-процессов компании. Результатом описания является набор взаимосвязанных моделей ARIS, которые можно просматривать с помощью ARIS Toolset, ARIS Easy Design или ARIS WEB Designer. Как правило, графическая информация о процессе, содержащаяся в моделях, легко усваивается, но для работы часто необходимо представить ее в виде обычных текстовых документов или таблиц (возможно, с рисунками). Для извлечения информации о моделях и объектах из базы ARIS необходимо на встроенном в ARIS языке SAX Basic создавать программные модули (скрипты), с помощью которых осуществляется сбор и вывод информации в файлы документов. Скрипт (script) – программа, набор специальных команд, которые выполняются системой ARIS, и в результате выполнения которых формируется файл отчета или изменяется наполнение базы данных ARIS (атрибуты). Скрипт открывается для редактирования только в ARIS, и применение других редакторов для его просмотра и изменения невозможно. Помимо простого вывода информации, содержащейся в базе данных ARIS, с помощью скриптов возможно проводить анализ всей совокупности моделей и объектов (базы данных ARIS), обрабатывать статистику и выполнять любые другие действия, необходимые для документирования и анализа нарисованных моделей. В согласии с общей идеологией ARIS – процессной ориентацией анализа деятельности предприятия, средства для создания отчетов ARIS не нацелены на анализ сразу всей совокупности информации, хранимой в базе ARIS (хотя и позволяют это делать). Перед анализом информации базы и созданием отчета о результатах анализа (и о содержимом базы) системой предлагается уточнить, какой объект базы предполагается взять за «отправной пункт» начала анализа. Также возможно не выбирать конкретный объект (модель) или группу объектов (моделей), а выбрать всю базу целиком или папки, содержащиеся в ней. В соответствии с требованиями разграничения доступа к служебной информации на предприятии, различные модели, или конкретные объекты, или отдельные логические связи между ними будут недоступны для скриптов, запускаемых от имени некоторого лица, если это лицо не имеет соответствующих прав доступа к частям базы данных ARIS. А значит, и отчеты, создаваемые этим лицом с помощью скриптов, будут содержать только информацию, соответствующую правам доступа этого лица. При создании скрипта необходимо знать заранее его предполагаемые область применимости и контекст выполнения. Совокупность выбранных методологических фильтров, прав доступа пользователя, от имени которого открыта база ARIS, а также вид, тип и имя выбранного перед запуском скрипта объекта (базы целиком, подмножества моделей или подмножества объектов моделей), прямо влияющие на результат выполнения запущенного скрипта - на конечный отчет, называются контекстом выполнения скрипта. Подмножество объектов или моделей, на которых скрипт будет корректно работать, называется областью применимости скрипта. При создании скрипта, формирующего тот или иной отчет, необходимо хорошо представлять себе следующее: для кого будет создаваться отчет(например, отчет для руководства предприятия или отчет для средств массовой информации), т.е. какую информацию из базы ARIS отчет, возможно, отобразит; в какой форме (текст, рисунки, таблицы, графики) будет представлен отчет. Сформированный отчет может быть сохранен в виде HTML-файла, файла формата текстового редактора MS Word либо рабочей книги MS Excel. Руководство пользователя ARIS SCRIPT. Версия 6.1 6 1.2. Структура базы данных ARIS Все модели и объекты ARIS хранятся в базе данных ARIS. Методология моделирования ARIS содержит большое количество типов моделей, объектов и связей, которые используются в процессе описания предприятия. Эта база данных имеет объектную структуру. В данном разделе будут даны краткие сведения о типологии моделей ARIS. Дадим определения элементов базы данных ARIS. Группы используются в рамках базы данных пользователя для организации иерархической структуры хранимых моделей и объектов. Они аналогичны каталогам DOS, Windows. В роли файлов при этом выступают модели и определения объектов ARIS. В каждой базе данных ARIS существует корневая группа, в которой создаются все остальные подгруппы. Стандартным средством, позволяющим пользователю просматривать, создавать, удалять и редактировать группы, является ARIS Explorer. Типы моделей отражают методологию моделирования различных аспектов деятельности предприятия. Основной объем типов моделей был создан исходя из целей построения программных средств, реализующих эту деятельность на основе информационных технологий. Тем не менее, типы моделей уровня описания требований имеют значительную гибкость, позволяющую использовать их для задач проектирования системы управления предприятия. Согласно концепции ARIS, все типы моделей классифицированы в соответствии с двумя характеристиками: точка зрения на предприятие (организационная структура, структура документооборота, структура деятельности и процессная взаимосвязь этих точек зрения); уровень детализации описания (уровень определения требований, уровень спецификации проекта, уровень описания реализации). Каждый тип модели представлен набором типов объектов и типов связи между ними. Тип связи между объектами имеет место в типе модели при соответствующем логическом обосновании этой связи в данной теории моделирования. Наличие типа связи в типе модели означает возможность осуществления такой связи в модели. Модель создается в некоторой группе и является дальнейшей конкретизацией типа модели. Модель представляет собой конкретный набор объектов и связей, не противоречащий типу модели. Сервер является программной системой, управляющей объектно-ориентированной базой данных на каждом рабочем месте. Доступные сервера определяются платформой, через которую происходит обмен информацией. Обычно имеется сервер с именем “LOCAL”, находящийся на данном компьютере. Для сервера задается его конфигурация, содержащая набор фильтров. Эти фильтры можно использовать для сужения возможностей методов ARIS для конкретных проектов. База данных пользователя обычно связана с конкретным проектом, в котором работает группа пользователей. База данных располагается на сервере. Язык. В каждой базе данных пользователь может работать с несколькими языками (рабочие языки базы данных) для представления моделей, объектов и их атрибутов на нескольких языках. Пользователи создаются в базе данных ARIS. Пользователи обладают уникальным именем и паролем. Чтобы иметь возможность работать с базой данных, пользователю должен быть присвоен фильтр для открытия базы данных и права доступа к группам базы данных. Пользователь может быть приписан к группе пользователей. Каждая вновь создаваемая база данных имеет одного пользователя с именем «system» и паролем «manager». Основой для моделирования в ARIS является модель, в рамках которой используются объекты и связи между ними. Модель имеет определенный тип, который определяет типы объектов и связей между ними, которые могут использоваться в данной модели. При написании скрипта часто бывает необходимо «пройтись» по всей топологии нарисованных моделей ARIS и собирать информацию о присутствующих объектах и их атрибутах, а также о порядке размещения объектов на моделях. Для этого необходимо четко представлять себе структуру хранения моделей и объектов в базе данных ARIS и перед написанием скрипта иметь представление о требуемом процессе обхода моделей ARIS. Модели и объекты расположены в папках базы данных. Связи находятся на модели и их нельзя найти в папках базы данных. К ним можно получить доступ, только находясь на модели. Руководство пользователя ARIS SCRIPT. Версия 6.1 7 Объект может быть расположен на нескольких разных моделях. Причем объект имеет две различных сущности - это Occurrence и Definition. Отображение объекта (Occurrence) – это представление объекта, находящееся на определенной модели, причем у объекта может быть несколько Occurrence. На уровне Occurrence определяется расположение объекта на модели (координаты), цвет объекта, активность объекта и т.д. Определение объекта (Definition) – это определение объекта, находящееся в папке базы данных в котором находится основная информация об объекте (атрибуты). У объекта есть только один Definition, но может быть и несколько Occurrence. При обходе базы данных ARIS скриптом необходимо по возможности использовать уровень Occurrence и только при необходимости переходить на уровень Definition. При моделировании процессов предприятия может использоваться несколько уровней вложенности моделей. В таком случае предпочтительно использовать рекурсию для анализа моделей, тогда скрипт не будет зависеть от глубины вложенности моделей. На нижеприведенной диаграмме нарисована примерная взаимосвязь объектов в базе данных ARIS. Руководство пользователя ARIS SCRIPT. Версия 6.1 8 1.3. Примерная структура моделей базы данных ARIS Main process Основные процессы Стратегическое у прав ление Продв ижение Расчеты с заказчиком Продажи Произв одств о belongs to Определение параметров нового продукта Логистика (обеспечение произв одств а) consists of c... Расчеты с поставщиком Оперативное планирование Оперативное планирование поступлений/ выплат Контроль расчетов Контроль оплаты и подготовка заявки для формирования счетов-фактур Оперативное планирование поступлений/ выплат Расчеты с подотчетными лицами Оперативное планирование поступлений/ выплат Отчет подотчетного лица о расходовании средств ... Получена задача на разработку нов ого продукта Задание, связанное с использованием подотчетной суммы завершено План развития продукта План развития продукта Знания об истории Знания о Знания о Знания оЗнания о конкурентах продаж в возможностях возможностях тенденциях в ассортиментной ассортиментной сбытовой сети предприятия развития рынка группе группе Знания об истории Знания о Знания о Знания оЗнания о конкурентах продаж в возможностях возможностях тенденциях в ассортиментной ассортиментной сбытовой сети предприятия развития рынка группе группе consists of Расчеты Расчеты belongs to Анализ рынка Разработка и в ыв од на рынок нов ых проду ктов и у слу г consists of Scenario Процессы компании 60,00 Hour(s) Определение специфики нов ого Менеджер продукта (материалы, по продукту конструктив ) 60,00 Hour(s) Определение функциональности Менеджер и дизайна нового по продукту продукта Определена специфика нов ого продукта (материалы, конструктив ) Определена функциональность и дизайн нового продукта Отчет подотчетного лица о расходовании средств Имеется задолженность подотчетного лица перед компанией План развития продукта 16,00 Hour(s) Формиров ание проекта задания на Менеджер разработку нов ого по продукту продукта Имеется задолженность компании перед подотчетным лицом Сальдо по подотчетному лицу равно 0 Сформирован Задание на разработку нов огопроект задания на продукта разработку нов ого продукта Задание на разработку нов ого продукта 2,50 Hour(s) Утв ерждение Комиссия по проекта задания продукции на разработку нов ого коммерческой продукта службы В случае необходимости корректировки Задание на проекта задания на разработку нового разработку нов ого продукта идет повторение этапа продукта "определение параметров продукта" Необходимость корректиров ки проекта задания на разработку нов ого продукта Отказ от задачи на разработку нового продукта Утв ержден проект задания на разработку нов ого продукта Оперативное планирование поступлений/ выплат Сводная заявка на выдачу наличных денег сформирована Служба материального обеспечения Начальник с лу ж бы м ат ериального обес печения Организовывать работу по бес перебойному обес печению с ырьем и материалами Слу ж ба м ат ериального обес печения Зам .начальника СМО по логис т ике Начальник БИ М Бюро им порт ных м ат ериалов Рук оводить БИМ Эконом ис т 1 по м ат ериальнот ех ничес кому с Эконом набж ению ис т БИ 2 по М м ат ериальнот ех ничес кому с набж ению БИ М Начальник БФиС Бюро фу рнит у ры Эконом ис т 1 по и с т екло-изделий м ат ериальнот ех ничес кому с набж ению БФиС Эконом ис т 2 по м ат ериальнот ех ничес кому сЭконом набж ению ис т БФиС 3 по м ат ериальнот ех ничес кому сЭконом набж ению ис т БФиС 4 по м ат ериальнот ех ничес кому сЭконом набж ению ис т БФиС 5 по м ат ериальнот ех ничес кому с набж ению БФиС Контролировать ос татк и с ырья и материалов на с к ладах Организовывать работу Начальник БИМ по поис к у и с озданию с ети пос тавщик ов Организовывать работу по повышению к ачес тва получаемого с ырья и мат-в Организовывать работу по с нижению цен получаемого с ырья и мат-в Организовывать работу по забрак ованному с ырью и мат-у Рисунок 1. Примерная структура моделей Руководство пользователя ARIS SCRIPT. Версия 6.1 9 Рассмотрим, что представляет собой понятие модели в ARIS, и что в данном понятии содержится. Модель – это совокупность символов, их свойств, атрибутов и отношений между ними, которая адекватно описывает некоторые свойства моделируемого объекта. Структуру модели см. Рисунок 2. является частью (is part of) Модель организации Модель ARIS имеет (has) содержит (subsumes) Тип модели Объекты Имя Связи Свойства Встроенный внешний объект содержит (subsumes) Текстовый документ WordPad Методологические ф ильтры Атрибуты Заполненные атрибуты Текст (комментарии) Объект является частью (is part of) Внешний вид модели может яв ляться (can be) Класс модели классиф ицируют (classifies) Варианты Предложения по улучшению Управление изменениями Рисунок 2. Структура модели Руководство пользователя ARIS SCRIPT. Версия 6.1 10 Рассмотрим, что представляет собой понятие объекта в ARIS и что в данном понятии содержится. Объект - самостоятельная часть методологии, отражающая элемент описываемой предметной области. Структуру объекта см. Рисунок 3 Объект Тип объекта имеет (has) Имя Связь ... М одель ARIS Экземпляр объекта Внешний вид объекта является экземпляром (is specimen of) классифициру ет (classifies) стру кту рнозависимый стру кту рнонезависимый может являться (can be) Символ 1 Свойства объекта содержит (subsumes) Атрибу ты объекта Прочие свойства объекта Символ M Рисунок 3. Структура объекта Руководство пользователя ARIS SCRIPT. Версия 6.1 11 Рассмотрим, что представляет собой понятие связи в ARIS и что в данном понятии содержится. Связь - взаимоотношения между двумя объектами, имеющие определенные свойства. Связь имеет (has) классиф ицирует (classifies) Тип связи Детализирующая Исходный объект Соединение Конечный объект Мастер-вариант яв ля ется э кземпл яром (is specimen of) Объект Свойства связи содержит (subsumes) Атрибуты связи Экземпляр Внешний вид связи Прочие свойства связи Рисунок 4. Структура связи 1.4. Рамки переносимости скриптов В результате изучения предыдущего раздела мы узнали, что модели и объекты в ARIS имеют различные типы и различные связи между собой, определенные методологией моделирования (в частности документом «Соглашение о моделировании»). В связи с тем, что в программной части скрипта, как правило, описывается алгоритм обхода топологии моделей ARIS, в большинстве случаев скрипт достаточно жестко привязан к используемой методологии. При внесении в методологию изменений, которые затрагивают взаимосвязь между объектами или типы объектов или моделей, необходима корректировка скрипта в соответствии с внесенными изменениями. Надо понимать, что создание универсального скрипта, работающего на различных методологиях, в принципе возможно, но в реальной ситуации очень сложно и трудоемко. Поэтому, если в скрипте используется определенная логика, не сильно зависящая от изменений методологии, ее целесообразно выделять в отдельные программные модули для облегчения работы по корректировке скрипта при изменении методологии. Деятельность предприятия, описываемого с помощью системы ARIS, может быть сколь угодно сложной, и, как следствие, модели, описывающие логические связи между структурными подразделениями, целями, полномочиями, функциями, документами и пр., могут не поддаваться простому многошаговому анализу. Степень детализации представления предприятия в диаграммах базы ARIS может не соответствовать степени гибкости написанного скрипта. Иными словами, скрипт, корректно составляющий отчет по базе или отдельной ее части сегодня, может начать работать некорректно на другой части базы или на другой базе после внесения какихлибо изменений в базу. Руководство пользователя ARIS SCRIPT. Версия 6.1 12 1.5. Положительные стороны использования скриптов в ARIS С помощью скриптов решается основная задача – анализ и документирование данных из базы ARIS, собранных в ходе описания компании, в документах формата MS Office. Возможность использования скриптов в ARIS является очень сильным инструментом, позволяющим документировать знания о компании и проводить анализ этих знаний. Решить данную задачу невозможно без применения скриптов, поскольку использование только графической информации во многих случаях невозможно или неудобно. Информационные «выжимки» из базы данных ARIS в виде должностных инструкций, положений о подразделении, регламентных карт, технических заданий, являются одним из результатов описания деятельности компании и в дальнейшем активно используются сотрудниками компании. Возможность формирования отчета в виде текстовых файлов (DOC, RTF, TXT) позволяет получить в результате работы скрипта готовые к работе документы стандартных форматов, причем в виде, не требующем трудоемких правок. Возможность формирования отчета в виде табличного файла (Excel) позволяет использовать результаты работы в электронных таблицах (Excel) и переносить их в СУБД (напр., Access). Возможность формирования отчета в виде HTML-файла позволяет опубликовывать в интернете / интранете результаты работы скрипта, т.е. делать их доступными для неограниченного количества пользователей. Помимо задач документирования базы данных ARIS, с помощью скриптов возможно решить и вспомогательные вопросы: Очень часто необходимо заполнение некоторых атрибутов объектов и моделей определенными, заранее известными значениями, что через проводник ARIS делать довольно трудоемко. В данном случае бывает проще написать скрипт, который в автоматическом режиме заполняет или изменяет значения определенных атрибутов. Существует возможность запуска скриптов из проводника Windows или из программ, организующих запуск программ по расписанию. Эта возможность позволяет генерировать отчеты по определенному расписанию без участия человека. При моделировании часто возникают ошибки в моделях (не тот тип, цвет объекта и т.п.) которые довольно трудно диагностировать при большом объеме моделирования. Для решения данной задачи возможно написание и использование проверочных скриптов для диагностирования ошибок в моделях. С помощью скриптов можно организовать импорт или экспорт информации из ARIS в другие приложения. Этот вариант привлекает своей простотой по сравнению с использованием ARIS API, который является отдельным продуктом ARIS и приобретается по отдельной лицензии. Руководство пользователя ARIS SCRIPT. Версия 6.1 13 2. Документирование информации о проекте с помощью ARIS Script 2.1. Определения Документирование - вывод информации о проекте в форме файлов текстового редактора MS Office. Скрипт - программа, позволяющая перенести информацию из графических моделей в файлы документов в соответствии с определенными правилами. Генерация отчета - создание файла документа при помощи заранее созданного скрипта. 2.2. Этапы создания документации Перед созданием документации необходимо определить этапы создания документации. Для процесса документирования с помощью скриптов ARIS характерны следующие этапы: Определение целей создания документации; Определение групп пользователей документации; Определение требований к документам в соответствии с группами пользователей (перечень выводимой в документ информации, создание структуры документа, создание форм представления информации); Оценка возможностей ARIS по выводу информации в этом виде и изменение форм документов в соответствии с требованиями ARIS; Уточнение требований к моделированию; Создание скриптов отчетов в визуальном мастере (Script Wizard) или в Script Editor; Генерация отчетов с помощью созданных скриптов. 2.2.1. Определение целей создания документации Рассмотрим перечень целей создания документации: Структурирование и обобщение информации о проекте; Получение доступа к информации о проекте без помощи специализированных графических средств; Получение информации о проекте в удобной форме; Документы о закрытии этапов проекта; Формирование технологических и регламентных документов (положения о подразделениях, должностные инструкции, технологические карты и т.д.); Представление результатов проекта для различных групп пользователей. Данный перечень целей не является исчерпывающим и может быть изменен. Несмотря на полноту документации, необходимо учитывать, что отчеты не должны и не могут целиком заменять модели ARIS. Отчеты являются лишь дополнением к моделям ARIS. Пример выделения целей создания документов: Создание должностной инструкции для заместителей генерального директора; Документирование процессов (создание регламентов работ или технологических карт сотрудников и подразделений); Получение описания предприятия в соответствии со стандартами качества. 2.2.2. Определение групп пользователей документации При документировании необходимо четко представлять группы пользователей, для которых предназначена документация и которые будут ее использовать в своей работе. Рассмотрим примерное определение пользователей документации. Рабочие группы проекта по различным направлениям, например: информационное моделирование; описание структуры документов; описание организационной структуры; создание моделей верхнего уровня; описание процессов. Руководство проекта: Руководство пользователя ARIS SCRIPT. Версия 6.1 14 руководители рабочих групп; методологические консультанты; руководители проекта. Подразделения, охваченные проектом: сотрудники подразделений; руководители подразделений; клиенты компании и средства массовой информации. Выделение группы пользователей документов (пример): Кадровая служба (требования к штатной единице, формирование штатного расписания подчиненных руководителю подразделений); Отдел технологий (процедуры работы руководящего состава, технологические карты подчиняющихся руководителям сотрудников); Заместители генерального директора (информация для разграничения зон ответственности, технологические карты сотрудников); Генеральный директор (выделение персональной ответственности заместителей). 2.2.3. Определение требований к документам Для определения требований необходимо определить следующие позиции: Определение перечня необходимой информации; Определение элементов репозитория ARIS, содержащих эту информацию (информация о документируемых моделях, информация об объектах, которые будут выводиться в документ, их характеристиках и атрибутах, характеристики отношений между объектами, информация о детализирующих объектах моделях); Определение форм представления данных; Выделение требований к представлению информации из моделей (в виде графики моделей, таблиц, текста).Создание структуры документа: Создание разделов документа и определение формы представления информации в каждом разделе; Определение заголовков, стилей и колонтитулов; Выделение содержательной части информации, получаемой из моделей; Расстановка служебных слов; Согласование форм служебных слов (падежей, чисел, родов и т.д.) и информации, выводимой из моделей. 2.2.4. Оценка возможностей ARIS по выводу информации Средства документирования ARIS: ARIS Script Wizard – средство, позволяющее создать структуру скрипта в визуальном виде, определить, какие модели, объекты, связи и атрибуты будут обрабатываться этим скриптом; ARIS Script Editor – средство, позволяющее проводить сложные выборки информации из БД проекта, редактировать и русифицировать скрипты, полученные при помощи Script Wizard, используя все возможности алгоритмического языка Visual Basic for Applications (Sax Basic Language); MS Word - средство, позволяющее редактировать отчет (документ), русифицировать его при помощи макросов, сохранять и распространять информацию из проекта. Возможности по выводу информации в Script Wizard Строгая иерархическая структура вывода информации из моделей, например: Модель -> Объекты модели -> Атрибуты и связи объектов -> Связанные объекты -> Декомпозирующие объекты модели; Возможность вывода всех свойств и атрибутов каждого элемента; Вывод графики модели; Возможность фильтрации и сортировки выводимых элементов; Задание параметров вывода информации по всем элементам репозитория ARIS. Руководство пользователя ARIS SCRIPT. Версия 6.1 15 Ограничения Script Wizard по выводу информации Невозможен вывод информации в табличном виде; Строгая направленность на модели и объекты определенного типа; Отсутствие возможностей анализа структуры модели (положения объектов и связей); Ограниченные возможности фильтрации и отбора информации по условиям. Возможности Script Editor по выводу информации и редактированию шаблонов отчетов Неограниченные возможности алгоритмического языка Visual Basic for Applications (Sax Basic Language); Специализированные функции фильтрации и сортировки информации по заданным критериям; Специализированные функции вывода в текстовом и табличном виде; Функции вывода частичной графики моделей; Специализированные функции анализа структуры моделей; Возможности форматированного вывода текста (задание стилей вывода). 2.2.5. Уточнение требований к моделированию Скрипты оперируют всеми объектами репозитория, поэтому создание отчетов может накладывать определенные ограничения на моделирование. Необходимо уточнить: правила задания имен; семантическое значение каждого объекта; задание атрибутов объекта; расположение и последовательность объектов на модели; формы слов в связанных объектах. Для корректного вывода информации в виде отчетов необходимо выбрать соответствующие: модели; объекты; связи между объектами; атрибуты моделей, объектов и связей; правила детализации объектов на модели. Пример определения перечня элементов репозитория для должностной инструкции: для вывода информации в «должностную инструкцию» выбираем элементы репозитория - модели Organizational Chart, eEPC; в этих моделях используем объекты: Position, Organizational Unit, Function; в этих моделях используем связи между объектами eEPC: Position (Organizational Unit) - executes – Function; Organizational Chart: Position - is technical superior to - Organizational Unit Organizational Unit - is composed of – Position; у всех объектов используем атрибут Name (детализации в этом отчете не отслеживаются). Руководство пользователя ARIS SCRIPT. 16 3. Работа со справочной системой в ARIS 3.1. Структура справочной системы ARIS ARIS включает в себя объемную справочную систему, в которой содержится подробная информация об использовании ARIS. Справочная система ARIS (на английском языке) состоит из следующих частей: 1) Help Topic (основная часть справочных файлов, где содержится фактически вся информация, необходимая для использования ARIS); 2) Method Help (справочная информация о типах объектов, типах моделей и типах атрибутов системы ARIS); 3) Methods Manual (руководство по методологии ARIS в pdf-формате). 4) Sax Basic Help (справочная информация по языку BASIC) В справочной системе ARIS существует возможность использовать ссылки и перемещаться по ним для поиска необходимой информации. Далее будет рассмотрена работа со всеми частями справочной системы более подробно. 3.2. Использование ARIS Help Topic ARIS Help Topic содержит 34 разделов, описывающих: общие принципы работы с системой; назначение компонентов системы; работу с различными компонентами системы; назначение быстрых кнопок и пунктов меню главного окна системы и дочерних окон компонентов системы ARIS; основные отличия различных вариантов поставки системы и описание расширения встроенного языка программирования (без описания самого языка программирования). При вызове данной части справки возникает диалоговое окно, имеющее три закладки. Справочная информация из этих разделов также доступна из системы ARIS при нажатии клавиши F1. Рассмотрим работу с закладкой Содержание (Contents). Использование данного метода поиска информации полезно в случае общего исследования какой-либо области ARIS. Для поиска какого-либо термина данный метод слишком громоздкий. Рисунок 5. Окно Содержание справки ARIS Руководство пользователя ARIS SCRIPT. Версия 6.1 17 Рассмотрим работу с закладкой Предметный указатель (Index). Все 34 раздела объединены общим алфавитным указателем с возможностью глобального поиска слова или словосочетания. Набирая первые буквы искомого термина, можно по алфавитному указателю перейти к тому разделу справки, где этот термин находится. И выбрав его с помощью клавиши мыши, перейти к разделу помощи, где искомый термин находится. Данный способ удобно использовать для поиска в справочной системе определенного термина. Рисунок 6. Окно Предметный указатель справки ARIS Рассмотрим работу с закладкой Поиск. Для более глубокого поиска в справочной системе ARIS рекомендуется использовать окно поиска. В данном окне необходимо ввести искомый термин. В других частях окна будут отображены подходящие термины для сужения поиска и разделы справочной системы ARIS, в которых искомый термин встречается. Выбрав необходимый раздел нажатием кнопки мыши, мы перейдем к рассмотрению его содержания. Неудобство поиска данным методом состоит в необходимости просмотра нескольких разделов для нахождения искомой информации. Рисунок 7. Окно Поиск справки ARIS Руководство пользователя ARIS SCRIPT. Версия 6.1 18 3.3. Использование ARIS Method Help ARIS Method Help содержит справочную информацию обо всех типах объектов, типах моделей, типах атрибутов и их применении в работе с системой ARIS и при работе с библиотекой API, поставляемой вместе с системой. Справочная информация из этих разделов также доступна в системе ARIS при нажатии клавиш Ctrl+F1. ARIS Method Help имеет структуру поиска, аналогичную ARIS Help Topic. Данный раздел справочной структуры ARIS необходимо использовать для получения подробной информации о модели или объекте. Рисунок 8. Окно ARIS Method Help Данный раздел справочной системы позволяет найти информацию для определенного типа модели или объекта ARIS и получить подробное описание, включая номер данного объекта и имя константы, обозначающей его тип. Данная информация необходима при программировании скриптов ARIS. Рисунок 9. Окно справки о модели EEPc Руководство пользователя ARIS SCRIPT. Версия 6.1 19 3.4. Использование ARIS Methods Manual Methods Manual представляет собой книгу о методах моделирования бизнес-процессов с помощью системы ARIS. Данная книга хранится в формате PDF и читается с помощью Acrobat Reader. В данной книге находятся основные понятия моделирования процессов и описание используемых объектов и моделей. При программировании данный раздел справочной системы, как правило, не используется. Рисунок 10. Содержание Methods Manual 3.5. Нахождение справки о классах, объектах и константах ARIS_Extension В разделе “ARIS Script” в ARIS Help Topic находится справочная информация о классах, объектах и константах, составляющих расширение языка Sax Basic (ARIS_Basic_Extension). Рисунок 11. Окно раздела ARIS Script Справочная информация о классах, объектах и константах ARIS_Extension также доступна при Руководство пользователя ARIS SCRIPT. Версия 6.1 20 работе в ARIS Script Editor по нажатию клавиши F1, и при работе в ARIS Script Wizard по нажатию правой кнопки мыши на классе, методе или свойстве, отображаемом в специальном окне Script Wizard’а. 3.6. Нахождение справочной информации о встроенном в систему ARIS языке программирования Sax Basic Справочная информация из этого раздела доступна в системе ARIS при работе в ARIS Script Editor по нажатию клавиши F1. Для подробного изучения справочной информации о языке программирования ARIS Sax Basic возможно выделить файл, где она расположена. Справочная информация о языке программирования Sax Basic находится отдельно, в справочном файле SBE5_000.hlp. Для быстрого нахождения справочной информации о каком-либо методе или константе языка программирования ARIS Sax Basic необходимо встать указателем на данную команду в Script Editor и нажать клавишу F1. В результате откроется окно справки о выбранном объекте. Руководство пользователя ARIS SCRIPT. 21 4. Краткое описание языка Sax Basic Language 4.1. Переменные и константы 4.1.1. Понятие о переменных Переменные используются во время выполнения программы для временного хранения данных в оперативной памяти компьютера. При работе с переменной необходимы следующие характеристики: Имя переменной. С помощью имен осуществляется привязка переменных к их положению в оперативной памяти компьютера; Тип переменной. Определяет, какого рода информация хранится в ней; Значение переменной. Это – те данные, которыми оперирует программа. Чтобы оперировать с переменной в программе, ей нужно присвоить некоторое имя и тип, например: Dim X As Integer При объявлении переменных вы сообщаете Basic, что нужно отвести участок памяти для временного хранения данных и назвать его Х. Последние два слова в приведенном выше примере определяют тип информации, которую вы планируете хранить в данной переменной. Имя переменной выбирается произвольно, однако существуют следующие ограничения: Имя переменной должно начинаться только с буквы (не с цифры или специального символа); В оставшейся части имени можно использовать произвольную комбинацию букв, цифр и символов подчеркивания (_). В именах переменных нельзя использовать пробелы, точки и другие знаки препинания; Имя переменной должно быть уникальным; Длина имени переменной не должна превышать 255 символов; Нельзя назначать переменной имя, совпадающее с одним из ключевых слов Basic. 4.1.2. Типы переменных Ниже перечислены некоторые стандартные типы переменных. Тип Занимаемая Хранимое значение переменной память Integer Целое число одинарной точности 2 байта Long Целое число двойной точности 4 байта Десятичное число с плавающей Single 4 байта точкой одинарной точности Десятичное число с плавающей Double 8 байт точкой двойной точности Десятичное число с фиксированной Currency 8 байт точностью 1 String Строка текста байт/символ Byte Целое число 1 байт Boolean Логическое значение 2 байта Date Дата и время 8 байт Экземпляр класса; объект типа Object 4 байта OLE Любой из перечисленных выше 16 байт + 1 Variant типов данных байт/символ Диапазон допустимых значений -32 768 … +32 767 -2 147 483 648 … + 2 147 483 647 +/-(10-45 … 3x1038) +/-(5x10-324 … 1,8x10308) +/-(9x1014) До 65 400 символов 0…255 True или False 1/1/100 … 12/31/9999 - Кроме перечисленных выше стандартных типов данных, можно определить собственные типы, которые наилучшим образом подходят для решаемой вами задачи. Пример определения и использования переменных: Руководство пользователя ARIS SCRIPT. Версия 6.1 22 Private Type Point X As Integer Y As Integer End Type … Dim MyPoint As Point … MyPoint.X = 3 MyPoint.Y = 5 В приведенном примере для объявления нового типа данных используется оператор Type. Для объявления переменной нового типа используется оператор Dim, как и для объявления переменной стандартного типа. Для обращения в программе к элементам нового типа используется символ точки (.). 4.1.3. Массивы переменных Массив – это группа переменных одного типа, объединенных одним именем. Пример объявления массива: Dim crs(1 to 20) As Integer Можно обращаться к любому элементу массива по его индексу, например: Crs(5)=120 Для работы с массивами удобно пользоваться циклами. Циклы будут рассмотрены ниже. 4.1.4. Инструкции для работы со значениями переменной Для работы со значениями переменной могут использоваться инструкции присваивания/изменения, форматирования и преобразования значений переменных. Описание инструкций представлено в таблицах. Инструкции для работы со значениями переменной - присваивание/изменение значений переменных Инструкция Действие инструкции Присвоение переменной нулевого значения, сброс Erase имя_переменной размерности динамического массива. Присвоение переменной значения. Название инструкции [Let] имя_переменной = значение указывать необязательно. В качестве значения может быть указано выражение соответствующего типа. Присвоение строковой переменной значения с Lset имя_строковой_переменной = строка сохранением длины строковой переменной. Если длина строки меньше, то она дополняется пробелами справа. Присвоение строковой переменной значения с Rset имя_строковой_переменной = строка сохранением длины строковой переменной. Если длина строки меньше, то она дополняется пробелами слева. Set имя_объектной_переменной = объект Присвоение ссылки на объект объектной переменной. Инструкции для работы со значениями переменной - преобразование значений переменных Инструкция Действие инструкции Array([выражение[, ...]]) Инструкция возвращает массив типа Variant с результатами вычисления выражений. Cbool(численное или строковое Инструкция преобразует численное выражение в выражение) переменную типа Boolean. При этом нуль преобразуется в значение «False», другие значения в «True». Cbyte(численное или строковое Инструкция преобразует численное или строковое выражение) выражение в переменную типа Byte. CCur(численное или строковое Инструкция преобразует численное или строковое Руководство пользователя ARIS SCRIPT. Версия 6.1 выражение) Cdate(численное выражение) Cdec(численное выражение) CDbl(численное выражение) CInt(численное выражение) Clng(численное выражение) CSng(численное выражение) или строковое или строковое или строковое или строковое или строковое или строковое CStr(численное или выражение) CVar(численное или выражение) Val(строковое выражение) строковое строковое 23 выражение в переменную типа Currency. Инструкция преобразует численное или строковое выражение в переменную типа Date. Инструкция преобразует численное или строковое выражение в переменную типа Decimal. Инструкция преобразует численное или строковое выражение в переменную типа Double. Инструкция преобразует численное или строковое выражение в переменную типа Integer. Инструкция преобразует численное или строковое выражение в переменную типа Long. Инструкция преобразует численное или строковое выражение в переменную типа Single. Преобразование слишком больших и слишком маленьких чисел приводит к ошибке переполнения. Инструкция преобразует численное или строковое выражение в переменную типа String. Инструкция преобразует численное или строковое выражение в переменную типа Variant. Инструкция преобразует строковое выражение в численное значение. 4.1.5. Явное и неявное объявления переменных Visual Basic не требует обязательного явного объявления переменных. При неявном объявлении переменные просто используются в программе, при явном они предварительно должны быть определены (например, посредством оператора Dim). Небольшой пример демонстрирует оба варианта: Dim varName As String 'явное объявление t =7 'неявное объявление 4.1.6. Константы Еще одним способом хранения информации в памяти компьютера является использование констант. Константы интерпретируются в программе особым образом. После того как константа определена, ее значение изменить уже нельзя. Константы можно считать обычными переменными, из которых можно только считывать информацию. Константы часто применяют вместо числовых значений, чтобы упростить восприятие программы. Кроме того, их гораздо легче запомнить, чем соответствующие числа. Пример создания константы: Const MyHouseNumber = 120 4.2. Написание кода программы Скрипт, как и любая другая программа, представляет собой последовательность соответствующих операторов программного кода. Как правило, каждый оператор располагается с новой строки. В нем зашифрованы команды, которые должен выполнить компьютер для решения поставленной задачи. Ниже приведены несколько примеров операторов различного типа. Тип оператора Пример использования Присваивание переменной нового значения Вызов встроенной функции Вызов функции пользователя Установка значения свойств объекта Принятие решения SName=”Иван” MsgBox(“Доброе утро!”) MyStruct=GetStruct(stpl) Mstr.Visited=True If mCount>100 then DoLarge Строки, имеющие большую длину и не умещающиеся на экране монитора или на странице (при распечатывании листинга скрипта), должны быть разбиты на несколько строк при помощи символов пробела и подчеркивания. При этом разрыв нельзя делать в именах переменных и служебных словах. Руководство пользователя ARIS SCRIPT. Версия 6.1 24 Например, строка Set oSelectedModels1 = SelectedModels может быть разбита на три строки: Set _ oSelectedModels1 _ = SelectedModels 4.2.1. Использование операторов присваивания После того, как переменная объявлена в программе, ей нужно присвоить какое-нибудь значение. Для этого используется оператор присваивания. Ниже приведен пример оператора присваивания: X=5 Данная инструкция указывает Basic, что нужно поместить число 5 в ячейку памяти, адрес которой представлен переменной X. Синтаксис оператора прост - вначале вы указываете имя переменной, а после знака равенства (=), само значение. В правой части оператора может находиться не только число. Там может быть литерал, выражение, в котором использованы значения других переменных, константы, а также функции, возвращающие некоторое значение. Обязательное условие: тип величины, получающейся в результате вычисления значения выражения, должен совпадать с типом переменной, находящейся в левой части оператора присваивания. Ниже приведены примеры использования оператора присваивания: Оператор присваивания Тип выражения Ncustomers = 25 Числовой литерал StopSaler = ”Иванов Сергей” Строковый литерал FavgScore = nTopCustomers / AvCustomer Математическое выражение SfullName = “Петров” + “Леонид” Строковое выражение SCapitalName = UCase$(“Сидоров”) Строка, возвращаемая функцией 4.2.2. Применение математических операторов Практически все компьютерные программы выполняют обработку числовых данных. Указанные вычисления выполняются с помощью специальных математических операторов. Ниже приведен полный список математических операторов: Операция Оператор Сложение + Вычитание Умножение * Деление / Целочисленное деление \ Остаток от деления нацело Mod Возведение в степень ^ 4.2.3. Порядок выполнения операторов Большинство выражений, которые используются в реальных программах, представляют собой сложные математические конструкции. В них допускается любая комбинация математических операторов. Например: -4*3+7*(6/2-3)^2 При вычислении значения сложных выражений Basic выполняет операторы в указанном ниже порядке: 1. Возведение в степень ( ^ ); 2. Отрицание (унарный - ); 3. Умножение и деление ( * , / ); 4. Деление нацело ( \ ); 5. Взятие остатка от деления ( Mod ); 6. Сложение и вычитание ( + , - ). Для изменения порядка выполнения операторов используются круглые скобки. В них заключаются те группы операторов, которые необходимо выполнить в первую очередь. Полученные группы операторов можно заключать в другие группы с помощью вложенных скобок. В этом случае Basic начинает вычисление с самой вложенной группы скобок, двигаясь к наружной группе. Руководство пользователя ARIS SCRIPT. Версия 6.1 25 4.2.4. Работа со строками Для непосредственной работы со строками в Basic используется всего один оператор – оператор объединения или конкатенации строк. Все остальные действия выполняются с помощью набора встроенных функций. Ниже перечислены некоторые функции для работы со строками: Функция Описание UCase, Lcase Изменяет регистр букв заданной строки на верхний или нижний соответственно InStr, InStrRev Выполняет поиск одной строки в другой Left, Right Возвращает указанное количество символов с начала или конца строки соответственно Mid Возвращает указанное количество символов с начала, конца или из середины строки Ltrim, RTrim, Trim Отсекает пробелы с начала, конца или обеих сторон строки соответственно Len Возвращает длину строки Chr, Asc Преобразует ASCII-код в символьную строку или возвращает ASCII-код символа соответственно Str, CStr, Val Преобразуют числовое значение в строку и наоборот StrReverse Изменяет порядок следования символов в строке на обратный StrConv Изменяет регистр букв текстовой строки. 4.2.5. Объединение строк Как уже было отмечено, в Basic для работы со строками предусмотрен только один оператор – оператор объединения. С его помощью можно слить несколько строк в одну большую строку. Знаком операции объединения строк является символ амперсанда (&) или символ плюса (+). При объединении нескольких строк, вторая строка помещается в конец первой, третья в конец второй и т.д. Синтаксис оператора конкатенации строк выглядит следующим образом: Новая_Строка = Строка1 & Строка2 [& Строка3]… [& СтрокаN] 4.3. Принятие решения в программе Существует еще одна важная группа операторов – операторы управления. Операторы приятия решения используются для управления ходом выполнения программы на основании некоторых условий, возникающих в программе. Существует два основных типа описываемых операторов: If и Select Case. 4.3.1. Использование оператора If Во многих случаях требуется, чтобы некоторый оператор (или группа операторов) в программе выполнялись только тогда, когда значение некоторого условия равно True. Именно для этого и предназначен оператор If. Существует две его разновидности – однострочный и многострочный. 4.3.2. Однострочный оператор If Данная форма оператора используется для выполнения некоторого действия, когда условие истинно. Ниже приведен синтаксис оператора If: If условие Then команда или If условие Then команда1 Else команда2 В качестве параметра условия может выступать любой тип логического выражения: сравнение значения переменной с литералом, другой переменной или функцией; переменная, значение которой может быть True или False; любое выражение или функция, значение которой может быть True или False. Вместо параметра команда указывается действие, которое нужно выполнить в случае истинности условия. Это может быть любой оператор Basic, включая оператор вызова функции или процедуры. Ниже приведен пример однострочного оператора If: If cSalary > cMaxSalary Then tOut.BeginFooter 4.3.3. Многострочный оператор If Данная форма оператора If используется в случае, если для обработки некоторого условия требуется выполнить несколько команд. Иногда многострочный оператор If называют также блочным оператором If. Между ключевыми словами If и End If заключается группа операторов, которая будет выполнена в случае истинности Руководство пользователя ARIS SCRIPT. Версия 6.1 26 условия. Пример использования многострочного оператора If: If cDepositAmt > 0 Then CTotalPaid = cTotalPaid + cDepositAmt CDepositAmt = 0 Call UpdateReservation End If 4.3.4. Обработка истинных и ложных условий Способом обработки ложных условий является использование специальной формы оператора If, в которой предусматриваются отдельные фрагменты кода для каждого из случаев: If условие1 Then Блок операторов для обработки истинного условия1 ElseIf условие2 Then Блок операторов для обработки истинного условия2 Else Блок операторов для обработки ложного условия End If Блок команд, который должен быть выполнен, если условие истинно, записывается в следующей строке после ключевого слова Then, а фрагмент кода для обработки ложного условия – после ключевого слова Else. 4.3.5. Использование оператора Select Case Обрабатывать несколько условий в программе можно также с помощью оператора Select Case. Он позволяет выполнить фрагмент программы в зависимости от значения некоторого выражения или переменной. Ниже описан синтаксис оператора Select Case: Select Case Анализируемое_Значение Case Значение1 Группа операторов 1 Case Значение2 Группа операторов 2 … Case Else Группа операторов N+1 End Select Первым в данной конструкции всегда указывается оператор Select Case. Он говорит компилятору о том, что параметр Анализируемое_Значение будет проверяться на несколько значений сразу. В качестве данного параметра можно использовать любое числовое или строковое значение, включая литералы, переменные или функции. Каждая условная группа команд (они будут выполняться в том случае, если заданное условие Руководство пользователя ARIS SCRIPT. Версия 6.1 27 выполняется) начинается с ключевого слова Case. Оно определяет значение, с которым будет сравниваться параметр Анализируемое_Значение. Если параметр Анализируемое_Значение будет равен указанному в операторе Case значению, программа выполнит блок операторов, расположенный между текущим и следующим ключевым словом Case или оператором End Select. Если параметр Анализируемое_Значение не будет равен указанному в операторе Case значению, программа приступает к обработке следующего оператора Case и т.д. Блок Select Case заканчивается оператором End Select. 4.4. Использование циклов. Еще одним важным элементом программы является оператор цикла. Он используется для выполнения повторяющихся действий в программе. В Basic существует три разновидности операторов цикла: с использованием счетчика (Циклы типа For); условный оператор цикла (Циклы типа Do); перечислимый оператор цикла (Циклы типа For Each). Для принудительного выхода из цикла можно использовать оператор Exit For или Exit Do соответственно. 4.4.1. Циклы типа For Операторы цикла данного типа располагаются между операторами For и Next. For переменная = начальное_значение To конечное_значение [Step Шаг] <тело цикла> Next [переменная] При указании цикла данного типа программист определяет переменную цикла, которая служит счетчиком, а также ее начальное и конечное значения. В качестве дополнительного параметра цикла можно указать шаг – величину, которая прибавляется к счетчику или вычитается из него после завершения очередного шага цикла. Шаг указывается в операторе For после ключевого слова Step. Перед выполнением первого шага цикла счетчик устанавливается в исходное состояние. Затем счетчик сравнивается с конечным значением переменной цикла. Если он больше, чем конечное значение, выполнение цикла прекращается и программа переходит к следующему за ключевым словом Next оператору. После выполнения очередного шага к переменной цикла прибавляется величина, указанная после ключевого слова Step. В приведенном ниже фрагменте кода цикл типа For/Next используется для вывода последовательности чисел от 1 до 10, а также квадратов их значений. For i = 1 To 10 STemp = i & “в квадрате – “ & (i ^ 2) WriteOutput (sTemp) Next i 4.4.2. Циклы типа Do While Цикл данного типа выполняется, пока истинно некоторое условие. Под условием понимается любое выражение, значение которого может быть True или False (например, Numval > 15), либо функция, возвращающая логическое значение, либо свойство, имеющее логическое значение. Do While Условие <Тело Цикла> Loop или Руководство пользователя ARIS SCRIPT. Версия 6.1 28 Do <Тело Цикла> Loop While Условие Ключевое слово While указывает программе, что данный цикл нужно продолжать выполнять, пока некоторое условие истинно. В случае если условие становится ложным, программа переходит к выполнению следующего за ключевым словом Loop оператора. 4.4.3. Циклы типа Do Until Циклы типа Do Until работают аналогично рассмотренным выше циклам Do While с одним отличием. Тело цикла Do Until будет выполняться только если условие будет оставаться ложным. Do Until Условие <Тело Цикла> Loop или Do <Тело Цикла> Loop Until Условие 4.4.4. Перечислимые циклы В Basic предусмотрен еще один вариант цикла, начинающийся с ключевых слов For Each. Это так называемый перечислимый тип цикла, поскольку он используется для обработки (учета) каждого элемента некоторого набора (коллекции) объектов. В ARIS практически не используется. For Each Объект In Коллекция <Тело цикла> Next 4.5. Процедуры и функции По мере написания сложных скриптов часто приходится сталкиваться с тем, что один и тот же фрагмент кода нужно использовать в нескольких местах программы. Очевидно, что в данном случае гораздо лучше создать один повторно используемый фрагмент, чем помещать один и тот же код в нескольких местах программы. Разрешить эту проблему можно, используя процедуры и функции. Они являются сегментами кода, выполняющего определенные задачи, после завершения которого управление передается в вызвавший его участок программы. Это означает, что одна и та же процедура (функция) может быть вызвана из разных мест текущей программы, а при условии ее правильного создания, и из других программ. 4.5.1. Использование процедур Полный синтаксис процедуры выглядит следующим образом: Sub имя_процедуры([список_параметров]) Выполняемые операторы End Sub Вызов процедуры из программы выглядит следующим образом: Call имя_процедуры(список_параметров) или Имя_процедуры список_параметров В обоих случаях параметр имя_процедуры должен соответствовать имени процедуры, указанному в Руководство пользователя ARIS SCRIPT. Версия 6.1 29 операторе Sub при ее определении. В качестве параметров в операторе вызова процедуры можно использовать литералы, имена переменных или функций, возвращающих значения заданного типа. Пример определения процедуры с параметрами, вычисляющей площадь и периметр прямоугольника с указанными шириной и высотой: Sub CalcRectangle(width as integer, height as integer, area as integer, perimeter as integer) Area = width * height Perimeter = 2 * (width + height) End Sub Вызов этой процедуры может выглядеть так: Mwidth = 5 Mheight = 7 Tsqr = 0 Tper = 0 CalcRectangle mwidth, mheght, Tsqr, Tper 4.5.2. Принудительное завершение процедуры При написании процедуры иногда бывает необходимо досрочно завершить ее выполнение (не доходя до последнего оператора) и вернуть управление в вызывающую программу. В таком случае нужно воспользоваться оператором Exit Sub. Оператор Exit Sub может находиться в любом месте процедуры. После его выполнения процедура завершает свою работу и передает управление вызвавшей ее программе. 4.5.3. Использование функций Функции очень похожи на процедуры, с той разницей, что они возвращают значение в вызвавшую их программу, которое затем можно присвоить некоторой переменной или использовать при вычислении выражения. Пример объявления функции, вычисляющей площадь прямоугольника: Function Square(width As integer, height As integer) As Integer Square = width * height End Function Использование созданной функции может выглядеть следующим образом: Width = 13 Height = 15 Tsqr = Square(width, height) 4.6. Классы и объекты Язык скриптов ARIS в большинстве своем оперирует классами и объектами ARIS. Классы могут содержать несколько типов элементов: Свойства - эти элементы используются для того, чтобы задавать и возвращать значения из экземпляра класса; Методы - это глобальные функции или процедуры, которые определяются в классе; События - объект, созданный из класса, может вызывать определенные события. Экземпляры класса – это объекты. Каждый класс представляет собой шаблон, по которому создаются объекты определенного типа. Руководство пользователя ARIS SCRIPT. Версия 6.1 30 4.6.1. Объявление и использование объектов Объекты можно создавать на базе классов ARIS. Пример создания объекта: Dim Mlist As New ModelList Ключевое слово New, указанное в операторе объявления, вызывает автоматическое образование нового экземпляра класса ModelList. При этом указатель на этот экземпляр класса будет помещен в объектную переменную Mlist. Но иногда создание объекта в программе требуется отложить, например, до наступления определенных условий. В этом случае ключевое слово New необходимо использовать в операторе Set: Dim Mlist As ModelList „ Позднее в программе… Set Mlist = New Modellist Привязку переменной к экземпляру класса можно также организовать следующим образом: Dim mo As Object Set mo = CreateObject (“Aris.Modellist”) Или так: Dim mo As Object Set mo = New Aris.Modellist Обращение к свойствам и методам объекта осуществляется с помощью точки (.), например: Modc = mo.Count или Set SingleModel = mo.Get(i) 4.6.2. Структура программы Программа состоит из блока глобальных определений переменных (Global declarations), блока главной процедуры (Sub Main – End Sub) и блоков прочих процедур и функций (Sub – End Sub, Function - End Function). Процедура или функция состоит из описания локальных переменных и текста кода. Размещение описания переменных в блоке глобальных определений или внутри процедуры/функции влияет на видимость этой переменной во всех процедурах/функциях или только в одной. 4.6.3. Работа с объектами ActiveX Automation ActiveX Automation предоставляет доступ к объектам в других приложениях. Каждый объект поддерживает определенный набор методов и свойств. Каждый метод/свойство имеет ноль или более параметров. Параметры могут быть необязательными, в этом случае параметры могут быть определены выражением: имя_параметра := значению № 1 2 3 4 Выражение objexpr.method [expr][, ...] [param := expr][,...] objexpr.method[([expr][, ...] [param := expr][,...])] objexpr.property[([expr][, ...] [param := expr][,...])] Set objexpr.property[([expr][, ...])] = objexpr Описание выражения Вызов метода для objexpr. Например: myobjlist.Unique Возвращает значение метода для objexpr. Например: modtype= Model12.Type() Возвращает значение свойства для objexpr. Например: Objcount = myobjlist.Count Определение ссылки на объект свойству objexpr. Например: Set NextObj = myobjlist.Get(I+1) Руководство пользователя ARIS SCRIPT. Версия 6.1 31 5. Работа со скриптами в системе ARIS 5.1. Скрипты в системе ARIS, общие сведения Анализ содержимого базы данных ARIS производится посредством исполнения программы (далее – скрипта), написанной на языке, ядром которого является Sax Basic Language. Результаты анализа могут быть сохранены в наиболее распространенных форматах файлов .html, .doc, .rtf, .xls, .txt. Сохраненные результаты анализа далее называются отчетами. С помощью соответствующих приложений отчеты могут быть отредактированы и проанализированы средствами этих приложений. Доступ к данным системы из языка программирования обеспечивается набором классов и объектов, в совокупности образующих расширение стандартного VBA для доступа к данным системы ARIS. Краткое описание доступных при этом объектов системы ARIS приведено в главе 10 «Классы и объекты ARIS SAX BASIC». Более подробно описание классов доступно в контекстной справке компонентов системы ARIS – Script Wizard и Script Editor. В любой стандартной поставке системы ARIS имеется набор стандартных скриптов для изготовления отчетов. Скрипты для составления отчетов располагаются в каталоге «ARIS\Script\Report\en». Обычно там же хранятся и вновь создаваемые скрипты. В системе ARIS отдельно хранятся готовые скрипты, составляющие отчет о семантической корректности выбранного объекта или выбранной модели. Эти скрипты находятся в каталоге «ARIS\Script\SemanticCheck\En». Там же хранятся дополнительные вспомогательные файлы к ним. Скрипты для отчетов, равно как и скрипты Semantic Check, различаются по контексту выполнения и по назначению в соответствии со следующей таблицей. Различие отражается в расширении файла, в котором хранится программа. Контекст выполнения соответствует назначению. Скрипты общего назначения могут выполняться в любом контексте. Назначение Расширение файла Отчет общего (любого) назначения .RSC Отчет о выделенных объектах базы данных .RSO Отчет о выделенных моделях базы данных .RSM Отчет о выделенных группах базы данных .RSG Отчет о выделенных фильтрах базы данных .RSF Отчет о выделенной базе данных сервера .RSD Отчет о выделенных ABC-таблицах базы данных .RST Отчет о результатах семантической проверки выделенной модели .SEM Отчет о результатах семантической проверки выделенного объекта .SEO Отчет о результатах анализа выделенной модели .ASM Отчет о результатах анализа выделенного объекта .ASO Необходимо заметить, что *.RSC, *.RSM и *.RSO скрипты также могут, в принципе, выполнять семантические проверки моделей и объектов системы ARIS, но освещение этого вопроса выходит за рамки данного курса. Поставляемым вместе с системой ARIS скриптам семантических проверок (Semantic Check Scripts) посвящена глава 9«Скрипты Semantic Check». Далее в этой главе речь пойдет только о скриптах для отчетов (Report Scripts). Основные настройки компонента ARIS – Report производятся в главном меню системы с помощью закладки View->Options->Evaluations. Внешний вид этой закладки приведен на рисунке. Руководство пользователя ARIS SCRIPT. Версия 6.1 32 Рисунок 12. Основные параметры для создания отчета В группе «общее» (General) перечисляется, какие программы запускаются для просмотра отчетов соответствующих типов. В группе «отчет» (Report) указываются путь для сохранения (Output Path) отчета и источника (Script Path) скриптов для его создания. 5.2. Запуск скрипта для создания отчета Чтобы создать отчет, пользователь должен сделать следующее: 1. Подключиться к базе данных, для содержания которой будет создан отчет. 2. Выбрать в компоненте ARIS Explorer одну базу данных либо набор групп, либо моделей, либо объектов, либо фильтров, либо ABC-таблиц. Для создания отчета пользователь должен иметь доступ к выбранному содержимому базы данных, по крайней мере, для чтения. 3. Для выбранного содержимого базы данных открыть меню и выбрать Evaluate->Report. В появившейся диалоговой форме, показанной на рисунке, необходимо выбрать скрипт для формирования отчета. Этот скрипт может находиться в каталоге по умолчанию. В этом случае выбираем папку в левом окне, и в правом - название файла скрипта. В противном случае файл скрипта может быть найден в файловой системе после переключения «User-Defined Path». Руководство пользователя ARIS SCRIPT. Версия 6.1 33 Рисунок 13. Иллюстрация запуска скрипта Рисунок 14. Формы выбора файла скрипта для создания отчета 4. Далее в форме-диалоге настроек отчета (Рисунок 15) необходимо указать полное имя файла, в котором будет сохранен отчет, и его формат. Необходимо также указать язык и фильтр, через который скрипт будет «видеть» содержимое базы данных ARIS. Руководство пользователя ARIS SCRIPT. Версия 6.1 34 Рисунок 15. Установка параметров отчета 5. Щелкните по кнопке “Finish” чтобы завершить создание отчета. В зависимости от выбранного скрипта вы будете приглашены в ходе создания отчета к дальнейшим действиям. 5.3. Создание скрипта с помощью Script Wizard Script Wizard позволяет быстро создать новый скрипт для создания отчета. Он представляет собой ряд последовательных диалоговых окон, перемещаясь по которым пользователь формирует структуру будущего скрипта. В качестве примера создадим простой скрипт, который анализирует выделенную модель (одну) и создает отчет (со стандартным заголовком) о модели как таковой и о представлениях объектов, которые присутствуют на данной диаграмме. Первый шаг состоит в том, чтобы включить Script Wizard. Это делается с помощью команды File>New из компонента ARIS’а – ARIS Explorer. Появляется диалог, изображенный на рисунке (Рисунок 16). Выбор «Evaluation script» производит включение компонента Script Wizard. Рисунок 16. Шаг 1. Создание программы для отчета Вторым шагом является указание основных параметров будущего скрипта. В первом поле необходимо указать «Report». Во втором поле указывается назначение скрипта (по умолчанию системой предлагается назначение, соответствующее контексту выполнения). В текстовом поле необходимо указать Руководство пользователя ARIS SCRIPT. Версия 6.1 35 имя файла, в который будет записан текст скрипта. Внутри рамки «Generation» внизу формы необходимо отметить «Generate Code», поскольку альтернативный выбор завершит работу Script Wizard созданием скрипта, создающего «пустой» (тривиальный) скрипт. Рисунок 17. Шаг 2-1. Указание основных параметров Здесь же возможно указание заголовка, автора, компании, описания скрипта в диалоговом окне, появляющимся после нажатия кнопки «Properties». Рисунок 18. Шаг 2-2. Указание заголовка, автора, компании, описания программы Третьим шагом пользователь указывает фильтр ARISа, через который скрипт будет «видеть» содержимое базы данных ARIS. Кроме этого, пользователь может ограничить область применения скрипта Руководство пользователя ARIS SCRIPT. Версия 6.1 36 определенными типами диаграмм базы, определенными типами групп, определенными типами объектов или определенными типами баз ARIS (в рамках выбранного контекста), для которых возможно использование скрипта. Это может быть полезно при разработке скриптов, устойчивых к изменениям методологии. Рисунок 19. Шаг 3. Указание фильтра и ограничения применения скрипта Следующим шагом определяются колонтитулы будущего отчета. Рисунок 20. Шаг 4. Колонтитулы отчета Столбцы таблицы в колонтитулах соответствуют полям диалога. Верхний и нижний колонтитулы, для указанных установок, выглядят следующим образом: Руководство пользователя ARIS SCRIPT. Версия 6.1 Верхний колонтитул Graphic Left Text 37 Graphic Right ARIS Report Нижний колонтитул Дата и время создания отчета 17.03.03 16:03:23 Полное имя файла отчета C:\TEMP\Report1.doc Номер текущей страницы Page 3 of 1262 По умолчанию в начале отчета выводится следующая информация: заголовок; название сервера; название базы данных; имя пользователя. Пятый шаг – основной. На этом шаге указывается структура отчета. База данных ARIS является объектно-ориентированной. Это означает, что объекты, хранящиеся в базе данных, являются экземплярами классов ARIS. Краткое описание классов системы ARIS приведено в главе 10 «Классы и объекты ARIS SAX BASIC». Более подробно описание классов доступно в контекстной справке компонентов системы ARIS – Script Editor (по нажатию F1 на выделенном слове) и Script Wizard (по правой кнопке мыши на выделенном элементе). Рисунок 21. Шаг 5. Структура отчета В окне "Procedural Structure" изображено синтаксическое древо нашего скрипта (пока оно тривиально - присутствует только список выделенных моделей). В окне "Available Methods" показываются свойства и методы синтаксического элемента, подсвеченного в данный момент в окне слева (сейчас - доступные свойства и методы класса "Model"). Добавляемый объект или свойство может являться списком. Списки помечены символом, состоящим из двух ромбиков. В этом случае в отчет выводится содержимое этого списка. Пользователь может упорядочить список указанием до трех критериев сортировки списка с помощью кнопки «Options…». С помощью кнопки "<<Insert" добавим в будущий отчет имя (Name) и тип (Type) модели, которая оказалась выбранной перед выполнением скрипта (который мы создаем): Руководство пользователя ARIS SCRIPT. Версия 6.1 38 Рисунок 22. Шаг 6. Формирование структуры программы Теперь найдем в списке в окне справа класс "ObjOccList", выберем его и нажмем кнопку "<<Insert". Перейдем в левое окно и выберем "ObjOccList", в правом окне появится список его свойств и методов. С помощью кнопки "<<Insert" добавим в наш отчет координаты X и Y присутствующих на модели представлений объектов. Чтобы добавить в отчет информацию о типах и именах объектов, которым данные представления соответствуют ("представляют"), с помощью кнопки "<<Insert" добавим в древо в левом окне (в раздел "ObjOccList") свойство "ObjDef" из списка справа, затем выделим в левом окне (только что вставленную) строчку "ObjDef" и с помощью кнопки "<<Insert" добавим имя (Name) и тип (Type) объекта. Получилось: Рисунок 23. Шаг 7. Формирование структуры программы Результат наших действий - древовидная структура в левом окошке, называющемся "Procedural Structure". Script Wizard преобразует ее в программный код, который сохраняется в файл с именем, совпадающем с именем скрипта, при запуске которого составляется отчет. В нашем синтаксическом древе - Руководство пользователя ARIS SCRIPT. Версия 6.1 39 два списка, следовательно, в скрипте будет реализовано два цикла (один вложен в другой), один - с перебором по всем выбранным моделям, другой - реализует перебор по всем представлениям объектов, нарисованным на выбранной модели. От каждого представления объекта в отчет попадет: его декартовы координаты на канве модели; имя и тип объекта, который оно представляет. Чтобы отчет был отсортирован, выберем в левом окошке строчку "ObjOccList" и нажмем на кнопку "Options:". В появившемся диалоговом окне выберем первичный критерий сортировки (нам сейчас достаточно одного критерия) SORT_GEOMETRIC и нажмем Ok: Рисунок 24. Шаг 8. Диалоговая форма сортировки списка После того как пользователь завершил формирование структуры программы, необходимо нажать кнопку «Finish» для записи текста программы в файл. При отсутствии ошибок выдается сообщение об успешном окончании создания программы. Рисунок 25. Сообщение об успешном окончании создания программы 5.4. Редактирование скрипта с помощью Script Wizard Script Wizard позволяет также вносить изменения в программу, созданную с его помощью. В этом случае Script Wizard. включается с помощью команды File->Open из компонента ARISа – ARIS Explorer. Появляется диалог, изображенный на рисунке. Необходимо выбрать «Evaluation script». Рисунок 26. Диалог выбора при открытии скрипта Руководство пользователя ARIS SCRIPT. Версия 6.1 40 Теперь необходимо выбрать файл, в котором хранится программа, с помощью диалога, показанного на рисунке. Рисунок 27. Выбор скрипта для открытия В появившемся диалоге (Рисунок 28), выбор «In Script Wizard» запускает компонент Script Wizard, который включается, начиная с шага 3. Здесь же возможно изменение заголовка, автора, компании, описания программы в диалоговом окне, появляющимся после нажатия кнопки «Properties». Рисунок 28. Выбор способа редактирования программы Имеющаяся альтернатива способа редактирования программы «In Script Editor» описана ниже. Учтите, что сохраненный из «Script Editor» файл больше нельзя будет открыть «In Script Wizard». Руководство пользователя ARIS SCRIPT. Версия 6.1 41 5.5. Редактирование скрипта с помощью Script Editor Внешний вид компонента приведен на рисунке (Рисунок 29). В заголовке окна видно полное имя файла, в котором хранится программа. Ниже видны главное меню системы и панель инструментов. Далее находится встроенное окно компонента. В верхней его части находится два выпадающих списка. Правый список отражает структуру программы (список всех процедур и функций, блок глобальных объявлений переменных) и позволяет перемещаться между структурными блоками программы. Рисунок 29. Внешний вид редактора скриптов Редактор скриптов выделяет цветом семантически различные участки кода программы. № Смысл Цвет Комментарий 1 Зеленый Служебные 2 слова: стандартные процедуры, функции, операторы, Голубой константы (Visual Basic) Стандартные 3 объекты ARIS Extension, методы этих объектов, константы Темно-синий ARIS Определения 4 управляющих элементов Бирюзовый Строки, 5 содержащие синтаксические ошибки Красный Прочее 6 (определенные пользователем объекты, методы этих объектов, Черный константы, и т.д.) В нижней части окна имеются закладки для просмотра текста программы (Script – по умолчанию активно), макета отчета (Layout – только чтение), макетов верхнего (Header) и нижнего (Footer) колонтитулов. 5.6. Отладка скриптов, работа с закладкой Watch, работа с точками останова Открытый в окне Script Editor скрипт можно запустить на выполнение, нажав клавишу F12 (или выбрав меню Debug/Run) или нажав на кнопку “Run” панели инструментов “Debug”. При этом контекст выполнения скрипта будет тем самым, который был до открытия окна Script Editor. Руководство пользователя ARIS SCRIPT. Версия 6.1 42 Пошаговое выполнение скрипта возможно с помощью клавиши F10. Прерывание пошагового выполнения скрипта – F12 (выполнение скрипта с данной точки до конца в автоматическом режиме) либо Shift+F12 (прерывание выполнения скрипта) либо Shift+F11 (выполнение скрипта с данной точки до конца в автоматическом режиме с игнорированием точек останова). Точки останова – помеченные специальным способом (коричневый кружочек) строки скрипта. Рисунок 30. Точка останова – помеченная строка кода Если такая помеченная строка содержит исполняемые операторы, то выполнение скрипта будет каждый раз прерываться на данной строке при выполнении скрипта. Точки останова удобно использовать для просмотра содержимого переменных во время выполнения скрипта. Для этого: остановите выполнение скрипта (с помощью точки останова) и скопируйте имена интересующих переменных в текстовое поле закладки Watch, которая появляется в момент выполнения скрипта в открытом окне Script Editor. По мере прохождения (выполнения) последующих строк скрипта с помощью ручной трассировки (F10) или с использованием других точек останова, изменение содержимого этих переменных будет отображено в закладке Watch. Руководство пользователя ARIS SCRIPT. Версия 6.1 43 Рисунок 31. Работа с закладкой Watch 5.7. Вывод на экран вспомогательной информации в ходе выполнения скрипта Во время выполнения скрипта иногда полезно бывает иметь возможность видеть в специальном окошке информацию о ходе выполнения скрипта. Для этого в системе ARIS предусмотрена встроенная в язык программирования процедура WriteOutput(<текст для вывода>), где <текст для вывода> - текст, который появится в специальном окне в результате выполнения строки скрипта, содержащей данную процедуру. Например, если мы вставим в текст скрипта, созданного нами с помощью Script Wizard, сразу после строки ' Headline строку WriteOutput("Этот комментарий выводится сразу после формирования верхнего колонтитула") то в результате выполнения скрипта в окне “Output Window” мы увидим: Рисунок 32. Окно “Output Window” Другая процедура - WriteStatus(<текст для вывода>) – выдает текст в нижней строке статуса. Руководство пользователя ARIS SCRIPT. Версия 6.1 44 5.8. Использование различных языков в скриптах ARIS В ARIS возможно использование более 90 различных языков при создании моделей и объектов. У каждого объекта или модели ARIS присутствуют атрибуты. Некоторые атрибуты, такие как Name, Description/Definition встречаются у всех объектов, некоторые присутствуют только у определенных объектов, отражая специфику этих объектов. Но все эти атрибуты можно разделить на две группы: атрибуты, зависимые от используемого пользователем языка базы; атрибуты, независимые от используемого пользователем языка базы. Зависимые от языка атрибуты могут в одном и том же объекте заполнятся на разных языках. Что позволяет при переключении языка базы видеть наполнение моделей на соответствующем языке и обеспечивает возможность создания многоязыковых проектов. Рисунок 33. Окно атрибутов объекта ARIS При запуске скрипта на выполнение пользователь может выбрать, какой язык будет использован при работе скрипта в диалоговом окне. Подмножество выбора языков определяется набором языков, присутствующих в текущей базе данных ARIS. Руководство пользователя ARIS SCRIPT. Версия 6.1 45 Рисунок 34. Окно настройки параметров запуска скрипта На этапе выполнения скрипта доступ к выбранному в данном окне языку возможно получить посредством оператора SelectedLanguage, который возвращает идентификатор выбранного языка (LocaleID). Например: g_nLoc = SelectedLanguage Приведем таблицу идентификаторов наиболее часто используемых в ARIS языков (полный перечень находится в справочной системе ARIS). Язык Немецкий Английский (США) Французский Русский Нейтральный Константа LCID_GERMAN LCID_ENGLISHUS LCID_FRENCH LCID_NEUTRAL Значение value:0x0407 value: 0x0409 value: 0x040c value: 0x0419c value: 0 1031 1033 1036 1049 Данные идентификаторы используются при любом обращении к зависимым от языка атрибутам объектов. В зависимости от того, какой язык атрибута необходим, возможны два варианта действий: 1) Использование переменной, в которую ранее было помещено значение выбранного при запуске скрипта языка. Например: Set s = oObj.attribute(at_name, g_nLoc) 2) Использование значения идентификатора языка прямо в команде, если требуется обратиться к значению атрибута на определенном языке. Например: Set s = oObj.attribute(at_name, 1049) Руководство пользователя ARIS SCRIPT. 46 6. Структура, формат и макет отчета 6.1. Операторы, формирующие структуру отчета Приведем пример выборки операторов из скрипта, созданного в Script Editor, которые обеспечивают вывод и формирование структуры отчетов. На данном примере становятся понятны основные правила работы с этими операторами. Рассмотрим данную выборку: Global g_nLoc As Long Global g_oOutFile As Object … Sub Main … Set g_oOutFile = CreateObject("ARIS.Output.6.1") g_nLoc = SelectedLanguage g_oOutFile.Init(SelectedFormat, g_nLoc) … g_oOutFile.DefineF("REPORT1","Arial",24,C_BLACK, _ COLOR_TRANSPARENT,FMT_BOLD Or FMT_CENTER,0,21,0,0,0,1) … g_oOutFile.OutputLnF("ARIS Report", "REPORT1") … g_oOutFile.WriteReport(SelectedPath, SelectedFile) End Sub Здесь приведены не все строки скрипта (опущенные строки помечены многоточием), а лишь строки, необходимые для того, чтобы в шапке отчета появился заголовок «ARIS Report» (жирным шрифтом Arial 24 размера черного цвета, выровненный по центру страницы). “REPORT1” – это стиль текста, его можно определить один раз и затем использовать в операторах: <Имя ARIS.Output-объекта>.OutputLnF(…) что делает код скрипта значительно более компактным и удобочитаемым по сравнению с использованием операторов: <Имя ARIS.Output-объекта>.Output(…) и <Имя ARIS.Output-объекта>.OutputLn(…) Рекомендуется в начале программы определить все стили текста и использовать их в коде программы. При определении стилей рекомендуется создавать осмысленные имена стилей для удобства использования. То же самое мы могли бы сделать с помощью следующего скрипта: Global g_nLoc As Long Global g_oOutFile As Object Sub Main g_nLoc = SelectedLanguage Set g_oOutFile = CreateObject("ARIS.Output.6.1") g_oOutFile.Init(SelectedFormat, g_nLoc) g_oOutFile.OutputLn("ARIS Report ", "Arial",_ 24,C_BLACK,COLOR_TRANSPARENT, _ FMT_BOLD Or FMT_CENTER,0) g_oOutFile.WriteReport(SelectedPath, SelectedFile) End Sub Руководство пользователя ARIS SCRIPT. Версия 6.1 47 Как видно из текста для создания отчета в программном коде необходимо определить глобальный объект: Global g_oOutFile As Object Этот объект используется при выводе любой информации в отчет. Для создания отчета необходимо: 1) создать объект "ARIS.Output.6.1" оператором Set <Имя ARIS.Output-объекта> = CreateObject("ARIS.Output.6.1"); 2) инициализовать объект "ARIS.Output.6.1" оператором <Имя ARIS.Output-объекта>.Init(SelectedFormat, <код языка>); 3) создать макет отчета (задать верхний и нижний колонтитулы, заголовок, тело) (для создания макета отчета можно использовать строки, таблицы и иллюстрации); 4) выполнить операцию создания отчета в виде файла определенного формата оператором <Имя ARIS.Output-объекта>.WriteReport(SelectedPath, SelectedFile). 6.2. Операторы, создающие нижний и верхний колонтитул макета отчета Верхний колонтитул макета отчета создается операторами: <Имя ARIS.Output-объекта>.BeginHeader() … <Имя ARIS.Output-объекта>.EndHeader() где многоточием обозначены операторы, формирующие сам верхний колонтитул (операторы, вставляющие строки, таблицы, иллюстрации). Как правило, в верхнем колонтитуле красивее использовать таблицу, в которой по ячейкам размещать различную информацию (логотип, название компании). Нижний колонтитул макета отчета создается операторами: <Имя ARIS.Output-объекта>.BeginFooter() … <Имя ARIS.Output-объекта>.EndFooter() где многоточием обозначены операторы, формирующие сам нижний колонтитул (операторы, вставляющие строки, таблицы, иллюстрации). Как правило, в нижнем колонтитуле используется таблица, в которой размещается информация о количестве листов документа и другая служебная информация. Все операторы, вставляющие строки, таблицы и иллюстрации, не попадающие в группы операторов, формирующих колонтитулы, формируют тело отчета. 6.3. Операторы, вставляющие в отчет строки Операторы, вставляющие в отчет строки: <Имя ARIS.Output-объекта>.Output(<текст>, <имя шрифта>, <размер шрифта>, <цвет шрифта>, <цвет заливки текста>, <стиль и выравнивание текста>, <отступ>) <Имя ARIS.Output-объекта>.OutputLn(<формирующий строку текст>, <имя шрифта>, <размер шрифта>, <цвет шрифта>, <цвет заливки текста>, <стиль и выравнивание текста>, <отступ>) <Имя ARIS.Output-объекта>.OutputLnF(<формирующий строку текст>, <имя стиля>) где <имя стиля> - стиль, который должен быть ранее определен в программе. <Имя ARIS.Output-объекта>.DefineF(<имя стиля>,>, <имя шрифта>, <размер шрифта>, <цвет шрифта>, <цвет заливки текста>, <стиль и выравнивание текста>, <отступ слева>, <отступ справа>, <отступ сверху>, <отступ снизу>,<отступ первой строки>, <интерлиньяж>) 6.4. Использование таблиц в отчете ARIS. Использование таблиц в отчете позволяет структурировать информацию, выводимую скриптом Перед использованием необходимо сформировать таблицу. Рассмотрим операторы, с помощью которых формируется таблица. Руководство пользователя ARIS SCRIPT. Версия 6.1 48 Операторы, вставляющие в отчет таблицу: <Имя ARIS.Output-объекта>.BeginTable(<ширина таблицы в % от ширины страницы>,<цвет рамки>,<цвет заливки>,<стиль и выравнивание текста таблицы>,<отступ от левого края страницы>) … <операторы, формирующие таблицу> … <Имя ARIS.Output-объекта>.EndTable(<нижний заголовок таблицы или для Excel – название листа>,<ширина таблицы в % >, <имя шрифта заголовка>,<размер шрифта заголовка>,<цвет шрифта заголовка>,<заливка текста заголовка>,<% затенения>,<стиль и выравнивание текста заголовка>,<отступ>) Оператор, формирующий строку таблицы: <Имя ARIS.Output-объекта>.TableRow() – указывает, что следующие за ним операторы, формирующие ячейки, относятся к следующей строке таблицы. Операторы, формирующие ячейку таблицы: <Имя ARIS.Output-объекта>.TableCell(<текст>,<ширина ячейки в % от ширины таблицы>, <имя шрифта>,<размер шрифта>,<цвет шрифта>,<цвет заливки ячейки>,<% затенения>,<стиль и выравнивание текста ячейки>,<отступ>) - указывает, что следующие за ним операторы, вставляющие строки, и операторы, вставляющие иллюстрации, будут формировать содержимое одной ячейки таблицы. <Имя ARIS.Output-объекта>.TableCellF(<текст>,<ширина ячейки в % от ширины таблицы>,<имя стиля>) где <имя стиля> - стиль, который должен быть ранее определен в программе. <Имя ARIS.Output-объекта>.DefineF(<имя стиля>, <имя шрифта>, <размер шрифта>, <цвет шрифта>, <цвет заливки текста>, <стиль и выравнивание текста>, <отступ слева>, <отступ справа>, <отступ сверху>, <отступ снизу>,<отступ первой строки>, <интерлиньяж>) Руководство пользователя ARIS SCRIPT. Версия 6.1 49 6.5. Различия используемых форматов отчетов В зависимости от используемых форматов результирующих файлов различаются возможности управления форматом отчета. Рассмотрим основные различия. Формат Excel При использовании для вывода отчета файла в формате Excel надо учитывать, что каждая созданная таблица будет находиться на отдельном листе Excel. Если использовать для вывода отчета другие форматы, то такого не произойдет, и таблицы будут выводиться друг за другом. После создания отчета в формате Excel возможно переносить данные из Excel в базы данных для дальнейшей обработки. Формат RTF Вывод отчета в данном формате позволяет использовать возможности форматирования отчета командами RTF, что позволяет использовать различные шрифты в одной ячейке таблицы, делать принудительные разрывы страницы и т.д. Как правило, для обеспечения использования данных возможностей формат отчета лучше делать в формате RTF. Команды, с помощью которых осуществляется форматирование RTF файла, не входят в рамки данного курса. Формат HTML Формат HTML позволяет получать файлы, уже готовые к публикации в Интернете, что в совокупности с использованием ARIS Web Publisher позволяет документировать результаты проекта в Интернете. Данные файлы можно просматривать с помощью любого браузера. После создания отчета данного типа его можно использовать как основу для дальнейшей переработки в соответствии с Вашими целями, изменяя код HTML. Формат DOC Данный формат позволяет создать файл в формате текстового редактора MS Word. К сожалению, в ARIS Sax Basic не поддерживается полный набор команд. В связи с этим, если к отчету предъявляются более высокие требования, необходимо использовать процедуры и функции из объектной библиотеки Word. 6.6. Операторы, создающие иллюстрацию и вставляющие ее в отчет Если в отчетах используется графическая информация, то это выгодно отличает данный отчет от других, ограничивающихся только текстовой информацией. ARIS SAX Basic позволяет включать графические иллюстрации в отчеты. Перед тем, как Вы вставите иллюстрацию в отчет, ее необходимо создать. Для создания иллюстраций в отчете необходимо проделать следующие действия: Определить имя объекта-иллюстрации: Dim <имя Picture-объекта> As Picture Создать объект-иллюстрацию: Set <имя Picture-объекта> = CreateObject("ARIS.Picture.6.1") Инициализировать объект-иллюстрацию: <имя Picture-объекта>.Create(<имя файла картинки>) где <имя файла картинки> - имя WMF, BMP или JPG – файла, заключенное в двойные кавычки. После создания иллюстрации ее необходимо вставить в отчет. Оператор, вставляющий иллюстрацию в отчет: <Имя ARIS.Output-объекта>.OutGraphic(<имя Picture-объекта>, <масштаб в %>, <максимальная Руководство пользователя ARIS SCRIPT. Версия 6.1 50 ширина в мм>, <максимальная высота в мм>) где <имя Picture-объекта> - имя созданного заранее объекта класса Picture. 6.7. Пример скрипта, формирующего структуру отчета В данном примере рассмотрены следующие вопросы: задается список стилей, который будет использоваться при выводе информации; создается колонтитул в виде таблицы; показываются возможности вывода строк в различных форматах и различными шрифтами; создается таблица и показываются возможности по ее форматированию; выводится графический рисунок в отчет. Данный пример показывает различные возможности форматирования и структурирования получаемых из ARIS отчетов. Руководство пользователя ARIS SCRIPT. Версия 6.1 51 Global g_nLoc As Long Global g_oOutFile As Object Sub Main Set g_oOutFile = CreateObject("ARIS.Output.6.1") g_nLoc = SelectedLanguage g_oOutFile.Init(SelectedFormat, g_nLoc) g_oOutFile.PageWidth=297 g_oOutFile.PageHeight=210 g_oOutFile.DefineF("str_lf","Arial",14,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,0,0,0,0,0,1) g_oOutFile.DefineF("Str_rt","Arial",12,C_BLACK,COLOR_TRANSPARENT,FMT_ITALIC Or FMT_RIGHT,0,0,0,0,0,1) g_oOutFile.DefineF("Str_cn","Arial",12,C_BLACK,COLOR_TRANSPARENT,FMT_CENTER,0,0,0,0,0,1) Dim pict As picture Dim pictLeft As Picture Dim pictRight As picture Set pict = CreateObject("ARIS.Picture.6.1") Set pictLeft = CreateObject("ARIS.Picture.6.1") Set pictRight = CreateObject("ARIS.Picture.6.1") pict.Create("lb_logo.bmp") pictLeft.Create("lb_logo.bmp") pictRight.Create("") g_oOutFile.BeginHeader() g_oOutFile.BeginTable(100,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,0) g_oOutFile.TableRow() g_oOutFile.TableCell("",25, "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,0,FMT_CENTER Or FMT_VCENTER,0) g_oOutFile.OutGraphic(pictLeft,-1,1000,10) g_oOutFile.TableCell(ScriptInfo(SCRIPT_TITLE),50, "Times New Roman",14,C_BLACK,COLOR_TRANSPARENT,0,FMT_CENTER Or FMT_VCENTER,0) g_oOutFile.TableCell("",25, "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,0,FMT_CENTER Or FMT_VCENTER,0) g_oOutFile.OutGraphic(pictRight,-1,40,15) g_oOutFile.EndTable("",100, "Times New Roman",10,C_BLACK,COLOR_TRANSPARENT,0,FMT_LEFT Or FMT_VTOP,0) g_oOutFile.EndHeader() g_oOutFile.OutputLn("Пример отчета","Times New Roman",20,C_BLACK,COLOR_TRANSPARENT,FMT_CENTER,21) g_oOutFile.OutputLnF("Выводим строку с выравниванием влево (жирным шрифтом Arial)","str_lf") g_oOutFile.OutputLnF("Выводим строку с выравниванием вправо (наклонным шрифтом Arial)","Str_rt") g_oOutFile.OutputLnF("Выводим строку с выравниванием по центру (обычным шрифтом Arial)","Str_cn") g_oOutFile.OutputLn("Выводим строку с выравниванием влево и отступом (обычным шрифтом Times New Roman)","Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,20) Руководство пользователя ARIS SCRIPT. Версия 6.1 52 g_oOutFile.OutGraphic(pict,-1,750,120) g_oOutFile.OutputLn(" - Необходимо, что-бы рисунок имел поля, поскольку Aris обрезает их при выводе на экран","Times New Roman",10,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,20) g_oOutFile.OutputLnF("","str_lf") g_oOutFile.OutputLnF("","str_lf") g_oOutFile.OutputLnF("Пример таблицы","Str_cn_ot") g_oOutFile.BeginTable(100,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,0) g_oOutFile.TableRow() g_oOutFile.TableCell("Ячейка 1",100, "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,10,FMT_BOLD Or FMT_LEFT Or FMT_VBOTTOM,0) g_oOutFile.TableRow() g_oOutFile.TableCellF("Ячейка 2.1",50,"str_lf") g_oOutFile.TableCellF("Ячейка 2.2",50,"Str_rt") g_oOutFile.TableRow() g_oOutFile.TableCellF("Ячейка 3.1",25,"str_lf") g_oOutFile.TableCellF("Ячейка 3.2",25,"Str_rt") g_oOutFile.TableCellF("Ячейка 3.3",25,"str_lf") g_oOutFile.TableCellF("Ячейка 3.4",25,"Str_rt") g_oOutFile.TableRow() g_oOutFile.TableCell("Ячейка 4.1",30,"Times New Roman",10,C_BLACK,RGB(212,212,212),0,FMT_BOLD Or FMT_LEFT Or FMT_VBOTTOM,10) g_oOutFile.TableCell("Ячейка 4.2",50,"Times New Roman",15,C_BLACK,RGB(212,212,212),0,FMT_BOLD Or FMT_LEFT Or FMT_VCENTER,20) g_oOutFile.TableCell("Ячейка 4.3",20,"Times New Roman",20,C_BLACK,RGB(212,212,212),0,FMT_BOLD Or FMT_LEFT Or FMT_VTOP,10) g_oOutFile.EndTable("",100, "Times New Roman",10,C_BLACK,COLOR_TRANSPARENT,0,FMT_LEFT Or FMT_VTOP,0) g_oOutFile.WriteReport(SelectedPath, SelectedFile) End Sub Руководство пользователя ARIS SCRIPT. Версия 6.1 Рисунок 1. Пример работы скрипта формирующего структуру отчета 53 Руководство пользователя ARIS SCRIPT. Версия 6.1 54 7. Использование интерактивных элементов при создании скриптов в ARIS Очень часто для корректной работы скриптов возникает необходимость общения с пользователем скрипта с целью передачи в программу каких-либо параметров или осуществления управления ходом выполнения скрипта. Для решения данной задачи в ARIS существует возможность использовать интерактивные элементы – формы, в которых размещать элементы управления, информационные окна, списки выбора и другие элементы. Существует два пути создания экранных элементов: в программе, путем написания соответствующего кода; с помощью Dialog Editor, который позволяет в графическом интерфейсе сформировать экранную форму. 7.1. Использование Dialog Editor для создания экранных форм Мы будем рассматривать второй способ (с помощью Dialog Editor) формирования экранных форм, так как он содержит полный функционал для создания экранных форм, и при этом очень прост в использовании. Находясь в окне редактирования кода скрипта необходимо в меню выбрать пункт Extras / Dialog Editor. В результате данного действия появится рабочее окно Dialog Editor, в котором можно создать экранную форму. Рисунок 35. Рабочее окно Dialog Editor Выделив необходимый для размещения на экранной форме элемент, нажатием на соответствующую кнопку, мы размещаем его в экранной форме на необходимой позиции. Уже после размещения элемента мы можем вносить коррективы в размер данного элемента, а также открыть окно его свойств и внести изменения в атрибуты элемента. Руководство пользователя ARIS SCRIPT. Версия 6.1 55 Приведем описание кнопок, располагающихся на панели UserDialog Editor и действия, выполняемые при их выборе. Кнопка Описание действия Открывает окно свойств для выделенного элемента Позволяет перебирать все присутствующие элементы на экранной форме Управляет расположением элементов по уровням на экранной форме Открывает диалоговое окно управления параметрами направляющей сетки (шаг, видимость и т.д.) Закрывает UserDialog Editor и генерирует код в программе Позволяет выбирать, сдвигать или редактировать элементы Добавляет элемент GroupBox (рамка группировки элементов) Добавляет элемент Text (текстовое поле без возможности изменения) Добавляет элемент TextBox (текстовое поле с возможностью изменения) Добавляет элемент CheckBox (флажок) Добавляет элемент OptionButton (переключатель) Добавляет элемент ComboBox (поле со списком) Добавляет элемент ListBox (список) Добавляет элемент DropListBox (раскрывающийся список) Добавляет элемент Picture (картинка) Добавляет элемент OKButton (кнопка ОК) Добавляет элемент CancelButton (копка Cancel) Добавляет элемент PushButton (кнопка) Для примера рассмотрим окно свойств элемента TextBox Рисунок 36. Окно свойств элемента Кнопками << >> можно осуществлять переход с одного элемента экранной формы на другой, при этом, не закрывая окно. Поля Left, Top, Width, Height содержат данные о местоположении элемента и меняются при изменении местоположения элемента на экранной форме автоматически. Для каждого из элементов окно свойств уникально и отражает специфику данного элемента. Набор полей соответствует параметрам соответствующих элементов, которые мы подробно рассмотрим в следующем пункте. Данные параметры можно менять путем выбора в окне свойств элемента или задавать их вручную из программы. Руководство пользователя ARIS SCRIPT. Версия 6.1 56 7.2. Описание параметров диалоговых элементов ARIS SAX Basic Приведем подробное описание параметров диалоговых элементов. Возможно выделить общие параметры, присутствующие у всех элементов: X - расстояние от левого края диалогового окна (оно задается в 1/8 средней символьной ширины для шрифта диалога); Y - расстояние от верхнего края диалогового окна (оно задается в 1/12 символьной высоты для шрифта диалога); DX – ширина (она задается в 1/8 средней символьной ширины для шрифта диалога); DY – высота (она задается в 1/12 символьной высоты для шрифта диалога). Подробно рассмотрим остальные параметры диалоговых элементов. Синтаксис Параметры Title – заголовок группового блока; GroupBox Field – имя, через которое можно организовать опрос и управление данным элементом. Title – текст, отображаемый в данном текстовом поле; Text Field – имя, через которое можно организовать опрос и управление данным элементом. Field – имя, через которое можно организовать опрос и управление данным элементом; Options - это числовое значение, управляющее типом текстового поля: TextBox 0 - только одна строка может быть введена в поле; 1 - несколько строк может быть введено в поле (по умолчанию); -1 - строка вводится в поле, как скрытый пароль. Field - имя, через которое можно организовать опрос и управление данным элементом: 0 - переключатель выключен; 1 - переключатель включен; 2 - переключатель не выбран. Options – это числовое значение, управляющее типом переключателя: CheckBox 0 - переключатель может быть либо включен, либо выключен; 1 - переключатель может быть либо включен, либо выключен, либо не выбран (после выбора возврат к состоянию «не выбран» невозможен); 2 - переключатель может быть либо включен, либо выключен, либо не выбран (возможен циклический выбор любого из трех положений). Field - имя, через которое можно организовать опрос и управление данным элементом; OptionButton Title$ - заголовок переключателя. StrArray$ () - это массив строк, устанавливающий наполнение поля со списком. Все непустые элементы массива будут использоваться; Field$ - значение поля со списком можно получить через это имя в виде выбранного текста; ComboBox Options - числовое значение, управляющее типом поля со списком: 0 - список не сортируется (по умолчанию); 2 - список сортируется. StrArray$ () - этот массив строк устанавливает наполнение списка выбора (все непустые элементы массива используются); Field$ - значение списка можно получить через это в виде индекса массива StrArray$; ListBox Options - числовое значение, управляющее типом списка: 0 - список не сортируется (по умолчанию); 2 - список сортируется. StrArray$ () - этот массив строк устанавливает наполнение раскрывающегося списка выбора (все непустые элементы массива используются); Field$ - значение поля со списком можно получить через это имя в виде индекса массива; Options - числовое значение, управляющее типом раскрывающегося списка: DropListBox 0 - текстовое поле недоступно для редактирования, и список не сортируется (по умолчанию); 1 - текстовое поле доступно для редактирования, и список не сортируется; 2 - текстовое поле - не доступно для редактирования, и список сортируется; 3 - текстовое поле доступно для редактирования, и список сортируется. OKButton Field - название кнопки (если данный параметр пропущен, то название кнопки - "OK"). CancelButton Field - название кнопки (если данный параметр пропущен, то название кнопки - "Cancel"). Руководство пользователя ARIS SCRIPT. Версия 6.1 57 Title$ - надпись на кнопке; PushButton Field - название кнопки (если данный параметр пропущен, то первые два слова надписи на кнопке используются в качестве имени). В результате диалог будет выглядеть в программе в виде программного кода: Begin Dialog UserDialog 200,120 Text 10,10,180,15,"Please push the OK button" ComboBox 10,25,180,60,combos$(),.combo$ OKButton 80,90,40,20 End Dialog Если в окне программного кода поместить указатель между Begin Dialog и End Dialog, то возможно запустить Dialog Editor снова и внести правки в экранную форму. 7.3. Обработка результатов выбора пользователя В данном пункте будет рассмотрен алгоритм обработки результатов заполнения пользователем экранной формы. После создания экранной формы в Dialog Editor или вручную необходимо определить переменную диалога: Dim dlg_user As UserDialog Для запуска экранной формы на выполнение необходимо использовать следующую команду: Dialog dlg_user Для опроса состояния элементов диалога необходимо использовать следующий синтаксис команд: Set oSelectedItem1 = Dlg_user. ListBox1 Set oSelectedItem2 = Dlg_user. OptionButton1 Причем ListBox1 OptionButton1, – это имена, содержащиеся в свойстве Field соответствующих элементов диалога. Необходимо следить за соответствием типов при присваивании и делать анализ полученных результатов. В зависимости от результатов анализа определенных пользователем параметров, возможно запрограммировать любую реакцию скрипта на выбор пользователя. 7.4. Использование стандартных экранных форм Помимо экранных форм, определяемых пользователем, для решения простых задач, возможно использовать стандартные экранные формы. Возможно использование диалоговых форм со стандартным набором кнопок. Для вывода сообщения из программы скрипта возможно использовать следующую команду: MsgBox(“Модель не найдена”, vbRetryCancel, “Скрипт”) С помощью различных констант, возможно управлять набором кнопок, отображаемых в окне. Набор кнопок Константа OK VbOkOnly OK, Cancel VbOkCancel Abort, Retry, Ignore VbAbortRetryIgnore Yes, No, Cancel VbYesNoCancel Yes, No VbYesNo Retry, Cancel VbRetryCancel Результат выбора можно взять из переменной nResult и с помощью операторов If или Case выполнить нужные действия в программе. Dim Nresult as integer Nresult = MsgBox(“Модель не найдена”, vbRetryCancel, “Скрипт”) Для ввода информации от пользователя, возможно использовать следующую команду: SReturnVal = InputBox(“Введите название модели”) В переменной SReturnVal будет находиться значение, введенное пользователем Руководство пользователя ARIS SCRIPT. Версия 6.1 7.5. Пример скрипта на использование экранных форм '-------------------------------------------------------' Aris 6 - Report Script, Object '-------------------------------------------------------Option Explicit Global g_nLoc As Long Global g_oOutFile As Object Sub Main Dim oAttrList As Object Dim i1 As Long Dim Count_Of_Items As Long Dim ItemName() As String Dim ItemID() As Long Dim nResult As Integer Set g_oOutFile = CreateObject("ARIS.Output.6.1") g_nLoc = SelectedLanguage g_oOutFile.Init(SelectedFormat, g_nLoc) Begin Dialog UserDialog 630,203,"Отчет ARIS" ' %GRID:10,7,1,1 Text 30,21,350,35,"Выберите папку, где находится модель Технических терминов:",.Text1 OKButton 260,168,80,21 ListBox 20,56,340,105,ItemName(),.ListBox1 TextBox 30,175,90,21,.Text2 OptionGroup .Group1 OptionButton 440,28,90,14,"Выбор 1",.OB1 OptionButton 440,49,90,14,"Выбор 2",.OB2 CheckBox 440,161,140,14,"Переключатель",.CheckBox1 End Dialog g_oOutFile.DefineF("REPORT2","Times New Roman",14,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,0,21,0,0,0,1) Count_Of_Items=0 Dim Cur_DataBase As Object Set Cur_DataBase=ActiveDatabase Dim Cur_GroupList As Object Set Cur_GroupList=Cur_DataBase.GroupList(Cur_DataBase.RootGroup)'RootGroup Count_Of_Items=Cur_GroupList.Count ReDim ItemName(Count_Of_Items) ReDim ItemID(Count_Of_Items) For i1=0 To Cur_GroupList.Count-1 ItemName(i1)=Cur_GroupList.Get(i1).Name(g_nLoc) ItemID(i1)=i1 Next i1 Dim dlg3 As UserDialog Dialog dlg3 Dim oSelectedItem As Object Dim CurItemName As String Set oSelectedItem=Cur_GroupList.Get(Dlg3.ListBox1) CurItemName=oSelectedItem.Name(g_nLoc) 58 Руководство пользователя ARIS SCRIPT. Версия 6.1 Set oAttrList = oSelectedItem.AttrList(g_nLoc) MsgBox("Вы ввели текст :"+Dlg3.text2,vbYesNo,"Сообщение") nResult=MsgBox("Вами выбрана папка :"+CurItemName,vbYesNo,"Сообщение") If nResult=vbYes Then MsgBox("Вы нажали Да ",vbYesNo,"Сообщение") Else MsgBox("Вы нажали Нет ",vbYesNo,"Сообщение") End If g_oOutFile.Output("Вами выбрана папка : ", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,0) g_oOutFile.OutputLn(CurItemName, "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_ITALIC,0) If Dlg3.Group1=0 Then g_oOutFile.OutputLn("Выбор 1", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_ITALIC,0) Else g_oOutFile.OutputLn("Выбор 2", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_ITALIC,0) End If If Dlg3.CheckBox1=0 Then g_oOutFile.OutputLn("переключатель выключен", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_ITALIC,0) Else g_oOutFile.OutputLn("переключатель включен", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_ITALIC,0) End If g_oOutFile.WriteReport(SelectedPath, SelectedFile) End Sub 59 Руководство пользователя ARIS SCRIPT. Версия 6.1 60 8. Описание скриптов отчетов, присутствующих в стандартной поставке ARIS Таблица 1. № п/п Перечень скриптов стандартных отчетов в каталоге Script\report\en\ Каталог и наименование скрипта Описание 1 EuroConversion.rsd Преобразование в Евро 2 GroupModels.rsg Формирование информации обо всех моделях выбранной папки и вложенных в нее папок. Имя модели и ее тип выводятся по умолчанию. Имеется возможность включения выбранных атрибутов в отчет. Можно также импортировать в отчет графику моделей (для форматов .HTML, .RTF, .DOC). 3 GroupObjects.rsg Вывод информации об объектах, содержащихся в выбранной папке 4 ModelGraph.rsm Вывод информации об объектах выделенных моделей в соответствии с их графическим расположением на модели. Вывод проводится в текстовом формате. 5 ModelGraphics.rsm Выдает графическое представление выбранных моделей 6 ModelHierarchy.rsm Осуществление обработки функций и их детализаций, содержащихся во всех выбранных моделях. Формируется иерархия функций с выводом свойств и атрибутов. Глубина представляемой иерархии задается пользователем. Функции модели могут выводиться в алфавитном порядке, сортироваться по любым атрибутам, типам символа или топологии. Информация о функциях, имеющих множественные вхождения, выводится один раз. Все дополнительные экземпляры отображаются в виде ссылок. 7 ModelHierarchy_2.rsm Осуществление обработки объектов и их детализаций, содержащихся во всех выбранных моделях. В отчете формируется иерархия функций с выводом их свойств и атрибутов. 8 ModelInfo.rsm Позволяет получить описание всех существующих атрибутов для выбранных моделей. По желанию в отчете можно указать папку, в которой модели сохранены, вывести графику модели и объектов, содержащихся в модели вместе с их атрибутами. Кроме того, могут выводиться связи между объектами в пределах модели. Набор выводимых типов моделей, объектов, отношений и атрибутов может быть ограничен выбираемым фильтром обработки. Содержание отчета сортируется в алфавитном порядке. Вывод может быть осуществлен в форме таблицы или текстового документа. 9 ModelObjects.rsm Включение в отчет всех объектов выбранных моделей. При составлении отчета рассматриваются только те типы объектов, которые входят в установленный (стандартный) методологический фильтр. Отчет создается в виде таблиц (для каждой модели), объекты располагаются в алфавитном порядке. 10 ModelObjectTables.rsm Табличный вывод атрибутов и связей экземпляров объектов в моделях 11 ObjectInfo.rso Предоставление для всех выбранных объектов информации обо всех их связях с другими объектами. Установленные атрибуты анализируемых объектов могут быть включены в отчет, который имеет в форму таблицы. Руководство пользователя ARIS SCRIPT. Версия 6.1 № п/п Каталог и наименование скрипта 61 Описание 12 ObjectTables.rso Формирование отчета обо всех установленных атрибутах выбранных объектов и их связях с другими объектами. 13 ScreenDesign.rsm Генерирует программные коды (C++) из моделей, отображают формат экранов. Создает *.rc и * h файлы. 14 Translation_In.rsd Используется для повышения удобства перевода содержимого баз данных с одного языка на другой. Осуществляет перенос в ARIS предварительно экспортированной и переведенной в системе Excel информации (см. также скрипт Translation_Out.rsg). 15 Translation_Out.rsg Используется для повышения удобства перевода содержимого баз данных с одного языка на другой. Скрипт осуществляет перенос информации из ARIS в Excel. Данная операция необходима для перевода и занесения служебной информации обратно в ARIS при помощи скрипта Translation_In.rsd. 16 TreeNumbering.rsm Подсчет числа объектов выбранной модели с учетом иерархии и вывод результатов на изображение модели. 17 ABC\CostCenterAnalysis_1.rst Отчет выводит содержимое центров затрат анализа, содержимое таблицы категорий затрат и все таблицы функций для выбранного функционально-стоимостного анализа 18 ABC\ProcessCalculation.rst Выводит результаты расчета стоимости процессов, произведенного методом АВС, например, детальную и обзорную таблицы расчета 19 ABC\TableStructure.rsg 20 Administration\Consolidation.rs g 21 Administration\DBLanguagesF onts.rsd Скрипт генерирует пустую таблицу Excel со всеми колонками выбранного метода расчета. Консолидирует объекты с идентичными именами. Перед выполнением скрипта Вы должны выбрать основные объекты активизируя любой Логический атрибут (напр.. User attribute Boolean 1). Выводит информацию о языках и/или шрифтах. Для шрифтов выводятся их свойства: формат, шрифт (Windows), размер, цвет, стиль, кодировка 22 Administration\DBUser.rsd Выводит информацию о пользователях, группах пользователей и назначенных для них функциональных привилегий для выбранной базы данных. 23 Administration\FilterInfo.rsf Отчет выводит типы (типы моделей, атрибуты моделей, типы символов, атрибуты объектов, назначения, типы связей, типы атрибутов для связей), разрешенные методом для выбранного фильтра 24 Administration\FindReplace.rsg Находит и заменяет текстовые атрибуты групп, моделей, объектов и связей. 25 Administration\GroupInfo.rsg Права доступа пользователей/групп описание/определение и пути папок 26 Administration\IDCheck.rsd Осуществление проверки идентификаторов всех элементов базы данных на наличие в них символов, зависящих от используемого языка. При необходимости можно выбрать опцию удаления данных символов. 27 Administration\RelationshipMat rix.rsg Экспортирует содержание матрицы отношений в MS Excel которые пользователей, Руководство пользователя ARIS SCRIPT. Версия 6.1 № п/п Каталог и наименование скрипта 62 Описание 28 Administration\ UserPrivileges.rsg Передает групповую структуру без моделей и объектов, а также пользователей и группы с их связанными привилегиями. 29 C3\c3-ProjectSheet.rsm Создает таблицу проекта с3 для каждой выбранной модели типа с3. Атрибуты Имя и Описание/Определение выводятся для каждого объекта 30 Cbusiness\CbusinessScenario Aggregated.rsm Выдает общую информацию об участниках бизнеса и их бизнеспроцессах, содержащиеся в моделях типа "Диаграмма сценариев ебизнеса" 31 Cbusiness\CbusinessScenario Detailed.rsm Выдает детальную информацию об участниках бизнеса и их бизнеспроцессах с входящими и выходящими связями, содержащиеся в моделях типа "Диаграмма сценариев е-бизнеса" 32 Cbusiness\DataSecurity.rsm Выдает объекты типа "Продукт/Услуга" и "Кластер/Модель данных". Перечисляются атрибуты для объектов типа "Тип передачи". При выборе опции "Тип передачи, он-лайновый" выводится наименование протокола защиты, для объектов, связанных с объектами типа "Защищенный протокол" 33 Cbusiness\InformationFlow.rsm Отчет выдает информационные потоки диаграммы. Каждый объект 34 Cbusiness\SystemSupport.rsm Выдает информацию о том, какая система поддерживает какие процессы, и, если определено, обязанности пользователей этой прикладной системы 35 CMA\CMA_Activities.rsg Формирование списка действий (в рамках работ по управлению изменениями) по планируемым изменениям в моделях и объектах, о которых должен быть проинформирован разработчик моделей или менеджер проекта. 36 CMA\CMA_History.rsm Отчет выводит историю изменения атрибутов папок "Управления изменениями". Информация, выводится по последовательно во времени (предложения по улучшению, мероприятия, замечания, состояние, ответственный, дата окончания) типа "Документ" или "Продукт/Услуга" являются входом или выходом для процесса. Отчет выводит информацию об объектах типа "Продукт/Услуга" или "Бизнес-документ", связи с процессами и процессы CMA\CMA_History.rso 37 CMA\CMA_Improvements.rsg Генерация в формате .XLS таблицы объектов и моделей, для которых имеются предложения по усовершенствованию в рамках работ по управлению изменениями. 38 CMA\CMA_StatusChanges.rsg Генерация списка объектов и моделей, состояние которых изменилось в рамках работ по управлению изменениями. 39 Functions\FunctionHierarchy.rs o Отчет описывает иерархию выбранных функций в базе данных. В отчете рассматриваются отношения в пределах моделей, а также иерархические отношения между функциями и назначенными моделями (например еЕРС). 40 Functions\ Functions_1.rso Описание взаимосвязи выбранных функций и организационных единиц. Анализируются все возможные связи между объектами типа «функция» и организационными единицами. При формировании отчета функции располагаются в алфавитном порядке. В зависимости от выбранных опций отчет выводится в виде таблицы или в текстовом формате. Руководство пользователя ARIS SCRIPT. Версия 6.1 № п/п Каталог и наименование скрипта 63 Описание 41 Functions\Functions_2.rso Описание организационных элементов, выполняющих выбранные функции. Анализируется только тип связи «выполняется» (is executed by) между организационным элементом и функцией. Объекты при выводе в отчет сортируются в алфавитном порядке. В зависимости от выбранных опций отчет представляется в виде таблицы или в текстовом формате. 42 Organizational Elements\OrgChart_1.rsm Выдает структуру модели для выбранных организационных диаграмм. Выводятся только те типы связей, которые включены в методологический фильтр 43 Organizational Elements\OrgElements_1.rso Для выбранных организационных единиц, описываются все связанные с ними функции. В отчет выводятся существующие типы связей между организационными единицами и функциями. Кроме того, в отчет могут быть выведены атрибуты организационных единиц. В зависимости от опций отчет представляется в виде таблицы или как текстовый документ. Объекты сортируются согласно типам объекта, и в пределах данных типов – в алфавитном порядке. 44 Organizational Elements\OrgElements_2.rso Описание функций, которые выполняют выбранные организационные единицы. Анализируется тип отношений «выполняет» (executes). Кроме того, в отчет могут быть включены атрибуты организационных элементов. В зависимости от выбранных опций отчет представлен в виде таблицы или как текстовый документ. Объекты сортируются согласно типам объекта, а в пределах данных типов – по алфавиту. 45 Organizational Elements\OrgElements_3.rso Вывод в отчет связей всех выбранных организационных единиц с другими организационными элементами. Рассматриваются все типы связей, которые разрешаются между организационными элементами в установленном методологическом фильтре. Атрибуты выбранных объектов и папка, в которой они находятся, могут так же включаться в отчет. Отчет может быть представлен как в текстовом формате, так и в виде таблицы. 46 Processes\ProcessesAsStructo Отчет выводит блочную структуру подобную структурограмме для выбранных eEPC-моделей gram.rsm 47 Processes\ProcessOverview_1 .rsm, Processes\ProcessOverview_2 .rsm 48 Processes\ProcessOverview_3 .rsm В созданном отчете описываются функции, входящие в выбранные модели типов eEPC, eEPC (с потоком материалов), в офисный и в производственный процессы. Так же могут быть учтены включенные в эти модели организационные единицы, связанные с функциями. Анализируются все возможные типы связей между организационными единицами и функциями. Кроме того, объекты, описывающие данные, могут быть приведены в отчете как входные и выходные данные функций. Графическое изображение модели так же может быть включено в отчет (за исключением использования текстового формата в качестве выходного). Объекты сведены в таблицу и расположены в алфавитном порядке. Различие между этими скриптами состоит в типах учитываемых связей между объектами. Описание функций, входящих в выбранные модели типов eEPC, eEPC (с потоком материалов), в офисный и в производственный процессы. Так же могут быть учтены включенные в эти модели организационные единицы, связанные с функциями. В зависимости от опции, установленной в помощнике составления отчета, анализ может также быть проведен в обратном направлении, т. е. Рассмотрены функции и выполняющие их организационные Руководство пользователя ARIS SCRIPT. Версия 6.1 № п/п Каталог и наименование скрипта 64 Описание элементы. В зависимости от выбранной опции отчет может быть представлен как табличной или текстовой форме. 49 Processes\ProcessOverview_4 .rsm Предназначен для моделей типов eEPC, eEPC (с потоком материалов), офисного и производственного процессов. Скрипт создает отчет, который включает организационные единицы и выполняемые ими функции. Окружение функций анализируется для типов связи «выполняет» (executes) или «выполняется» (is executed by). В зависимости от выбранной опции отчет представляется в виде таблицы или текста. 50 Processes\ProcessOverview_5 .rsm Скрипт предназначен для моделей типов eEPC, eEPC (с потоком материалов), офисного и производственного процессов. Отчет описывает данные ввода и вывода, представленные объектами типа «Кластер/модель данных», «Тип сущности», «Технический термин» и «Информационный носитель», а также функции, с которыми они связаны. Анализируются типы связи «является входом для» (is input for) и «имеет на выходе» (has output of). При выводе в отчет объекты сортируются в алфавитном порядке. 51 Processes\ProcessOverview_6 .rsm Предназначен для моделей типов eEPC, eEPC (с потоком материалов), офисного и производственного процессов. Отчет описывает объекты, характеризующие тип прикладной системы, и функции, которые они поддерживают. В зависимости от установленных опций, отчет может также быть представлен в обратном направлении, то есть покажет связи функций модели eEPC с объектами, описывающими типы прикладной системы. В отчете анализируется тип связи «может поддерживать» (can support) или «может поддерживаться» (can be supported by). Объекты в отчете представлены в алфавитном порядке в формате таблицы или как текст. 52 Processes\ProcessOverview_7 .rsm Предназначен для моделей типов eEPC, eEPC (с потоком материалов), офисного и производственного процессов. Отчет описывает функции, имеющие среди своих заполненных атрибутов временные характеристики и/или параметры стоимости/затрат. В зависимости от настройки опций выбираются для включения в отчет средние, минимальные или максимальные значения. Суммарные характеристики выводятся в конце отчета. Для подведения итогов по временным атрибутам различные единицы измерения могут быть сведены к одной из них. Для подведения итогов по затратам, одна и та же валюта должна быть использована для различных стоимостных атрибутов. Сумма затрат в функции включает все типы стоимости кроме общих стоимостей. В отчет не включается анализ различных путей процесса или дополнительных критериев анализа. Функции выводятся в алфавитном порядке в виде таблицы. 53 Processes\VACD_1.rsm Предназначен для VAD – диаграмм цепочек добавленного качества. Создаваемый отчет описывает атрибуты и графические символы модели. Также в отчет включаются функции с атрибутами «название» и «описание/определение». В зависимости от установленных опций в отчете могут быть представлены все организационные элементы вместе с выполняемыми функциям и данными ввода и вывода. Для объектов, описывающих данные, анализируются типы связей «является входом для» (is input for) и «имеет на выходе» (has output of). Для организационных элементов рассматриваются все Руководство пользователя ARIS SCRIPT. Версия 6.1 № п/п Каталог и наименование скрипта 65 Описание возможные типы связей между этими элементами и функциями. Отчет составлен в алфавитном порядке и выводится в виде таблицы. 54 Processes\VACD_2.rsm Аналогичен предыдущему, однако анализируются следующие типы связей: функция «выполняется» (is executed by) организационным элементом; объект, описывающий данные, «является входом для» (is input for) функции, и функция «имеет на выходе» (has output of) объект, описывающий выходные данные. Отчет составляется в алфавитном порядке в формате таблицы. 55 QM\ModelISO.rsm Вывод информации с учетом требований международных стандартов ИСО серии 9000. Выводятся элементы, группы, установленные атрибуты и изображения моделей. Функции, имеющиеся в моделях, могут выводиться в алфавитном порядке, сортироваться по любому атрибуту, типу символа. Атрибуты, отношения и детализирующие модели сравниваются. Вывод информации производится в текстовом формате. 56 QM\StructuringModel.rsm Выводит модели, содержащие структурно-зависимые объекты 57 SAP\Activation_r3.rsm Вывод информации о состоянии активации объектов заданных типов – функций, событий и системных организационных единиц. Обрабатывается информация об имени, типе объекта, отнесении объекта к критерию активизации, а также код транзакции в информационной системе. Применяется для моделей, имеющих отношение к системе SAP R/3, а именно, моделей eEPC, VAD и PSM. 58 SAP\ Assignments_r3.rsm По каждой модели, имеющей отношение к системе SAP R/3, скрипт выводит перечень функций, для которых имеется детализация. Обрабатывается информация о коде транзакции, абсолютном пути к детализирующей модели, типе детализирующей модели, символе анализируемого объекта и статусе его активизации. Используемые модели те же, что и в предыдущем случае. 59 SAP\Functions_r3.rsm Для каждой модели, имеющей отношение к R/3, выводит перечень интерфейсов и функций со значимыми атрибутами 60 SAP\FunctionSelection_r3.rsm Используется для обзора функций и интерфейсов процессов со значимыми атрибутами, имеющих отношение к системе SAP R/3 и удовлетворяющих заданным критериям, выбираемым перед генерацией отчета 61 SAP\GroupModels_r3.rsg Вывод информации обо всех объектах типа «Функция», которые содержатся в рассматриваемых моделях и удовлетворяют критериям выбора. Критерий выбора задается перед созданием отчета и позволяет ограничить число объектов, включаемых в отчет. 62 SAP\ Occurrences.rso Отчет выводит экземпляры объектов в моделях и их состояние для выделенных определений объектов. 63 SAP\ProcessPath_r3.rsm Отображение связей между интерфейсами процессов. 64 SAP\StructuralModel.rsm Создаваемый отчет описывает модели, содержащие структурно зависимые объекты. Информация выводится в формате таблицы или как текст. 65 UML\Aris2xmiRR.rsm Экспорт всех выбранных моделей типа «UML диаграммы классов» в файл формата XML в нотации UML XMI. Полученная информация может быть импортирована в программный продукт Rational Rose (UML\Aris2xmiRR_v2.rsm) Руководство пользователя ARIS SCRIPT. Версия 6.1 № п/п Каталог и наименование скрипта 66 Описание 2000 (или любой другой продукт, поддерживающий стандарт XMI). Для каждой выбранной модели создается отдельный экспортный файл. 66 UML\UMLClass2Java.rso Отчет создает Java-класы для объектов типа "Пакет", "Класс", "Интерфейс". Каждый создаваемы класс должен быть описан в "UML Диаграмма класса". Отчет выполняется на уровне определений, на уровне представлений выполняется только для выполняемых интерфейсов 67 UML\UMLInheritanceTree.rso Отчет выводит для всех выбранных объектов типа "Класс" наследованные связи уровня определений. Выводятся все непосредственные члены (Атрибуты и Операторы), а также все наследованные члены 68 UML\UMLJava2Aris.rsg Этот скрипт генерирует модели UML, основанные на выбранных файлах Java. Для импортируемых классов/интерфейсов создаются модели типов Диаграмма класса UML и Диаграмма описания класса UML, в которых отображены их связь с другими пакетами, интерфейсами, классами, их методами и элементами данных. Классы переписываются при экспорте только когда дата файла Java позднее, чем значение атрибута «Последние изменения» класса. 69 UML\UMLMemberInheritance.r sm Отчет выводит для всех выбранных объектов типа "Класс" непосредственные и наследованные члены (Атрибуты и Операторы). 70 UML\UMLMemberInheritanceV 2.rsm, UML\UMLMemberInheritanceV 2.rso 71 Variants\ModelVariants.rsm Вывод результатов сравнения выбранных моделей и их вариантов. Сравнение проводится до устанавливаемого пользователем уровня. Вывод проводится в текстовом формате, модели располагаются в алфавитном порядке. 72 Variants\ObjectVariants.rso Вывод информации о результатах сравнения выбранных объектов и их вариантов. Объекты и их варианты на одном структурном уровне будут отображены в алфавитном порядке. Отчет имеет форму таблицы. 73 Vitria\Vitria_Import.rsg Создает модели процессов из XML-файлов 74 Vitria\ Vitria_Export.rsm Экспортирует модели процессов в файл формат XML 75 XML\DTDExport.rsm Создает текстовое описание моделей DTD для выбранных моделей типа DTD 76 XML\DTDImport.rsg Создает модели типа "DTD" из текстового файла типа Document Type Definition Таблица 2. № п/п 1 Наименование скрипта ApplicSysBreaks.asm Перечень стандартных скриптов анализа в каталоге Script\analyse\en\ Описание Определяет для всех функций в выбранных моделях, поддержаны ли они классами и/или типами и/или прикладными информационными системами, а так же компьютерами. Для всех функций процесса Руководство пользователя ARIS SCRIPT. Версия 6.1 № п/п Наименование скрипта 2 FunctionClass.asm 3 MediaBreaks.asm 4 ModelComparison.asm 5 OrgChange.asm 6 VariantComparison.asm 67 Описание определяется, присутствует ли разрыв в прикладных системах. Разрыв присутствует, когда предыдущая и последующая функции не обладают по крайней мере одним идентичным назначением с точки зрения используемых систем. В ходе анализа определяет коэффициент степени интеграции информационных систем внутри процесса. Он может принимать значения от 0 до 1. Этот анализ группирует все функции выбранных моделей по значению атрибута определенного типа. В ходе анализа определяет, имеется ли разрыв в носителях информации (например, документ, жесткий диск, журнал, файл, телефон и т.д.) для всех функций в выбранных процессах. Разрыв существует, когда две последовательно идущих функции с носителями информации, не обладают по крайней мере одним идентичным носителем информации каждая. Также определяется, сколько функций не обладают по крайней мере одним идентичным носителем информации. Анализ определяет коэффициент, отражающий степень информационных разрывов в процессах. Этот коэффициент может принимать значения от 0 до 1. Чем ниже степень информационной интеграции в процессе, тем выше будет значение коэффициента. Применяется для сравнения по крайней мере двух моделей. Анализ проводится двумя способами. Первый – сравнение существования, в ходе которого исследуются наличие или отсутствие одинаковых объектов в моделях. В качестве критериев идентичности могут выступать некоторые атрибуты, такие как имя, идентификатор, описание объекта, варианты объекта. Второй – сравнение атрибутов, при котором сравниваются атрибуты объектов с идентичными именами, но находящимися в различных моделях. Обрабатываются только модели, объекты, связи и типы атрибутов, доступные в соответствии с методологическим фильтром или фильтром обработки анализа. Чтобы сузить область анализа, выбирается соответствующий фильтр. Результат анализа отсортирован по алфавиту В ходе анализ определяется, имеются ли изменения организационных единиц , групп, должностей и персоналий, задействованных при выполнении функций в выбранных процессах. Связь организационных элементов с функциями осуществляется с помощью связей "вносит вклад" или "выполняет". Если несколько организационных элементов связаны с функциями через связь "вносит вклад", то все орг.элементы необходимы для выполнения функции. Если используется связь "выполняет", то только один, любой, орг. элемент требуется для выполнения функции. В результате альтернативности выполнения функции организационными элементами, подсчитываются две величины, характеризующие организационные изменения. Если изменение возможно, но не необходимо (альтернатива), то величина минимального количества изменений не увеличивается, увеличивается только величина максимального количества изменений. В случае обязательных изменений, увеличиваются обе величины. Сравнивает две модели: мастер и вариант. В итоге выводится информация об объектах, которые существуют только в одной из Руководство пользователя ARIS SCRIPT. Версия 6.1 № п/п Наименование скрипта 68 Описание моделей. Могут быть сравнены атрибуты объектов и связей, содержащихся в моделях, и получена информацию о имеющихся различиях Таблица 3. № п/п Наименование скрипта Перечень стандартных скриптов в каталоге Script\BSC\en\ Описание 1 BSC_DataImport.rsd Осуществление импорта данных (из Excel в ARIS), относящихся к методике оценки стратегии компании Balanced Score Card, после того, как они были перенесены туда скриптом BSC_DataExport.rsm и изменены в соответствии с текущим состоянием стратегии компании. 2 BSC_DataExport.rsm Осуществление экспорта данных (из ARIS в Excel), относящихся к методике оценки стратегии компании Balanced Score Card. Эти данные могут быть изменены в Excel и перенесены обратно при помощи скрипта BSC_DataImport.rsd. Применяется для моделей: BSC-причинно-следственная диаграмма, дерево функций, организационная схема, модель структуры и диаграмма VAD. 3 BSC_ManagementView.asm Этот скрипт вычисляет степень выполнения ключевых показателей результативности, цели и критические факторы Balanced Score Card и создает графическое представление. 4 BSC_Output.rsm Вывод для всех диаграмм типа «BSC – Причинно-следственная диаграмма», связанных с рассматриваемыми моделями организационных схем, моделями структуры, деревьями функций и диаграммами VAD, следующей информации: название перспективы, стратегические цели, ключевые показатели результативности, задачи. Эта информация дается в различных комбинациях, выбираемых пользователем. Применяется для тех же моделей, что и в предыдущем скрипте. 5 BSC_PlanActualComparison.asm Этот сценарий вычисляет степень достижежния целей ключевых показателей результативности, критических факторов в вашей Balanced Score Card в фактическом периоде времени. 6 BSC_ProcessInitiativesAnalysis.as m Этот скрипт поможет расположить в соответствии с приоритетом индивидуальные инициативы и процессы для Balanced Score Card. Он определяет общую степень эффекта индивидуальных инициатив и процессов BSC в высших целях и критических факторах в конце причинно-следственной цепи и сравнивает еѐ со связанной средней стоимостью. Руководство пользователя ARIS SCRIPT. Версия 6.1 69 9. Скрипты Semantic Check 9.1. Скрипты семантических проверок: общие сведения Скрипты семантических проверок позволяют проводить автоматизированную проверку корректности моделей процессов, логических связей объектов, отраженных в моделях, и моделирования структуры предметной области в соответствии с идеологией системы ARIS и методологией моделирования в системе ARIS. Скрипты семантических проверок находятся в каталоге «ARIS\Script\SemanticCheck\En». В стандартной поставке системы ARIS имеется 6 скриптов семантических проверок моделей и 2 скрипта семантической проверки объектов. “Allocation rules.sem” – выполняет проверку структуры модели в соответствии с правилами, ограничивающими количество логических связей между объектом одного заданного типа и несколькими объектами другого заданного типа. “Existence rules.sem” – выполняет проверку структуры модели в соответствии с правилами, регламентирующими наличие представлений одного и того же объекта на моделях базы разного типа. “Object attribute rules.sem” – выполняет проверку объектов заданного типа, имеющих представления на данной модели, в соответствии с правилами, определяющими, какие атрибуты этих объектов должны быть непустыми в соответствии с типом выбранной модели. “Relationship attribute rules.sem” – выполняет проверку связей заданного типа, имеющих представления на данной модели, в соответствии с правилами, определяющими, какие атрибуты этих связей должны быть непустыми в соответствии с типом выбранной модели. “Structure rules.sem” – выполняет проверку структуры модели в соответствии с правилами, ограничивающими топологию графа, соответствующего данной модели. “UMLRules.sem” – выполняет проверку структуры модели в соответствии с правилами, ограничивающими структуру для UML – модели. “Assignment rules.seo” – выполняет проверку детализирующей модели, приписанной к выбранному объекту, в соответствии с правилами, регламентирующими структуру детализирующей модели в зависимости от ее типа. “Object attribute rules.seo” – выполняет проверку выбранного объекта как объекта заданного типа, в соответствии с правилами, определяющими, какие атрибуты такого объекта должны быть непустыми. Основные настройки компонента ARIS – Semantic Check производятся в главном меню системы с помощью закладки View -> Options -> Semantic Check. Внешний вид этой закладки приведен на рисунке. Руководство пользователя ARIS SCRIPT. Версия 6.1 70 Рисунок 37. Основные настройки скриптов семантических проверок В окне «тип и группы правил» (Rule Type and Rule Groups) перечисляется, какие типы и группы правил (одного типа) применяются в стандартных (встроенных) скриптах семантических проверок. В группе «пути» (Path Data) указываются путь для сохранения (Output Path) отчета и источника (Script Path) скриптов для его создания. Руководство пользователя ARIS SCRIPT. Версия 6.1 71 В окне «правила» можно отобразить и сформировать состав выбранной в окне слева («тип и группы правил») группу правил: Рисунок 38. Настройка состава групп правил 9.2. Запуск скрипта семантической проверки в системе ARIS Для запуска скрипта семантической проверки нужно: 1. Подключится к базе данных, содержания которой будет проведена проверка. 2. Выбрать в компоненте ARIS Explorer модель либо объект. Для выполнения проверки пользователь должен иметь доступ к выбранному содержимому базы данных, по крайней мере, для чтения. 3. Для выбранного содержимого базы данных открыть меню и выбрать Evaluate->Semantic Check. В появившейся диалоговой форме, необходимо выбрать скрипт для выполнения проверки и формирования отчета о результатах проверки. Этот скрипт может находиться в каталоге по умолчанию. В этом случае название файла, в котором она храниться можно будет найти в списке «Suggested Semantic Check Scripts (Rule Types)». В противном случае файл скрипта может быть найден в файловой системе в списке «Other Script». Руководство пользователя ARIS SCRIPT. Версия 6.1 72 Рисунок 39. Форма выбора программы для семантической проверки 4. Далее в форме-диалоге настроек отчета необходимо указать полное имя файла, в котором будет сохранен отчет, и его формат. Необходимо также указать язык и фильтр, через который скрипт будет «видеть» содержимое базы данных ARIS. Рисунок 40. Установка параметров отчета 5. Щелкните по кнопке “Finish” чтобы начать семантическую проверку. В зависимости от выбранного скрипта вы будете приглашены при выполнении скрипта к дальнейшим действиям. Руководство пользователя ARIS SCRIPT. Версия 6.1 73 9.3. Работа со стандартным (встроенным) скриптом семантических проверок Во время выполнения скрипта пользователю будет предложено в форме диалога дополнительно выбрать подмножество правил, в соответствии с которыми будет проведена семантическая проверка выбранного объекта или модели. Диалог формирования списка правил проведения семантической проверки содержит четыре окна: 1) окно “Rule Groups” со списком доступных групп правил; 2) окно “Rules” со списком правил из группы правил, выбранной в данный момент в окне “Rule Groups”; 3) окно “rules to be Evaluated” со списком выбранных Вами правил; 4) окно без названия в нижней части диалога с комментарием-пояснением о выбранном в данный момент в окне “Rules” правиле. Например, при выполнении скрипта “Allocation rules.sem”, проявляется следующий диалог: Рисунок 2. Диалог выбора правил для проведения семантической проверки. Сформировав список правил, нажмите на кнопку “ОК”. В результате выполнения скрипта семантической проверки будет сформирован файл, в котором будут перечислены нарушения выбранных Вами правил, найденные в каждой из моделей, выбранных для проверки. Далее, просматривая полученный документ, Вы сможете в ARIS исправить сделанные Вами ошибки. Руководство пользователя ARIS SCRIPT. Версия 6.1 74 10. Классы и объекты ARIS SAX BASIC Содержимое базы ARIS достаточно разнородно и сама база сложно организована. Поэтому для работы с базой ARIS реализован объектный подход. Если коротко, объектный подход – это специальный способ структурировать содержимое базы с тем, чтобы синтаксис специальных выражений, обозначающих тот или иной элемент хранения в базе, был интуитивно понятен программисту. Класс – это (в общих словах) общий случай объекта, его структура, объект – это конкретный единичный экземпляр того, что в общем случае называется классом. Для работы с содержимым базы ARIS система ARIS снабжает нас набором объектов и классов. 10.1. Терминология Item – класс, имеющий атрибуты, т.е. любой объект класса Item содержит объекты класса Attr (организованные в список типа AttrList). Любой объект из классов Model, DataBase, ObjDef, Cxn, Language, Table, FontStyle, Lane, Group, User «автоматически» являются объектами класса Item и «наследуют» все его методы и свойства. Attr - класс атрибутов. Все объекты из класса Item имеют в своем составе объекты из класса Attr (организованные в список типа AttrList) ObjDef – класс определений экземпляров объектов модели (диаграммы). Следует различать три различных смысла слова «ОБЪЕКТ»: 1) Объект как экземпляр класса (когда мы говорим о синтаксисе языка Sax Basic).Класс – общий случай объекта, описание структуры объекта. Говорят «Объект а принадлежит классу А», если структура объекта а подходит под описание структуры объектов класса А (т.е. подходит под описание класса А); 2) Объект как элемент предметной области, т.е. сущность (например, должность «директор», либо «процесс закупки сырья»); 3) Объект как объект базы ARIS – наше огрубленное представление о реальном объекте из предметной области (т.е. то, как мы представили в базе ARIS должность «Директор» либо «процесс закупки сырья»). Объект базы ARIS может быть изображен на диаграммах базы ARIS в нескольких местах, при этом представляя один и тот же объект предметной области. Таким образом, объекту базы ARIS соответствует несколько (не менее одного) ПРЕДСТАВЛЕНИЯ этого объекта на диаграммах (т.е. в моделях) базы ARIS. Например, должность «директор» может (и должна) присутствовать как на диаграмме, описывающей организационную структуру предприятия, так и на диаграмме, описывающей распределение обязанностей. ObjOcc – класс представлений экземпляров объектов модели (диаграммы). Cxn – класс определений экземпляров связи (класс определений связей между объектами на отдельной модели). Связь (связь модели ARIS) – элемент диаграммы, а именно линия на диаграмме, обозначающая логическую связь между объектами базы ARIS, а также между сущностями предметной области, соответствующим этим объектам. Одни и те же кусочки диаграмм могут быть включены в различные модели (в одной модели также может присутствовать продублированный участок с целью достижения большей наглядности диаграммы). В этом случае на этих диаграммах будут присутствовать несколько представлений объектов, входящих в эти кусочки, а также будут присутствовать различные ПРЕДСТАВЛЕНИЯ связей, соединяющих эти объекты. CxnOcc – класс представлений экземпляров связи. Руководство пользователя ARIS SCRIPT. Версия 6.1 75 10.2. Перечисление, общее описание классов и объектов Класс “ARIS_BASIC_Extension” Класс для обращения к выбранным базам, моделям, объектам, связям, группам и пользователям. Глобально объявленные методы предоставляют информацию о выбранных элементах, выборе языка, формате выходного файла, кодах ошибок и выбранных методологических фильтрах. Методы данного класса доступны без префикса класса. Класс “Attr” Класс для обращения к атрибутам определений экземпляра связи и определений экземпляров объектов моделей. Объект “Attr” представляет конкретный атрибут объекта или связи. Класс “AttrList” Представляет собой список из объектов класса Attr. В дополнение к собственным методам, доступны методы класса BaseList. Класс “Cxn” Класс определения экземпляра связи В дополнение к собственным методам, доступны методы класса Item. Класс “CxnList” Представляет собой список из объектов класса Cxn. В дополнение к собственным методам, доступны методы класса ItemList. Класс “CxnOcc” Класс для обращения к свойствам представления экземпляра связи. В дополнение к собственным методам, доступны методы класса Occ. Класс “CxnOccList” Класс списка представлений экземпляров связи. В дополнение к собственным методам, доступны методы класса BaseList. Класс “Database” Класс для обращения к свойствам, моделям (диаграммам) и объектам базы ARIS. Объект “Database” представляет базу ARIS. В дополнение к собственным методам, доступны методы класса Item. Класс “DatabaseList” Класс является списком объектов класса Database. В дополнение к собственным методам, доступны методы класса ItemList. Класс “Font” Класс для обращения к свойствам объектов ОС Windows FONT (шрифт), которые используются для формирования отчетов. Класс “FontList” Класс является списком объектов класса FONT. В дополнение к собственным методам, доступны методы класса BaseList. Класс “FontStyle” Класс для обращения к коллекции свойств “Style” объектов ОС Windows FONT (шрифт), которые используются для формирования отчетов. В дополнение к собственным методам, доступны методы класса Item. Руководство пользователя ARIS SCRIPT. Версия 6.1 76 Класс “FontStyleList” Класс является списком объектов класса FontStyle. В дополнение к собственным методам, доступны методы класса BaseList и ItemList. Класс “Group” Класс для обращения к свойствам групп, в которые собраны модели, содержащиеся в базе ARIS. В дополнение к собственным методам, доступны методы класса Item. Класс “GroupList” Класс является списком объектов класса Group. В дополнение к собственным методам, доступны методы класса ItemList. Класс “Item” Класс содержит общие методы для свойство содержащих элементов и в тоже время является базовым классом для специализированных классов (Object, Model,...). Класс “ItemList” Основной класс для всех списков, которые содержат элементы со свойствами. Этот и все выведенные из него классы поддерживают любые типы свойств (ArisAttrType) в качестве критерия сортировки. Также доступны методы класса BaseList. Класс “Lane” Класс для обращения к свойствам ветви диаграммы (если у диаграммы есть ветви). В дополнение к собственным методам, доступны методы класса Item. Класс “LaneList” Класс является списком объектов класса Lane. В дополнение к собственным методам, доступны методы класса ItemList. Класс “Language” Класс для обращения к свойствам набора языковых настроек базы ARIS. В дополнение к собственным методам, доступны методы класса Item. Класс “LanguageList” Класс является списком объектов класса Language. В дополнение к собственным методам, доступны методы класса ItemList и BaseList. Класс “MethodFilter” Класс для обращения к свойствам методологического фильтра базы ARIS. Класс “Model” Класс для обращения к свойствам и компонентам диаграммы (модели) ARIS. В дополнение к собственным методам, доступны методы класса Item. Класс “ModelList” Класс является списком объектов класса Model. В дополнение к собственным методам, доступны методы класса ItemList. Класс “ObjDef” Класс для обращения к свойствам определения экземпляра объекта (модели) ARIS. В дополнение к собственным методам, доступны методы класса Item. Класс “ObjDefList” Класс является списком объектов класса ObjDef. В дополнение к собственным методам, доступны методы класса BaseList и ItemList. Руководство пользователя ARIS SCRIPT. Версия 6.1 77 Класс “ObjOcc” Класс для обращения к свойствам представления экземпляра объекта (модели) ARIS. В дополнение к собственным методам, доступны методы класса Occ. Класс “ObjOccList” Класс является списком объектов класса ObjOcc. В дополнение к собственным методам, доступны методы класса BaseList. Класс “Occ” Базовый класс для классов ObjOcc и CxnOcc, содержит методы и свойства, необходимые для обращения с представлениями как объектов, так и связей. Класс “Output” Класс для сборки (формирования) отчета и его конвертирования в выбранный формат выходного файла (вывод отчета). В объекте этого класса собирается вся информация отчета и затем записывается в файл указанного формата. Класс “Picture” Класс для обращения к свойствам графической вставки, вставляемой в отчет (в целях оформления или иллюстрирования отчета). Класс “Table” Класс для обращения к свойствам таблицы, вставляемой в отчет. В дополнение к собственным методам, доступны методы класса Item. Класс “TableList” Класс является списком объектов класса Table. В дополнение к собственным методам, доступны методы класса BaseList и ItemList. Класс “User” Класс для обращения к свойствам учетной записи, идентифицирующей пользователя базы ARIS. В дополнение к собственным методам, доступны методы класса Item. Класс “UserList” Класс является списком объектов класса User. Класс “UserGroup” Класс для обращения к свойствам групп, в которые собраны учетные записи пользователей базы, содержащиеся в базе ARIS. В дополнение к собственным методам, доступны методы класса Item. Класс “UserGroupList” Класс является списком объектов класса UserGroup. Руководство пользователя ARIS SCRIPT. Версия 6.1 78 10.3. Структура взаимоотношений моделей, древо классов, древо наследования ObjDef 1.1 Database CxnOcc 3.1 ObjOcc 3.1 ObjDef 1.2 RootGroup ObjDef 1.3 ObjOcc 3.2 Group1 Group 2 CxnOcc 3.2 CxnOcc 3,3 Group 3 Model 1 ObjDef 3.1 Model 2 ObjOcc 3.4 ObjDef 3.2 ObjOcc 3.3 Model 3 ObjDef 3.3 Attr1 Attr2 Attr3 Attr1 Attr2 Attr3 Рисунок 41. Структура взаимоотношений моделей Приведенная схема лишь частично отображает структуру взаимоотношений моделей в базе данных ARIS. На верхнем уровне структура напоминает древовидную. В базе данных (Database) содержится одна корневая группа (RootGroup). В ней могут содержаться группы (Group), модели (Model) и определения объектов (ObjDef). Каждая вложенная группа также может содержать группы, модели и определения объектов. Модели содержат представления объектов (ObjOcc) и связи между ними(CxnOcc). Каждое представление объекта имеет одно и только одно определение объекта, причем это определение может находиться в другой группе, как показано на схеме. Представление объекта может иметь ноль или более представлений связи (CxnOcc) с другими представлениями. Связь (представление связи) соединяет два объекта (представления объекта). Каждое определение объекта и каждая модель имеет набор атрибутов, подробно описывающих это представление и модель. Руководство пользователя ARIS SCRIPT. Версия 6.1 79 Отдельные классы из перечисленных организованы в иерархическую структуру: SelectedDataBases DataBase1 DataBase2 SelectedDataBase DataBaseN RootGroup Group1 Group2 GroupN SubGroup1.1 Model1 ObjDef1 ObjOcc1 CxnOcc1 Model2 ObjDef2 ObjOcc2 CxnOcc2 SelectedModel SelectedObjDef SelectedObjOcc SelectedCxnOcc ModelN ObjDefN ObjOccN CxnOccN Group1.3.6 Cxn1 Cxn2 SelectedCxn CxnN CxnOcc1 CxnOcc2 SelectedCxnOcc CxnOccN Рисунок 42. Иерархическая структура классов. Из этой схемы видно, что Иерархия классов имеет не древовидную структуру на уровне представлений связей (прямоугольники, обозначенные как “CxnOcc”). Руководство пользователя ARIS SCRIPT. Версия 6.1 80 Схема наследования свойств и методов классами: Item ARIS_Basic_Extension Cxn DataBase Language FontStyle Model BaseList Group ObjDef Picture Lane Table UserGroup User Attr ItemList AttrList CxnList LanguageList Occ CxnOcc DataBaseList FontStyleList ModelList GroupList ObjDefList LaneList TableList UserGroupList UserList Font ObjOcc CxnOccList ObjOccList Рисунок 43. Схема наследования классов. FontList Руководство пользователя ARIS SCRIPT. Версия 6.1 81 11. Подробное описание свойств и методов классов ARIS 11.1. Класс “ARIS_BASIC_Extension” Класс для обращения к выбранным базам, моделям, объектам, связям, группам и пользователям. Методы данного класса доступны без префикса класса. Таблица 4. Методы класса ARIS_BASIC_Extension Тип Наименование SelectedFormat long SelectedFile BSTR WindowVisible BOOL ScriptError SelectedPath SelectedLanguage ActiveDatabase long BSTR long LDISPATCH ActiveUser LDISPATCH SelectedModels LDISPATCH SelectedObjDefs LDISPATCH SelectedObjOccs LDISPATCH SelectedGroups LDISPATCH SelectedUsers LDISPATCH SelectedUserGroups LDISPATCH SelectedDatabases LDISPATCH SelectedFilters LDISPATCH SelectedTables LDISPATCH WriteStatus(LPCSTR sText) WriteOutput(LPCSTR sText) void void GetProfileString(LPCTSTR sSection, BSTR LPCTSTR sEntry, LPCTSTR sDefault) Описание Возвращает или устанавливает выбранный формат вывода отчетов (например, SelectedFormat=OUTEXCEL). Возвращает или устанавливает имя файла, в который будет выводиться отчет. Возвращает или устанавливает видимость окна, отображаемого во время выполнения скрипта. Возвращает или устанавливает значение ошибки. Возвращает путь вывода отчета. Возвращает выбранный язык(localeID). Возвращает активную базу данных в виде объекта Database. Возвращает пользователя, открывшего активную базу данных, в виде объекта User. Возвращает список выбранных для обработки моделей в виде объекта ModelList. Возвращает список выбранных для обработки определений объектов в виде объекта ObjDefList. Возвращает список выбранных для обработки представлений объектов в виде объекта ObjOccList. Возвращает список выбранных для обработки групп в виде объекта GroupList. Возвращает список выбранных пользователей в виде объекта UserList. Возвращает список выбранных групп пользователей в виде объекта UserGroupList. Возвращает список выбранных баз данных в виде объекта DatabaseList. На момент составления настоящего описания в списке может находиться только одна таблица, доступная также по вызову ActiveDatabase. Возвращает список выбранных методов фильтрации в виде объекта MethodFilterList. Возвращает список выбранных таблиц в виде объекта TableList. Выводит текст в строку состояния окна приложения. Выводит текст в окно вывода информации о ходе формирования отчета. Возвращает значение ключа в реестре: SSection – имя секции в разделе "HKEY_CURRENT_USER\Software\IDS\ARIS\6.1", например, "Report\Modelgraphic": sEntry – имя ключа в заданной секции; sDefault – значение, которое будет возвращено, если ключ не найден. Руководство пользователя ARIS SCRIPT. Версия 6.1 WriteProfileString(LPCTSTR sSection, BSTR LPCTSTR sEntry, LPCTSTR sValue) GetPrivateProfileString(LPCTSTR BSTR sSectionName, LPCTSTR sKeyName, LPCTSTR sDefault, LPCTSTR sFileName, long FAR* pnReturn) GetPrivateProfileInt(LPCTSTR long sSectionName, LPCTSTR sKeyName, long nDefault, LPCTSTR sFileName, long FAR* pnReturn) 82 Записывает значение sValue в реестр по адресу sSection\sEntry: SSection – имя секции в разделе "HKEY_CURRENT_USER\Software\IDS\ARIS\6.1", например, "Report\Modelgraphic"; sEntry – имя ключа в заданной секции. Возвращает строку из .ini-файла sFileName в секции sSectionName и с ключом sKeyName: SSectionName – имя секции в разделе "HKEY_CURRENT_USER\Software\IDS\ARIS\6.1", например, "Report\Modelgraphic"; SKeyName – имя ключа в заданной секции; sDefault – значение, которое будет возвращено, если ключ не найден; sFileName – имя ini-файла; pnReturn – отображает, насколько корректно был считан ключ. Значения: >= 0 длина возвращенной строки; -1 ini-файл не найден; -2 ошибка открытия ini-файла. Возвращает число, введенное в .ini-файле под секцией sSectionName, с ключом sKeyName: SSectionName – имя секции в разделе "HKEY_CURRENT_USER\Software\IDS\ARIS\6.1", например, "Report\Modelgraphic"; sKeyName– имя ключа в заданной секции; nDefault – значение, которое будет возвращено, если ключ не найден; sFileName – имя ini-файла; pnReturn – отображает, насколько корректно был считан ключ. Значения: 0 ошибок не было; -1 ini-файл не найден; -2 ошибка открытия ini-файла. 11.2. Класс “BaseList” Основной класс с общими методами всех списков. Таблица 5. Наименование Add(LPDISPATCH pDisp, void const VARIANT FAR& nPos) Тип Методы класса BaseList Описание Добавляет элемент в список: PDisp – Элемент списка, который нужно добавить. Должен быть объектом класса для которого список был создан, или объект производный от такого класса; nPos – [необязательный] Если "nPos" определен, новый элемент будет вставлен в этой позиции (или в конец если nPos < 0 или > count-1). Позиция вновь включенного элемента в списке - "nPos", а позиция элемента прежде занимавшего "nPos" и всех следующих элементов увеличены на 1. Count() long Возвращает количество элементов списка. Delete(const VARIANT FAR& BOOL Удаляет определенный элемент списка (parm=object) или parm) элемент в определенной позиции (parm=index в списке). Get(long index) LPDISPATCH Возвращает элемент списка в позиции “index” (нумерация с 0). Руководство пользователя ARIS SCRIPT. Версия 6.1 Sort(short sortKrit0, short void sortKrit1, short sortKrit2, long localeId) Unique() void 83 Сортирует список согласно указанным критериям сортировки. Возвращает однозначный список, удаляя все последующие повторы любого элемента, который уже существует, начиная с начала. 11.3. Класс “Item” Класс содержит общие методы для свойство-содержащих элементов и в тоже время является базовым классом для специализированных классов (Object, Model,...). Таблица 6. Методы класса Item Наименование Тип KindNum() long DataBase() LDISPATCH Name(localeID) Attribute(long attrTypeNum, long localeID) BSTR LDISPATCH AttrList(localeID) LPDISPATCH WriteAttributes(VARIANT LPDISPATCH lstAttrTypeAndValue, long localeID) TableRows(long RowTypeNum, const LDISPATCH VARIANT FAR& KeyItemList) TableIdentifiers(long RowTypeNum, const VARIANT FAR& KeyItemList) VARIANT TableRowsByIdentifier(const VARIANT LDISPATCH FAR& idList) RowTypeNums() VARIANT IsEqual(LPDISPATCH pItem) BOOL ObjectID() BSTR OID() VARIANT Описание Возвращает категорию элемента в виде CIDконстанты (напр., CID_OBJDEF, CID_MODEL). Возвращает базу данных, в которой сохранен элемент. Возвращает имя элемента в выбранном языке. Возвращает атрибут элемента с данным номером типа в данном языке. Для языково независимых атрибутов, localeID игнорируется. Если язык не указан, используется язык, использующийся в настоящее время в базе данных. Возвращает список всех атрибутов, установленных в данном языке. Записывает двумерный массив атрибутов Возвращает все строки таблицы, определенные с помощью RowTypeNum, ссылающиеся на этот элемент. Если параметр KeyItemList (список элементов, которые должны быть ключами в строке таблицы) определен, возвращаются только строки с данным ключом: RowTypeNum – требуемый номер типа строк таблицы; KeyItemList - список элементов, которые должны быть ключами в строке. Возвращает все идентификаторы строки таблицы (в виде массива) для определенной RowTypeNum, которые ссылаются на элемент: RowTypeNum – требуемый номер типа строк таблицы; KeyItemList - список элементов, которые должны быть ключами в строке. Возвращает все строки таблицы для набора определенных идентификаторов, которые ссылаются на элемент. Возвращает список всех номеров RowType, которые ссылаются на этот элемент. Возвращает TRUE, если элемент идентичен указанному. Возвращает ID элемента в базе данных в виде строки. Возвращает ID элемента в базе данных в виде Руководство пользователя ARIS SCRIPT. Версия 6.1 GUID() RefGUID() IsValid() BSTR BOOL BOOL Touch() void 84 массива Long-элементов. Возвращает GUID элемента. Возвращает GUID родительского элемента. Возвращает TRUE, если элемент содержит правильный объект. Обновляет изменения даты и пользовательских атрибутов. Вызывается после изменения свойства элемента или представления объекта в модели. Класс “ItemList” Основной класс для всех списков, которые содержат элементы со свойствами. Этот и все выведенные из него классы поддерживают любые типы свойств (ArisAttrType) в качестве критерия сортировки. Также доступны методы класса BaseList. 11.4. Класс “Occ” Базовый класс для классов ObjOcc и CxnOcc, содержит методы и свойства, необходимые для обращения с представлениями как объектов, так и связей. Таблица 7. Методы класса Occ Наименование KindNum() Тип Описание long Возвращает тип представления (CID_OBJOCC или CID_CXNOCC). Model() LDISPATCH Возвращает модель, в которой представление отображено как модель. Active BOOL Возвращает и устанавливает статус активности представления. IsValid() BOOL Возвращает TRUE, если представление представляет корректный объект базы данных. IsEqual(LPDISPATCH pOcc) BOOL Возвращает TRUE, если представление идентично указанному. ObjectID() BSTR Возвращает ID представления в базе данных. BusinnessOccs() LDISPATCH Возвращает доступные представления в бизнес правилах для данного представления. OriginalOcc() LDISPATCH Возвращает оригинальное представление, если вызывающее представление является представлением в бизнес правиле. Remove(optional Bool BOOL Удаляет экземпляр из модели. Если параметр bRemoveDef bRemoveDef) имеет значение TRUE, определение также удаляется, когда удален последний экземпляр. ZOrder() long Возвращает и устанавливает номер по оси Z (передний план, задний план, …) 11.5. Класс “Attr” Класс для обращения к атрибутам определений связи и определений объектов моделей. Объект “Attr” представляет конкретный атрибут объекта или связи. Таблица 8. Методы класса Attr Наименование Value Тип BSTR Описание Возвращает или устанавливает значение атрибута в виде строки. Значения атрибутов с плавающей точкой округляются до 2-х знаков после запятой. Если требуется большая точность, используйте методы GetValue или MeasureValue. Руководство пользователя ARIS SCRIPT. Версия 6.1 SetValue(LPCTSTR sValue, long nMeasureUnitTypeNum) BOOL GetValue(BOOL bRemoveLineBreaks) VARIANT Type() TypeNum() BSTR long MeasureUnit() BSTR MeasureUnitTypeNum() long MeasureValue(BOOL bRemoveLineBreaks) VARIANT IsValid() BOOL IsMaintained() BOOL GetLockState() long LanguageDepedence() long IsChangeable() BOOL Delete() short 85 Устанавливает новое значение атрибута. "nMeasureUnitTypeNum" будет учитываться только в том случае, если для атрибута определено понятие системы измерения: SValue – устанавливаемое значение; NMeasureTypeNum – тип системы измерения. Возвращает значение атрибута в виде строки. Если "bRemoveLineBreaks" = TRUE, разрывы строки не включаются в возвращаемое значение. Возвращает тип атрибута в виде строки. Возвращает значение типа атрибута. Если объект неправильный, возвращается –1. Возвращает единицу измерения атрибута в виде строки. Возвращает тип единицы измерения. Возвращает измеренное значение (=Value) указанного атрибута. Возвращает точное значение для типов с плавающей точкой. Возвращает TRUE, если этот атрибут правильный. Возвращает FALSE, если значение атрибута не существует. Возвращает информацию относительно доступа к атрибуту (ArisLockState). Возвращает информацию о языковом значении атрибута. Возвращает информацию о изменяемости атрибута. Удаляет атрибут из базы и возвращает 1, если удалился успешно. Класс “AttrList” Представляет собой список из объектов класса Attr. В дополнение к собственным методам, доступны методы класса BaseList. 11.6. Класс “Cxn” Класс определения связи. В дополнение к собственным методам, доступны методы класса Item. Таблица 9. Наименование SourceObjDef() TargetObjDef() OccList() Тип LDISPATCH LDISPATCH LDISPATCH OccListInModel(LPDISPATCH Model) LDISPATCH ActiveType() PassiveType() TypeNum() BSTR BSTR long Delete() BOOL Методы класса Cxn Описание Возвращает исходное определение объекта. Возвращает целевое определение объекта. Возвращает представления связи в виде объекта CxnOccList. Возвращает представления связи из данной модели в виде объекта CxnOccList. Возвращает активное имя связи. Возвращает пассивное имя связи. Возвращает номер типа или -1, если связь неправильная. Удаляет определение, если нет представлений. Руководство пользователя ARIS SCRIPT. Версия 6.1 86 Класс “CxnList” Представляет собой список из объектов класса Cxn. В дополнение к собственным методам, доступны методы класса ItemList. 11.7. Класс “CxnOcc” Класс для обращения к свойствам представления экземпляра связи. В дополнение к собственным методам, доступны методы класса Occ. Таблица 10. Наименование Тип Cxn() LDISPATCH CxnDef() SourceObjOcc LDISPATCH LDISPATCH TargetObjOcc LDISPATCH Pointlist() Array Методы класса CxnOcc Описание Возвращает определение связи в виде объекта Cxn. В дальнейших версиях вместо этого метода будет использоваться метод CxnDef. Возвращает определение связи в виде объекта Cxn. Возвращает исходное представление объекта в виде ObjOcc. Возвращает целевое представление объекта в виде ObjOcc. Возвращает список углов в представлении связи. Класс “CxnOccList” Класс списка представлений экземпляров связи. В дополнение к собственным методам, доступны методы класса BaseList. 11.8. Класс “Database” Класс для обращения к свойствам, моделям (диаграммам) и объектам базы ARIS. Объект “Database” представляет базу ARIS. В дополнение к собственным методам, доступны методы класса Item. Таблица 11. Методы класса Database Наименование ServerName() Тип BSTR RootGroup() LDISPATCH GroupList(LPDISPATCH beginGroup) LDISPATCH UserList(LPDISPATCH userGroup) LDISPATCH UserGroupList() LDISPATCH User(LPCTSTR Name, LPDISPATCH LDISPATCH UserGroup) Group(LPCTSTR sPath, long localeId) LDISPATCH ActiveFilter() LDISPATCH ActiveUser() LDISPATCH LanguageList() LDISPATCH Описание Возвращает имя сервера, на котором сохранена база данных. Возвращает корневую группу (Group). Возвращает список всех групп и их подгрупп в базе данных, начиная с beginGroup. Возвращает список всех пользователей базы данных(UserList) в данной группе пользователей. Если UserGroup=Nothing, возвращаются все пользователи независимо от группы, в которой они находятся. Возвращает список всех групп пользователей (UserGroupList). Возвращает пользователя Name (User) из группы UserGroup. Возвращает группу(Group), определенную путем sPath. Возвращает фильтр(MethodFilter), с которым была открыта база данных. Возвращает пользователя (User), вошедшего в базу данных. Возвращает список всех языков(LanguageList), представленных в базе данных. Руководство пользователя ARIS SCRIPT. Версия 6.1 FontStyleList() LDISPATCH FindGUID(LPCTSTR sGUID) LDISPATCH Find(long SearchKind, long ItemType, LDISPATCH long AttrTypeNum, long LocaleId, String sAttrValue, long CompareFlags) CreateTextDef(String sText, long nLocale) CreateUser(String sUserName, String sPassword, Long() aFunctionRights, Bool bSystemUser) CreateUserCopy(User userToCopy) 87 Возвращает список форматов шрифтов, доступных в базе данных(FontStyleList). Ищет объект с заданным GUID и возвращает ссылку на него. Возвращает список всех объектов, которые соответствуют указанным критериям поиска. Создает новое определение комментария в текущей группе. Создает нового пользователя базы. текстового Создает копию пользователя базы. CreateUserGroup(String sUserName, Long() aFunctionRights) DeleteUser(User oUser) Создает новую группу пользователей базы. DeleteUserGroup(UserGroup oUserGroup) TextDefList() Удаляет группу пользователей базы. Удаляет пользователя базы. базы. Возвращает список всех текстовых комментариев Класс “DatabaseList” Класс является списком объектов класса Database. В дополнение к собственным методам, доступны методы класса ItemList. 11.9. Класс “Font” Класс для обращения к свойствам объектов ОС Windows FONT (шрифт), которые используются для формирования отчетов. Таблица 12. Методы класса Font Наименование Тип Описание Name() Style() BSTR long Возвращает имя шрифта. Возвращает начертание шрифта в виде константы ArisFormatType. Возвращает размер шрифта. Size() long Color() long Возвращает цвет шрифта. CharSet() IsValid() long BOOL Возвращает номер набора символов шрифта. Возвращает True, если объект правильный. Класс “FontList” Класс является списком объектов класса FONT. В дополнение к собственным методам, доступны методы класса BaseList. 11.10. Класс “FontStyle” Класс для обращения к коллекции свойств “Style” объектов ОС Windows FONT (шрифт), которые используются для формирования отчетов. В дополнение к собственным методам, доступны методы класса Item. Таблица 13. Методы класса FontStyle Наименование Тип Описание Руководство пользователя ARIS SCRIPT. Версия 6.1 Font(long localeId) LPDISPATCH IsDefaultFontStyle() BOOL 88 Возвращает объект Font (Шрифт) для заданного языка базы данных. Возвращает True, если формат шрифта соответствует заданному по умолчанию формату шрифта. Класс “FontStyleList” Класс является списком объектов класса FontStyle. В дополнение к собственным методам, доступны методы класса BaseList и ItemList. 11.11. Класс “Group” Класс для обращения к свойствам групп, в которые собраны модели, содержащиеся в базе ARIS. В дополнение к собственным методам, доступны методы класса Item. Таблица 14. Методы класса Group Наименование Path(long localeId) ModelListFilter(VARIANT value, VARIANT localeId, VARIANT typeNum, VARIANT attrTypeNum) Тип BSTR LDISPATCH ModelListFilter_40(LPCTSTR Name, long TypeNum, long localeId) LDISPATCH ModelList() LPDISPATCH ObjDefListFilter(VARIANT value, VARIANT localeId, VARIANT typeNum, VARIANT attrTypeNum) LDISPATCH Описание Возвращает путь к группе в указанном языке. Возвращает список моделей(ModelList), удовлетворяющих данным критериям: Value – Тип модели, или текст имени, или значение атрибута; Localeid – язык; TypeNum – номер типа модели; AttrTypeNum – тип атрибута, для которого производится фильтрация. Параметры могут отбрасываться, начиная с последнего. При этом: 1) если указаны все параметры, то value – требуемое значение атрибута указанного типа; 2) если AttrTypeNum отброшен, то value – требуемое имя модели; 3) если AttrTypeNum и TypeNum отброшены, то value – требуемое имя модели в заданном языке; 4) если отброшены все параметры, кроме value, то value – требуемый номер типа модели. Если ни один параметр не указан, возвращаются все модели группы. Возвращает список моделей(ModelList). Содержит все модели группы, удовлетворяющие указанным критериям. Если Typenum = -1 или Name = "", критерий не используется в запросе. Все параметры должны быть указаны. Возвращает список всех моделей в группе (ModelList). Возвращает список определений объектов (ObjDefList), удовлетворяющих данным критериям: Value – Тип определения, или текст имени, или значение атрибута; Localeid –язык; TypeNum – номер типа определения; AttrTypeNum – тип атрибута, для которого производится фильтрация. Параметры могут отбрасываться, начиная с последнего. При этом: 1) Если указаны все параметры, то value – требуемое значение атрибута указанного типа; Руководство пользователя ARIS SCRIPT. Версия 6.1 ObjDefListFilter_40(LPCTSTR Name, LDISPATCH long TypeNum, long localeId) ObjDefList() LDISPATCH Parent() LDISPATCH Childs() TableList() CreateChildGroup(String sName, long localeId) CreateModel(long ModelType, String sName, long localeId) CreateObjDef(long ObjType, String sName, long localeId) CreateShortcut(Item modelOrObjDef) LDISPATCH LDISPATCH LDISPATCH LDISPATCH LDISPATCH BOOL Delete(Item ItemToDelete) BOOL DeleteShortcut(Item modelOrObjDef) BOOL GetOrCreateObjDef(long LDISPATCH nObjTypeNum, long ByRef nSearchOptions, String sName, long localeId) 89 2) Если AttrTypeNum отброшен, то value – требуемое имя определения; 3) Если AttrTypeNum и TypeNum отброшены, то value – требуемое имя определения в заданном языке; 4) Если отброшены все параметры, кроме value, то value – требуемый номер типа определения. Если ни один параметр не указан, возвращаются все определения объектов в группе. Возвращает список определений объектов(ObjDefList). Содержит все определения объектов в группе, удовлетворяющие указанным критериям. Если Typenum = -1 или Name = "", критерий не используется в запросе. Все параметры должны быть указаны. Возвращает список всех определений объектов в группе (ObjDefList). Возвращает родительскую группу(Group). Если группа корневая или родительская группа неправильная, возвращаемый объект Group будет неправильным. Возвращает список вложенных групп (GroupList). Возвращает список всех таблиц в группе(TableList). Создает новую группу. Уникальность имени не проверяется. Создает новую модель. Уникальность имени не проверяется. Создает определение нового объекта. Уникальность имени не проверяется. Создает новую ссылку в группе на объект или модель Удаляет группу, модель, объект или таблицу Удаляет ссылку в группе на объект или модель Возвращает существующее определение объекта или создает новое определение объекта в текущей группе, если определение объекта не может быть обнаружено по критерию поиска. Класс “GroupList” Класс является списком объектов класса Group. В дополнение к собственным методам, доступны методы класса ItemList. 11.12. Класс “Lane” Класс для обращения к свойствам ветви диаграммы (если у диаграммы есть ветви). В дополнение к собственным методам, доступны методы класса Item. Таблица 15. Методы класса Lane Наименование Тип Start() End() Color() Orientation() Long Long Long Long ObjOccs(VARIANT Lane) LDISPATCH Описание Возвращает координаты старта ветви. Возвращает координаты конца ветви. Возвращает фоновый цвет ветви. Возвращает параметры выравнивания ветви в виде константы ArisLaneOrientationType. Возвращает все представления объектов в ветви. Если параметр представлен (ветвь должна отличаться от текущей), рассматривается пересечение обоих ветвей. Руководство пользователя ARIS SCRIPT. Версия 6.1 IsObjOccOfLane(LPDISPATCH Lane) BOOL 90 Возвращает TRUE, если представление объекта есть элемент ветви. Класс “LaneList” Класс является списком объектов класса Lane. В дополнение к собственным методам, доступны методы класса ItemList. 11.13. Класс “Language” Класс для обращения к свойствам набора языковых настроек базы ARIS. В дополнение к собственным методам, доступны методы класса Item. Таблица 16. Наименование DefaultFont() LocaleID() CodePage() Тип LDISPATCH long long Методы класса Language Описание язык. Возвращает стандартный шрифт для данного языка. Возвращает ID языка. Возвращает кодовую страницу, поддерживающую Класс “LanguageList” Класс является списком объектов класса Language. В дополнение к собственным методам, доступны методы класса ItemList и BaseList. 11.14. Класс “MethodFilter” Класс для обращения к свойствам методологического фильтра базы ARIS. Таблица 17. Методы класса MethodFilter Наименование Тип FilterKey() Name(long localeId) Description(long localeId) IsFullMethod() GetTypes(long itemKindNum) String String String BOOL VARIANT ModelTypes(long viewNum) VARIANT AttrTypes(long itemKindNum, long VARIANT typeNum) IsValidAttrType(long itemKindNum, BOOL long itemTypeNum, long attrTypeNum) ObjTypes() VARIANT IsValidObjType(long objTypeNum) BOOL Assignments(long objTypeNum) VARIANT Symbols(long modelTypeNum[, VARIANT objType]) VARIANT Описание Возвращает ключ фильтра. Отображает имя фильтра в указанном языке. Возвращает описание метода в указанном языке. Возвращает TRUE, если это полный метод. Основываясь на указанном ItemKindNum, возвращает типы, разрешенные для данного сорта элемента. Возвращает разрешенные типы моделей в виде списка. Возвращает номера типов атрибутов, разрешенных для данного ItemKindNum. Возвращает TRUE, если атрибут типа AttrTypeNum разрешен в элементе класса ItemKindNum типа ItemTypeNum: AttrTypeNum- номер типа атрибута; ItemKindNum- номер класса элемента; ItemTypeNum – номер типа элемента. Возвращает разрешенные типы объектов в виде списка номеров типов. Возвращает TRUE, если данный тип объекта разрешен. Возвращает список детализаций для объекта в виде списка номеров типов моделей. Возвращает список разрешенных символов (необязательно: для типа objType) в указанном типе Руководство пользователя ARIS SCRIPT. Версия 6.1 91 моделей в виде списка типов символов. CxnTypes(long modelTypeNum [, VARIANT srcSymType, VARIANT destSymType]) VARIANT CxnTypesFromObj(long VARIANT srcObjTypeNum, long trgObjTypeNum) View(long modelTypeNum) long ModelTypeName(long modelTypeNum) String IsValidModel(long modelTypeNum) BOOL IsValidModelType(long BOOL modelTypeNum) IsValidSymbol(long modelTypeNum, BOOL long symbolTypeNum) SymbolGraphic(long symbolTypeNum) LDISPATCH SymbolObjType(long symbolTypeNum) long SymbolName(long symbolTypeNum) String ObjTypeName(long objTypeNum) String ActiveCxnTypeName(long String cxnTypeNUm) PassiveCxnTypeName(long String cxnTypeNum) ToSymbols(long modelTypeNum, long VARIANT cxnTypeNum) FromSymbols(long modelTypeNum, VARIANT long cxnTypeNum) ItemKindName(long itemKindNum) String ItemTypeName(long itemKindNum, String long itemTypeNum) AttrTypeName(long attrTypeNum) String AttrBaseType(long nAttrTypeNum) long GraphType(long modelTypeNum) long FilterGroup() IsValid() long BOOL Возвращает список разрешенных типов связей (необязательно: между определенными типами символов(src->dest)) в указанном типе моделей в виде списка номеров типа связи: ModelTypeNum – номер типа модели; SrcSymType – номер типа начального символа; DestSymType – номер типа конечного символа. Возвращает список разрешенных типов связи между указанными типами объектов в виде списка номеров типа связи: SrcObjTypeNum – номер типа начального объекта; DestObjTypeNum – номер типа конечного объекта. Возвращает вид ARIS, к которому классифицирована модель. Возвращает имя типа модели. Возвращает TRUE, если указанный тип модели разрешен. В последующих версиях будет использоваться IsValidModelType. Возвращает TRUE, если указанный тип модели разрешен. Возвращает TRUE, если указанный символ разрешен в указанной модели. Возвращает графический образ символа. Возвращает тип объекта символа. Возвращает имя символа. Возвращает имя типа объекта. Возвращает активное имя связи. Возвращает пассивное имя связи. Возвращает все номера символов возможных целевых узлов связи. Возвращает все номера символов возможных исходных узлов связи. Возвращает имя сорта элемента. Возвращает имя типа элемента. Возвращает имя типа атрибута. Возвращает базовый тип для типа атрибута. Возвращает тип изображения модели для указанного типа модели. Возвращает группу фильтров для данного фильтра. Возвращает TRUE, если указанный фильтр правильный. 11.15. Класс “Model” Класс для обращения к свойствам и компонентам диаграммы (модели) ARIS. В дополнение к собственным методам, доступны методы класса Item. Таблица 18. Методы класса Model Руководство пользователя ARIS SCRIPT. Версия 6.1 Наименование Тип Type() TypeNum() Group() Zoom() BSTR long LDISPATCH Float Attribute(const ATTR_TYPE, long localeid) ARISView() LDISPATCH Graphic(BOOL CutObjects, BOOL BlackWhite, long localeId) LDISPATCH SuperiorObjDefs() LDISPATCH ObjDefList() LDISPATCH ObjOccList() LDISPATCH CxnList() LDISPATCH CxnOccList() LDISPATCH CxnListFilter(VARIANT value, VARIANT localeId, VARIANT typeNum, VARIANT attrTypeNum) LDISPATCH CxnOccListFilter(VARIANT value, VARIANT localeId, VARIANT typeNum, VARIANT attrTypeNum) LDISPATCH long 92 Описание Возвращает наименование типа модели. Возвращает номер типа модели. Возвращает группу, к которой принадлежит модель. Возвращает параметр увеличения модели в процентах. Возвращает объект типа ATTR, содержащий соответствующий заданному типу атрибут. Возвращает ARIS-образ, принадлежащий данному типу модели. Возвращает изображение модели в указанном языке в виде графического образа: CutObjects – для RTF-формата: во время урезания объекта производить его урезание(TRUE), или его перекрытие(FALSE); BlackWhite – TRUE для черно-белого изображения; LocaleId – язык модели. Возвращает список ObjDefList объектов, которые детализированы моделью. Возвращает список ObjDefList объектов, имеющих представление в модели. Возвращает список ObjOccList представлений объектов, содержащихся в модели. Возвращает список CxnList связей, имеющих представления в модели. Возвращает список CxnOccList представлений связей, содержащихся в модели. Возвращает список CxnList связей, имеющих представления в модели и удовлетворяющих указанным критериям: Value – Тип связи, или текст имени, или значение атрибута; Localeid – язык; TypeNum – номер типа связи; AttrTypeNum – тип атрибута, для которого производится фильтрация. Параметры могут отбрасываться, начиная с последнего. При этом: 1) Если указаны все параметры, то value – требуемое значение атрибута указанного типа; 2) Если AttrTypeNum отброшен, то value – требуемое имя типа связи; 3) Если AttrTypeNum и TypeNum отброшены, то value – требуемое имя связи в заданном языке; 4) Если отброшены все параметры, кроме value, то value – требуемый номер типа связи; Если ни один параметр не указан, возвращаются все связи в модели. Возвращает список CxnOccList представлений связей, содержащихся в модели и удовлетворяющих указанным критериям: Value – тип представления связи, или текст имени, или значение атрибута; Руководство пользователя ARIS SCRIPT. Версия 6.1 ObjDefListFilter(VARIANT value, VARIANT localeId, VARIANT typeNum, VARIANT attrTypeNum) LDISPATCH ObjOccListFilter(VARIANT value, VARIANT localeId, VARIANT typeNum, VARIANT attrTypeNum) LDISPATCH 93 Localeid – язык; TypeNum – номер типа представления связи; AttrTypeNum – тип атрибута, для которого производится фильтрация. Параметры могут отбрасываться, начиная с последнего. При этом: 1) Если указаны все параметры, то value – требуемое значение атрибута указанного типа; 2) Если AttrTypeNum отброшен, то value – требуемое имя типа представления связи; 3) Если AttrTypeNum и TypeNum отброшены, то value – требуемое имя представления связи в заданном языке; 4) Если отброшены все параметры, кроме value, то value – требуемый номер типа представления связи; Если ни один параметр не указан, возвращаются все представления связей в модели. Возвращает список ObjDefList определений объектов, содержащихся в модели и удовлетворяющих указанным критериям: Value – тип определения, или текст имени, или значение атрибута; Localeid –язык; TypeNum – номер типа определения; AttrTypeNum – тип атрибута, для которого производится фильтрация. Параметры могут отбрасываться, начиная с последнего. При этом: 1) Если указаны все параметры, то value – требуемое значение атрибута указанного типа; 2) Если AttrTypeNum отброшен, то value – требуемое имя типа определения; 3) Если AttrTypeNum и TypeNum отброшены, то value – требуемое имя определения в заданном языке; 4) Если отброшены все параметры, кроме value, то value – требуемый номер типа определения. Если ни один параметр не указан, возвращаются все определения объектов в группе. Возвращает список ObjOccList представлений объектов, содержащихся в модели и удовлетворяющих указанным критериям: Value – тип представления, или текст имени, или значение атрибута; Localeid – язык; TypeNum – номер типа представления; AttrTypeNum – тип атрибута, для которого производится фильтрация. Параметры могут отбрасываться, начиная с последнего. При этом: 1) Если указаны все параметры, то value – требуемое значение атрибута указанного типа; 2) Если AttrTypeNum отброшен, то value – требуемое имя типа представления; 3) Если AttrTypeNum и TypeNum отброшены, то value – требуемое имя представления в заданном языке; 4) Если отброшены все параметры, кроме value, то Руководство пользователя ARIS SCRIPT. Версия 6.1 94 value – требуемый номер типа представления. Если ни один параметр не указан, возвращаются все представления объектов в модели. ComObjOcc() LDISPATCH GetLanes(long nOrientation) LDISPATCH BuildGraph(BOOL bStructure) BOOL StartNodeList() LDISPATCH EndNodeList() LDISPATCH MarkVisited(LPDISPATCH ObjOcc, BOOL bVisited) GetVisited(LPDISPATCH ObjOcc) LDISPATCH HasCycle() BOOL IsTree() BOOL LDISPATCH IsConnected(LPDISPATCH ObjOcc0, BOOL LPDISPATCH ObjOcc1) IsConnectedGraph() BOOL Neighbour(LPDISPATCH ObjOcc0, LPDISPATCH ObjOcc1) CountNodes() LDISPATCH long CountEdges() long GetSuccNodes(LPDISPATCH LDISPATCH ObjOcc) GetPredNodes(LPDISPATCH ObjOcc) LDISPATCH DFSGetFirstNode(LPDISPATCH ObjOcc) LDISPATCH DFSNextNode() LDISPATCH BFSGetFirstNode(LPDISPATCH ObjOcc) LDISPATCH BFSNextNode() LDISPATCH Depth(LPDISPATCH ObjOcc) long модели. Возвращает все представления OLE-объектов в Возвращает все ветви с указанным расположением, содержащиеся в модели. Создает граф модели и назначает метки. Если bStructure = True, то учитываются только структурнозависимые объекты. Все операции с графом возможны только после того, как этот метод вызван. Возвращает список ObjOccList всех стартовых объектов или узлов модели. Возвращает список ObjOccList всех конечных объектов или выходов из модели. Помечает объект как посещенный(TRUE), или непосещенный (FALSE). Возвращает информацию о том, был ли посещен данный объект. Возвращает информацию о том, имеет ли граф модели цикл. Возвращает информацию о том, имеет ли граф модели древовидную структуру. Возвращает информацию о том, связаны ли указанные представления объектов в графе модели. Возвращает информацию о том, связан ли граф модели. Возвращает представления связи между двумя представлениями объектов. Возвращает число представлений объектов в графе модели. Возвращает число связей в графе модели. Возвращает список ObjOccList всех потомков указанного представления и помечает их посещенными. Возвращает список ObjOccList всех предков указанного представления и помечает их посещенными Возвращает перемещенное представление как выбранное и инициализирует поиск в глубину. Все отметки посещения предварительно удаляются. Возвращает следующее представление (ObjOcc) в глубину и помечает возвращаемый объект (ObjOcc) как посещенный. Возвращает перемещенное представление как выбранное и инициализирует поиск в ширину. Все отметки посещения предварительно удаляются. Возвращает следующее представление (ObjOcc) в ширину и помечает возвращаемый объект (ObjOcc) как посещенный. Возвращает глубину выбранного представления в графе (дереве) модели. Руководство пользователя ARIS SCRIPT. Версия 6.1 Mark(LPDISPATCH ObjOcc, const VARIANT FAR& sSetMark) ResetNodes() IsVariant() BSTR HasVariants() BOOL Master() LDISPATCH Variants() LDISPATCH void BOOL ObjDefListFilter_40(LPCTSTR Name, LDISPATCH long Type, long localeId) ObjOccListFilter_40(LPCTSTR Name, LDISPATCH long Type, long localeId) CxnListFilter_40(LPCTSTR Name, long Type, long localeId) LDISPATCH CxnOccListFilter_40(LPCTSTR Name, LDISPATCH long Type, long localeId) BusinnesCases() LDISPATCH OriginalModel() LDISPATCH Cycles(BOOL bStructure) VARIANT OpenModel(long nLocale, BOOL bKeepOpen) BOOL CloseModel() BOOL ShowError(LPDISPATCH Void ObjOrCxnOcc, LPCTSTR sErrorText) ClearError(const VARIANT FAR& ObjOrCxnOcc) Void 95 Возвращает (или устанавливает, если определено значение sSetMark) строку пометки представления. Сбрасывает пометку "посещенные" всех объектов. Возвращает TRUE, если модель является вариантом. Возвращает TRUE, если у модели имеются варианты. Возвращает мастер-модель, если модель является вариантом. Возвращает список ModelList моделей, являющихся вариантами данной модели. Возвращает все объекты (ObjDef), имеющие представления в модели, имеющие указанный тип и указанное имя(если соответствующие параметры не указываются, выбираются непустые значения). Возвращает все представления (ObjOcc), в модели, имеющие указанный тип и указанное имя(если соответствующие параметры не указываются, выбираются непустые значения). Возвращает все связи (CxnList), имеющие представления в модели, имеющие указанный тип и указанное имя (если соответствующие параметры не указываются, выбираются непустые значения). Возвращает все представления связей (CxnList) в модели, имеющие указанный тип и указанное имя(если соответствующие параметры не указываются, выбираются непустые значения). Возвращает все бизнес правила, доступные для модели. Возвращает оригинальную модель, если модель является бизнес правилом. Проверяет модель на циклы и возвращает циклы. Если bStructure = TRUE, то учитываются только значимые объекты и связи. Для исполнения этого метода не требуется графическая информация. Открывает модель в окне моделирования с учетом указанного языка: Localeid – язык для отображения значений атрибутов; BkeepOpen: TRUE - модель закрывается, если соответствующий ей объект стерт; FALSE - модель закрывается, если объект становится неправильным. Закрывает модель, открытую OpenModel. Отображает тест ошибки в открытом окне моделирования для каждого указанного представления объекта или связи. Перед вызовом данного метода модель должна быть открыта с помощью OpenModel. Убирает весь текст, отображенный ShowError, или, если представлений не указано, весь отображенный текст. Перед вызовом данного метода модель должна быть открыта с помощью OpenModel. Руководство пользователя ARIS SCRIPT. Версия 6.1 ApplyTemplate() Void ChangeGroup(Group newGroup) BOOL CreateCxnOcc(ObjOcc ScrObjOcc, ObjOcc TrgObjOcc, long CxnBaseType, long() PointList, Bool bDiagonal, Bool bCreateNewDef) CreateObjOcc(long SymbolNum, ObjDef ObjDef, long X, long Y, Bool bCreateAttrPlacements) CxnOcc 96 Применяет шаблон, который назначен модели, для всех объектов и связей модели. Если шаблон не назначался, применяются настройки по умолчанию. Перемещает модель в другую группу Создает связь (определение и экземпляр) между указанными экземплярами объектов. ObjOcc Создает экземпляр объекта CreateTextOcc(long X, long Y, String TextOcc sText, TextDef TextDef) Создает экземпляр текстового комментария SaveOpenModel() Сохраняет открытую модель Flags() long Возвращает текущие значения флагов для модели SetFlags(long nFlags) BOOL Задает значения флагов для модели Класс “ModelList” Класс является списком объектов класса Model. В дополнение к собственным методам, доступны методы класса ItemList. 11.16. Класс “ObjDef” Класс для обращения к свойствам определения экземпляра объекта (модели) ARIS. В дополнение к собственным методам, доступны методы класса Item. Таблица 19. Методы класса ObjDef Наименование Тип Type() TypeNum() Identifier(long localeId) Attribute(const ATTR_TYPE, long localeid) BSTR long BSTR LDISPATCH Group() LDISPATCH OccList() LDISPATCH OccListInModel(LPDISPATCH Model) LDISPATCH Описание Возвращает наименование типа объекта. Возвращает номер типа объекта. Возвращает идентификатор объекта. Возвращает объект типа ATTR, содержащий соответствующий заданному типу атрибут. Возвращает группу, которой принадлежит объект. Возвращает список ObjOccList всех представлений объекта. Возвращает список ObjOccList всех представлений объекта в указанной модели. Руководство пользователя ARIS SCRIPT. Версия 6.1 CxnList(const VARIANT FAR& nCxnKind, const VARIANT FAR& modelFilter) LDISPATCH AssignedModels() LDISPATCH CxnListFilter(const VARIANT FAR& LDISPATCH nCxnKind, const VARIANT FAR& value, const VARIANT FAR& localeId, const VARIANT FAR& typeNum, const VARIANT FAR& attrTypeNum) IsVariant() BOOL Master() LDISPATCH Variants() LDISPATCH ChangeGroup(Group newGroup) BOOL Consolidate(ObjDefList oObjDefsToConsolidate, Bool bDeleteSlaves, Bool bAttrMerge, Bool bMultipleCxnConsolidate) CreateAssignment(Model model) BOOL CreateCxnDef(ObjDef toObjDef, Long cxnBaseTypeNum) DeleteAssignment(Model model) LDISPATCH LinkVariant(ObjDef VariantObj) BOOL UnlinkVariant(ObjDef VariantObj) BOOL Возвращает список CxnList всех добавочных связей и связей детализации. В качестве необязательного параметра modelFilter может быть указан список моделей. В этом случае будут учитываться только связи детализации указанных моделей: NCxnKind – номер класса связи; ModelFilter – список моделей. Возвращает список ModelList детализирующих моделей. Возвращает список CxnList всех связей объекта, удовлетворяющих указанным критериям: NCxnKind – номер класса связи; Value – Тип связи, или текст имени, или значение атрибута; Localeid –язык; TypeNum – номер типа связи; AttrTypeNum – тип атрибута, для которого производится фильтрация. Параметры могут отбрасываться, начиная с последнего. При этом: 1) Если указаны все параметры, то value – требуемое значение атрибута указанного типа; 2) Если AttrTypeNum отброшен, то value – требуемое имя типа связи; 3) Если AttrTypeNum и TypeNum отброшены, то value – требуемое имя связи в заданном языке; 4) Если отброшены параметры AttrTypeNum TypeNum, localeid, то value – требуемый номер типа связи. Если ни один параметр, кроме NcxnKind не указан, возвращаются все связи указанного класса в объекте. Возвращает TRUE, если объект является вариантом. Возвращает мастер-объект, если объект является вариантом. Возвращает варианты объекта в списке ObjDefList. Перемещает определение объекта в другую группу Консолидирует объект с перечнем объектов BOOL BOOL 97 Создает новую связь детализации объекту Создает новую связь заданного типа к заданному Удаляет связь детализации Определяет заданное определение объекта как вариант объекта. Удаляет вариантную связь между объектами Руководство пользователя ARIS SCRIPT. Версия 6.1 98 Класс “ObjDefList” Класс является списком объектов класса ObjDef. В дополнение к собственным методам, доступны методы класса BaseList и ItemList. 11.17. Класс “ObjOcc” Класс для обращения к свойствам представления экземпляра объекта (модели) ARIS. В дополнение к собственным методам, доступны методы класса Occ. Таблица 20. Методы класса ObjOcc Наименование Тип DefaultProperties Color ObjDef() Attribute(const ATTR_TYPE, long localeid) Symbol() BOOL long LDISPATCH LDISPATCH SymbolNum() OrgSymbolNum() long long SymbolName() CxnOccList BSTR LDISPATCH OutEdges(short nStructure) LDISPATCH OutDegree(short nStructure) InEdges(short nStructure) long LDISPATCH InDegree(short nStructure) Height() Width() X() Y() Cxns([optional] VARIANT nInOut, [optional] VARIANT nStructure) long long long long long LDISPATCH long Описание Стандартный цвет представления. Цвет представления. Возвращает определение(ObjDef) представления. Возвращает объект типа ATTR, содержащий соответствующий заданному типу атрибут. Возвращает или задает номер символа представления Возвращает номер символа представления. Возвращает номер символа представления или ссылочный номер символа представления, если символ определен пользователем. Возвращает имя символа представления. Возвращает все добавочные представления связи для представления в списке CxnOccList. Возвращает исходящие представления связи в списке CxnOccList. Возвращает число исходящих представлений связи. Возвращает входящие представления связи в списке CxnOccList. Возвращает число входящих представлений связи. Возвращает высоту представления в 1/10 мм. Возвращает ширину представления в 1/10 мм. Возвращает х-позицию представления в 1/10 мм. Возвращает y-позицию представления в 1/10 мм. Возвращает указанные связи представления. Класс “ObjOccList” Класс является списком объектов класса ObjOcc. В дополнение к собственным методам, доступны методы класса BaseList. 11.18. Класс “Output” Класс для сборки (формирования) отчета и его конвертирования в выбранный формат выходного файла (вывод отчета). В объекте этого класса собирается вся информация отчета и затем записывается в файл указанного формата. Таблица 21. Методы класса Output Наименование Тип Описание PrintScaling long Масштаб печати в %. PageWidth long Ширина страницы в мм. Руководство пользователя ARIS SCRIPT. Версия 6.1 99 PageHeight long Высота страницы в мм. LeftMargin long Левый отступ в мм. RightMargin long Правый отступ в мм. TopMargin long Верхний отступ в мм. BottomMargin long Нижний отступ в мм. DistHeader Double Отступы Верхнего колонтитула в мм. DistFooter Double Отступы Нижнего колонтитула в мм. Init(long nOutputType, VARIANT localeID) long WriteReport(LPCTSTR strPath, LPCTSTR strFileName, VARIANT bNoHTMLHeader) DefineF(LPCTSTR sStyleSheetName, LPCTSTR sFontName, long nFontSize, long fontColor, long bkColor, long nFormat, long mm_indLeft, long mm_indRight, long mm_distTop, long mm_distBottom, long mm_indFirstLine, double dLineSpacing) bool OutputLnF(VARIANT strText, LPCTSTR styleSheetName) Output(VARIANT strText, LPCTSTR fontName, long fontSize, long fontColor, long bkColor, long format, long mmIndent) void OutputLn(VARIANT strText, LPCTSTR fontName, long fontSize, long fontColor, long bkColor, long format, long mmIndent) void OutputField(long fieldIdentifier, LPCTSTR fontName, long fontSize, long fontColor, long bkColor, long format) void void void Инициализирует процесс вывода, устанавливает формат и localeID для вывода. Записывает созданный отчет в указанный файл в указанном каталоге. Определяет стиль для дальнейшего использования в отчете: SStyleSheetName – имя стиля; SFontName – имя шрифта; NFontSize – размер шрифта; FontColor – цвет шрифта; BkColor – цвет фона; NFormat – формат (Bold, Italic и т.д.); mm_indLeft – левый отступ в мм; mm_indRight – правый отступ в мм; mm_distTop – отступ перед абзацем в мм; mm_distBottom – отступ после абзаца в мм; mm_indFirstLine – отступ перед первой линией в мм; dLineSpacing – множитель для межстрочного расстояния. Выводит указанный текст с применением указанного стиля. Выводит указанный текст с указанными параметрами форматирования: StrText – выводимый текст; SFontName – имя шрифта; NFontSize – размер шрифта; FontColor – цвет шрифта; BkColor – цвет фона; NFormat – формат (Bold, Italic и т.д.); mm_indLeft – левый отступ в мм. Выводит указанный текст с указанными параметрами форматирования и добавляет жесткий перевод строки: StrText – выводимый текст; SFontName – имя шрифта; NFontSize – размер шрифта; FontColor – цвет шрифта; BkColor – цвет фона; NFormat – формат (Bold, Italic и т.д.); mm_indLeft – левый отступ в мм; Выводит текстовое поле (номер страницы, дату и т.п.): fieldIdentifier – идентификатор поля; SFontName – имя шрифта; NFontSize – размер шрифта; Руководство пользователя ARIS SCRIPT. Версия 6.1 100 FontColor – цвет шрифта; BkColor – цвет фона; NFormat – формат (Bold, Italic и т.д.); mm_indLeft – левый отступ в мм. BeginTable(long widthPercent, long borderColor, long bkColor, long format, long mmIndent) TableRow() void void Команда для создания таблицы. BeginHeader() EndHeader() BeginFooter() EndFooter() void void void void Определяет начало новой строки. Первая строка в таблице тоже должна быть явно определена. Определяет новую ячейку в строке таблицы: StrText – выводимый текст; WidthPercent – ширина ячейки в процентах от ширины таблицы; SFontName – имя шрифта; NFontSize – размер шрифта; FontColor – цвет шрифта; BkColor – цвет фона; NShading – затемнение фона в %; NFormat – формат (Bold, Italic и т.д.); mm_indLeft – левый отступ в мм. Определяет новую ячейку в строке таблицы, используя указанный стиль. Завершает формирование таблицы: StrFootText – выводимый текст в нижний колонтитул таблицы; WidthPercent – ширина ячейки в процентах от ширины таблицы; SFontName – имя шрифта; NFontSize – размер шрифта; FontColor – цвет шрифта; BkColor – цвет фона; NShading – затемнение фона в %; NFormat – формат (Bold, Italic и т.д.); mm_indLeft – левый отступ в мм. Выводит картинку: Picture – указатель на объект картинки; FZoom – фактор увеличения/уменьшения картинки в %; PicWidthMM – максимальная ширина картинки в мм; PicHeightMM – максимальная высота картинки в мм. Определяет начало верхнего колонтитула. Определяет конец верхнего колонтитула. Определяет начало нижнего колонтитула. Определяет конец нижнего колонтитула. BgSound(LPCTSTR sFile, long nRepeat) void Определяет фоновую мелодию (только для BgPicture(LPCTSTR sFile, long bgColor, BOOL bWatermark) void TableCell(VARIANT sText, long widthPercent, void LPCTSTR fontName, long fontSize, long fontColor, long bkColor, long nShading, long format, long mmIndent) TableCellF(VARIANT sText, long void nWidthPercent, LPCTSTR sStyleSheetName) EndTable(VARIANT strFootText, long void widthPercent, LPCTSTR fontName, long fontSize, long fontColor, long bkColor, long nShading, long format, long mmIndent) OutGraphic(LPDISPATCH picture, float fZoom, void long picWidthMM, long picHeightMM) HTML). Определяет фоновую картинку и цвет (только для HTML). Руководство пользователя ARIS SCRIPT. Версия 6.1 SetFrameStyle(long idFrame, VARIANT nTwThickness, VARIANT nStyle) void ResetFrameStyle() void 101 Меняет стиль указанной рамки: IdFrame – идентификатор рамки; NtwThickness – толщина рамки в пикселах; NStyle – тип линии рамки. Устанавливает параметры рамок в их значения по умолчанию. Выводит указанный текст "как есть". Выводит гиперссылку в HTML-, RTF-, или Word-Документ. OutputTxt(LPCTSTR sText) void OutputLink(LPCTSTR sOutputText, LPCTSTR void slinkTarget) 11.19. Класс “Picture” Класс для обращения к свойствам графической вставки, вставляемой в отчет (в целях оформления или иллюстрирования отчета). Таблица 22. Методы класса Picture Наименование Тип Описание Create(LPCTSTR strFilePath) void Создает картинку из WMF, BMP или JPG Save(LPCTSTR strFilePath) void Event(long nShape, Array listCoords, LPCTSTR sUniqueID, LPCTSTR sTextBox, LPCTSTR sClickHRef) BOOL SetBkColor(long nColor) long SetBkMode(long nBkMode) long Устанавливает фоновый режим. SetTextColor(long nColor) long Устанавливает цвет выводимого текста. SelectPen(long nPenStyle, long nWidth, long nColor) SelectBrush(long nColor) void void Устанавливает кисть для заливок. SelectFont(long nPointSize, LPCTSTR sFaceName, long nFormat) MoveTo(long x, long y) LineTo(long x, long y) void Устанавливает шрифт. Arc(short x1, short y1, short x2, short y2, short x3, short y3, short x4, short y4) FillRect(long x1, long y1, long x2, long y2, long nColor) FrameRect(long x1, long y1, long x2, long y2, long nColor) InvertRect(long x1, long y1, long x2, long y2) BOOL файла. void void файл. Записывает картинку в WMF, BMP или JPG Определяет чувствительную область в картинке(только для HTML-документов): NShape – определяет тип области, задаваемой в массиве listCoords; ListCoords – массив, содержащий координаты для чувствительной области; SUniqueID – символьный идентификатор для области, уникальный в рамках данного HTMLдокумента; STextBox – содержимое всплывающего текста на предметной области; SClickHRef – ссылка, ассоциируемая с областью. Устанавливает цвет фона. рамок. Устанавливает перо для рисования линий и Устанавливает новую позицию для вывода. Рисует линию от текущей позиции к указанной. Рисует дугу. BOOL Заполняет прямоугольник указанным цветом. BOOL BOOL Рисует рамку указанного цвета вокруг указанного прямоугольника. Инвертирует указанный прямоугольник. Руководство пользователя ARIS SCRIPT. Версия 6.1 Draw3dRect(long x, long y, long cx, long cy, long colorTopLeft, long colorBottomRight) DrawEdge(long x1, long y1, long x2, long y2, long nEdge, long nFlags) Ellipse(long x1, long y1, long x2, long y2) BOOL Pie(long x1, long y1, long x2, long y2, long ptStartX, long ptStartY, long ptEndX, long ptEndY) Polygon(const VARIANT FAR& pointList) BOOL Polyline(const VARIANT FAR& pointList) Rectangle(long x1, long y1, long x2, long y2) BOOL BOOL BOOL BOOL BOOL RoundRect(long x1, long y1, long x2, long y2, BOOL long x3, long y3) FloodFill(long x, long y, long nColor, long nFillType) DrawText(LPCTSTR sText, long FAR* x1, long FAR* y1, long FAR* x2, long FAR* y2, long nFormat) SetTextAlign(long nFlags) Insert(LPDISPATCH picture, long x1, long y1, long x2, long y2) GetOutputTextExtent(LPCTSTR sText, long FAR* cx, long FAR* cy) GetSize(long FAR* cxMM10, long FAR* cyMM10) BOOL 102 Рисует параллелепипед. Недоступно. Рисует одну или несколько связей прямоугольника. Рисует заполненный эллипс в указанном прямоугольнике. Рисует сегмент круга. Рисует замкнутый полигон, заполненный текущим цветом. Рисует полигон. Рисует прямоугольник текущим пером и заполняет его текущим цветом. Рисует прямоугольник со скругленными углами текущим пером и заполняет его текущим цветом. Заполняет область текущей заливкой. BOOL Выводит указанный текст с указанным форматом внутри указанного прямоугольника. BOOL BOOL long Устанавливает выключку текста. Вставляет картинку(ARIS Picture) определенную область. Возвращает ширину текста. Long Возвращает ширину картинки в 1/10 мм. в 11.20. Класс “Table” Класс для обращения к свойствам таблицы, вставляемой в отчет. В дополнение к собственным методам, доступны методы класса Item. Таблица 23. Наименование Group() Тип Методы класса Table Описание LDISPATCH Возвращает группу, к которой принадлежит таблица. Класс “TableList” Класс является списком объектов класса Table. В дополнение к собственным методам, доступны методы класса BaseList и ItemList. 11.21. Класс “User” Класс для обращения к свойствам учетной записи, идентифицирующей пользователя базы ARIS. В дополнение к собственным методам, доступны методы класса Item. Таблица 24. Методы класса User Наименование UserGroups() Тип LDISPATCH AccessRights(LPDISPATCH inGroup) LDISPATCH Описание Возвращает пользователя. Возвращает пользовательские права доступа группы пользователя в Руководство пользователя ARIS SCRIPT. Версия 6.1 103 указанной группе. FunctionRights() VARIANT Возвращает список функциональных привилегий. Класс “UserList” Класс является списком объектов класса User. 11.22. Класс “UserGroup” Класс для обращения к свойствам групп, в которые собраны учетные записи пользователей базы, содержащиеся в базе ARIS. В дополнение к собственным методам, доступны методы класса Item. Таблица 25. Методы класса UserGroup Наименование Тип Описание UserList() LDISPATCH Возвращает список пользователей. AccessRights(LPDISPATCH inGroup) LDISPATCH FunctionRights() VARIANT Возвращает права доступа группы пользователей в указанной группе. Возвращает список функциональных привилегий. Класс “UserGroupList” Класс является списком объектов класса UserGroup. Руководство пользователя ARIS SCRIPT. Версия 6.1 104 12. Введение в ARIS API 12.1. Описание ARIS API Встроенный в ARIS язык программирования SAX BASIC позволяет решать большинство возникающих задач, но хотелось бы упомянуть о существовании интерфейса между архивом данных ARIS и пользовательским приложением. Данный интерфейс выполнен в виде динамической библиотеки, поставляющейся за отдельную плату и устанавливающейся вместе с ARIS Toolset. ARIS-Repository-API является интерфейсом между архивом данных ARIS и пользовательским приложением. Библиотека ARIS-API содержит необходимые описания функций интерфейса, делающее возможным их использование в языках программирования Си, С++. ARIS-Repository-API предоставляет доступ к данным, созданным с помощью системы ARIS, так что становится возможным использовать эту информацию в других приложениях или дополнять существующие данные в архиве ARIS новыми объектами, в рамках методологии ARIS. Использование библиотеки ARIS-Repository-API в проектах, по-видимому, весьма ограничено в связи с программистским уровнем данного приложения ARIS. Но с ее помощью могут быть разработаны надстройки и утилиты для целого класса проектов. При помощи библиотеки ARIS-Repository-API могут быть решены следующие задачи: перенос из/в архив результатов моделирования в системе ARIS (в рамках этой задачи могут быть решены подзадачи стыковки системы ARIS с отечественными системами класса Workflow, архивации и восстановления архива ARIS); создание собственных надстроек к системе ARIS (в рамках этой задачи могут быть решены подзадачи перевода моделей аналогичного класса между собой, а также более жесткая интеграция моделей); интеграция информации различных АРМ в едином стандарте ARIS (при помощи ARIS может быть разработана концепция интеграции различных АРМ, и реализована в приложении с API). Вообще говоря, сфера применения библиотеки API может быть ограничена только воображением и возможностями пользователя этой библиотеки. Для этого существующая библиотека для языка «С» описывает функции интерфейса, позволяющие читать любые нужные, а также вносить новые данные в архив ARIS. Работа функций с информацией производится с учетом прав доступа каждого пользователя. Разработчик библиотеки функций гарантирует, что изменения, вносимые с использованием функций, не разрушат архив ARIS, который остается доступным через средства ARIS-Toolset. Библиотека API функций была разработана как «С» DLL (динамически подключаемая библиотека), чтобы быть независимой от специфики конкретного компилятора языка программирования, так что разработчик может использовать удобную для себя программную среду. В рамках данного пункта рассмотрим краткую выжимку из функций API, для обзора функциональности данного модуля и обнаружения границы, за которой необходимо его применение. Синтаксис команд в данном описании не приводится, поскольку это выходит за рамки данного документа. То есть фактически с помощью ARIS API Вы можете писать любые свои приложения, используя репозиторий ARIS. В данной деятельности Вы будете ограничены лишь собственной фантазией и уровнем знания программирования. Руководство пользователя ARIS SCRIPT. Версия 6.1 105 12.2. Краткое описание возможностей ARIS API Функции для работы с группами Информация в базе данных ARIS структурирована наподобие файловой системы: модели и объекты хранятся в группах, напоминающих папки (каталоги) в среде Windows. Рассматриваемые ниже функции предназначены для работы с такими каталогами (группами) среды ARIS. С помощью этих функций можно: создавать новые группы; просмотреть атрибуты нужной группы; узнать количество подгрупп группы; количество групп в указанной пользователем базе данных; удалить группу из памяти с высвобождением всех ресурсов с ней связанных; удалить определенную группу вместе со всеми атрибутами из базы данных. ArisGroup Функции для работы с языками В своей базе данных пользователь может работать с несколькими языками (рабочие языки базы данных) для представления моделей, объектов и их атрибутов на Aris нескольких языках. Каждый язык описывается своим именем, типом, и названием Language языка. Эта группа функций позволяет: установить язык для всей дальнейшей работы; получить сведения о количестве доступных языков в определенной базе данных, получить имя языка и т.д. Функции для работы с моделями ARIS позволяет пользователю работать с различными типами моделей. Эти типы моделей определяются взглядом описания (данные, организационная структура, ArisModel процессы, функции) и уровнем его описания в соответствии с концепцией ARIS. Различные типы моделей представляют различные методы моделирования. Каждый тип модели имеет свои собственные типы объектов и связей, присущие именно этому типу модели. Эта группа функций обеспечивает широкие возможности для моделирования процессов, работы с существующими моделями ARIS. С помощью этих функций пользователь может: создавать новые модели; просматривать атрибуты модели; узнать количество доступных моделей в определенной группе, количество объектов в модели, удалять модели и т.д. Функции для работы с объектами, которые хранятся в базе данных (определение объекта) В ARIS можно работать как с объектами (определениями объекта), которые хранятся в базе данных, так и с их образами в моделях. В базе данных ARIS хранится ArisObjDef запись об объекте, содержащая атрибуты объекта. Объект храниться в той группе, в которой был первоначально создан, хотя и может быть перемещен при помощи ARIS Explorer или функций API. Определение объекта в базе данных носит имя, которое отображается в ARIS Explorer’e (далее определение объекта будем называть просто объектом). Эти функции позволяют: создавать новый объект; просмотреть атрибуты объекта; узнать длину содержания атрибута; получить количество объектов в группе; удалять объекты из памяти и из базы данных ARIS. Функции для работы с отображениями объектов Руководство пользователя ARIS SCRIPT. Версия 6.1 Отображение или вид объекта в модели и способ визуального отображения объекта. Содержит координаты расположения объекта в графическом представлении. Эти функции позволяют: перемещать объект по модели; изменять его цвет. Функции для работы с элементом “пользователь” Пользователи создаются в каждой базе данных ARIS отдельно. Имеется стандартный пользователь с именем system. Пользователи описываются уникальным именем и паролем. Чтобы иметь возможность работать с базой данных пользователю должен быть присвоен фильтр для открытия базы данных и права доступа к группам базы данных. Пользователь может быть приписан к группе пользователей. С помощью этой группы функций ARIS-API можно: создать нового пользователя; просмотреть атрибуты пользователя; узнать количество возможных пользователей конкретной базы данных; узнать количество имеющихся групп, в которые входит конкретный пользователь; получить идентификаторы пользователей из конкретной базы данных; удалить пользователя и т.д. 106 ArisObjOcc ArisUser Руководство пользователя ARIS SCRIPT. Версия 6.1 107 13. Основные алгоритмические приемы при работе с базой ARIS 13.1. Пример на использование Occurrence и Definition объекта Создадим с помощью Script Wizard скрипт для моделей, выдающий перечень Occurrence и Definition объектов на модели. Данный пример наглядно показывает тактику использования Occurrence и Definition объектов и разницу в данных понятиях. Первоначально мы выводим отфильтрованные Occurrence объектов-функций (тип Function) выбранной модели, отсортированные по расстоянию от левого верхнего угла модели. Далее выводятся отфильтрованные Definition объектов-функций (тип Function) выбранной модели для демонстрации разности понятий. После этого выводятся отфильтрованные Occurrence объектов-документов (тип Information Carrier) с указанием номера символьного обозначения объекта на модели. Далее выводятся отфильтрованные Definition объектов-документов (тип Information Carrier) выбранной модели для демонстрации разности понятий. В заключение выводится графическое представление модели для ознакомления. Рисунок 44. Окно Script Wizard Руководство пользователя ARIS SCRIPT. Версия 6.1 108 Приведем выжимку из получившейся программы Dim oSelectedModels1 As Object Dim oSelectedModels1Obj As Object Set oSelectedModels1 = SelectedModels For i1 = 0 To oSelectedModels1.Count()-1 Set oSelectedModels1Obj = oSelectedModels1.Get(i1) В данном блоке мы осуществили выборку Occurrence определенного типа 'iterate through oObjOccListFilter1 g_oOutFile.OutputLn("Object occurrences (filtered):", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Dim oObjOccListFilter1 As Object Dim oObjOccListFilter1Obj As Object Set oObjOccListFilter1 = oSelectedModels1Obj.ObjOccListFilter("", g_nLoc, OT_FUNC, AT_NAME) oObjOccListFilter1.Sort(SORT_GEOMETRIC, SORT_NONE, SORT_NONE, g_nLoc) For i2 = 0 To oObjOccListFilter1.Count()-1 Set oObjOccListFilter1Obj = oObjOccListFilter1.Get(i2) g_oOutFile.OutputLn("Object:", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,20) g_oOutFile.OutputLn("Name: "+oObjOccListFilter1Obj.ObjDef.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,30) g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Set oObjOccListFilter1Obj = Nothing Next i2 Set oObjOccListFilter1 = Nothing В данном блоке мы осуществили выборку Definition определенного типа 'iterate through oObjDefListFilter1 g_oOutFile.OutputLn("Objects (filtered):", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Dim oObjDefListFilter1 As Object Dim oObjDefListFilter1Obj As Object Set oObjDefListFilter1 = oSelectedModels1Obj.ObjDefListFilter("", g_nLoc, OT_FUNC, AT_NAME) oObjDefListFilter1.Sort(AT_NAME, SORT_NONE, SORT_NONE, g_nLoc) For i3 = 0 To oObjDefListFilter1.Count()-1 Set oObjDefListFilter1Obj = oObjDefListFilter1.Get(i3) g_oOutFile.OutputLn("Name: "+oObjDefListFilter1Obj.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,20) Руководство пользователя ARIS SCRIPT. Версия 6.1 109 g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Set oObjDefListFilter1Obj = Nothing Next i3 Set oObjDefListFilter1 = Nothing В данном блоке мы осуществили выборку Occurrence определенного типа и вывод номера графического представления символа 'iterate through oObjOccListFilter2 g_oOutFile.OutputLn("Object occurrences (filtered):", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Dim oObjOccListFilter2 As Object Dim oObjOccListFilter2Obj As Object Set oObjOccListFilter2 = oSelectedModels1Obj.ObjOccListFilter("", g_nLoc, OT_INFO_CARR, AT_NAME) oObjOccListFilter2.Sort(SORT_GEOMETRIC, SORT_NONE, SORT_NONE, g_nLoc) For i4 = 0 To oObjOccListFilter2.Count()-1 Set oObjOccListFilter2Obj = oObjOccListFilter2.Get(i4) g_oOutFile.OutputLn("Object:", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,20) g_oOutFile.OutputLn("Name: "+oObjOccListFilter2Obj.ObjDef.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,30) g_oOutFile.OutputLn("Original symbol number: "+Str(oObjOccListFilter2Obj.OrgSymbolNum), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,20) g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Set oObjOccListFilter2Obj = Nothing Next i4 Set oObjOccListFilter2 = Nothing В данном блоке мы осуществили выборку Definition определенного типа 'iterate through oObjDefListFilter2 g_oOutFile.OutputLn("Objects (filtered):", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Dim oObjDefListFilter2 As Object Dim oObjDefListFilter2Obj As Object Set oObjDefListFilter2 = oSelectedModels1Obj.ObjDefListFilter("", g_nLoc, OT_INFO_CARR, AT_NAME) For i5 = 0 To oObjDefListFilter2.Count()-1 Set oObjDefListFilter2Obj = oObjDefListFilter2.Get(i5) g_oOutFile.OutputLn("Name: "+oObjDefListFilter2Obj.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,20) g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Set oObjDefListFilter2Obj = Nothing Руководство пользователя ARIS SCRIPT. Версия 6.1 110 Next i5 Set oObjDefListFilter2 = Nothing Здесь мы выводим графику модели g_oOutFile.OutputLn("Graphic:", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) 'no object method specified: ... writing default g_oOutFile.OutGraphic(oSelectedModels1Obj.Graphic(TRUE, TRUE, g_nLoc),-1, g_oOutFile.PageWidth-g_oOutFile.LeftMarging_oOutFile.RightMargin,g_oOutFile.PageHeight-g_oOutFile.TopMargin-g_oOutFile.BottomMargin-15) g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,0) Set oSelectedModels1Obj = Nothing Next i1 Set oSelectedModels1 = Nothing Руководство пользователя ARIS SCRIPT. Версия 6.1 111 13.2. Пример создания своих списков объектов и их сортировки При программировании скриптов в ARIS Sax Basic очень часто возникает необходимость использовать списки объектов. В данные списки собираются объекты, найденные при обходе моделей или базы ARIS. На данном примере мы рассмотрим процесс создания списков и их сортировки. Создадим, с помощью Script Wizard скрипт для моделей типа eEPC, выдающий перечень информационных входов функций. Рисунок 45. Создание скрипта в окне Script Wizard Отфильтруем только функции: Рисунок 46. Задание фильтра в окне Script Wizard Руководство пользователя ARIS SCRIPT. Версия 6.1 112 Основная часть сгенерированного Script Wizard’ом скрипта: 'iterate through oSelectedModels1 g_oOutFile.OutputLn("Selected models:", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,0) Dim oSelectedModels1 As Object Dim oSelectedModels1Obj As Object Set oSelectedModels1 = SelectedModels For i1 = 0 To oSelectedModels1.Count()-1 Set oSelectedModels1Obj = oSelectedModels1.Get(i1) g_oOutFile.OutputLn("Name: "+oSelectedModels1Obj.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,10) 'iterate through oObjOccListFilter1 g_oOutFile.OutputLn("Object occurrences (filtered):", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Dim oObjOccListFilter1 As Object Dim oObjOccListFilter1Obj As Object Set oObjOccListFilter1 = oSelectedModels1Obj.ObjOccListFilter("", g_nLoc, OT_FUNC, AT_NAME) For i2 = 0 To oObjOccListFilter1.Count()-1 Set oObjOccListFilter1Obj = oObjOccListFilter1.Get(i2) 'iterate through oInEdges1 g_oOutFile.OutputLn("Incoming relationships:", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,20) Dim oInEdges1 As Object Dim oInEdges1Obj As Object Set oInEdges1 = oObjOccListFilter1Obj.InEdges(EDGES_ALL) For i3 = 0 To oInEdges1.Count()-1 Set oInEdges1Obj = oInEdges1.Get(i3) g_oOutFile.OutputLn("Relationship:", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,30) g_oOutFile.OutputLn("Type number: "+Str(oInEdges1Obj.CxnDef.TypeNum), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,40) g_oOutFile.OutputLn("Source object:", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,40) 'no object method specified: ... writing default g_oOutFile.OutputLn(oInEdges1Obj.CxnDef.SourceObjDef.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,50) g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,20) Set oInEdges1Obj = Nothing Next i3 Set oInEdges1 = Nothing Руководство пользователя ARIS SCRIPT. Версия 6.1 113 g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Set oObjOccListFilter1Obj = Nothing Next i2 Set oObjOccListFilter1 = Nothing g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,0) Set oSelectedModels1Obj = Nothing Next i1 Set oSelectedModels1 = Nothing g_oOutFile.WriteReport(SelectedPath, SelectedFile) End Sub Руководство пользователя ARIS SCRIPT. Версия 6.1 114 Для связей, присутствующих на выделенной модели, нет фильтрации по типу связи (которая возможна только для CxnDef). Требуется отобрать связи типов «provides input for» и «is input for». Добавляем в Script Editor’е (выделено жирным шрифтом): Dim oInput As Object Dim nType As Long … For i1 = 0 To oSelectedModels1.Count()-1 Set oInput = CreateObject("ARIS.ObjDefList.6.1") For i3 = 0 To oInEdges1.Count()-1 Set oInEdges1Obj = oInEdges1.Get(i3) ' g_oOutFile.OutputLn("Type number: "+Str(oInEdges1Obj.CxnDef.TypeNum), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,40) nType = oInEdges1Obj.CxnDef.TypeNum WriteOutput(CStr(i2+1)+"/"+CStr(oObjOccListFilter1.Count())+","+CStr(i3+1)+"/" _ +CStr(oInEdges1.Count())+" ("+CStr(oInEdges1Obj.CxnDef.TypeNum)+") "+oInEdges1Obj.CxnDef.ActiveType) If nType = CT_PROV_INP_FOR Or nType = CT_IS_INP_FOR Then ' g_oOutFile.OutputLn(oInEdges1Obj.CxnDef.SourceObjDef.Name(g_nLoc), "Times New ' Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,50) oInput.Add(oInEdges1Obj.CxnDef.SourceObjDef) End If Set oInEdges1Obj = Nothing Next i3 Set oInEdges1 = Nothing Set oObjOccListFilter1Obj = Nothing Next i2 Set oObjOccListFilter1 = Nothing oInput.Unique() oInput.Sort(AT_NAME,SORT_NONE,SORT_NONE,g_nLoc) For j = 0 To oInput.Count()-1 g_oOutFile.OutputLn(oInput.Get(j).Name(g_nLoc),"Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,0) Next j Set oInput = Nothing Руководство пользователя ARIS SCRIPT. Версия 6.1 115 13.3. Пример рекурсивной программы Создадим скрипт для моделей типа Function tree, выдающий иерархический перечень функций, причем используем в данном случае рекурсию. Использование рекурсии позволяет сделать алгоритм скрипта более универсальным и независящим от количества уровней. Рисунок 47. Создание скрипта в окне Script Wizard Фильтруем связи по типу: Рисунок 48. Задание фильтра в окне Script Wizard Руководство пользователя ARIS SCRIPT. Версия 6.1 и по направлению: Рисунок 49. Задание фильтра в окне Script Wizard 116 Руководство пользователя ARIS SCRIPT. Версия 6.1 117 Основная часть сгенерированного ScriptWizard’ом скрипта: Set oSelectedObjDefs1Obj = oSelectedObjDefs1.Get(i1) g_oOutFile.OutputLn("Name: "+oSelectedObjDefs1Obj.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,10) 'iterate through oCxnListFilter1 g_oOutFile.OutputLn("Relationships (filtered):", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Dim oCxnListFilter1 As Object Dim oCxnListFilter1Obj As Object Set oCxnListFilter1 = oSelectedObjDefs1Obj.CxnListFilter(EDGES_OUT, "", g_nLoc, CT_IS_PRCS_ORNT_SUPER, AT_NAME) For i2 = 0 To oCxnListFilter1.Count()-1 Set oCxnListFilter1Obj = oCxnListFilter1.Get(i2) g_oOutFile.OutputLn("Target object:", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,20) 'no object method specified: ... writing default g_oOutFile.OutputLn(oCxnListFilter1Obj.TargetObjDef.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,30) g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Set oCxnListFilter1Obj = Nothing Next i2 Set oCxnListFilter1 = Nothing g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,0) Set oSelectedObjDefs1Obj = Nothing Next i1 Set oSelectedObjDefs1 = Nothing Отмеченная жирным шрифтом часть должна повторяться для всех функций промежуточных уровней, рассматриваемых как вершины поддеревьев. Выделим ее как подпрограмму с названием Tree и двумя аргументами: oRoot – корневая функция, nLevel – номер уровня. Вместо удаленного фрагмента напишем вызов первого уровня подпрограммы: Tree oSelectedObjDefs1Obj, 1 В подпрограмме добавим вычисляемый отступ по номеру уровня, заменим oSelectedObjDefs1Obj на oRoot и добавим рекурсивный вызов подпрограммы: Tree oCxnListFilter1Obj.TargetObjDef, nLevel+1 Законченный скрипт (основная часть и подпрограмма): For i1 = 0 To oSelectedObjDefs1.Count()-1 Set oSelectedObjDefs1Obj = oSelectedObjDefs1.Get(i1) Tree oSelectedObjDefs1Obj, 1 Руководство пользователя ARIS SCRIPT. Версия 6.1 118 g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,0) Set oSelectedObjDefs1Obj = Nothing Next i1 Set oSelectedObjDefs1 = Nothing g_oOutFile.WriteReport(SelectedPath, SelectedFile) End Sub Sub Tree(oRoot As Object, nLevel As Integer) ' g_oOutFile.OutputLn("Name: "+oSelectedObjDefs1Obj.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,10) g_oOutFile.OutputLn(oRoot.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,10*nLevel) 'iterate through oCxnListFilter1 ' g_oOutFile.OutputLn("Relationships (filtered):", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Dim oCxnListFilter1 As Object Dim oCxnListFilter1Obj As Object Set oCxnListFilter1 = oRoot.CxnListFilter(EDGES_OUT, "", g_nLoc, CT_IS_PRCS_ORNT_SUPER, AT_NAME) For i2 = 0 To oCxnListFilter1.Count()-1 Set oCxnListFilter1Obj = oCxnListFilter1.Get(i2) ' g_oOutFile.OutputLn("Target object:", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,20) 'no object method specified: ... writing default ' g_oOutFile.OutputLn(oCxnListFilter1Obj.TargetObjDef.Name(g_nLoc),"Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,30) Tree oCxnListFilter1Obj.TargetObjDef, nLevel+1 ' g_oOutFile.OutputLn("", "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,10) Set oCxnListFilter1Obj = Nothing Next i2 Set oCxnListFilter1 = Nothing End Sub Руководство пользователя ARIS SCRIPT. Версия 6.1 119 13.4. Пример анализа топологии (геометрии) модели Модифицируем предыдущий скрипт, чтобы одноуровневые функции выдавались не в случайном порядке, а по их геометрическому расположению в модели, т.е. слева направо либо сверху вниз. Для этого вместо определений используем представления выделенных функций. В подпрограмме на месте рекурсивного вызова будем формировать список представлений функций, потом отсортируем его геометрически. Наконец, в новом цикле рекурсивно вызываем подпрограмму с элементами этого списка. Set oSelectedObjDefs1 = SelectedObjOccs … Sub Tree(oRoot As Object, nLevel As Integer) ' g_oOutFile.OutputLn("Name: "+oSelectedObjDefs1Obj.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,10) g_oOutFile.OutputLn(oRoot.ObjDef.Name(g_nLoc), "Times New Roman",12,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,10*nLevel) … 'Set oCxnListFilter1 = oRoot.CxnListFilter(EDGES_OUT, "", g_nLoc, CT_IS_PRCS_ORNT_SUPER, AT_NAME) Set oCxnListFilter1 = oRoot.OutEdges(EDGES_ALL) Dim oOccList2 As Object Set oOccList2 = CreateObject("ARIS.OBJOCCLIST.6.1") For i2 = 0 To oCxnListFilter1.Count()-1 Set oCxnListFilter1Obj = oCxnListFilter1.Get(i2) oOccList2.Add(oCxnListFilter1Obj.TargetObjOcc) Set oCxnListFilter1Obj = Nothing Next i2 Set oCxnListFilter1 = Nothing oOccList2.Sort(SORT_GEOMETRIC, SORT_NONE, SORT_NONE, g_nLoc) For i4 = 0 To oOccList2.Count()-1 Tree oOccList2.Get(i4), nLevel+1 Next i4 Set oOccList2 = Nothing End Sub Руководство пользователя ARIS SCRIPT. Версия 6.1 121 13.5. Пример применения теории графов для анализа модели с помощью ARIS Script В рамках анализа моделей процесса в ARIS, с помощью скриптов, существует возможность использования математического аппарата теории графов. Теория графов, позволяет формализовать понятия, связанные с анализом процесса. Модели ARIS можно в рамках теории графов классифицировать следующим образом: строгая иерархия - деревья функций, продуктов, структурная модель; строгая иерархия с окружением - модель технических терминов, диаграмма событий; иерархия с перекрестными соединениями - диаграмма целей; центральный объект - диаграмма окружения функции; приоритетный тип основного объекта - диаграмма окружения атрибутов ERM модели; направленный граф с окружением - диаграмма событийной цепочки процесса; ненаправленный граф с окружением - диаграмма «сущность - связь». На этих моделях мы можем эффективно использовать математический аппарат теории графов. На других моделях использование аппарата теории графов не имеет смысла. В моделях значащим, для использования теории графов, является понятие структурно – значимых объектов и связей. Структурно зависимые объекты и связи образуют логический костяк модели процесса. Остальные объекты и связи имеют определенную информативность, но по ним нельзя определить логику процесса. Мы можем использовать при построении графа все объекты, включая структурно не значимые, но это усложняет процесс анализа и не добавляет информативности в граф. Наиболее логичным является построение алгоритма таким образом, что бы анализ процесса с помощью графов находился в отдельном блоке программы, а последующий анализ информационного окружения процесса проходил в другом месте программы. Этот подход позволит вносить изменения, вызванные изменением методологии, в скрипт не затрагивая алгоритм анализа логики процесса. ARIS Script позволяет представить модель в виде графа и пользуясь стандартными методами класса “Model” осуществлять анализ и обход представления модели в виде графа. Это подход позволяет понять логику процесса на программном уровне и написать такие скрипты, как «Регламентные карты процесса». Теория графов довольно обширна и в ARIS реализована только необходимая часть ее математического аппарата. Понятия теории графов необходимые для работы в ARIS. При построении графа в ARIS есть возможность выбора объема объектов и связей включаемых в граф: включать в граф только объекты, которые являются значимыми для структуры модели (это наиболее часто используемый прием, который позволяет анализировать только структуру модели, поскольку анализ графа состоящего из всех объектов модели довольно громоздок); включать в граф все объекты на модели (этот прием, как правило, редко используется). Стартовые объекты – объекты, имеющие только исходящие связи. Конечные объекты – объекты, имеющие только входящие связи. Цикл в графе – в графе существует хоть один объект, передвигаясь с которого по связям и объектам графа, возможно вернуться к нему самому (то есть замкнутая цепочка). Граф-дерево – построение объектов и связей так, что у объекта присутствует лишь одна входящая и несколько / одна исходящая связь. Связанность графа – возможность из корня или стартового объекта достичь любого объекта графа. Связанность объектов графа – показывает возможность перемещения по связи от одного объекта к другому. Корень – специально выделенная по тем или иным причинам вершина графа-дерева. Связи в графе – идентичны понятию связи в ARIS. Глубина в графе определяется уровнем нахождения объекта относительно стартового объекта. Ширина в графе определяется количеством исходящих связей из одного объекта. В примере, приведенном ниже, рассматриваются методы класса “Model” для работы с графом. Руководство пользователя ARIS SCRIPT. Версия 6.1 122 Перед использованием методов работы с графом его необходимо создать методом BuildGraph. С помощью методов StartNodeList и EndNodeList можно получить списки стартовых и конечных объектов. С помощью метода GetSuccNodes возможно получить потомков указанного представления объекта, а с помощью метода GetPredNodes возможно получить предков указанного представления объектов. Эти методы используется для передвижения по графу. С помощью методов CountNodes и CountEdges возможно получить количество представлений объектов в графе модели и количество представлений связей в графе модели. Для получения справочной информации о графе возможно воспользоваться следующими методами: HasCycle - возвращает информацию имеет ли граф цикл; IsTree - возвращает информацию имеет ли граф древовидную структуру; IsConnectedGraph - возвращает информацию связан ли граф. Для каждого объекта мы можем с помощью метода GetVisited получить информацию о том, был ли посещен данный объект. Так же мы можем отметить объект как посещенный или не посещенный с помощью метода MarkVisited. Сбросить метки посещения для всех объектов графа возможно методом ResetNodes. Глубину выбранного представления в графе модели мы можем определить с помощью метода Depth. С помощью методов DFSGetFirstNode, DFSNextNode, BFSGetFirstNode, BFSNextNode возможно организовать обход графа в глубину или в ширину. Руководство пользователя ARIS SCRIPT. Версия 6.1 Пример скрипта, использующего методы работы с графом, для анализа модели процесса. Global g_nLoc As Long Global g_oOutFile As Object Sub Main Set g_oOutFile = CreateObject("ARIS.Output.6.1") g_nLoc = SelectedLanguage g_oOutFile.Init(SelectedFormat, g_nLoc) g_oOutFile.DefineF("REPORT1","Arial",12,C_BLACK,COLOR_TRANSPARENT,FMT_BOLD Or FMT_LEFT,0,21,0,0,0,1) g_oOutFile.DefineF("REPORT2","Arial",10,C_BLACK,COLOR_TRANSPARENT,FMT_LEFT,0,21,0,0,0,1) g_oOutFile.OutputLnF("Выбранная модель:","REPORT1") Dim oSelectedModels1 As Object Set oSelectedModels1 = SelectedModels For i1 = 0 To oSelectedModels1.Count()-1 g_oOutFile.OutputLnF(oSelectedModels1.Get(i1).Name(g_nLoc),"REPORT2") Dim model1 As Object Set model1=oSelectedModels1.Get(i1) ' Построим граф по выбранной модели model1.BuildGraph(True) Dim start_node_list As Object Set start_node_list =model1.StartNodeList For i11=0 To start_node_list.Count-1 g_oOutFile.OutputLnF("стартовый объект - "+start_node_list.Get(i11).ObjDef.Name(1049),"REPORT1") Dim succ_node As Object Set succ_node= model1.GetSuccNodes(start_node_list.Get(0)) g_oOutFile.OutputLnF("потомки стартового объекта","REPORT1") model1.IsConnected(start_node_list.Get(0), succ_node.Get(0)) Out(succ_node) Set succ_node=Nothing Dim DFS As Object Set DFS = model1.DFSGetFirstNode(start_node_list.Get(0)) g_oOutFile.OutputLnF("пройдемся по графу в глубину","REPORT1") Do g_oOutFile.OutputLnF(DFS.ObjDef.Name(1049),"REPORT2") Set DFS= model1.DFSNextNode Loop Until DFS.ObjDef.Name(1049)="" Dim bFS As Object Set bFS = model1.BFSGetFirstNode(start_node_list.Get(0)) g_oOutFile.OutputLnF("пройдемся по графу в ширину","REPORT1") Do g_oOutFile.OutputLnF(bFS.ObjDef.Name(1049),"REPORT2") Set bFS= model1.BFSNextNode Loop Until bFS.ObjDef.Name(1049)="" Next i11 Dim end_node_list As Object Set end_node_list =model1.EndNodeList For i12=0 To end_node_list.Count-1 g_oOutFile.OutputLnF("конечный объект - "+end_node_list.Get(i12).ObjDef.Name(1049),"REPORT1") Dim Pred_node As Object Set Pred_node= model1.GetPredNodes(end_node_list.Get(i12)) g_oOutFile.OutputLnF("предки конечного объекта","REPORT1") Out (Pred_node) Set Pred_node= Nothing Next i12 123 Руководство пользователя ARIS SCRIPT. Версия 6.1 124 g_oOutFile.OutputLnF("Рассмотрим посещенные объекты и их глубину","REPORT1") Dim Spis_occ As Object Set Spis_occ=model1.ObjOccList For i13=0 To Spis_occ.Count-1 If model1.GetVisited(spis_occ.Get(i13))=True Then g_oOutFile.OutputLnF("Объект "+spis_occ.Get(i13).ObjDef.Name(1049)+ " посещен","REPORT2") g_oOutFile.OutputLnF("Глубина "+model1.Depth(spis_occ.Get(i13)),"REPORT2") End If Next i13 Set Spis_occ=Nothing g_oOutFile.OutputLnF("Число представлений объектов в графе "+model1.CountNodes,"REPORT1") g_oOutFile.OutputLnF("Число представлений связей в графе "+model1.CountEdges,"REPORT1") g_oOutFile.OutputLnF("Циклы есть? "+model1.HasCycle,"REPORT1") g_oOutFile.OutputLnF("Граф - дерево? "+model1.IsTree,"REPORT1") g_oOutFile.OutputLnF("Граф - связанный? "+model1.IsConnectedGraph,"REPORT1") Set end_node_list =Nothing Set start_node_list =Nothing Set model1=Nothing Next i1 Set oSelectedModels1 = Nothing g_oOutFile.WriteReport(SelectedPath, SelectedFile) End Sub Function Out(spis) For i=0 To spis.Count-1 g_oOutFile.OutputLnF(spis.Get(i).ObjDef.Name(g_nLoc),"REPORT2") Next i Set spis=Nothing End Function Руководство пользователя ARIS SCRIPT. Версия 6.1 125 14. Основные приемы коллективной работы над скриптами Коллективная работа над скриптом – написание и отладка скрипта – формирует определенные требования к стилю именования переменных, к форматированию строк кода, к стилю и объему комментирования кода скрипта. Ниже приведены эти требования. 14.1. Форматирование текста программы – соглашения об отступах, переносы Cтроки Sub и End Sub соответствующие друг другу должны начинаться с равного количества пробелов и символов табуляции: Sub … End Sub Cтроки Function и End Function соответствующие друг другу должны начинаться с равного количества пробелов и символов табуляции: Function … End Function Cтроки If …Then, End If , Else, формирующие одну конструкцию условного ветвления, должны начинаться с равного количества пробелов и символов табуляции: If … Then … Else … End If Cтроки For и Next, формирующие один цикл, должны начинаться с равного количества пробелов и символов табуляции: For … … Next … Строки, заключенные между строками “Sub” и “End Sub”, “Function” и “End Function”, “If” и “End If”, “For” и “Next”, должны начинаться с дополнительного символа табуляции по отношению к количеству символов табуляции, имеющемуся в начале вышеуказанных строк (“Sub” и “End Sub”, “Function” и “End Function”, “If” и “End If”, “For” и “Next”). Строки, имеющие большую длину и не умещающиеся на экране монитора или на странице (при распечатывании листинга скрипта), должны быть разбиты на несколько строк при помощи символов пробела и подчеркивания. При этом разбивать строку можно только на части, разделяемые символом пробела или запятой. Например, строка Set oSelectedModels1 = SelectedModels может быть разбита на три строки: Set _ oSelectedModels1 _ = SelectedModels Руководство пользователя ARIS SCRIPT. Версия 6.1 126 14.2. Соглашения об именах переменных и функций Имена переменных и функций, определяемых пользователем, должны быть достаточно информативны, не должны совпадать с зарезервированными именами встроенных функций, классов и констант. Рекомендуется переменным, объявленные глобально (объявленные с помощью оператора Global) выбирать имена, начинающиеся с комбинации букв “g_”. 14.3. Отказ от свободного преобразования типа Свободное преобразование типа переменных – особенность языка программирования Sax Basic. В одной и той же переменной можно по ходу выполнения программы размещать данные, различающиеся по типу (например, строки и массивы целых чисел). Однако, при достаточно большом размере кода скрипта, свободное преобразование переменных затрудняет отладку скрипта. Настоятельно рекомендуется использовать функции явного преобразования типа переменных CStr(…), CBool(…), CByte(…), CCur(…), Cdate(…), Cdec(…), CDbl(…), Cint(…), CLng(…), CSng(…), Cvar(…), CVDate(…), CVErr(…), Val(…), Array(…). 14.4. Объявление и комментирование переменных Синтаксис языка Sax Basic позволяет не объявлять переменные заранее. Правилом «хорошего тона» считается предварительное объявление всех переменных операторами “Dim … As” и “Global … As” и присутствие в начале блока объявления глобальных переменных оператора “Option Explicit”, исключающего возможность использования переменной без ее предварительного объявления. Каждой строке, содержащей объявление какой-либо переменной, должна предшествовать строка с комментарием о назначении этой переменной. 14.5. Комментирование операторов ветвления Операторы ветвления позволяют сделать алгоритм скрипта нелинейным. В зависимости от некоторого условия могут выполняться несколько различных последовательностей операторов. Смысл выполнения или невыполнения вышеупомянутого условия ветвления необходимо пояснять с помощью строки комментария, помещенной непосредственно перед оператором ветвления (If…Then, Select…Case). 14.6. Комментирование процедур и функций Процедуры и функции обязательно должны содержать строку (несколько строк, идущих подряд) с комментарием о назначении этой процедуры или функции, действия, которые она производит, какие процедуры или функции вызывает, какие глобальные переменные изменяет, какие параметры или значение возвращает. Эту строку (строки) рекомендуется помещать сразу после строки “Sub …” или “Function …” Локальные переменные, объявленные внутри процедуры или функции, должны быть описаны и закомментированы обычным порядком. Требования о комментировании процедур и функций также распространяется на главную процедуру программы Sub Main.