Content Model Manager (copy for Zarogina/Ian testing) (copy)

Introduction (copy)

Model Manager User Interface (UI)

Click the 'play' button on the video below to learn about this course.


Content Modeling Methods (copy)

Traditional Content Model Construction with XML

Traditional Modeling and Model Components

Traditionally in Alfresco, a content model:

  • is multiple XML documents Content models. 
  • allows us to describe the structure and any associations between individual pieces of content. 
  • contains a set of related and coherent definitions. 
  • is deployed as a unit.

Key Takeaway: Content Modeling in XML is difficult and technical.

Required Content Model Components

The required components of an XML content model include:

  • data type
  • content type
  • properties
  • aspects
  • constraints
  • optionally associations

Each of these components essentially uses and represents metadata, or “data about data.” It’s this metadata that defines all of the relationships and structure for your ECM content in the repository.

Key Takeaway:  XML Structurer and Rules are very important in XML Modeling

Stringent Requirements of XML Models

It’s important to get each component of an XML content model correct, because there are several risks involved if you don’t:

  • you can “break” your server rendering it unable to start up
  • improper configuration in XML causes serious errors

Caution: Content models using XML are very technical in nature, and should not be attempted unless you have an advanced skill set with Alfresco, because there can be very nuanced and subtle deployment considerations.

Key Takeaway: Content Modeling in XML can be dangerous and error-prone and should only be attempted in a controlled test environment first.

User Interface Model Construction

Dynamic Modeling

Dynamic models allow developers: 

  • the ability to define models using XML
  • to dynamically upload the model into the content repository and have it read 
  • upload without the need to restart the server

Key Takeaway: Put simply, dynamic models allow you to use content models “on the fly” in the repository.

While dynamic modeling is definitely useful, XML poses some special difficulties:

  • First, XML content models only address how the model is built structurally
  • doesn’t address how that model gets “shown” to the end-user
  • it does not allow developers the ability to control the presentation of your forms or content.
  • Developers need to deploy their models manually
  • complete server restarts
  • a host of other administrative duties.

Key Takeaway: For these reasons, dynamic modeling only offers part of the solution to the natural issues that an XML-based content repository can bring up.

Model Manager fix those problems as depicted in the table below. 

The Model Manager is designed to:

  • hide technical details that would confuse or complicate normal content model creation.
  • prevent many of the XML-based and IT-related issues that can arise with the traditional method of creating content models in Alfresco.
  • reduce  the need for the involvement and control of IT departments
  • provide designated users a way to create and deploy content models
  • allow End Users to define, edit or capture:
    • types
    • properties
    • aspects
    • and the associated metadata 

Key Takeaway: Model Manager is designed for ease of use and is geared toward a Business Analyst or a Developer that wants to create a quick model without all the head aches of XML.

Modeling Methods: XML vs. User Interface

Methods Comparison

While XML-based content model development:

  • has many advantages,
  • completed and deployed by highly-technical developers and administrators

Model Manager-based content model development: 

  • allows for Business Analysts to define and edit content models
  • quick content modeling capabilities
  • rules and structure contained in the UI

Take a Moment to review the chart below!

Key Takeaway: Model Manager alleviates the need for a Business Analyst to be XML literate and to understand the rules and structure of a content model. 

Content Model Construction (copy)

Planning and Designing a New Content Model

Note:  This lesson is meant to be interactive. In various parts of this lesson are narration controls. Click the narration where appropriate and when complete, move to the next.

Content Model Planning

Things to consider when planning a content model:

  • Don't take planning lightly.
  • Content models define how content will be used and by whom.
  • Content models define how content is structured in the content repository.
  • ​Content is being stored in Alfresco, but what do you do with it before you start uploading?
    • Create a custom Content Model.
    • Alfresco's standard Content Model will likely meet basic business needs

Content Models should focus on the essentials for a collaborative environment:

  • Specific workflow
  • Content sharing
  • Metadata

We have created a scenario, which will give you predefined criteria for the content model during this training.

Key Takeaway:  Plan content models appropriately focusing on the essentials of workflow, content sharing, and metadata.

Predefined Content Model Scenario

Fictional Company: Colt Automotive

The following events occurred and tasks have been assigned:

  1. The Network Administrator just installed and configured Alfresco One 5.1
  2. The Business Analyst are tasked with building a Content Model in Model Manager.

Constraints defined from a business need:

Name of  Constraint: Plant List 

  • Addresses one of the three Colt Automotive plants in:
    • Atlanta, Georgia
    • Tokyo Japan
    • London England

Why the Constraint is needed: Anytime someone loads a Plant List they must use a drop-down list and select the location associated with the document. 

Custom Content Type defined from a business need:

Name of Type: Vehicle Type List

Why the Type is needed:  The cm:content Type is not specific enough to capture what we need in our repository.

  • Properties defined for this type: 
    • Vehicle Manufacturer
    • Class of Vehicle
    • Manufacturer’s Model Name

Aspect defined from a business need:

Name of Aspect: Sales Manager Review 

Why is the aspect needed: Starts the workflow of the Sales Manager reviewing an order of received vehicles.

  • The Sales Manager needs to approve:
    • Person who signed for the vehicles
    • Vehicle incentives and pricing
    • Release of the vehicles at the end of the review

Key Takeaway:  Understand the input of content into the ECM and how the Content Model structures the content and applies constraints.

Now that we've introduced the scenario, you can select the Elements of a Content Model below to gain a deeper understanding.

Elements of a Content Model and Model Manager

Note: Click the narration tool bar adjacent to the Element to hear about that element. Also refer to the graphic below as you listen to the narration of that element.

Element Narration
Custom Content Types

Aspects and Properties


Searching and Indexing

Model Lifecycle

Form Designer
Importing/Exporting Models

Key Takeaway: Content Models are structured for a reason and each element plays a role in the overall function of the content model.

Lesson Summary:

Creating a Basic Model in the Model Manager (demo)

Helpful Information:

Lab 1: Plan and Create a Basic Content Model in Model Manager

Here we can see our model is 'Inactive', where would we click to make the model active?

Custom Types and Type Properties (copy)

Designing Custom Types in a Content Model using Model Manager

The Need for Individual Content Models

  • We can build a model that suits all of our needs but:
    • it would be too cumbersome to maintain
    • it would require immense power to process
  • Using the General Content Model only means:
    • we just have another file system or file sharing application!

Key Takeaway: Custom Models are built to suit specific needs and differentiates an ECM from a File Sharing application.

Business Analyst Roles in Content Modeling

  • As a Business Analyst in charge of maintaining the Alfresco Repository you would:
    • likely create a Custom Content Type at some point
    • structure content for your business needs 
    • look  for patterns and commonalities in content
  • Consider the essentials or components of a content model when analyzing content such as:
    • elements
    • attributes (metadata or  data about data) 
      • Scenario example: We have the following types of content with similar attributes:
        • text content
        • numerical content 
        • database or code-specific content

Key Takeaway: Analyze the business needs, determine the need for a Custom Content Model, and understand the essential components of a Content Model.

The Basics of Creating Custom Content Types

  • Creating a Custom Content Type that allows for:
    • uploading of these types of content 
    • consolidates properties
    • constraint of a user
    • a healthier and more robust repository when content is strictly structured 

Additional Reasons to Create a Custom Content Type

  • There are other reasons to make a custom Content Type:
    • Distinct, reusable elements  

    • Functional requirements

    • Organizational requirements

Drawing the Line between General Content Types and Custom Content Types

  • Where do you draw the line:
    • when some elements within a Type may always be optional
    • it may come down to elements or attributes are significant enough to be a separate group

Suggestion: Whenever there is a point of contention as to when a custom content type should be developed, meet with  business and reassess the need.

Key Takeaway: Custom Content types are used to make a healthier and more robust repository when content is structured properly.

The Role of Inheritance

  • The rules of Inheritance are: 
    • A Type can inherit its definition from another Type  
    • All features of the parent type are inherited including
      • properties
      • associations
      • constraint definitions
  • What is not Inherited is: 
  • the title of the Parent Type
  • the description of the Parent Type

Next, let’s go into a demonstration from the Colt Automotive Content Model

Creating a Custom Type in Model Manager (Demo)

Parent Type Reference Table

Creating Properties for a Custom Type in Model Manager (Demo)

Table 1: Data Types

Table 2: Property Requirement Options

Table 3: Multi-valued Property  and Constraint Options

Table 4: Indexing Options

Helpful Information:

Lab 2: Create Your Own Type and Custom Properties in Model Manager


Where would you click to create a type for your model?

Which of the following are valid type names?

  • col:vehicle
  • vehicle
  • salesperson
  • col:salesPerson
  • manufacturer
  • col:manufacturer

Match the data type with it's description.

  • d:text
    Specifies a text value or a character string.
  • d:mltext
    Specifies a multilingual text value where many localized representations of the text value may be held.
  • d:int
    Specifies an integer value.
  • d:long
    Specifies a long value. This type is used when a wider range than int is needed.
  • d:float
    Specifies a float value. This data type is mainly used to save memory in large arrays of floating point numbers.
  • d:double
    Specifies a double value. This data type is generally used as the default data type for decimal values.
  • d:date
    specifies a date value in the format of dd/mm/yyyy
  • d:datetime
    Specifies a date and time value
  • d:boolean
    Specifies a value which can either be true or false

Aspects and Aspect Properties (copy)

Designing Aspects in a Content Model using Model Manager

What are Aspects and why are they used?

  • Aspects are preferred over Custom Content Types 
  • Aspects are designed to span over multiple Types using the cross-cut concept 
  • Maintenance of an Aspect vs. Maintenance of a Type 
  • Aspects are not unlike Types and share similar design and creation methods

Key Takeaway: Aspects allow cross-cutting which is multiple inheritance of Types and other Aspects properties across the content model eliminating the need to create a Custom Type for every type of content and their properties.


Creating an Aspect in Model Manager (Demo)


Creating Properties for an Aspect in Model Manager (Demo)

Helpful Information:

Lab 3: Create Your Own Aspect and Aspect Properties in Model Manager

Form Layout Designer (copy)

What is the Form Layout Designer?

The final piece of the puzzle in Model Manager is taking all the hard work we put into developing Types, Aspects, Properties and Constraints and making them available to the End User in an on-screen form. We do this by using the Layout Designer (also known as the Form Layout Designer).


Building a Layout in the Form Layout Designer (Demo)

Helpful Information:

Lab 4: Build your Own Layout in the Form Layout Designer

Drag and drop the text into the correct sections in the layout designer

  • layout elements
  • properties
  • layout area

Activating/Deactivating Models and the Model Lifecycle (copy)

Activate, Validate, and Deactivate a Content Model (Demo)

Export and Import a Content Model (Demo)

Exporting a Content Model Demonstration

Importing a Content Model Demonstration


Lab 5: Change and Deactivate Your Content Model

As an Admin user, place the steps in the correct sequence in order to delete an active content model. This scenario assumes there are no Aspects.

  • Step 1:
    Click on the Admin Tools/Model Manager link.
  • Step 2:
    Click on the Models Name to open the custom types and aspects page
  • Step 3:
    Click on the 'Actions' dropdown in the 'Custom Types' section for the appropriate type.
  • Step 4:
    Click on the 'Find Where Used' link.
  • Step 5:
    In each document returned from the search click on the 'Actions' dropdown and select 'Delete Document'
  • Step 6:
    Click on the 'Trashcan' icon under your 'My Profile' link.
  • Step 7:
    Click the checkbox next to each document, then click on the 'Selected Items' dropdown and finally click 'Delete'. Click on the 'OK' button the delete the documents.
  • Step 8:
    Navigate back to the 'Model Managers' home page, click on the 'Actions' dropdown next to the models name and select 'Deactivate'.

As a user with Model Manager permissions you can search for and delete, all content that has a custom type applied.

  • That's correct, Model Managers are unable to locate or delete content belonging to other users that have a custom type applied.
  • Incorrect, users with Model Manager permissions are unable to locate or delete content that have a custom type applied that is owned by other users.