Visibility Redesign
From UG
(→SA Notes) |
(→SA Notes) |
||
Line 51: | Line 51: | ||
== SA Notes == | == SA Notes == | ||
- | In order for user | + | === Visibility criteria === |
+ | In order for user X to see CT record#Y specific '''Visibility criteria''' should be satisfied. | ||
'''Visibility criteria''' is a logical condition (Database Query String) expressed in terms of constraints on values of specific CT fields. It is similar to defining some filters before generating report. | '''Visibility criteria''' is a logical condition (Database Query String) expressed in terms of constraints on values of specific CT fields. It is similar to defining some filters before generating report. | ||
- | Example | + | '''Example.''' |
+ | |||
Business requirement: | Business requirement: | ||
- | * User A should | + | * User A should only see shipments from Shipper "Multiplast" to Consignee "COTY". |
To satisfy this requirement Visibility criteria should be: | To satisfy this requirement Visibility criteria should be: | ||
- | * [[Ct#Shipper]] = | + | * ([[Ct#Shipper]] = "Multiplast") AND ([[Ct#Consignee]] = "COTY") |
+ | === 3 ways to define Visibility criteria for a user === | ||
- | I see 3 ways to define Visibility criteria for user. All or just some could be implemented. | + | I see 3 ways to define Visibility criteria for a user. All or just some could be implemented. |
* '''Through User Profile.''' Visibility criteria could be defined right in the individual user profile. | * '''Through User Profile.''' Visibility criteria could be defined right in the individual user profile. | ||
- | * '''For a group of users.''' Visibility Criteria could be defined for a group of users. First, group of users would be selected based on some filters and then Visibility Criteria could be applied to them. | + | * '''For a group of users.''' Visibility Criteria could be defined for a group of users. First, group of users would be selected based on some set filters and then Visibility Criteria could be applied to them. |
- | * '''Visibility Templates a.k.a. Visibility Groups.''' Visibility Criteria could be saved as a Visibility Template so that later it could be used to apply to other users with the same visibility. | + | * '''Through Visibility Templates a.k.a. Visibility Groups.''' Visibility Criteria could be saved as a Visibility Template so that later it could be used to apply to other users with the same visibility. |
== Detailed Technical Design and Architecture == | == Detailed Technical Design and Architecture == |
Revision as of 20:35, 20 November 2010
Contents |
About
This is a project.
Parent Mantis
0002553: [*11 Alex] (SA and BA) Visibility groups
Requirements
System re-design required in the area of Record Visibility to make it more flexible and convenient to use.
CT Record Visibility (definition). It is a set of criteria that allow or prohibit any given CT2 user to see (and potentially manage) any given CT2 shipment record.
Flexibility requirement. At the moment certain non trivial cases are hard or impossible to configure. This should be resolved.
Convenience requirement. Management of visibility should be easy and fast.
Examples
Example 1.
Client Company A (E0 field on CT record) has users that may want to see more than only "their" company, however, they only need to see a "portion" of the other company based on some criteria (for example "only" ocean shipments from Europe).
Example 2.
Maticplast Users (possible choices):
- Client Maticplast
- as defined by E0
- From Maticplast "to COTY"
- shipper (maticplast) AND consignee (COTY)
- from Maticplast to "EA"
- shipper (maticplast) AND consignee (Elizabeth Arden, CEI, Kolmar, Evergreen etc)
- From "Maticplast" (to "client")
- shipper (maticplast) AND E0 Client "Elizabeth Arden"
- From "Maticplast" (to all)
- shipper (maticplast)
Note: (maticplast) could be multiple addresses (one in Rome, one in Milan, one in Naples)
Design Ideas
SA Notes
Visibility criteria
In order for user X to see CT record#Y specific Visibility criteria should be satisfied.
Visibility criteria is a logical condition (Database Query String) expressed in terms of constraints on values of specific CT fields. It is similar to defining some filters before generating report.
Example.
Business requirement:
- User A should only see shipments from Shipper "Multiplast" to Consignee "COTY".
To satisfy this requirement Visibility criteria should be:
- (Ct#Shipper = "Multiplast") AND (Ct#Consignee = "COTY")
3 ways to define Visibility criteria for a user
I see 3 ways to define Visibility criteria for a user. All or just some could be implemented.
- Through User Profile. Visibility criteria could be defined right in the individual user profile.
- For a group of users. Visibility Criteria could be defined for a group of users. First, group of users would be selected based on some set filters and then Visibility Criteria could be applied to them.
- Through Visibility Templates a.k.a. Visibility Groups. Visibility Criteria could be saved as a Visibility Template so that later it could be used to apply to other users with the same visibility.
Detailed Technical Design and Architecture
Scope
Visibility Management for the following types of users is out of scope of this project:
- Jaguar users
- Non-Jaguar users with Shipper and Planner roles
How to define visibility for a group of users
To define usability for a group of users follow these steps:
- go to User List - see #Figure 1 User List
- select appropriate user using filters or search
- select them
- click "Define Visibility"
- system will produce pop-up #Figure 2 Define visibility panel
- select VG or filters
- click "Apply criteria"
Managing VG Visibility Group
Validation
System should verify and produce error if new VG is equivalent to existing one.
How to view or manage visibility for a single user
Data Migration
After new model is deployed potentially we will need to fix some existing users and shipment records.
Remaining Questions
- do we want to allow to define visibility through filters outside of VG?
- do we want to let edit filters inside user profile or leave them just read only?
- do we want to give user a choice how to connect visibility strings by OR or by AND (now for simplicity we allow OR only)
- need usability study to clarify above
- additional visibility filters to be defined
- Client Company E0 entity should be clearly defined in a business sense. At the moment it seems to be used for several unrelated reasons: company that initiates order (CT), company that we bill for the order, company that has a visibility to the CT.
- Shipper and Consignee should be also clearly defined.
- How to deal with complexity of Shipper company defined multiple times in Company-City pairs?
- should we add Visibility Management for the following types of users ?
- Jaguar users
- Non-Jaguar users with Shipper and Planner roles