Dmitry Anoshin
BOGBUSINESS OBJECTS GUIDE
2 07/03/2012 Footer
Universe
Designer
3 07/03/2012 Footer
BusinessObjects Universe
Юниверс – семантический слой, который изолирует бизнес
пользователя от технич...
4 07/03/2012 Footer
Universe
5 07/03/2012 Footer
BusinessObjects Universe Designer
components
Конструктор юниверсов – приложение для создания,
редактир...
6 07/03/2012 Footer
Creating the Course Universe
После проведеннго анализа бизнес требований и разработки плана
построения...
7 07/03/2012 Footer
Database Connection
В качестве источника данных
можно использовать практически
любые СУБД.
Для подключ...
8 07/03/2012 Footer
Creating New Universe
Для создания нового юниверса необходимо нажать «New universe» и
перед вами появи...
9 07/03/2012 Footer
Controls Tab
На вкладке управления можно ограничить:
• количество выгружаемых строк
• время выполнения...
10 07/03/2012 Footer
SQL Tab
На вкладке «SQL» настраиваются параметры связанные с SQL:
11 07/03/2012 Footer
Parameters tab
На вкладке параметров можно включать, выключать параметры:
• ANSI92
• BEGIN SQL
• END ...
12 07/03/2012 Footer
Building the Universe Structure
Схема юниверса состоит из таблиц и связей между ними. Для создания
юн...
13 07/03/2012 Footer
Defining joins in a universe
Послед добавления таблиц в юниверс не обходима создать связи между
табли...
14 07/03/2012 Footer
List Mode
Для просмотра всех связей юниверса можно использовать «List mode»:
15 07/03/2012 Footer
Checking integrity
После создания модели рекомендуется проверить юниверс на наличие ошибок,
для этого...
16 07/03/2012 Footer
Creating Dimension Objects
При создании новых объектов сначало необходимо создать «Класс» – папку, и
...
17 07/03/2012 Footer
Creating Dimension Objects (cont)
Измериния можно создать двумя способами:
1. Щелкнуть правой кнопкой...
18 07/03/2012 Footer
Creating Dimension Objects (cont)
2. Перетащить объект из таблиц или всю таблицу целиком в область сп...
19 07/03/2012 Footer
Creating Measure Objects
Объект мера имеет
численный тип данных. Как
уже говорилось раньше,
мера зави...
20 07/03/2012 Footer
The query process
В BusinessObjects существует 2 уровня агригации, которые происходят во
время выполн...
21 07/03/2012 Footer
Creating Measure Objects (cont)
Мера создается также, как и измерение, только во вкладке свойства нео...
22 07/03/2012 Footer
Loops in a Universe
Во время созданию юниверса у нас могут получится циклы, то есть таблицы
соединены...
23 07/03/2012 Footer
Resolving Loops in a Universe
Для решения циклов существует два способа:
1. Использование альясов:
2....
24 07/03/2012 Footer
About Contexts
Контекст – это список джоинов и таблиц, которые могут вместе
учавствовать в запросе. Л...
25 07/03/2012 Footer
About Contexts (cont)
У нас есть две сущности Rental и Sale. Сущность Client одновременно связана
с R...
26 07/03/2012 Footer
About Contexts (end)
Для того, чтобы пользователь мог использовать в одном запросе
одновременно объек...
27 07/03/2012 Footer
Resolving SQL Traps
В дизайнере существует два вида “SQL traps”:
• chasm traps
• fan traps
Если при в...
28 07/03/2012 Footer
Chasm Traps Example
29 07/03/2012 Footer
Chasm Traps Example (end)
Запрос возвращает все возможные комбинации строк таблицы SALE и все
возможн...
30 07/03/2012 Footer
Fan traps
Fan traps случаются, когда у нас есть соединения 1 ко многим,
которое также имеет соединени...
31 07/03/2012 Footer
Fan traps example (cont)
Мы не увидим ошибку, пока не посмотри на детализированную выгрузку:
Для реше...
32 07/03/2012 Footer
Applying Restrictions on Objects
Ограничения на объект можно накаладывать при его создание в дизайнер...
33 07/03/2012 Footer
Condition objects
В ВО можно создавать специальные объекты, которые будут содержать
условия – объекты...
34 07/03/2012 Footer
Using @functions with Objects
• @prompt(,,,,,,)
• @select()
• @where()
• @aggregate_aware(,)
В ВО ест...
35 07/03/2012 Footer
@prompt example
SHOWROOM.SHOWROOM_NAME =
@prompt('Enter Showroom Name','A',
'ShowroomShowroom',mono,p...
36 07/03/2012 Footer
@select
Функция @select используется для дублирования объектов, то есть, если вам
необходимо один и т...
37 07/03/2012 Footer
@where
Функция @where() также заменят SQL выражение на путь к объекту:
38 07/03/2012 Footer
@agreagate_aware
Функция @agregate_aware необходима для работы с сумарными таблицами.
@aggregate_awar...
39 07/03/2012 Footer
Using Hierarchies
Иерархия – упорядоченная серия
взаимовсвязанных измерений, которые
используются для...
40 07/03/2012 Footer
Working with hierarchies
По умолчанию ирархию повторяет очередность объектов в
классе. Именно поэтому...
41 07/03/2012 Footer
Automatic time hierarchy
При создание таких объектов типа дата, можно автоматически создавать
автомат...
42 07/03/2012 Footer
Using List of Values
В дизайнере при создании нового измерения или объекта деталь,
автоматически созд...
43 07/03/2012 Footer
Cascading LOV
В дизайнере можно создать каскадный список значений, который упростит
выбор параметров ...
44 07/03/2012 Footer
Derived Tables
Производная таблица это виртуальная таблица, которую
можно создать в структуре юниверс...
45 07/03/2012 Footer
Index awareness
Index awareness позволяет нам пользоваться преимуществом primary, foreign
key, то ест...
46 07/03/2012 Footer
To set up primary key index awareness
Primary key:
COUNTRY_REGION.COUNTRY_ID
WHERE:
COUNTRY_REGION.CO...
47 07/03/2012 Footer
Linking Universes
ВО позваляет соединять несколько юниверсов в обном файле *.unw, что
дает ряд преиму...
48 07/03/2012 Footer
Applying Universe Access Restrictions
В юниверсе можно настраивать ограничения доступа для определенн...
49 07/03/2012 Footer
Applying Universe Access Restrictions (cont)
50 07/03/2012 Footer
Applying Universe Access Restrictions (cont)
51 07/03/2012 Footer
Managing Universes
У вас есть возможность получить всю необходимую информацию по юниверсу
(объекты, с...
52 07/03/2012 Footer
Importing a universe
После того, как вы закончили разрабатывать юниверс, его необходимо
импортировать...
Upcoming SlideShare
Loading in …5
×

SAP BusinessObjects Universe Designer training

2,237 views

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,237
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
2
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

SAP BusinessObjects Universe Designer training

  1. 1. Dmitry Anoshin BOGBUSINESS OBJECTS GUIDE
  2. 2. 2 07/03/2012 Footer Universe Designer
  3. 3. 3 07/03/2012 Footer BusinessObjects Universe Юниверс – семантический слой, который изолирует бизнес пользователя от технических сложностей баз данных, в которых хранится корпоративная информация. Для облегчения жизни конечных пользователей, юниверс состоит из объектов и классов, которые ссылаются на данные в базе данных. Используя юниверс, пользователь оперирует бизнес терминологией, с которой он привык работать. Юниверс – это файл, который состоит из: • Подключения к источнику данных • ER диаграммы • Объектов и классов • Файл *.unv не должен превышать 1mb, кол-во объектов <=500
  4. 4. 4 07/03/2012 Footer Universe
  5. 5. 5 07/03/2012 Footer BusinessObjects Universe Designer components Конструктор юниверсов – приложение для создания, редактирования юниверсов. Юниверс может иметь несколько подключений к разным БД, но одновременно работать можеть только с одной БД. Дизайнер используется только с репозиторие ВО, поэтому сначало необходимо подключиться к CMS. Для работы с юниверсом необходимо импортировать его из CMS. После внесений изменений эскпортировать обратно. Панель инструментов конструктора юниверсов:
  6. 6. 6 07/03/2012 Footer Creating the Course Universe После проведеннго анализа бизнес требований и разработки плана построения юниверса, можно приступить к созданию юниверса. Для этого необходимо: • Создать новый источник данных • Создать новое подключение в Конструкторе • Создать новый юниверс • Настроить параметры юниверсы (не обязательно)
  7. 7. 7 07/03/2012 Footer Database Connection В качестве источника данных можно использовать практически любые СУБД. Для подключения к источникам данных используются следующие драйвера: • ODBC • OLE DB • JDBC • и др. Существет 3 основных типа подключения: • Secured • Shared • Personal
  8. 8. 8 07/03/2012 Footer Creating New Universe Для создания нового юниверса необходимо нажать «New universe» и перед вами появится следующая форма:
  9. 9. 9 07/03/2012 Footer Controls Tab На вкладке управления можно ограничить: • количество выгружаемых строк • время выполнения запроса • размер строки
  10. 10. 10 07/03/2012 Footer SQL Tab На вкладке «SQL» настраиваются параметры связанные с SQL:
  11. 11. 11 07/03/2012 Footer Parameters tab На вкладке параметров можно включать, выключать параметры: • ANSI92 • BEGIN SQL • END SQL (“set query band”) • FILTER_IN_FORM • и другие
  12. 12. 12 07/03/2012 Footer Building the Universe Structure Схема юниверса состоит из таблиц и связей между ними. Для создания юниверса необходимо из источника данных выбрать таблицы и затем соединить их. При желании можно просматривать содержимое таблицы.
  13. 13. 13 07/03/2012 Footer Defining joins in a universe Послед добавления таблиц в юниверс не обходима создать связи между таблицами. Двойным кликом по ссвязи можно открыть окно редактирование связи: Связи: • Equal-join • Outer-join • Theta join • Shortcut join • Self-restricting join Auto Detect: SELECT count (*) FROM table1, table2 WHERE table1.column = table2.column SELECT count (*) FROM table1 SELECT count (*) FROM table2.
  14. 14. 14 07/03/2012 Footer List Mode Для просмотра всех связей юниверса можно использовать «List mode»:
  15. 15. 15 07/03/2012 Footer Checking integrity После создания модели рекомендуется проверить юниверс на наличие ошибок, для этого необходимо запустить “Integrity Check”
  16. 16. 16 07/03/2012 Footer Creating Dimension Objects При создании новых объектов сначало необходимо создать «Класс» – папку, и в ней уже создавать объекты.
  17. 17. 17 07/03/2012 Footer Creating Dimension Objects (cont) Измериния можно создать двумя способами: 1. Щелкнуть правой кнопкой мыши, выбрать «объект» В новом окне необходимо ввести название будующего объекта, выбрать тип данных и ввести поле из таблицы.
  18. 18. 18 07/03/2012 Footer Creating Dimension Objects (cont) 2. Перетащить объект из таблиц или всю таблицу целиком в область списка объектов: Если мы перетащим всю таблицу, то у нас создастся новый класс, в котором будут лежать все поля таблицы. При необходимости из объекта измерения мы можем превратить наш объект в объект – деталь:
  19. 19. 19 07/03/2012 Footer Creating Measure Objects Объект мера имеет численный тип данных. Как уже говорилось раньше, мера завист от контекста: Мера всегда должна использоваться с одной из агрегативных функций: • Sum • Count • Average • Maximum • Minimum
  20. 20. 20 07/03/2012 Footer The query process В BusinessObjects существует 2 уровня агригации, которые происходят во время выполнения запроса: • Агригация на уровне SELECT выражения находится в микрокубе • Агригация на уровне отчета
  21. 21. 21 07/03/2012 Footer Creating Measure Objects (cont) Мера создается также, как и измерение, только во вкладке свойства необхомо указать тип объекта – мера, или просто при написание названия поля использовать одну из 5 агрегативных функций.
  22. 22. 22 07/03/2012 Footer Loops in a Universe Во время созданию юниверса у нас могут получится циклы, то есть таблицы соединены таким образом, что образую замкнутый круг.: У нас есть следующая ситуация: • один набор таблиц (Car sale details, client, the client‟s region, clients country) • друго набор таблиц (Car sale details, showroom, showroom‟s country) Если мы соединим эти таблицы, то получим цикл. WHERE {COUNTRY.COUNTRY_ID=SHOWROOM.COUNTRY_ID} AND {COUNTRY.COUNTRY_ID=REGION.COUNTRY_ID } AND {REGION.REGION_ID=CLIENT.REGION_ID } AND {CLIENT.CLIENT_ID=SALE.CLIENT_ID } AND {SHOWROOM.SHOWROOM_ID=SALE.SHOWROOM_ID } AND {SALE.SALE_ID=SALE_MODEL.SALE_ID } AND {SALE.SALE_TYPE= 'S' } При выполнение запроса в отчет попадет не вся информация, так как согласно запросу у нас создалось ограничение Showroom Country =Client Country)
  23. 23. 23 07/03/2012 Footer Resolving Loops in a Universe Для решения циклов существует два способа: 1. Использование альясов: 2. Использование контекстов.
  24. 24. 24 07/03/2012 Footer About Contexts Контекст – это список джоинов и таблиц, которые могут вместе учавствовать в запросе. Любые объекты, полученные из таблиц, включенных в контекст, совместимы друг с другом. Если в запросе учавствует объекты из разных контекстов, то BO создаст несоклько запросов, свой для каждого контекста, а затем соединит их в одном микрокубе. Это позволяет избежать некорректных результатов . Допустим у нас есть юниверс Motors:
  25. 25. 25 07/03/2012 Footer About Contexts (cont) У нас есть две сущности Rental и Sale. Сущность Client одновременно связана с Rental и Sale: 1. Rental_Model: 2. Sales_Model:
  26. 26. 26 07/03/2012 Footer About Contexts (end) Для того, чтобы пользователь мог использовать в одном запросе одновременно объекты из разных контекстов, необходимо включить данную опцию в настройках юниверса. Такой запрос называется Ambiguous query.
  27. 27. 27 07/03/2012 Footer Resolving SQL Traps В дизайнере существует два вида “SQL traps”: • chasm traps • fan traps Если при возникновении цикла в отчет попадает меньше строк, то при возникновении ловушек у нас появляются лишние записи. К счастью, существет несколько способов для идентификации и решения таких вещей. Chasm Traps Chasm trap случается, когда у нас три таблички соединяются, как показано на рисунке, тоесть 1 ко многим.
  28. 28. 28 07/03/2012 Footer Chasm Traps Example
  29. 29. 29 07/03/2012 Footer Chasm Traps Example (end) Запрос возвращает все возможные комбинации строк таблицы SALE и все возможные комбинации строк таблицы RENTAL, тем самым задваивая наш результат. Вы можете ничего не заметить, пока не посмотрите на детализированные данные. Для решения данной проблемы существует 2 способа: • Изменить параметры юниверса, чтобы ВО создавал отдельный запрос для каждой таблицы, но это поможет только при использование мэр • Создание контекста для каждой таблицы
  30. 30. 30 07/03/2012 Footer Fan traps Fan traps случаются, когда у нас есть соединения 1 ко многим, которое также имеет соединение 1 ко многим с другой таблицей, как показано на рисунке. Fan traps example
  31. 31. 31 07/03/2012 Footer Fan traps example (cont) Мы не увидим ошибку, пока не посмотри на детализированную выгрузку: Для решения fan trap мы можем сделать одно из следующих действий: • Изменить параметры юниверса, чтобы ВО создавал отдельный запрос для каждой таблицы, но это поможет только при использование мэр • Использовать комбинацию из контекста и альясов • Избежать fan trap сценария
  32. 32. 32 07/03/2012 Footer Applying Restrictions on Objects Ограничения на объект можно накаладывать при его создание в дизайнере: Теперь при использование объекта в SQL выражение будет подставляться данное условие.
  33. 33. 33 07/03/2012 Footer Condition objects В ВО можно создавать специальные объекты, которые будут содержать условия – объекты фильтры. Такие объекты имеют ряд преимуществ: • Удобны для сложных условий Self-restricting join Такой тип ограничения создается непосредтственно на поле таблицы, и потом автоматически появляется в SQL выражение в условие, при использование данной таблицы в запросе:
  34. 34. 34 07/03/2012 Footer Using @functions with Objects • @prompt(,,,,,,) • @select() • @where() • @aggregate_aware(,) В ВО есть специальны класс функций - @ функции: @prompt Синтакс функции @ptompt состоит из семи параметров, разделенных запятой: • сообщение • тип данных (A-alphanumeric, N-numeric, D-Date) • список значений • mono (одно значение), multi (несколько значений) • free(позволяет ввести любое значение), constrained(позволяет выбрать только из списка значений), primary key(в запросе используется вместо значения его ключ) • persistent(сохраняет в промте последнее значение), not persistent • „Default value‟:‟key‟ (значение промпта по умолчанию и ключ для PK) Первые два параметра обязательны.
  35. 35. 35 07/03/2012 Footer @prompt example SHOWROOM.SHOWROOM_NAME = @prompt('Enter Showroom Name','A', 'ShowroomShowroom',mono,primary_key) SELECT sum(SALE_MODEL.SALE_QTY * MODEL.MODEL_PRICE *(100 - SALE.SALE_DISCOUNT )/100) FROM MODEL INNER JOIN SALE_MODEL ON (SALE_MODEL.MODEL_ID=MODEL.MODEL_ID) INNER JOIN SALE ON (SALE.SALE_ID=SALE_MODEL.SALE_ID) INNER JOIN SHOWROOM ON (SALE.SHOWROOM_ID=SHOWROOM.SHOWROOM_I D) WHERE (SALE.SALE_TYPE='S') AND (SHOWROOM.SHOWROOM_ID = 2 ) SHOWROOM.SHOWROOM_NAME IN @prompt('Enter Showroom Name','A', 'ShowroomShowroom',multi,primary_key,not_persistent, {'Prestige Cars' : '1', 'Prestige Sports Cars' : '2','Prestige Motors' : '3'}) SELECT sum(SALE_MODEL.SALE_QTY * MODEL.MODEL_PRICE *( 100 - SALE.SALE_DISCOUNT )/100 ) FROM MODEL INNER JOIN SALE_MODEL ON (SALE_MODEL.MODEL_ID=MODEL.MODEL_ID) INNER JOIN SALE ON (SALE.SALE_ID=SALE_MODEL.SALE_ID) INNER JOIN SHOWROOM ON (SALE.SHOWROOM_ID=SHOWROOM.SHOWROOM_ID) WHERE (SALE.SALE_TYPE='S') AND (SHOWROOM.SHOWROOM_ID IN (1, 2, 3) )
  36. 36. 36 07/03/2012 Footer @select Функция @select используется для дублирования объектов, то есть, если вам необходимо один и тот же код SQL использовать в нескольких объекта или в сложных формула, то вы можете вместо SQL выражения использовать дануню функцию. Рассмотрим пример: У нас есть объект «Model» (MODEL.MODEL_NAME+' '+MODEL.MODEL_TRIM+' '+MODEL.MODEL_ENGINE) Мы создадим еще один объект – «Model for rental» (@select(CarModel)). При использование это объекта, в запрос будет подставляться такой же код, как и при использование объекта «Model»
  37. 37. 37 07/03/2012 Footer @where Функция @where() также заменят SQL выражение на путь к объекту:
  38. 38. 38 07/03/2012 Footer @agreagate_aware Функция @agregate_aware необходима для работы с сумарными таблицами. @aggregate_aware(<SELECT statement for highest agg level>, <SELECT statement for second highest agg level>, .. <SELECT statement for second lowest agg level>, <original SELECT statement for basic agg calculation>)
  39. 39. 39 07/03/2012 Footer Using Hierarchies Иерархия – упорядоченная серия взаимовсвязанных измерений, которые используются для многомерного анализа, на пример, как на рисунке: Страна, Регион, Город. В ВО иерархия может быть естественной, например (Год, Месяц, День) или логической, то есть созданный в собственном порядке.
  40. 40. 40 07/03/2012 Footer Working with hierarchies По умолчанию ирархию повторяет очередность объектов в классе. Именно поэтому важно при созданию юниверса организовывать объекты в классе в нужной иерархии. Для просмотра существующей иерархии или создание своей иерархии можно использовать Hierarchies Editor
  41. 41. 41 07/03/2012 Footer Automatic time hierarchy При создание таких объектов типа дата, можно автоматически создавать автоматическую временную иерархию:
  42. 42. 42 07/03/2012 Footer Using List of Values В дизайнере при создании нового измерения или объекта деталь, автоматически создается список значений. Сразу этот список физически не создаются, но у вас есть возможность получить его, направив запрос к БД. Список значений базируется на SELECT DISTINCT. Его можно экспортировать вместе с юниверсов, тогда список значений конвертируется в XML и сохранается в файле *.unw в репозотирий ВО.
  43. 43. 43 07/03/2012 Footer Cascading LOV В дизайнере можно создать каскадный список значений, который упростит выбор параметров для пользователей.
  44. 44. 44 07/03/2012 Footer Derived Tables Производная таблица это виртуальная таблица, которую можно создать в структуре юниверса. Такая таблица содержит в себе SQL выражение. Пример таблицы DT_Sales_to_Rentals: SELECT CLIENT.CLIENT_ID, MODEL.MODEL_ID, (CASE SALE.SALE_TYPE WHEN 'R' THEN SALE.SALE_TOTAL ELSE 0 END) AS Rental_Total, (CASE SALE.SALE_TYPE WHEN 'S' THEN SALE.SALE_TOTAL ELSE 0 END) AS Sales_Total FROM CLIENT, MODEL,SALE,SALE_MODEL WHERE CLIENT.CLIENT_ID = SALE.CLIENT_ID AND MODEL.MODEL_ID = SALE_MODEL.MODEL_ID AND SALE_MODEL.SALE_ID = SALE.SALE_ID Nested Derived Tables
  45. 45. 45 07/03/2012 Footer Index awareness Index awareness позволяет нам пользоваться преимуществом primary, foreign key, то есть, допустим у нас есть запрос: В условие мы выбираем UK и US. А если мы воспользуемся Index awareness, то запрос примет следующий вид: То есть у нас из запроса исчезла таблица COUNTRY и мы отфильтровали UK и US по foreign key – MAKER.COUNTRY, тем самым улучшив производительность запроса. SELECT MAKER.MAKER_NAME, max(MODEL.MODEL_PRICE) FROM MAKER, MODEL, COUNTRY COUNTRY_MAKER WHERE (MODEL.MAKER_ID=MAKER.MAKER_ID) AND (MAKER.COUNTRY_ID=COUNTRY_MAKER.COUNTRY_ID) AND COUNTRY_MAKER.COUNTRY_NAME In ( 'United Kingdom','USA' ) GROUP BY MAKER.MAKER_NAME SELECT MAKER.MAKER_NAME, max(MODEL.MODEL_PRICE) FROM MAKER, MODEL WHERE (MODEL.MAKER_ID=MAKER.MAKER_ID) AND MAKER.COUNTRY_ID In ( 44,1 ) GROUP BY MAKER.MAKER_NAME
  46. 46. 46 07/03/2012 Footer To set up primary key index awareness Primary key: COUNTRY_REGION.COUNTRY_ID WHERE: COUNTRY_REGION.COUNTRY_ID = CLIENT.COUNTRY_ID
  47. 47. 47 07/03/2012 Footer Linking Universes ВО позваляет соединять несколько юниверсов в обном файле *.unw, что дает ряд преимущест (удобство при создание объектов и тп.) и не достатков (возможно подключиться только к одному источнику данных, списки значений хранятся только для одного из юниверсов, контексты должны быть определены для каждого юниверса и тд.)
  48. 48. 48 07/03/2012 Footer Applying Universe Access Restrictions В юниверсе можно настраивать ограничения доступа для определенных пользователей или для груп пользователей. Существуют следующие виды ограничений: • Соединение • Управление запросом • Контроль за SQL • Доступ на уровне объектов • Доступ на уровне строк • Доступ к альтернативным таблицам
  49. 49. 49 07/03/2012 Footer Applying Universe Access Restrictions (cont)
  50. 50. 50 07/03/2012 Footer Applying Universe Access Restrictions (cont)
  51. 51. 51 07/03/2012 Footer Managing Universes У вас есть возможность получить всю необходимую информацию по юниверсу (объекты, связы, таблицы, схема и тп). Для это необходимо: File->Print Preview/Print. В опциях юнивераса можно выбрать объекты, которые необходимо отразить в документации.
  52. 52. 52 07/03/2012 Footer Importing a universe После того, как вы закончили разрабатывать юниверс, его необходимо импортировать в репозиторирь ВО (CMS), для этого его нужно сохранить как файл *.unw, желательно чтобы название файла совпадало с название юниверса в параметрах.

×