Руководство пользователя ARIS SCRIPT

advertisement
Руководство
пользователя
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.
Download