Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мезенцев Имитационное моделирование / Вопросы и задачи к экзамену по ИМ.docx
Скачиваний:
83
Добавлен:
04.01.2020
Размер:
17.27 Mб
Скачать

24. Моделирование параллельных систем в сим Арена

Рассмотрим параллельную систему, состоящую из двух неидентичных приборов, в которую на обслуживание с задержками поступают заявки.Заявки, входящие в агрегат, обслуживаются параллельно и имеют разное время обслуживания. Это означает, что прибородновременно может обслуживать более одной заявки,

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

Для того, чтобы смоделировать подобную параллельную систему в СИМ Арена, необходимо использование нескольких стандартных блоков, таких как:

Create

Данный модуль (Create в переводе – “создать, создание”) является стартовым пунктом для объектов в имитационной модели. Объекты создаются с использованием времени между их прибытием, которое может задаваться случайно (Random), на основе специального списка (Schedule), константой (Constant) или одним из статистических распределений (Expression). После создания объекты покидают этот модуль, начиная движение по системе. Тип объектов также определяется в модуле Create.

Типичное использование модуля:

  • Точка начала производства в производственной линии;

  • Пункт прибытия документов в деловой процесс;

  • Пункт прибытия клиентов (в сервисном процессе).

Name

Create 1

Имя (уникальный идентификатор) модуля. Автоматически имя модуля генерируется по форме “Название_модуля №_модуля”. Arena позволяет задавать любые (кроме одинаковых) имена (но только на латинице!).

Entity Type

Entity 1

Тип (или название типа) создаваемых объектов. Автоматически имя типа генерируется по форме “Entity №_типа ”. Arena позволяет задавать любые имена типов объектов.

Type

Random (Expo)

Три данных параметра образуют поле “TimeBetweenArrivals” (“Время между прибытиями”).

Type – тип потока генерируемых объектов. Тип потока может быть выбран только из 4-х заданных:

  1. Random (основывается на экспоненциальном распределении с параметром, который указывается пользователем в Value);

  2. Schedule (основывается на экспоненциальном распределении со значениями из указанного в модуле Schedule (библиотека BasicProcess) списка);

  3. Constant (основывается на постоянном значении, которое указывается пользователем в параметре Value);

  4. Expression (основывается на распределении, которое указывается пользователем в параметре Expression).

Value – численное значение (неотрицательное), определяемое пользователем. (Используется только при выборе типов Random и Constant.)

ScheduleName – определяет имя используемого модуля Schedule. (Используется только при выборе типа Schedule.)

Expression – распределение (тип(параметры)) по которому будет генерироваться поток объектов. (Используется только при выборе типа Expression.) Статистические распределения, с которыми позволяет работать Arena, представлены в Приложении 3.

Units – используемые (для определения момента времени первого создания объектов (FirstCreation) и продолжительности пауз между их прибытиями в систему) единицы времени. (Не используется при выборе типа Schedule.) Arena позволяет задавать время в секундах (Seconds), минутах (Minutes), часах (Hours) и днях (Days).

Value

1

Units

Hours

EntitiesperArrival

1

Количество объектов, которые будут поступать в систему во время каждого момента прибытия.

MaxArrivals

Infinite

Максимальное количество прибытий объектов, которое будет генерировать данный модуль. При достижении этого количества модуль прекратит генерацию. Параметр может принимать либо неотрицательные целочисленные значения, либо значение Infinite (бесконечность).

FirstCreation

0.0

Момент времени первого прибытия объектов в систему. (Не используется при выборе типа Schedule.)

Process

Данный модуль (в дословном переводе “процесс”) является модулем основной обработки объекта. В модуле определяются типы размещения и вывода ресурсов для обработки, тип отображения времени и стоимости обработки на объектах и, наконец, есть возможность определять иерархию процесса путём создания вложенной модели (субмодели).

Типичное использование модуля:

  • Механическая обработка объектов;

  • Рассмотрение документов;

  • Выполнение заказов (распоряжений);

  • Обслуживание клиентов.

Name

Process 1

Имя (уникальный идентификатор) модуля. Автоматически имя генерируется по форме “Название_модуля №_модуля”. Arena позволяет задавать любые имена модулей.

Type

Standard

Тип определения логики в пределах модуля. Существует два таких типа:

  1. Standard – вся логика обработки будет определена в пределах самого модуля Process (при выборе данного типа будет отображаться соответствующее поле Logic (см. ниже));

  2. Submodel – логика обработки будет определена во вложенной модели, которая может содержать любое количество логических модулей (среди которых также могут быть модули Process типа Submodel – поэтому в результате получается определяемая пользователем иерархия).

При выборе типа Submodel активным остаётся лишь поле ReportStatistics. Для определения логики вложенной модели следует кликнуть правой кнопкой мыши на изображении соответствующего блока Process и выбрать команду EditSubmodel, а для выхода из вложенного модуля на уровень выше – кликнуть правой кнопкой мыши на рабочей области субмодели и выбрать CloseSubmodel.

Action

Delay

Action – параметр, от которого зависит логика модуля (вместе с параметрами Priority и Resources он составляет поле Logic).

Action – это тип обработки, которая происходит в пределах модуля. Arena предлагает 4 таких типа:

  1. Delay – простая задержка времени (без использования ресурсов).

  2. SeizeDelay – указанные ресурсы будут размещены в данном модуле (их выпуск произойдёт в какое-то более позднее время).

  3. SeizeDelayRelease – указанные ресурсы будут размещены в данном модуле лишь на время обработки всех объектов.

  4. DelayRelease – указанные ресурсы были предварительно размещены в другом модуле (модулях) и используются только для обработки прибывшего объекта, после которой выпускаются.

Priority – параметр, указывающий значение приоритета, которое используется, если в модели одновременно находятся объекты, ожидающие одинаковый ресурс. Может принимать значения High(1), Medium(2) и Low(3) – т.е. высокий(1), средний(2) и низкий(3) приоритет. (Не используется при выборе типов Delay и DelayRelease.)

Resources – лист ресурсов и ресурсных наборов, используемых для обработки объектов. (Не используется при выборе типа Delay.) Значения устанавливаются в одноимённом окне после нажатия кнопки Add (соответственно, редактируются и удаляются кнопками Edit и Delete).

Окно Resources содержит определяющее поле Type (тип), которое имеет два значения – Resource (ресурс) и Set (набор ресурсов).

При выборе Resource необходимо заполнить следующие поля:

  1. ResourceName – имя ресурса.

  2. Quantity – количество ресурса, которое будет необходимо для обработки одного объекта.

При выборе Set заполняются поля:

  1. SetName – имя набора ресурсов.

  2. Quantity – количество выбранного из набора ресурса, необходимое для обработки одного объекта.

  3. SelectionRule – правило выбора ресурсов из набора. Существуют следующие правила:

  • Cyclical – циклический выбор среди доступных ресурсов из набора (1-й ресурс; 2-й ресурс; 3-й ресурс; 1-й ресурс и т.д.).

  • Random – случайный выбор.

  • PreferredOrder – выбор первого доступного ресурса (1-й ресурс, пока доступен; 2-й ресурс, пока доступен и т.д.).

  • SpecificMember – использование только указанного ресурса. Для указания появляется поле SetIndex (вместо поля SaveAttribute), в котором необходимо указать номер, под которым ресурс входит в набор (это, в свою очередь, можно выяснить в окне Members модуля Set).

  • LargestRemainingCapacity – выбор ресурса, объём которого максимален.

  • SmallestNumberBusy – выбор ресурса, запасы которого максимальны.

SaveAttribute – указывается имя атрибута, который будет хранить индексный номер выбранного для использования ресурса. Этот атрибут далее может использоваться в качестве индекса (в поле SetIndex) при использовании в каком-либо (но работающем после) модуле правила SpecificMember.

Надо сказать, что зачастую после указания ресурсов и их наборов, их необходимо редактировать в соответствующих модулях Resources и Set.

DelayType

Triangular

Тип распределения (или метод определения) значений задержки объектов в процессе обработки.

В выпадающем списке данного поля представлено пять значений:

  1. Constant – константа (значение вносится в поле Value);

  2. Normal – нормальное распределение (указываются математическое ожидание (поле Value(Mean)) и среднеквадратическое отклонение (поле StdDev));

  3. Triangular – треугольное распределение (указываются минимальное и максимальное значения (поля Minimum и Maximum), а также мода (поле Value(MostLikely)));

  4. Uniform – равномерное распределение (указываются минимальное и максимальное значения (поля Minimum и Maximum));

  5. Expression – другое распределение, задаваемое пользователем (в поле Expression выбирается одно из статистических распределений, и задаются его параметры). Кроме того, в поле Expression можно задать определённое выражение.

Units

Hours

Единицы времени значений задержки. Arena (как уже говорилось выше) позволяет задавать время в секундах (Seconds), минутах (Minutes), часах (Hours) и днях (Days).

Allocation

ValueAdded

Определяет, как время и стоимость процесса обработки будут отображаться в объектах. Процесс может рассматриваться одним из пяти представленных ниже типов:

  1. ValueAdded (добавленное значение) – полные время и стоимость прохождения объектом процесса записываются в параметры ValueAdded, которые при включенной записи статистики (yes в поле RecordEntityStatistics модуля Dispose) отражаются в полях VATime и VACost отчёта и используются для определения общих (суммарных) значений времени (TotalTime) и стоимости (TotalCost) нахождения объекта в модели.

  2. Non-ValueAdded (не добавленное значение) – полные время и стоимость прохождения объектом процесса записываются в параметры Non-ValueAdded, которые при включенной записи статистики (yes в поле RecordEntityStatistics модуля Dispose) отражаются в полях NVATime и NVACost отчёта и используются для определения общих (суммарных) значений времени (TotalTime) и стоимости (TotalCost) нахождения объекта в модели.

Различие между способами ValueAdded и Non-ValueAdded состоит в том, что значение ValueAdded отображается на объекте, а Non-ValueAdded – нет (т.е., например, если в модели производства продукции понадобилось выяснить время и стоимость процессов механической обработки объектов, то во всех соответствующих модулях следует установить способ ValueAdded, а во всех остальных – Non-ValueAdded).

  1. Transfer (перемещение) – полные время и стоимость прохождения объектом процесса записываются в параметры Transfers (куда, при включенном сборе статистики (yes в поле ReportStatistics), автоматически включаются данные из модулей типа Conveyor и Transporter), которые при включенной записи статистики (yes в поле RecordEntityStatistics модуля Dispose) отражаются в полях TransferTime и TransferCost отчёта и используются для определения общих (суммарных) значений времени (TotalTime) и стоимости (TotalCost) нахождения объекта в модели.

  2. Wait (ожидание) – полные время и стоимость прохождения объектом процесса записываются в параметры Wait, которые при включенной записи статистики (yes в поле RecordEntityStatistics модуля Dispose) отражаются в полях WaitTime и WaitCost отчёта и используются для определения общих (суммарных) значений времени (TotalTime) и стоимости (TotalCost) нахождения объекта в модели.

  3. Other (другое значение) – полные время и стоимость прохождения объектом процесса записываются в параметры Other, которые при включенной записи статистики (yes в поле RecordEntityStatistics модуля Dispose) отражаются в полях OtherTime и OtherCost отчёта и используются для определения общих (суммарных) значений времени (TotalTime) и стоимости (TotalCost) нахождения объекта в модели.

Minimum

.5

Назначение данных полей зависит от указанного в поле DelayType распределения, поэтому их описание находится выше – в описании DelayType.

Value

1

Maximum

1.5

ReportStatistics

yes

Определение необходимости автоматического сбора статистических данных. (Два значения – yes(подтверждение сбора) и no (отрицание сбора).)

Dispose

Данный модуль (в дословном переводе “расположить”) является конечным пунктом для объектов в имитационной модели. Перед тем, как объект покинет модель, собранные о нём статистические данные могут быть записаны в итоговый отчёт – для этого необходимо подтвердить запись в поле RecordEntityStatistics.

Типичное использование модуля:

  • Точка завершения производства;

  • Пункт завершения делового процесса;

  • Пункт выхода клиентов (в сервисном процессе).

Name

Dispose 1

Имя (уникальный идентификатор) модуля. Автоматически имя генерируется по форме “Название_модуля №_модуля”. Arena позволяет задавать любые имена модулей.

RecordEntityStatistics

yes

Определение необходимости записи статистических данных (два значения – yes (подтверждение сбора) и no (отрицание сбора)), которые включают в себя следующие показатели:

  • ValueAddedTime – добавленное (к объектам) значение времени обработки;

  • Non-ValueAddedTime – не добавленное значение времени обработки;

  • TransferTime – время перемещений объектов в модели;

  • WaitTime – время ожиданий объектами каких-либо действий по отношению к ним;

  • OtherTime – время всех остальных процессов, в которых участвовали объекты;

  • TotalTime – общее (суммарное) время нахождения объектов в модели;

  • ValueAddedCost – добавленное (к объектам) значение стоимости обработки;

  • Non-ValueAddedCost – не добавленное значение стоимости обработки;

  • TransferCost – стоимость перемещений объектов в модели;

  • WaitCost – стоимость ожиданий объектами каких-либо действий по отношению к ним;

  • OtherCost – стоимость всех остальных процессов, в которых участвовали объекты;

  • TotalCost – общая (суммарная) стоимость нахождения объектов в модели.

В отчёте каждый показатель представлен четырьмя числами:

  • Average –среднее значение показателя;

  • HalfWidth – половина интервала, в котором (среднее значение  половина интервала) лежит 95% значений данного показателя (При недостаточном (для проведения расчёта) количестве объектов в HalfWidth записывается значение Insufficient (недостаток информации).);

  • MinimumValue – минимальное значение показателя;

  • MaximumValue – максимальное значение показателя.

Decide

Данный модуль (в дословном переводе “решить, решение”) предназначен для имитации процесса принятия решений. Он включает возможность принятия решения на основе одного или нескольких условий (например, если тип объекта “Кредитная карта”) или одной или нескольких вероятностях (например, вероятность события 75% (соответственно, вероятность невыполнения события 25%)). Условия могут основываться на значении определённого атрибута или переменной, на типе объекта или заданном распределении.

При выборе типов модуля 2-waybyChance и 2-waybyCondition существует два выхода из данного модуля: один для “истинных” объектов (удовлетворяющих условию), а другой – для “ложных” (не удовлетворяющих условию). При выборе типов модуля N-waybyChance и N-waybyCondition количество “истинных” выходов соответствует количеству указанных условий, а “ложный” выход остаётся в единственном количестве. Следует уточнить, что при выборе типа N-waybyChance сумма указанных вероятностей для “истинных” выходов не должна превышать 100%. Кроме того, для типов N-waybyChance и N-waybyCondition (в отличие от 2-waybyChance и 2-waybyCondition) не указывается количество выходящих “истинных” и “ложных” объектов.

Типичное использование модуля:

  • Отправка бракованных изделий на переработку;

  • Направление пассажиров в бизнес-салон или салоны других классов самолёта, в зависимости от предъявленного билета.

Name

Decide 1

Имя модуля.

Type

2-way by Condition

Тип принятия решения, который выбирается из выпадающего списка с четырьмя значениями:

  1. 2-waybyChance – решение с двумя (“истинным” (true) и “ложным” (false)) выходами (путями), основывающееся на заданной в поле PercentTrue вероятности “истинного” события.

  2. 2-waybyCondition – решение с двумя выходами, основывающееся на заданном условии. Для задания условия служит поле If с возможными типами условий:

  • Variable – условие, касающееся значения определённой переменной. При выборе данного типа необходимо заполнить следующие поля:

  1. Named – название используемой в условии переменной, значение которой будет определяться при входе объекта в модуль.

  2. Is – математическое отношение (>, , ==, <, , <>), которое, собственно, и задаёт условие. По умолчанию устанавливается .

  3. Value – значение, с которым будет сравниваться значение переменной объекта. По умолчанию равно 1.

  • Attribute – условие, касающееся значения определённого атрибута. При выборе данного типа необходимо заполнить те же поля, что и в случае с переменной (т.е. с типом Variable).

  • EntityType – условие, касающееся типа объекта. В данном случае объект выходит по “истинному” пути только тогда, когда его тип соответствует указанному в поле Named.

  • Expression – условие, касающееся заданного выражения. Выражение, фактически представляющее собой само условие, записывается в поле Value, причём, в этом выражении обязательно должен содержаться математический оператор (аналогичный, одному из операторов поля Is типов Variable и Attribute), например Color<>Red (т.е. цвет не красный).

  • N-waybyChance – решение с более чем одним “истинным” и одним “ложным” выходами, основывающееся на заданных в поле Percentages вероятностях каждого “истинного” выхода (сумма указанных вероятностей для “истинных” выходов не должна превышать 100%).

  • N-way by Condition – решение с более чем одним “истинным” и одним “ложным” выходами, основывающееся на заданных в поле Conditions условиях для каждого “истинного” выхода. Условия задаются так же, как и при выборе типа 2-way by Condition.

  • If

    Expression

    Данное поле активируется только при выборе типов 2-way by Condition и N-way by Condition и служит для задания условий (см. описание поля Type данного модуля).

    Value

    RemainingProcTime .lt. 20

    Выражение, которым задаётся условие принятия решения.

    Запись “RemainingProcTime .lt. 20” означает, что значение параметра RemainingProcTime должно быть меньше 20 (минут). В данном случае вместо математического символа используется буквенное обозначение оператора (“.lt.” означает “lessthan”, т.е. “меньше, чем” (см. Приложение 1)).

    Resource (Basic Process)

    Данный модуль (в дословном переводе “ресурс”) используется для определения ресурсов в имитационной модели, включая определение стоимостных данных и состояния готовности (пригодности). Количество (запасы) ресурсов может быть фиксированным или изменяющимся по ходу имитации на основе указанного списка. Отказы (выходы из строя) ресурсов также могут быть заданы.

    Типичные объекты, описываемые в данном модуле:

    • Оборудование (машины, станки, кассовые аппараты, телефонные линии);

    • Люди (клерки, операторы, обслуживающий персонал).

    Name

    Resource 1

    Название ресурса.

    Type

    Fixed Capacity

    Метод (тип) определения количества (запасов) ресурса. Arena предоставляет два таких метода:

    • Fixed Capacity – твёрдое значение, не изменяющееся по ходу имитации.

    • Basedon Schedule – информация о количестве и времени действия (этого количества) ресурса берётся из указанного модуля Schedule.

    Capacity

    1

    Количество ресурса, доступного для использования в процессе. Поле используется при выборе типа FixedCapacity.

    При выборе типа BasedonSchedule вместо данного поля активизируются поля ScheduleName и ScheduleRule для указания в них названия списка и правила выбора его значений. Поле представлено ScheduleRule значениями Wait (“ожидание”), Ignore (“игнорирование”) и Preempt (“резервирование”), которые характеризуют когда произойдёт замена количества ресурса, если ресурс занят.

    Busy / Hour

    0.0

    Часовая ставка использования ресурса в процессе. Ресурс считается использующимся только во время работы с объектом (как только ресурс выпускается, он становится простаивающим).

    Idle / Hour

    0.0

    Часовая ставка простоя ресурса.

    Per Use

    0.0

    Стоимость ресурса на основании использования, т.е. исчисляемая каждый раз, когда ресурс начинает использоваться для нового объекта.

    StateSetName

    Название набора состояний, в которых может пребывать ресурс (например, “занятый”, “свободный”, “обедающий” и т.д.). При заполнении данного поля появляется поле InitialState, в котором указывается начальное состояние ресурса.

    Failures

    0 rows

    Лист всех возможных выходов из строя ресурса. В листе Failures задаются названия “поломки” FailureName и правило FailureRule, аналогичное правилу ScheduleRule.

    ReportStatistics

    yes

    Определение необходимости автоматического сбора статистических данных.

    Для разветвлений процессов, т.е. описания ситуаций в которых одна операция предшествует многим, в моделях Arena используются блоки типа Separate. Поскольку данные блоки имеют только два выхода, для описания разветвлений с числом операций, непосредственно следующих за данной, более двух, приходится использовать связки из нескольких блоков Separate.

    Блоки типа Batch служат для слияния (объединения) процессов. В нашем случае они задают отношение непосредственного предшествования нескольких операций данной. В качестве одного из атрибутов блока BatchиспользованBatchsize, в котором указывается число входов. Этот атрибут автоматически не устанавливается и должен быть задан вручную. Другой важный атрибут блока - SaveCriterion. В нашем случае необходимо указать last, Это позволяет не начинать выполнение последующих операций до завершения последней, входящей в блок операции. Это условие соответствует алгоритму критического пути. Любой блок Batch имеет очередь, что позволяет реализовывать и более сложные алгоритмы обработки.

    Batch

    Данный модуль (в дословном переводе “партия”) представляет собой группировочный механизм в рамках имитационной модели. Партии объектов могут группироваться постоянно или временно. Временные партии в дальнейшем должны быть разбиты с использованием модуля Separate.

    Партии могут комплектоваться по заданному числу из всех поступающих объектов или на основе определённого атрибута. Объекты, поступающие в модуль, размещаются в очереди до тех пор, пока не накопится требуемое для партии число.

    Типичное использование модуля:

    • Сбор определённого количества частей перед началом нового процесса;

    • Сбор предварительно розданных копий определённого документа (например, бланков голосования при его окончании (перед подсчётом голосов), листов анкетирования или тестовых заданий);

    • Взятие пациентом своей медицинской карточки перед входом в кабинет врача.

    Name

    Batch 1

    Имя модуля.

    Type

    Permanent

    Тип группировки объектов в партии. В выпадающем списке представлено два таких типа:

    • Temporary – временная группировка (в дальнейшем эти партии будут разбиты в модуле Separate);

    • Permanent – постоянная группировка.

    BatchSize

    10

    Размер партии. Количество объектов в партии задаётся только численно.

    SaveCriterion

    Last

    Данное поле представлено выпадающим списком со значениями First, Last, Sum и Product.

    Как только количество объектов в очереди достигает указанного размера партии, формируется “представительский” объект, который несёт характеристики объектов партии. Значения атрибутов представительского объекта зависят от указанного в поле SaveCriterion (“сохранение критерия (значения атрибута)”) значения и от типа группировки.

    При типе Temporary представительский объект временно заменяет членов партии. Значения атрибутов Entity.VATime, Entity.NVATime, Entity.WaitTime, Entity.TranTime, Entity.OtherTime, Entity.VACost, Entity.NVACost, Entity.WaitCost, Entity.TranCost, Entity.OtherCost и Entity.HoldCostRate этого объекта устанавливаются равными нулю. Значение атрибута Entity.CreateTime устанавливается равным значению времени в тот момент, когда была создана группа (когда последний член группы вошёл в очередь). Значения атрибутов Entity.SerialNumber, Entity.Type, Entity.Picture, Entity.Station, Entity.Sequence и Entity.JobStep устанавливаются равными значениям этих же атрибутов у первого (последнего) члена партии при указании в поле SaveCriterion значений First, Sum или Product (Last). Значения атрибутов, введённых пользователем, зависят от значений в поле SaveCriterion. First (Last) означает, что значения таких атрибутов будут соответствовать значениям этих же атрибутов у первого (последнего) члена партии. Product означает, что значения таких атрибутов будут рассчитываться как произведение значений этих же атрибутов по всем членам партии. Sum означает то же, что и Product, только вместо произведения используется сумма.

    При типе Permanent представительский объект полностью заменяет членов партии. Значения атрибутов Entity.VATime, Entity.NVATime, Entity.WaitTime, Entity.TranTime, Entity.OtherTime, Entity.VACost, Entity.NVACost, Entity.WaitCost, Entity.TranCost, Entity.OtherCost и Entity.HoldCostRate этого объекта устанавливаются равными сумме значений соответствующих атрибутов всех членов партии. Значение атрибута Entity.CreateTime устанавливается равным минимальному из значений этого атрибута среди членов группы. Значения атрибутов Entity.SerialNumber, Entity.Type, Entity.Picture, Entity.Station, Entity.Sequence и Entity.JobStep устанавливаются равными значениям этих же атрибутов у первого (последнего) члена партии при указании в поле SaveCriterion значений First, Sum или Product (Last). Значения атрибутов, введённых пользователем, зависят от значений в поле SaveCriterion. First (Last) означает, что значения таких атрибутов будут соответствовать значениям этих же атрибутов у первого (последнего) члена партии. Product означает, что значения таких атрибутов будут рассчитываться как произведение значений этих же атрибутов по всем членам партии. Sum означает то же, что и Product, только вместо произведения используется сумма.

    Rule

    AnyEntity

    Правило, по которому формируются партии из поступающих объектов. В выпадающем списке представлены правила:

    • AnyEntity – партия формируется, как только общее количество объектов в очереди достигает размера, указанного в поле BatchSize.

    • ByAttribute – ожидающие группировки объекты будут сравниваться по значению атрибута, название которого указывается в активизирующемся поле AttributeName. Например, если в поле AttributeName указано значение Color (цвет), то все объекты партии должны иметь одинаковый цвет, иначе они будут ждать прибытия следующих объектов до выполнения условия (наличия указанного в поле BatchSize количества объектов с одинаковым значением атрибута Color).

    Separate 1

    Данный модуль (в переводе “отдельный, разделение”) используется для создания копий поступающих объектов или (как в данном случае) для разбиения предварительно сгруппированных в модуле Batch партий на отдельные объекты. В модуле задаются правила переноса стоимостных параметров на копии, количество создаваемых копий, а также правила задания значений атрибутов у отдельных членов разбиваемой партии.

    Когда разбивается приходящая в модуль группа, уничтожается сформированный в модуле Batch представительский объект, и восстанавливаются сформировавшие группу (изначальные) объекты. Восстановленные объекты выходят из модуля в той же последовательности, в которой они входили в партию.

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

    Типичное использование модуля:

    • Извлечение предметов из коробок;

    • Разбиение предварительно сформированного набора документов;

    • Создание различных копий документов.

    Name

    Separate 1

    Имя модуля.

    Type

    Split Existing Batch

    Тип обработки приходящих объектов:

    • DuplicateOriginal – с пришедшего объекта будет просто сделано определённое количество копий. При выборе данного типа отображаются поля PercentCosttoDuplicates и # ofDuplicates, в которые вводятся процентное отношение (от 0 до 100) стоимостных и временных параметров копии относительно оригинала и количество копий соответственно.

    • SplitExistingBatch – пришедший объект является представительским объектом партии, сформированной в модуле Batch. В модуле Separate партия будет разбита на изначально составившие её объекты. При выборе данного типа отображается поле MemberAttributes (см. ниже), представленное выпадающим списком с тремя значениями:

    1. RetainOriginalEntityValues – возвращение атрибутам объектов их изначальных значений.

    2. TakeAllRepresentativeValues – назначение атрибутам (указанным в описании поля MemberAttributes) объектов значений этих же атрибутов у представительского объекта.

    3. TakeSpecificRepresentativeValues – назначение некоторым (указанным в активизирующемся поле Attributes) атрибутам значений, как у представительского объекта (остальные атрибуты получат свои изначальные значения).

    Стоит также отметить, что при выборе типа DuplicateOriginal из модуля Separate существует два выхода – по одному для оригинала и для копий.

    MemberAttributes

    TakeAllRepresentativeValues

    Данное поле используется для определения того, как перенесутся атрибуты Entity.Type, Entity.Picture, Entity.Station, Entity.Sequence, Entity.Jobstep, Entity.HoldCostRate и все определённые пользователем атрибуты (все остальные атрибуты получат свои исходные значения) с представительского лица (объекта) на извлекаемые из партии объекты. Поле отображается только при выборе типа SplitExistingBatch.