Designing the subcase hierarchy
3 Tasks
1 hr
Scenario
Metro Delivery Company (MDC) is a B2B company that specializes in delivering same-day intracity shipments from registered business partners to their destinations. Truck vendors register with MDC to provide pickup and delivery of the packages to facilitate this service.
Analyze the following key requirements for this application:
- Processes
After the approval of vendor registration, the respective truck service and truck for each city must undergo review by the individual city managers. The city managers provide their feedback in parallel and give the necessary approval. - Extensibility
MDC's processes should be flexible enough to support new cities as the company expands its presence beyond its current location.
The following table provides the credentials you need to log in to the Delivery Service application. However, this challenge is mainly meant for evaluating the design options, and there are no specific implementation tasks.
Role | User name | Password |
---|---|---|
Admin | admin@deliveryservice | rules |
Detailed Tasks
1 Identify design options
There are two possible approaches to this requirement. Note that locking contention must be carefully considered in both design options to avoid any issues.
Create a top-level Case and use a Split for Each shape
For each Truck Service of a given city, use an advanced Split for Each shape (Create assignment), and then assign it to the respective city manager. If an Assignment is created for each city manager and assigned with the Split for Each shape, optimistic locking can solve the problem. However, this approach may result in data loss if parallel assignment submissions occur, leading to a poor user experience. Additionally, while this approach can handle data security, RBAC/ABAC cannot help managing it.
Create a child Case
For each truck service in a given city, create a child Case and assign the Case to the respective city manager for approval. If you select the "Allow one user" locking option on the parent case type and "Allow other users to access parent case when the child case is opened" locking option on the child case type, city managers can access the child cases and provide review and approval in parallel. In this option, the ProcessFlowDependencies agent handles Case dependency. Appropriate RBAC/ABAC conditions can also help manage the security of the data between Cases related to different cities.
2 Evaluate design options
Review the pros and cons for each design option in the following table:
Design | Pros | Cons |
---|---|---|
Create a top-level Case and use a Split for Each shape |
|
|
Create a child Case |
|
|
3 Recommend the best design option
A child Case for approving truck service during the registration of the truck vendor best suits the requirement for the following reasons:
- Application locking requirements are fully satisfied.
- UI requirements are easier to satisfy.
- A child Case for the truck service design has greater specialization potential.
Confirm your work
Available in the following mission:
Want to help us improve this content?