Модуль: Тур
Рассмотрим пример
Классы и объекты
Атрибуты класса
Класс MenuItem
Создаем класс
Пакет и класс
Пакеты
Тип класса
XML и Populate
Редактирование характеристик класса
Свойства
Свойство Name
Свойство Price
Свойство Quantity
Некоторые параметры свойств
Другие параметры свойств
Параметры
Методы
Запросы
Синхронизация Caché Studio
Сохранение и компиляция
Документация класса
Созданные программы и глобалы
Параметры компиляции
XML для импорта/экспорта проекта
Экспорт в XML
Импорт из XML
Создание пользовательского интерфейса
Мастеры форм
ObjectScript
Команды ObjectScript
Примеры использования объектов
Соглашения по синтаксису
Успех или Провал
ObjectScript: Объекты
OREF и ID
810.50K

Модуль: Тур

1. Модуль: Тур

InterSystems

2. Рассмотрим пример

• В качестве примера рассмотрим приложение
“Виртуальная Закусочная”.
• Голодные люди просматривают меню, заказывают
обед и получают оповещение, когда заказ готов и все
это не выходя из офиса.
• Через неделю заказанное блюдо доставляется в
офис.
InterSystems
Tour
2

3. Классы и объекты

• Класс – это описание данных и бизнес-логики.
• Описание класса может содержать:
Свойства: описание структуры хранения данных.
Методы: функции для манипуляции данными.
Запросы: SQL-выражения для выборки и анализа
данных.
Параметры: константы класса.
• Объект – экземпляр класса.
Onion Soup
MenuItem
French Fries
Cheeseburger
InterSystems
Tour
3

4. Атрибуты класса

• Определение класса содержит:
Свойства: определение структуры хранения данных.
Методы: функции для манипуляции с данными.
Запросы: SQL выражения для доступа к данным.
Параметры: константы класса.
Индексы: оптимизация поиска данных.
Триггеры: обработчики событий в SQL.
Определение стратегии хранения: способы отображения
данных на глобалы.
Внешние ключи: используются для обеспечения целостности
данных.
InterSystems
Tour
4

5. Класс MenuItem

• Класс MenuItem содержит 3 свойства:
Name: название элемента меню.
Price: стоимость элемента меню.
Quantity: количество доступных единиц элемента меню.
MenuItem
Name
Price
Quantity
InterSystems
Tour
5

6. Создаем класс

• Используйте Файл->Создать
для доступа к списку
мастеров.
• Выберите Класс Caché
(Caché Class Definition).
InterSystems
Tour
6

7. Пакет и класс

• Определите имя класса и пакет.
InterSystems
Tour
7

8. Пакеты

• Пакет (или библиотека)–это каталог, который
группирует родственные классы.
• Каждый пакет соответствует схеме SQL, с помощью
которой группируются описания семантически
связанных таблиц.
Пакет User соответствует схеме SQLUser.
• Пакет %Library содержит системные классы, которые
доступны из всех областей.
• Пакет %CSP содержит классы, которые используются
при создании приложений CSP.
• Пакет создается при создании первого класса
данного пакета. При удалении последнего класса,
пакет удаляется.
InterSystems
Tour
8

9. Тип класса

• Определите тип класса.
Хранимые (Persistent) классы используются для хранения данных.
InterSystems
Tour
9

10. XML и Populate


Поддержка XML предоставляет методы для экспорта выбранных данных
в формат XML.
Автоматическая генерация данных рассматривается в Модуле 6.
InterSystems
Tour
10

11. Редактирование характеристик класса

• Как только создан
класс можно
определять его
свойства, методы,
запросы и параметры.
• Для редактирования
дополнительных
характеристик класса
используйте
Инспектор классов.
InterSystems
Tour
11

12. Свойства

• Свойства определяют
состояние объекта
• Каждое свойство имеет имя,
тип и дополнительный
набор параметров ,
определяемый выбранным
типом свойства.
InterSystems
Tour
12

13. Свойство Name

• Тип свойства определяет
тип хранимых данных.
• В нашем случае тип
свойства %Library.String.
• Флажок Required
указывает на то, что
каждый объект MenuItem
должен иметь значение
свойства Name.
• В поле Description может
быть задано описание
свойства.
InterSystems
Tour
13

14. Свойство Price

• Тип данных свойства
%Library.Currency.
• Каждое свойство
имеет набор
параметров, которые
контролируют
допустимое значение
свойства.
• Набор параметров
определяется
выбранным типом
данных свойства.
• Для свойства Price
определено
максимальное и
минимальное
значения.
InterSystems
Tour
14

15. Свойство Quantity

• Свойство Quantity
указывает сколько
единиц объекта
MenuItem доступно
на данный момент
времени.
• Начальное значение
свойства равно 10,
это означает, что при
создании нового
объекта MenuItem
значение свойства
Quantity объекта
будет равно 10.
InterSystems
Tour
15

16. Некоторые параметры свойств

• PATTERN: определяет шаблон ObjectScript для
проверки правильности структуры введенной строки.
Например: 3n1"-"3n1"-"4n определяет шаблон для
ввода корректного телефонного номера.
• MINLEN и MAXLEN: определяют максимальную и
минимальную длину строки символов.
• TRUNCATE: если значение параметра 0, то при вводе
строки длиной большей чем MAXLEN будет выведена
ошибка; если значение параметра 1, то строка
символов будет урезана автоматически без
сообщения об ошибке.
InterSystems
Tour
16

17. Другие параметры свойств

• MINVAL и MAXVAL: определяют диапазон допустимых
значений свойства (для числовых свойств).
• VALUELIST: определяет список допустимых значений.
• DISPLAYLIST: определяет список выводимых
значений свойства, которые соответствуют
параметру VALUELIST
• FORMAT: целое число, которое используется для
числовых типов данных (Integer, Numeric, Date) для
определения допустимых форматов. Подробную
информацию можно найти в Caché ObjectScript
Language Reference.
Функция $ZDATEH для выбора формата даты
Функция $FNUMBER для определения других числовых
форматов
InterSystems
Tour
17

18. Параметры

• У каждого свойства есть параметры.
Параметры предопределены и нельзя создать
собственные параметры.
Дважды нажмите мышкой на свойстве для работы с
параметрами свойства.
• Каждый класс может иметь параметры.
Можно создавать собственные параметры класса.
Для просмотра параметров класса необходимо дважды
нажать на имени класса и затем выбрать вкладку
Параметры
Для создания нового параметра класса нажмите на
пиктограмме New Parameter.
• Для редактирования значения параметра дважды
нажмите на его имени.
InterSystems
Tour
18

19. Методы

• Caché предоставляет
множество
предопределенных
методов.
• Наследуемые классы
выполняют схожие
функции, такие как
извлечение и
хранение данных.
• Для написания
собственных методов
используйте Caché
ObjectScript или
Caché Basic.
InterSystems
Tour
19

20. Запросы

• С помощью запроса
можно произвести
выборку требуемых
данных из базы
данных Caché.
Запрос – это SQL
аналог метода.
• Для оптимизации
времени выборки
запрос использует
индексные таблицы
для индексированных
свойств класса.
InterSystems
Tour
20

21. Синхронизация Caché Studio

Сохранение и компиляция
• Сохраняйте класс, после добавления свойств,
методов, запросов и параметров.
• Для использования класса необходима его
компиляция. Во время компиляции:
Caché обрабатывает описание класса и сообщает об
ошибках.
Caché создает программы (INT->OBJ). Эти программы
используются для объектного доступа к данным.
Caché также создает описания реляционных таблиц и
программ связанных с таблицами. Эти описания и
программы используются для поддержки SQL доступа к
данным.
InterSystems
Tour
22

22. Сохранение и компиляция

Документация класса
• При сохранении класса
Caché создает описание
класса в виде HTML.
Вызвать документацию
класса можно из
контекстного меню
нажатием правой кнопкой
мыши на имени класса.
InterSystems
Tour
23

23. Документация класса

Созданные программы и
глобалы
• Созданные программы и глобалы именуются путем
объединения имени пакета, имени класса и
соответствующего суффикса.
• Глобалы класса User.MenuItem:
^User.MenuItemD содержит данные.
^User.MenuItemI содержит индексы.
InterSystems
Tour
24

24. Созданные программы и глобалы

XML для импорта/экспорта проекта
• Studio может импортировать или экспортировать в XML
Весь проект
Один или более компонентов проекта (классы, программы,
CSP страницы)
• XML полезен для
Переноса приложений между системами
Использования в системах контроля исходного кода
• Caché продолжает поддерживать CDL
InterSystems
Tour
26

25. Параметры компиляции

Экспорт в XML
• Для переноса классов приложения:
Откройте Портал и выберите классы.
Нажмите правой кнопкой на классах и выберите Export.
Определите Options->Classes->Export Format
Используйте <пакет>.xml в качестве имени класса.
• Перенесите файл xml на другой компьютер.
• Из Studio, используйте Tools->Export и кнопкой Add
выберите компоненты или весь проект.
InterSystems
Tour
27

26. XML для импорта/экспорта проекта

Импорт из XML
• Для импорта приложения:
В Studio выберите «Инструменты/Импортировать …» и
укажите имя файла xml.
Выберите Import Local или Import Remote.
InterSystems
Tour
28

27. Экспорт в XML

Создание пользовательского
интерфейса
• Создайте GUI, используя VB или CSP.
VB – это толстый клиент.
CSP – это тонкий клиент.
• Caché предоставляет мастеры форм (Form Wizards)
для создания простых форм в Visual Basic или форм
Caché Server Page (CSP).
Мастер форм в Visual Basic можно найти в меню Add-Ins.
Мастер форм в Dreamweaver вызывается из пункта
меню Insert, выбором опции Caché CSP.
Вызвать мастер web форм можно путем активации
файла CacheWebFormWizard.exe из директории
c:\cachesys\bin.
• Созданные формы полностью функциональны и
позволяют редактировать, создавать и удалять
объекты классов БД Caché.
InterSystems
Tour
29

28. Импорт из XML

Мастеры форм
• Оба мастера форм запрашивают:
Имя класса
Свойства класса, которые должны присутствовать на
форме
• Примеры создаваемых форм:
InterSystems
Tour
30

29. Создание пользовательского интерфейса

ObjectScript
• ObjectScript используется для написания логики
программ.
• Три простых команды ObjectScript:
Set: используется для присвоения значения свойству и
для выполнения метода и возврата значения
Write: используется для вывода значения свойства или
метода
Do: используется для вызова метода и игнорирования
возвращаемого значения
• Для доступа к свойствам и методам объектов
используется точечный синтаксис.
abc.Name – возвращает значение свойства Name
объекта abc.
abc.Print() – вызывает метод Print объекта abc.
InterSystems
Tour
31

30. Мастеры форм

Команды ObjectScript
• Каждая строка ObjectScript начинается с команды.
Правильно: set x = a + b
Неправильно: x = a + b
• Для вызова метода используйте команду do.
Правильно: do person.Method()
• Возможно использование аббревиатур команд
ObjectScript.
s - set
w - write
d - do
Например: s x = a + b
InterSystems
Tour
32

31. ObjectScript

Примеры использования
объектов
• Создание нового объекта MenuItem
USER>set mi = ##class(User.MenuItem).%New()
USER>set mi.Name = "Hamburger", mi.Price = 2.50
USER>do mi.%Save()
• Редактирование существующего объекта
MenuItem
USER>set mi = ##class(User.MenuItem).%OpenId(3)
USER>write mi.Name
French Fries
USER>set mi.Quantity = 0
USER>do mi.%Save()
• %New(), %OpenId() и %Save() – системные
методы, предоставляемые классом
%Persistent.
InterSystems
Tour
33

32. Команды ObjectScript

Соглашения по синтаксису
• Команды ObjectScript нечувствительны к регистру.
После имени команды должен быть пробел.
Макровызов ##class также не чувствителен к регистру.
• Имена переменных, программ, пакетов, классов,
свойств, методов и запросов чувствительны к
регистру.
• Строка символов должна быть заключена в двойные
кавычки.
InterSystems
Tour
34

33. Примеры использования объектов

Успех или Провал
• Метод %OpenId() возвращает пустую строку (“”), если
объект с указанным ID не существует. Если ID существует,
метод возвращает ссылку на объект в памяти(OREF).
• %Save() завершается неуспешно, если не определено
требуемое значение свойства или введено неправильное
значение.
• Метод %Save() возвращает статус, который равен 1, в
случае успешного выполнения операции или 0+строка
символов, в случае ошибки.
Для расшифровки возвращаемой ошибки необходимо
использовать метод %Save() следующим образом:
USER>set st = mi.%Save()
Для вывода ошибки:
USER>do $system.OBJ.DisplayError(st)
ERROR #802: Datatype validation failed:
User.MenuItem.Quantity
InterSystems
Tour
35

34. Соглашения по синтаксису

ObjectScript: Объекты
• Создание объекта:
USER>set pers = ##class(User.Person).%New()
• Ввод данных:
USER>set
USER>set
USER>set
USER>set
pers.Name = "Smith,John"
pers.HomePhone = "555-555-5555"
pers.DOB = $zdh("5/27/62")
pers.Age = 40
• Сохранение данных:
USER>set st = pers.%Save()
USER>write st
USER>do $system.OBJ.DisplayError(st)
• Вывод данных:
USER>write pers.Name
Smith,John
InterSystems
Tour
36

35. Успех или Провал

OREF и ID
• В примере ниже, mi- это OREF, а 3 - ID.
USER>set mi = ##class(User.MenuItem).%OpenId(3)
USER>write mi
[email protected]
• ID – это неизменяемый идентификатор хранимого
объекта, обычно это целое число. ID уникален в
контексте класса.
• OREF (object reference) – это средство доступа к
свойствам и методам объекта, находящегося в
памяти.
Caché присваивает строку символов переменной OREF.
• Каждый раз при подгрузке одного и того же объекта
в память, его ID не изменяется, однако OREF может
принимать различные значения.
InterSystems
Tour
37

36. ObjectScript: Объекты

ID
• ID-это не свойство объекта.
Убедитесь в этом используя Cache Studio.
• ID-это столбец реляционной таблицы.
Убедитесь в этом используя SQL.
• Объект, созданный с помощью %New() не имеет ID
пока не сохранен c %Save().
• Для определения ID объекта через его OREF
используйте метод %Id().
• Например:
USER>write cust.%Id()
34
InterSystems
Tour
38

37. OREF и ID

ObjectScript: Использование
шаблона
• Шаблон – это серия пар <количество><код/символ>.
Например, телефон: 3N1"-"2N1"-"2N
• Количество символов может быть задано либо точно (3),
либо диапазоном:
1.4 обозначает от одного до четырех символов
Начало или конец диапазона может быть опущен: .1
обозначает ноль или один символ
• Некоторые допустимые коды:
N - Числовые
U – Символы верхнего регистра
L – Символы нижнего регистра
P – Знаки пунктуации
• Возможно использование вложенных шаблонов. Например,
Zip код: 5N.1(1"-"4N)
• В некоторых случаях предпочтительно использование
символов вместо кодов.
Не используйте 1P, когда подразумевается 1"-".
InterSystems
Tour
39
English     Русский Rules