Similar presentations:
Модуль: Тур
1. Модуль: Тур
InterSystems2. Рассмотрим пример
• В качестве примера рассмотрим приложение“Виртуальная Закусочная”.
• Голодные люди просматривают меню, заказывают
обед и получают оповещение, когда заказ готов и все
это не выходя из офиса.
• Через неделю заказанное блюдо доставляется в
офис.
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