Content
The OpenWMS.org Common Service provides essential functionality to deal with Locations
, LocationGroups
and TransportUnits
. An example often referred to is the ability to move a TransportUnit
from a Location
A to a Location
B. Beside this also other secondary resources like TransportUnitTypes
or rulesets like the PlacingRule
to define what kind of TransportUnit
can be put on what type of Location
are managed by this service.
1.1. Requirements Overview
The required and demanded functionality of the Common Service is comprised by the issues tracked in GitHub issue tracker. All open issues that are assigned to an upcoming milestone are accepted for implementation and will likely be implemented and released.
Open pending issues
All functionality that is currently included, has already been implemented have issues assigned that are closed. A list of all closed issues with their resolved milestone release is shown below. Notice that issues may be closed but the implementation has been rejected.
Closed issues, either implemented or rejected:
Issue ID | State | Assigned Milestone | Title |
---|---|---|---|
86 | closed | 2.0.0 | Upgrade to SpringBoot 2.7.0 |
83 | closed | 2.0.0 | Fix sonar build - cause of MapStruct and JaCoCo |
81 | closed | 1.7.0 | Add API to update a Location |
80 | closed | 1.7.0 | Add API to add a Location |
78 | closed | 1.7.0 | Add an arbitrary sort index field to the Location |
77 | closed | 1.7.0 | Provide async API to lock for empty Locations |
76 | closed | 1.7.0 | When a TU is moved the actualLocation of the children is not moved |
75 | closed | 1.7.0 | Extend API to search a Location by ERP Code |
74 | closed | 1.7.0 | Migrate to latest Dozer version (6.x) |
70 | closed | 1.7.0 | Migrate from TravisCI to Github Actions |
69 | closed | 1.7.0 | Offer simple API to read LocationTypes |
66 | closed | 1.7.0 | Entities LocationGroup and Location miss some setters |
65 | closed | n/a | Can UI display interface be provided ? |
64 | closed | 1.7.0 | Migrate to Spring Boot 2.3.7 |
63 | closed | 1.7.0 | Dead Letter Queue handling of poising messages |
62 | closed | n/a | Could you please give me a detailed document on openwms |
60 | closed | 1.7.0 | Extend Location about tags |
59 | closed | 1.7.0 | A Location should be able to hold Products directly |
58 | closed | 2.0.0 | Migrate to latest SpringBoot 2.6.x & Java 17 |
56 | closed | 1.6.0 | Move to SpringBoot 2.3 |
55 | closed | 1.6.0 | Location should groupable |
54 | closed | 1.7.0 | Configuration must be changeable without restarts |
50 | closed | 1.6.0 | Propagate updates on TransportUnitType changes |
49 | closed | 1.6.0 | Introduce Accounts |
47 | closed | 1.5.0 | Provide a request interface |
46 | closed | 1.5.0 | Remove all transitive dependencies from the client jar |
43 | closed | 1.5.0 | Static assigned query params cannot be accessed over Feign |
42 | closed | 1.5.0 | Make it an extendable service |
40 | closed | n/a | Implement API Security |
38 | closed | 1.5.0 | Improve API documentation |
37 | closed | 1.4.0 | Track changes on TransportUnits |
35 | closed | 1.4.0 | Replace Hystrix with resilience4j |
32 | closed | 1.4.0 | Generate DB schema within build |
27 | closed | 1.4.0 | Tests shall run in isolation |
26 | closed | 1.4.0 | Ensure software architecture in tests |
22 | closed | 1.4.0 | Expose Targets through an API |
19 | closed | 1.4.0 | Enable ability to run without config server |
18 | closed | 1.4.0 | Fix Jacoco code coverage |
17 | closed | 1.4.0 | Migrate to JUnit5 |
14 | closed | 1.4.0 | A LocationGroup can be locked by its own |
13 | closed | 1.3.0 | RemovalListener mechanism not working in a distributed environment |
12 | closed | n/a | Provide DI exporter |
7 | closed | 1.2.0 | Propagate at least Move events |
3 | closed | n/a | Implement simplest stock allocation strategy |
2 | closed | n/a | Get logstash running with Heroku |
1 | closed | 1.2.0 | Add demo data |
1.2. Quality Goals
Priority | Characteristic | Scenario | Activity | Risk |
---|---|---|---|---|
HIGH | Interoperability | The service must be operated in a service mesh of services of arbitrary technologies | The service API is implemented with HTTP and JSON exchange format | — |
HIGH | Performance | The service must respond in less than 100ms | This needs to be considered with the choice of the persistency mechanism | Scalability: Increasing datasets could have an impact |
MEDIUM | Accessability | The service may run in a multi-tenant environment and all functions must be aware of multi-tenancy | All API functions, services and persistency mechanisms must be aware of the tenant | Performance: With increasing tenants this could have a negative impact on the performance with regarding data isolation |