Responsibilities of the Putaway service are as follows:
- The Putaway strategy is called to find an available Location for a TransportUnit in a given list of warehouse aisles
- The strategy counts the number of free Locations in a warehouse aisle
$ mvn package
The Putaway strategy is a so called attached service that must be attached to the OpenWMS.org COMMON Service in order to run. So grab the JAR file of the COMMON Service and attach this service while starting the COMMON Service:
$ java -cp openwms-common-service-exec.jar -Dspring.profiles.active=DEMO -Dloader.main=org.openwms.common.CommonStarter -Dloader.path=target/openwms-putaway-service.jar org.springframework.boot.loader.PropertiesLauncher
After the service has started up make a HTTP call to
http://localhost:8120/v1/location-groups?locationGroupName=FGSTOCK&transportUnitBK=00000000000000004711
to find a free stock Location.
Under development
Entities of the ACL do not belong and are not owned by the service itself. They can be seen as narrowed representations of entities in other domains and store only attributes and relationships that are required for the context of inventory management service.
A Location in the context of inventory management is identified by a 5-tupel of area, aisle, x, y, z. Where area defines the logical area of the Location, like "Pallet" or "Hanging Goods", aisle the particular stock aisle (0001, 0002, etc.) and the coordinate in the aisle as x-y-z tupel.
A TransportUnit represents the physical container that is used to move items between locations in the warehouse. In the context of inventory management the TransportUnit tracks at least the information of its actual location.
Basically this service deals with Products and LoadUnits. A Product is the representation of a real world product, or an article and has at least a SKU (identifier) and a descriptive text. Products may not be placed everywhere in a stock but only in certain areas. Toxic liquids for example might only be stored down at the bottom of the stock aisle but never in the upper rows. This mapping is defined with StockZones where a Product may tied to.
A PackagingUnit contains an amount of a particular Product item. For example a box of 100 screws or a tot of 1 fl oz liquid cleaner is a PackagingUnit of screws or liquid cleaner.
A LoadUnit is used to divide a TransportUnit into physical areas. Each of these areas can be assigned to a particular Product only and may refer to a number of PackagingUnits that are placed in the area. LoadUnits are used in the picking process to tell the operator where to take PackagingUnits or an amount of Product items from.