Pages: 1
Как проверить класс заявки в модели Enterprise Library?, код ((entity instanceof D1)? 2 : 1) не работает. Почему?
AnyLogic Advanced 6.4.0. Enterprise Library.
Не удается проверить в коде нестандартный класс заявки.
Пытаюсь управлять предоставлением ресурсов для обработки заявок, вычисляя для заявок приоритеты запросов (объекты ResourcePool) в зависимости от класса заявки (классы заявок от разных источников D1, D2 ...).
Но код подобный
((entity instanceof D1) ? 2 : 1)
в поле «Приоритет запроса» ResourcePool не работает.
Проверяю: такой код не работает у меня не только для объектов ResourcePool, но и для service и sink.
Пробую уже на элементарном примере:
Source - Sink.
Добавляю в модель простую переменную plainVar (значение по умолчанию 0) и Java класс D1 (базовый класс com.xj.anylogic.libraries.enterprise.Entity).
Класс заявки источника меняю с Entity на D1.
На событие «Действие при входе» объекта Sink меняю значение переменной:
plainVar = ((entity instanceof D1)? 2 : 1).
На симуляции при поступлении в Sink первой заявки значение переменной изменяется с 0 не на 2, как ожидается, а на 1.
Итак, объект Sink не опознает класс заявки D1.
Код
entity instanceof D1
не работает.
В чем дело?
Всем, кто читал, спасибо за проявленный интерес. Разобрался. Дело оказалось в том, что для объектов Source в поле "Класс заявки" я указал D1, D2 и т.п.,
а значение в поле "Новая заявка" оставил предлагаемым по умолчанию: New Entity().
Т.е. заявки D1, D2 ... у меня просто не генерировались.
Пишу в полях "Новая заявка" New D1(), New D2() ... и все прекрасно.
Ресурс предоставляет себя заявкам разных классов в требуемом порядке.
Pages: 1
Users browsing this topic (2 guests, 0 registered, 0 hidden)