Библиотеки и решение
Три слова, которые надо различать
Section titled “Три слова, которые надо различать”| Слово | Что это |
|---|---|
| Схема | Один файл. В нём входы, шаги, связи и выход. Имя схемы — имя файла и имя вызова. |
| Библиотека | Папка со схемами, у которой есть имя и, обычно, манифест — файл, объявляющий её состав. Имя нужно затем, чтобы в разговоре звучало «это из Скада.База», а не путь к папке на сетевом диске. |
| Решение | Файл *.scriptsln.json: список подключённых библиотек по порядку. Порядок — это и есть порядок разрешения имени. |
Порядок разрешения имени
Section titled “Порядок разрешения имени”Когда из ячейки приходит вызов, конструктор ищет схему с таким именем, идя по библиотекам решения сверху вниз. Первая найденная и считается. На экране это сказано так: «Порядок подключения = порядок разрешения. Верхняя библиотека перекрывает нижние.»
Порядок меняется кнопками ▲ и ▼ у библиотеки в рейле — перестановкой строк, а не пересборкой программы.
Что перекрывает что
Section titled “Что перекрывает что”- Схема из библиотеки, стоящей выше — перекрывает одноимённую из библиотеки ниже.
- Любая схема решения — перекрывает одноимённую функцию GAP.dll.
- Ничего не нашлось — вызов уходит в GAP.dll по-старому.
Где физически лежат схемы
Section titled “Где физически лежат схемы”Схемы лежат в подпапке Scripts рядом со сборкой Uniplant Atomix — одно место на все проекты. Там же лежит файл решения и папки библиотек.
Источник схем бывает трёх видов, и порядок этих видов — тот же порядок перекрытия:
| Вид источника | Где это |
|---|---|
| проект | Папка проекта. Перекрывает всё остальное. (Пока не используется.) |
| рядом с программой | Папка Scripts рядом со сборкой AutoMix. Текущее место хранения. |
| общая библиотека | Библиотека на общем диске, подключённая к решению. |
Подключение библиотек
Section titled “Подключение библиотек”| Кнопка | Что делает |
|---|---|
| «Завести новую библиотеку…» | Создаёт папку с манифестом и подключает её к решению. |
| «Подключить свою библиотеку…» | Спрашивает папку или файл манифеста и добавляет строку в решение. |
| «Отключить от решения» | Убирает строку из решения. Файлы остаются на диске; схемы просто перестают считаться. |
| «Переименовать библиотеку» | Меняет имя в манифесте. На имена схем и на вызовы из книг это не влияет. |
| «Показать папку библиотеки» | Открывает папку в проводнике. |
Раздел «НЕ ПОДКЛЮЧЕНО К РЕШЕНИЮ»
Section titled “Раздел «НЕ ПОДКЛЮЧЕНО К РЕШЕНИЮ»”В рейле под списком библиотек показываются те, что лежат рядом, но к решению не подключены — с пометкой рядом, не подключено. Их схемы не считаются. Кнопка + подключает.
Состав библиотеки: зачем манифест
Section titled “Состав библиотеки: зачем манифест”Библиотека может ничего не объявлять — тогда её содержимое это просто то, что лежит в папке. Но если состав объявлен манифестом, появляется важная возможность: сказать вслух о недостающей схеме. Файл потеряли или не забрали из SVN — конструктор об этом скажет, а не сделает вид, что схемы никогда не было.
Обратная сторона: схема, которая лежит в папке, но в манифесте не объявлена, не считается. Такие схемы каталог показывает отдельным разделом с кнопкой «объявить».
Сломанная схема
Section titled “Сломанная схема”Схема, файл которой не читается либо в которой проверка нашла ошибки, из каталога не исчезает: «сломано» и «нет такой» — разные ответы. В каталоге она помечена, вызов из ячейки уходит в GAP.dll, а в лог пишется, почему схема не посчиталась.