{"id":1078,"date":"2012-07-27T16:16:39","date_gmt":"2012-07-27T15:16:39","guid":{"rendered":"http:\/\/iamwcew.fr.oracle.com\/blog\/?p=1078"},"modified":"2012-07-27T16:16:39","modified_gmt":"2012-07-27T15:16:39","slug":"webcenter-sites-flex-family-meta-model","status":"publish","type":"post","link":"https:\/\/gpmfactory.com\/index.php\/2012\/07\/27\/webcenter-sites-flex-family-meta-model\/","title":{"rendered":"WebCenter Sites Flex Family Meta-Model"},"content":{"rendered":"<p>Version of this post: 0.3<\/p>\n<p>The first document tries to give a representation of the <strong>Flex Family meta-model<\/strong>.<br \/>\nthe second one gives an exemple of implemation of a specific Data Model.<br \/>\nIt&rsquo;s basic at this stage, and I&rsquo;ll document more in depth, especially for the mapping between meta-model and a Custom model to be implemented.<br \/>\nA clear understanding of Flex Family is important in data Modeling, especially, the metamodel is useful to give ideas on relationship cardinality between entities<br \/>\nThe document can be used as a base for a skills transfert to a partner, for instance, or in the context of a workshop with a customer.<\/p>\n<p>A Flex Family allows implementing a functional domain. We can say that, given a Conceptual model to be implemented, we&rsquo;ll use the Flex Family Maker which allows\u00a0\u00a0as many entities as needed through the concept of <em>Asset<\/em> and <em>Parent Asset.<\/em><\/p>\n<p>Physically, we must be aware that numerous relationnal tables can be generated\u00a0during this process in the underlying database.<\/p>\n<h5>Rules that can be deduced from the model<\/h5>\n<ul>\n<li>A flex family can have one or more <em>Parent Definition Asset Type<\/em>.<\/li>\n<li>A <em>Definition Asset Type<\/em> is a container for <em>Parent Asset Type<\/em> and <em>Asset Type<\/em><\/li>\n<li>The different <em>Parent dDefinitions<\/em> are visible in the scope of a <em>Parent definition Type<\/em><\/li>\n<li>A <em>Parent Asset Type<\/em> is a Container for <em>Asset Type<\/em><\/li>\n<li>We can define multiple <em>Asset type<\/em> inside a <em>parent Asset Type<\/em><\/li>\n<li>An <em>asset type<\/em> is in the scope of one and only one <em>Parent Asset Type<\/em><\/li>\n<li>It&rsquo;s possible to create multiple <em>Definition Asset Type<\/em> within a <em>Parent definition Asset Type<\/em><\/li>\n<li>A <em>Definition Asset<\/em> (Created with start menu) is attached to one and only one <em>Definition Asset Type<\/em><\/li>\n<li><em>\u00a0An\u00a0<em>Asset Type<\/em>\u00a0is in the scope of one and only one\u00a0<em>Parent Asset Type<\/em><\/em><\/li>\n<\/ul>\n<h5>Other observations<\/h5>\n<ul>\n<li>A <em>Definition Asset<\/em>\u00a0(created with a start menu) acts as a subtype for an <em>Asset Type<\/em><\/li>\n<li>The scope of a<em>\u00a0Definition Asset <\/em>is the<em> Parent Definition Type.<\/em> That means that a given <em>Definition Asset<\/em> will not be usable for an <em>Asset Type<\/em> defined in an other <em>Parent Definition Type<\/em> of the same <em>Flex Family<\/em>.<\/li>\n<li>A <em>Parent Asset Type<\/em> acts as scope of valid values for a parent during contribution<\/li>\n<li>A <em>Parent asset<\/em>\u00a0instance is created in contribution mode.<\/li>\n<li>An <em>Asset<\/em>\u00a0instance is created in contribution mode. If some parents are defined in the choosed <em>Definition Asset<\/em>, then the values proposed (in a drop Box for instance) will be in the scope of the <em>Parent Asset Type<\/em> owner of the given <em>Asset Type<\/em>\u00a0. \u00a0It can be a way to implement a filter for allowed values of parents. (Note:\u00a0<em>a sample will be given later<\/em>)<\/li>\n<li>Each new object (<em>Parent Definition Asset Type, Definition Asset Type, Asset Type, Parent Asset Type, Definition Asset Type<\/em>) \u00a0results in the creation of 9 to 11 tables<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Version of this post: 0.3 The first document tries to give a representation of the Flex Family meta-model. the second one gives an exemple&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,10],"tags":[40,75,92,108],"ppma_author":[150],"class_list":["post-1078","post","type-post","status-publish","format-standard","hentry","category-dev","category-notes","tag-cms","tag-model","tag-sites","tag-webcenter"],"authors":[{"term_id":150,"user_id":1,"is_guest":0,"slug":"admin8700","display_name":"Patrick","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/209d5ed69b74d288390621ab4c1d3773?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts\/1078","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/comments?post=1078"}],"version-history":[{"count":0,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/posts\/1078\/revisions"}],"wp:attachment":[{"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/media?parent=1078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/categories?post=1078"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/tags?post=1078"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/gpmfactory.com\/index.php\/wp-json\/wp\/v2\/ppma_author?post=1078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}