Left: | ||
Right: |
OLD | NEW |
---|---|
1 Author Udo Spallek (virtual things) | 1 Author Udo Spallek (virtual things), gsp |
2 | 2 |
3 Structuring Parties | 3 Structuring Parties |
4 ################### | 4 ################### |
5 | 5 |
6 This document tries to show a bigger picture of structuring parties. | 6 This document tries to show a bigger picture of structuring parties. |
7 Tryton uses a singular container for all party entities of the | 7 The party model is a single 'container' for all party entities of the |
8 whole enterprise environment. So it could be useful to begin to | 8 whole enterprise environment. So it could be useful to begin to |
9 differentiate parties in many ways. | 9 differentiate parties in many ways. |
10 | 10 |
11 | 11 |
12 Party Types | 12 Party Types |
13 +++++++++++ | 13 =========== |
14 | 14 |
15 Module name: party_type | 15 Module name: party_type |
16 | 16 |
17 This conception introduces a general party type attribute to | 17 This concept introduces a general party type attribute to |
18 Tryton parties. The two main party types are: | 18 Tryton parties. The two main party types are: |
19 | 19 |
20 * Person | 20 * Person |
21 * Organization | 21 * Organization |
22 | 22 |
23 A party must be determined as one of these exclusive types. | 23 A party must be determined as one of these exclusive types. |
24 | 24 |
25 Each party type can restrict some individual attributes to persons or | 25 New attributes may be added, but restricted to certain party types, in |
26 organizations. Parties with type person are endued with some | 26 order to differentiate between and adequately represent Persons and |
27 Organizations. Parties with type Person for instance are endued with some | |
27 detailing attributes for refined searches or greetings in documents. | 28 detailing attributes for refined searches or greetings in documents. |
28 Additional fields for parties with type 'Person' are: | 29 Additional fields for parties with type 'Person' are: |
29 | 30 |
30 * First-Name | 31 * First-Name |
31 * Gender | 32 * Gender |
32 | 33 |
33 The provided model should be easily extensible to other general types | 34 The provided model should be easily extensible to other general types |
34 e.g. sub-typing organizations into 'Legal Organization' (e.g. company, | 35 e.g. sub-typing organizations into 'Legal Organization' (e.g. company, |
35 agency, financial institution aka bank...) or 'Informal Organization' | 36 agency, financial institution aka bank...) or 'Informal Organization' |
36 (e.g. household, family, user group...) | 37 (e.g. household, family, user group...). |
37 | 38 |
38 In the later use in this document the term 'organization' stands as an | 39 For the remainder of this document the term 'Organization' stands as an |
39 abbreviation for 'a party typed as organization'. The term 'person' stands | 40 abbreviation for 'a party with party type organization'. The term 'Person' stand s |
40 as an abbreviation for 'a party typed as person' | 41 as an abbreviation for 'a party with party type person'. |
41 | 42 |
42 | 43 |
43 Caveat | 44 Caveat |
44 ====== | 45 ====== |
45 | 46 |
46 The party type conception should not be confused with a conception | 47 The party type concept should not be confused with a concept |
47 of party roles. Party roles are for example Customer, Partner, Supplier, | 48 of party roles. Party roles are for example Customer, Partner, Supplier, |
48 Salesmen, Employee, Internal Company, Father, Mother, Competitor... | 49 Salesmen, Employee, Internal Company, Father, Mother, Competitor... |
49 Differences between party role and a party type: | 50 Differences between party role and a party type: |
50 | 51 |
51 * Party types are not depending on time | 52 * Party types do not depend on time |
52 * Party roles may change over time | 53 * Party roles may change over time |
53 * A party must have one and only one type | 54 * A party must have one and only one type |
54 * A party can have many party roles, or not. | 55 * A party can have many party roles, or none at all. |
55 | 56 |
56 Party roles will not discussed further in this conception, but later in another | 57 Party roles will not be discussed any further in this blueprint, but later |
57 document. | 58 in another document. |
58 | 59 |
59 | 60 |
60 Roll-up Parties | 61 Roll-up Parties |
gsps
2010/08/19 20:19:57
Proposal:
Rename 'roll-up parties' to 'complex' or
udono
2010/08/19 20:36:47
Done.
yangoon1
2010/08/19 20:39:12
Roll-up in this context means the tree structure o
gsps
2010/08/19 21:19:39
Fair enough; are there any dictionaries or glossar
| |
61 +++++++++++++++ | 62 =============== |
62 | 63 |
63 Structural relationships between parties can be build-up in many ways. | 64 Structural relationships between parties can be built up in many ways. |
64 | 65 |
65 This conception has the goal to create the functionalities and views for | 66 The motivation behind this concept is to create generic structures |
66 generic structural relationships between parties. | 67 among or within parties. Such is functionality depending on the relationship |
67 The target question is: How to build parties which are composed of other | 68 between two parties to represent their structuring. |
68 parties. This 'composition' of parties is named 'roll-up' in the | 69 The target question therefore is: How do we build parties which are composed |
70 of other parties? This 'composition' of parties is named 'roll-up' in the | |
69 further document. | 71 further document. |
70 | 72 |
71 Claim is to provide functionality which is directly useful for | 73 The idea is providing functionality which is directly useful for the existing |
72 the existing business related modules and not to break the functionality | 74 Tryton modules and not breaking those modules thereby. |
73 of these modules. | |
74 | 75 |
75 Restriction by design for the later explained models are at first, that a | 76 One of the restrictions that are imposed by design consists in Persons being |
76 person is a prime entity atom like. A person can not be rolled-up by another | 77 atomic entities, that cannot be rolled-up by another entity of the same type. |
77 entity. (Be patient, in the next coming Frankenstein-mode of Tryton, you can | |
78 do this and other wired stuff). On the other Hand, persons could be involved | |
79 in one or more organization. | |
80 | 78 |
81 A generic roll-up of parties should use a neutral semantic. Which means the | 79 A generic roll-up of parties should use a neutral semantic. That means the |
82 roll-up of parties should usable for 'headquarters', 'departments', | 80 roll-up of parties should be usable for 'headquarters', 'departments', |
83 'subsidiaries', 'families', 'use groups', 'chat members' or | 81 'subsidiaries', 'families', 'user groups', 'chat channels' or other named |
84 other named organizational units. | 82 organizational units. |
85 | 83 |
86 | 84 |
87 Caveat | 85 Caveat |
88 ====== | 86 ====== |
89 | 87 |
90 The roll-up of parties should not be confused with a generic relationship | 88 The roll-up of parties should not be confused with the concept of generic |
91 conception, which should be able to relate any party of any party type in a | 89 relationships, which would be able to relate any party of any party type in a |
92 network like structure. | 90 network like structure. |
93 | 91 |
94 Generic party relationships will not discussed further in this conception, but | 92 Generic party relationships will not be discussed any further in this |
95 later in another document. | 93 conception, but later in another document. |
96 | 94 |
97 | 95 |
98 Roll-up Organizations | 96 Roll-up Organizations |
99 ===================== | 97 ===================== |
100 | 98 |
101 Module name: party_rollup_organization | 99 Module name: party_rollup_organization |
102 | 100 |
103 In this conception only organizations and their roll-up of other | 101 The concept of 'roll-up Organizations' suggests that Organizations |
104 organizations are concerned, but not Persons. Organizations can be build-up | 102 can be composed of other Organizations. This kind of grouping therefore |
105 by other Organizations. The process building up a organization structure is | 103 excludes Persons. The process building up an Organization structure like that |
106 called 'organization roll-up'. | 104 is called 'Organization roll-up'. |
107 | 105 |
108 The roll-up pattern introduced here is the strict hierarchical structuring | 106 The roll-up pattern introduced here is the strict hierarchical structuring |
109 of organizations. | 107 of Organizations. |
110 | 108 |
111 This is a design decision, since organizations also can be structured | 109 Again, this is a design decision, since Organizations also could theoretically |
112 in a network or rolled-up otherwise. Anyway, the network pattern is not | 110 be structured in a network or rolled-up otherwise. However, the network pattern |
113 helpful for direct business use. Because the path from a subsident | 111 is not helpful for direct business use, as the path from a subsident |
114 organization to its headquarter organization is not unique, since each | 112 organization to its headquarter organization might not be unique. The reason |
115 organization can have many parents in a network structure. | 113 being, that each organization can have many parents when using a network |
114 structure. The business case used here is to always provide a unique path | |
115 from a subsident organization to its headquarter organization. | |
116 | 116 |
117 Organizations are ordered in a hierarchical tree structure, more exact, | 117 Organizations are ordered in a hierarchical tree structure, or to be more |
118 they are ordered in a directed graph. Each organization can have one and | 118 exacting, they are laid out in an acyclic, directed graph with a single root |
119 only one parent organization. Each organization can have one or more children | 119 node (that is, the heardquarter organization). Each Organization can have one |
120 organizations. | 120 and only one parent Organization. Each Organization can have one or more |
121 child Organizations. | |
121 | 122 |
122 In this structure, the diving through the branches and leafs of a organization | 123 In this structure, one can always find an unique path from any of the nodes |
123 tree generates always a unique path to a certain organization. | 124 (Organizations) to any of the other node, satisfying our requirement of a |
124 The big benefit is, that a certain organization is every time unequivocal | 125 'network pattern helpful for direct business use'. |
125 Its path to the root organization or to the children organizations can easily | 126 The big benefit of this is, that dependencies and routes between various |
126 be evaluated in later modules (Read at the caveat section about the | 127 Organizations can unequivocally be determined by modules that might process |
127 'price to pay' for this benefit). This can be used later e.g. for restricting | 128 this information for further applications (Read the caveat section about the |
129 drawback that comes with it). For instance it could be used to restrict | |
128 the selection of parties to parties which are in the same or in a different | 130 the selection of parties to parties which are in the same or in a different |
129 path (organization roll-up) of a given party. | 131 path (Organization roll-up) of a given party. |
130 | 132 |
131 This conception is directly usable in enterprise relevant aspects of a B2B | 133 This concept is directly applicable to enterprise relevant aspects of a B2B |
132 market. And it does not interfere with a B2C market of the same enterprise, | 134 market. And it does not interfere with a B2C market of the same enterprise, |
133 since persons are not related to this model. | 135 since Persons are not related to this model. |
134 | 136 |
135 | 137 |
136 Caveat | 138 Caveat |
137 ------ | 139 ------ |
138 | 140 |
139 Organizations which take part to more than one organization roll-up, | 141 Organizations which take part in more than one Organization roll-up, |
140 needed to be created as a unrelated duplicate. This lag must be solved in | 142 need to be created as an unrelated duplicate. This lag must be solved in |
141 another module, maybe party_relationship explained in short above. | 143 another module, maybe party_relationship explained in short above. |
gsps
2010/08/19 20:19:57
I disagree. We could easily avoid this by not crea
udono
2010/08/19 20:36:47
As I said, it is a design decision and not a limit
yangoon1
2010/08/19 20:39:12
Good point, agreed.
udono
2010/08/19 21:11:31
Here we need an abstract vector with the organizat
gsps
2010/08/19 21:19:39
I was in fact talking about a tree structure as we
| |
142 | 144 |
143 | 145 |
144 Roll-up Persons | 146 Roll-up Persons |
145 =============== | 147 =============== |
146 | 148 |
147 Module: party_rollup_person | 149 Module: party_rollup_person |
148 | 150 |
149 An organization is usually a grouping structure, which is finally made | 151 An organization usually is a grouping structure, which is ultimately made |
150 up of persons. One organization can involve none ore more persons. A | 152 up of persons. One Organization can involve none or more Persons. A single |
151 singular person is involved in none or more organizations. This is the | 153 Person can be involved in an arbitrary number of Organizations. This is the |
152 reason why the roll-up of organizations and persons is divided in two | 154 reason why the roll-up of Organizations and Persons is divided in two |
153 parts. Think of a salesmen or agent who works for different companies. | 155 parts. Think of a salesman or an agent who works for multiple companies. |
154 | 156 |
155 A person can be addressed indirect as a member of one or another | 157 A Person can be addressed indirectly as a member of one or another |
156 organization (B2B market). And a person can be addressed directly, without an | 158 Organization. And a Person can be addressed directly, without an |
157 organization included (B2C market). | 159 Organization included. |
158 | 160 |
159 | 161 |
160 Caveat | 162 Caveat |
161 ------ | 163 ------ |
162 The path to a person is not unique, since a person can be member of many | 164 The path to a Person is not unique, since a Person can be member of many |
163 organizations and additionally accessed directly. To unique reference | 165 Organizations and even accessed directly. To uniquely refer to a Person in |
164 a person in an organization roll-up a vector is needed, with the | 166 an Organization roll-up a vector with the dimensions 'person(.id)' and |
165 dimensions: person(.id), organization(.id). | 167 'organization(.id)' is needed. |
166 Referencing a person directly always mean referencing the person party | 168 Referencing a Person directly always means refering to the Person party |
167 not embedded in an organizational structure. | 169 in the context of none or more organizations. |
168 | 170 |
169 | 171 |
170 Examples | 172 Examples |
171 ++++++++ | 173 ======== |
172 | 174 |
173 The following examples make use of ASCII arts, so be sure to have a mono spaced | 175 The following examples make use of ASCII arts, so be sure to have a mono spaced |
174 font enabled. Included Modules: | 176 font enabled. Included modules: |
175 | 177 |
176 * party_type | 178 * party_type |
177 * party_rollup_organization | 179 * party_rollup_organization |
178 * party_rollup_person | 180 * party_rollup_person |
179 | 181 |
180 | 182 |
181 Standard Party List: | 183 Standard Party List: |
182 |-----------------|-----------|--------|--------------|-------------------- | 184 |-----------------|-----------|--------|--------------|-------------------- |
183 |Name |First-Name | Gender | Party Type | Parent Organisation | 185 |Name |First-Name | Gender | Party Type | Parent Organisation |
184 |-----------------|-----------|--------|--------------|-------------------- | 186 |-----------------|-----------|--------|--------------|-------------------- |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
237 | v ACME - Invoicing | | 239 | v ACME - Invoicing | |
238 | v ACME - Legal | | 240 | v ACME - Legal | |
239 | Conner, Susan | | 241 | Conner, Susan | |
240 | Conner, Susan | | 242 | Conner, Susan | |
241 | Doe, John | | 243 | Doe, John | |
242 | v Duff Brewery | | 244 | v Duff Brewery | |
243 | Conner, Susan | | 245 | Conner, Susan | |
244 | Doe, John | | 246 | Doe, John | |
245 |-------------------------------| | 247 |-------------------------------| |
246 | 248 |
OLD | NEW |