## Structure
The standard process starts the following threads

| Threads | Description |
|---------|-------------|
| ToEmptyLeBuffer | supplies empty HU to workstations/buffers (typically for goods receipt) |
| StartInitialOrdersHost | schedules OrdersHost (bring them from status Initial to Pending) |
| LoopOverloadDistribution | Updates ResourceSetting.Overload based on the number of OrdersHost's destinations. |
| OrderManager | starts OrdersHosts in status Pending |

The worker-thread run independently from each other and the worker must be such that they not operate on the same Orders or Le.

## Worker *ToEmptyLeBuffer*
3 Steps:

1. try to reroute empty LE already on the conveyor on the way to storage to match the demand of the buffer
2. find LE in storage to match the demand of the buffer
3. Fulfill explicit orders from WMS for LE
    - search for OrdersHost in status Initial and as LeNo a NextEmtyLe-name
    - find an empty LE in storage and assign it to the OrderHost
    - start the OrderHost

## Worker *StartInitialOrdersHost*
- If an order for the same LE of type Transport is active, replace the it with the new order
- If an order for the same LE of type TransportHost is active and the destination is the storage, replace the it with the new order
- schedule the OrderHost if no other order for the LE is active, and
    - the Le is on the conveyor or
    - the Le is in storage and the destination has demand

## Worker *OrderManager*
Starts the orders, depending on whether the destination is accessible (e.g. aisle not ready) or there is demand (e.g. for workstations), the priority of the orders and so on. Orders are considered in the following sequence:

- orders for LE on the conveyor
- orders to destinations with resources management
- orders to destinations without resources management