Загрузка расписания из базы данных

Вы можете импортировать данные расписания из внешей базы данных.

Мы предлагаем несколько сценариев, которые помогут вам:

Вы можете зафиксировать расписание, загруженное из базы данных, в автономном режиме.


Загрузка из БД расписания, задающего моменты времени

В этом сценарии мы зададим расписание прибытия шаттла в терминал аэропорта.

Ваша таблица в MS Excel может выглядеть следующим образом:


Обратите внимание, что отметки времени содержат не только время, но и дату. Если дата отсутствует, то после импорта таблицы в базу данных AnyLogic ко всем отметкам времени будет добавлена дата по умолчанию: 31-12-1899.

Чтобы загрузить данные для расписания, задающего моменты времени

  1. Сначала вы должны импортировать данные во встроенную базу данных. После импорта таблица в базе данных будет выглядеть следующим образом:

  1. Откройте свойства расписания и настройте параметры в секции Данные как указано на изображении ниже.

  1. Выберите опцию Загружается из базы данных.
  2. Из выпадающего списка Таблица выберите таблицу встроенной базы данных, которая содержит расписание прибытия автобуса. В этом сценарии таблица называется расписание_автобусов
  3. Из выпадающего списка Начальный столбец выберите столбец таблицы, который содержит отметки времени: время.
  4. Из выпадающего списка Столбец значений выберите столбец, который содержит значения: количество_пассажиров.

Обратите внимание, что описанные в шагах 5-6 выпадающие списки содержат названия только тех столбцов, которые содержат данные соответствующего типа. Выпадающий список Начальный столбец содержит названия столбцов с данными типа Date, а, выпадающий список Столбец значений содержит названия столбцов с данными, соответствующими выбранному типу расписания. Это могут быть данные типа integerdouble или boolean.

Поскольку в этом сценарии расписание задает целочисленные значения, то выпадающий список Столбец значений содержит только столбцы типа int.


Загрузка из БД расписания, задающего интервалы времени

В этом сценарии мы зададим ежедневное рабочее расписание с двумя сменами и перерывом на обед.

Ваша таблица MS Excel может выглядеть следующим образом:


Обратите внимание, что отметки времени содержат не только время, но и дату. Если дата отсутствует, то после импорта таблицы в базу данных AnyLogic ко всем отметкам времени будет добавлена дата по умолчанию: 31-12-1899.

Чтобы загрузить данные для расписания, задающего интервалы времени

  1. Сначала вы должны импортировать данные во встроенную базу данных. После импорта таблица в базе данных будет выглядеть следующим образом:

  1. Откройте свойства расписания и настройте параметры в секции Данные как указано на изображении ниже.

  1. Выберите опцию Загружается из базы данных.
  2. Из выпадающего списка Таблица выберите таблицу встроенной базы данных, которая содержит расписание рабочих смен. В этом сценарии таблица называется рабочее_расписание.
  3. Из выпадающего списка Начальный столбец выберите столбец таблицы, который содержит отметки времени, задающие начало интервала времени: начало_смены.
  4. Из выпадающего списка Конечный столбец выберите столбец, который содержит отметки времени, задающие завершение интервала времени: конец_смены.
  5. Из выпадающего списка Столбец значений выберите столбец, который содержит значения: количество_операторов.

Обратите внимание, что описанные в шагах 5-7 выпадающие списки содержат названия только тех столбцов, которые содержат данные соответствующего типа. Выпадающие списки Начальный столбец и Конечный столбец содержат названия столбцов с данными типа Date, а, выпадающий список Столбец значений содержит названия столбцов с данными, соответствующими выбранному типу расписания. Это могут быть данные типа integerdouble или boolean.

Поскольку в этом сценарии расписание задает целочисленные значения, то выпадающий список Столбец значений содержит только столбцы типа int.


Задание условий для выбора конкретных значений из БД

В этом сценарии мы будем моделировать работу автобусов, прибывающих в аэропорт. В аэропорте два терминала, каждый из которых обслуживает один автобус. Каждый автобус задается с помощью отдельного элемента ResourcePool.

У нас есть внешняя база данных с одной общей таблицей, которая содержит расписания обоих автобусов. Мы продемонстрируем, как загрузить конкретные данные расписания из такой таблицы для конкретного элемента ResourcePool.

Ваша таблица MS Excel может выглядеть следующим образом:

Обратите внимание, что отметки времени содержат не только время, но и дату. Если дата отсутствует, после импорта таблицы в базу данных AnyLogic ко всем отметкам времени будет добавлена дата по умолчанию: 31-12-1899.

В этом сценарии мы хотим получить расписание маршрутного автобуса для терминала 1, поэтому мы будем выбирать из таблицы только те записи, которые имеют отношение к терминалу 1.

Чтобы отобрать конкретные значения из таблицы БД

  1. Сначала вы должны импортировать ваши данные во встроенную базу данных. После импорта таблица в базе данных будет выглядеть следующим образом:

  1. Загрузите данные расписания.
  2. Откройте свойства расписания и в секции Данные щелкните мышью по кнопке Добавить.
  3. В группе элементов управления Условия выборки из верхнего выпадающего списка выберите столбец, содержащий значение, с помощью которого мы будем отбирать конкретные данные, т.е. значение, которое послужит фильтром. В нашем сценарии это столбец терминал.

  1. Справа от этого списка расположен элемент управления, который задает отношения между двумя значениями. Используйте опцию по умолчанию: равно. Чтобы открыть все доступные опции, щелкните мышью по этому элементу.
  2. В поле со списком внизу выберите "терминал 1". Мы задали фильтр для выборки данных и теперь из таблицы во встроенной базе данных будут выбираться только те строки, которые содержат значения, равные "терминал 1". Вы также можете ввести нужное вам значение в поле со списком самостоятельно. При этом обращайте внимание на тип данных этого значения. В нашем сценарии мы выбираем записи типа String, поэтому в соответствии с требованиями языка Java мы записываем значение в кавычках, как показано ниже:



Переключение загруженных данных расписания в автономный режим

В нашем сценарии модель использует данные из нескольких внешних таблиц, импортированных во встроенную базу данных. Часть данных должна автоматически обновляться при запуске модели, но мы хотим, чтобы расписание автобуса осталось неизменным.

Чтобы перевести загруженные данные в автономный режим, после загрузки расписания в БД AnyLogic в секции Данные свойств расписания снимите отметку в опции Загружается из базы данных. AnyLogic предложит вам скопировать эти данные в таблицу.


Щелкните мышью по кнопке Да. Данные будут переведены в автономный режим и отображены в таблице следующим образом: