Changes for page Exercises

Last modified by Carlijn Kokkeler on 2022/10/19 13:32

From version 14.1
edited by Carlijn Kokkeler
on 2022/10/19 12:29
Change comment: There is no comment for this version
To version 7.1
edited by Carlijn Kokkeler
on 2022/09/30 09:54
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -13,92 +13,68 @@
13 13  
14 14  == 3. CDM, CDM & system message, message mapping ==
15 15  By following the steps below, you should gain a better understanding of the differences between CDM, CDM messages, and system messages.
16 +
17 +== 3.1 Creating a CDM ==
18 +Please add the following entities and attributes to your CDM:
19 +
20 +* Person, with attributes ID, Name, and Email
21 +* PlatformCourse, with attributes ID and Name
16 16  
17 -* Creating a CDM
18 - Please import the file Order.xsd in your CDM. The code for this file can be found in section 4. Code for xsd files.
19 -* Creating a CDM message
20 - Now, go to your CDM message and select Order as root entity.
21 - Add all other entities and attributes from Order.xsd, which were imported into the CDM, to your CDM message definition.
22 -* Creating a system message
23 - In one of your System messages, import the file TransportOrder.xsd. The code for this file can be found at the bottom of this page.
24 -* Creating a CDM message
25 - Select CreateOrder as root entity and add all other entities and attributes to your system definition.
26 -* Complete message mapping
27 - Now that you have completed these steps, go to Message mapping and complete the mapping.
28 28  
29 -The solutions to these exercises can be found [[here>>doc:Main.eMagiz Academy.Use Cases.Data modeling in Design.Exercises.Solutions.WebHome||target="blank"]].
24 +One person has access to many platform courses. It should look like the following:
30 30  
31 -== 4. Code for xsd files ==
32 -Order.xsd:
33 - {{code language="xml"}}
34 -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
35 - xmlns="http://www.carlijnsplatform.com/ns/capetms/cdm/1.0/"
36 - attributeFormDefault="unqualified"
37 - elementFormDefault="qualified"
38 - targetNamespace="http://www.carlijnsplatform.com/ns/capetms/cdm/1.0/">
39 - <xs:complexType name="Order">
40 - <xs:sequence>
41 - <xs:element name="Date" type="xs:dateTime"/>
42 - <xs:element name="OrderId" type="nonEmptyString"/>
43 - <xs:element name="Customer" type="Customer"/>
44 - <xs:element name="PickupAddress" type="PickupAddress"/>
45 - <xs:element name="DeliveryAddress" type="DeliveryAddress"/>
46 - <xs:element maxOccurs="unbounded" name="OrderLine" type="OrderLine"/>
47 - </xs:sequence>
48 - </xs:complexType>
49 - <xs:complexType name="Customer">
50 - <xs:sequence>
51 - <xs:element name="Name" type="nonEmptyString"/>
52 - <xs:element name="Email" type="nonEmptyString"/>
53 - </xs:sequence>
54 - </xs:complexType>
55 - <xs:complexType name="PickupAddress">
56 - <xs:sequence>
57 - <xs:element name="Name" type="nonEmptyString"/>
58 - <xs:element name="Street" type="nonEmptyString"/>
59 - <xs:element name="StreetNumber" type="nonEmptyString"/>
60 - <xs:element name="PostalCode" type="nonEmptyString"/>
61 - <xs:element name="City" type="nonEmptyString"/>
62 - <xs:element name="Country" type="nonEmptyString"/>
63 - </xs:sequence>
64 - </xs:complexType>
65 - <xs:complexType name="DeliveryAddress">
66 - <xs:sequence>
67 - <xs:element name="Name" type="nonEmptyString"/>
68 - <xs:element name="Street" type="nonEmptyString"/>
69 - <xs:element name="StreetNumber" type="nonEmptyString"/>
70 - <xs:element name="PostalCode" type="nonEmptyString"/>
71 - <xs:element name="City" type="nonEmptyString"/>
72 - <xs:element name="Country" type="nonEmptyString"/>
73 - </xs:sequence>
74 - </xs:complexType>
75 - <xs:complexType name="OrderLine">
76 - <xs:sequence>
77 - <xs:element name="PackageUnit" type="nonEmptyString"/>
78 - <xs:element name="Quantity" type="xs:long"/>
79 - <xs:element name="Description" type="nonEmptyString"/>
80 - <xs:element name="Weight" type="xs:decimal"/>
81 - </xs:sequence>
82 - </xs:complexType>
83 - <xs:simpleType name="nonEmptyString">
84 - <xs:restriction base="xs:string">
85 - <xs:minLength value="1"/>
86 - </xs:restriction>
87 - </xs:simpleType>
88 - <xs:element name="Order" type="Order"/>
89 -</xs:schema>
90 -{{/code}}
26 +[[image:Main.Images.Usecase.WebHome@data-modeling-in-design-exercises--adding-attributes-entities-CDM.png]]
27 +
28 +== 3.2 Creating a CDM message ==
29 +Now, go to your CDM message and add the Person and PlatformCourse to your message definition, including all attributes. It should look like the following:
30 +
31 +[[image:Main.Images.Usecase.WebHome@data-modeling-in-design-exercises--adding-message-definition-CDM-message.png]]
32 +
33 +== 3.3 Creating a system message ==
34 +In System message, create the following entities and attributes:
35 +
36 +* User, with attributes ID and Name
37 +* Course, with attributes ID and Name
38 +
39 +
40 +One user has access to many courses. It should look like the following:
41 +
42 +[[image:Main.Images.Usecase.WebHome@data-modeling-in-design-exercises--adding-attributes-entities-system-message.png]]
43 +
44 +Now, remove the attribute Name in Course by using the Toggle canvas edit mode. It should result in the following:
45 +
46 +[[image:Main.Images.Usecase.WebHome@data-modeling-in-design-exercises--remove-attribute-system-message.png]]
47 +
48 +== 3.4 Complete message mapping ==
49 +
50 +Now that you have completed these steps, go to Message mapping and complete the mapping.
51 +
52 +[[image:Main.Images.Usecase.WebHome@data-modeling-in-design-exercises--complete-message-mapping.png]]
53 +
54 +== 4. Assignment ==
55 +
56 +Navigate to Design and open the message definition option of at least one integration within your project.
57 +This assignment can be completed within the (Academy) project that you have created/used in the previous assignment.
58 +
91 91  == 5. Key takeaways ==
92 92  
93 -* The CDM holds all entities and attributes that are relevant within the context of your complete integration landscape.
94 -* The CDM message is tailor-made for a specific piece of data and only holds the entities and attributes relevant for that piece of data.
95 -* A system message is specific to a system.
61 +* A message definition is a visual representation of how the elements are related to each other, whether they are mandatory and the data types they have that can be used in the message mapping
62 +* Some message definitions are specific to a system. Others are generic across systems
96 96  
97 97  
65 +
98 98  == 6. Suggested Additional Readings ==
99 99  
100 -If you are interested in this topic and want more information on it please read the help text provided by eMagiz.
68 +If you are interested in this topic and want more information on it please read the help text provided by eMagiz. Furthermore check out these links if you want a more in-depth knowledge of the eMagiz data models:
101 101  
70 +* [API Gateway model](crashcourse-api-gateway-api-data-model.md)
71 +* [Understanding the eMagiz CDM](crashcourse-messaging-what-is-cdm.md)
72 +* [Event Streaming data model](intermediate-configuring-event-streaming-data-model.md)
102 102  
74 +== 7. Silent demonstration video ==
103 103  
76 +This video demonstrates a working solution and how you can validate whether you have successfully completed the assignment.
77 +
78 +{{video attachment="crashcourse-platform-design-what-is-a-message-definition.mp4" reference="Main.Videos.Microlearning.WebHome"/}}
79 +
104 104  )))((({{toc/}}))){{/container}}{{/container}}