Difference between revisions of "HowTo:Design a Customizing"
m (→Mobile) |
(→Data Model) |
||
Line 27: | Line 27: | ||
= Data Model = | = Data Model = | ||
+ | |||
+ | A good way to design a data model is to create an [[https://de.wikipedia.org/wiki/Entity-Relationship-Modell|Entity-Relationship Diagram]]. It is recommended to do so in the scope of a Technical Design (see [https://wiki.augmensys.com/index.php?title=HowTo:Design_a_Customizing#Requirement%20Supply%20Chain]). | ||
== Object-oriented and relational == | == Object-oriented and relational == | ||
Line 32: | Line 34: | ||
One can use relations and references to create n:m and 1:n connections and dependencies between such entities (e.g., the relationships between invoices, invoice items and products). | One can use relations and references to create n:m and 1:n connections and dependencies between such entities (e.g., the relationships between invoices, invoice items and products). | ||
Properties with different data types can be modeled for every entity, and one such MetaClass can inherit the properties from another (e.g., there could be a MetaClass "SAFETY_INSTRUCTIONS" inheriting the "Filepath" property from a "DOCUMENT" MetaClass). | Properties with different data types can be modeled for every entity, and one such MetaClass can inherit the properties from another (e.g., there could be a MetaClass "SAFETY_INSTRUCTIONS" inheriting the "Filepath" property from a "DOCUMENT" MetaClass). | ||
+ | An important aspect in data modelling, especially for the representation in relational databases, is [https://en.wikipedia.org/wiki/Database_normalization|normalization]. | ||
== Basic data model == | == Basic data model == | ||
For a use-case to be satisfied with {{UBIK}}, we should create a basic data model for the entities involved in the relevant customer's business processes, without respect to presentation in {{UBIK}} first. | For a use-case to be satisfied with {{UBIK}}, we should create a basic data model for the entities involved in the relevant customer's business processes, without respect to presentation in {{UBIK}} first. | ||
This is because we need to rely on a correct and well-defined concept of the data on a fundamental level. | This is because we need to rely on a correct and well-defined concept of the data on a fundamental level. | ||
+ | |||
+ | In contrast, a common mistake is to start designing the data model according to the workflow one is trying to customize. There are the following problems with that: | ||
+ | * The data is not [https://en.wikipedia.org/wiki/Database_normalization|normalized] correctly, because properties are not assigned to the "true" entity in the customer's process. | ||
+ | * As a consequence, there is redundancy in the data and the data model is inconsistent with reality, leading to conceptual problems when using the data later. | ||
== Extended data model == | == Extended data model == | ||
Line 49: | Line 56: | ||
Also, {{UBIK}} comes with a lot of features one can apply to influence the behavior of (data on) the mobile client, ranging from inter-dependent tasks and work-packages to dynamic selective lists. | Also, {{UBIK}} comes with a lot of features one can apply to influence the behavior of (data on) the mobile client, ranging from inter-dependent tasks and work-packages to dynamic selective lists. | ||
+ | |||
+ | [[Category:Best Practices (internal)|Design a Customizing]] | ||
+ | [[Category:How-To|Design a Customizing]] | ||
+ | [[Category:Resources (internal)|Design a Customizing]] | ||
= Algorithm = | = Algorithm = |
Revision as of 10:59, 26 July 2023
Customizing UBIK® is a complex endeavor. In this article, we aim to provide a guide and best practices making this task as straight-forward as possible.