Metadata in Oracle Universal Content Management

Let's begin by looking in the metadata.

Exploring metadata

In case you forgot, metadata fields are there to describe the actual data such as the file name, shooting date, and camera name for a digital picture.

There're two types of metadata fields: Standard and Extended or Custom. Let's take a closer look at what they can do for us.

Standard metadata

Standard metadata is essential for the system to function. These are fields like content ID, revision ID, check-in date, and author. Let's take a quick look at all of them so you have a full picture.

Lab 2: Exploring standard metadata

Click on the Quick Search button on the top right. Yes, leave the search box blank. If you do that, you'll get all content in the repository.

In the last column on the Search Results page click on the i icon on any of the result rows. That brings up a Content Info screen.

From this screen there is no way to tell which fields are Standard and which are Extended. So how do you tell?

Explore the database

That's right. A Content Server uses a relational database, like Oracle or SQL Server to store its metadata, so let's look there.

If you are using SQL Server 2005 as your database, then open SQL Server Management Studio, and if not then bring up your SQL tool of choice.

Check the list of columns in the table called Revisions (as shown in the following screenshot):

Most of the column names in Revisions are the standard metadata fields.

Here's a list of the fields you will be using most often:

  • dID: ID of the document revision. This number is globally unique. If you have a project plan with three revisions—each of the three will have unique dID and all of them will have the same Content ID.
  • dDocName: this is the actual Content ID.
  • dDocType: content type of the document.

dDocName or Content ID is the unique identifier for a content revision set. dID is the unique identifier of each individual content revision within a set.
Being able to identify a content revision set is very useful, as it shows and tracks (makes auditable) the changes of content items over time.
Being able to identify each individual revision with dID is also very useful, so we can work with specific content revisions. This is one of the great advantages of the Content Server over other systems, which only store the changes between revisions. Full revision sets as well as individual revisions are managed objects and each one can be accessed by its own unique URL.

Now run this SQL statement:

select * from Revisions;

This shows the actual documents in the system and their values for standard meta fields (as shown in the following screenshot):

And now let's look at the all-important Content Types.

Content Types

Content Type is a special kind of meta field. That's all. UCM puts a special emphasis on it as this is the value that differentiates a project plan from a web page and a team photo from a vendor invoice.

You may even choose to change the way your check-in and content info form looks —based on the type of the document.

Let's look how UCM handles Content Types.

Lab 3: Exploring content types

In Content Server go to Administration | Admin Applets.

Launch the Configuration Manager.

Select Options| Content Types... (as shown in the following screenshot):

The Content Types dialog opens. As you see, out of the box, Content Server has seven types—one for each imaginary department. This is a good way of segregating content. You can also go by the actual type of content. For instance, you can have one Content Type for Invoice and one for Project Plan.

They will also have different meta fields. For instance, an Invoice will have a Contract Number and a Total Amount. A Project Plan will have a project name and manager's name. Now let me show you how to add content types.

How to add a Content Type

It's easy to add a new Content Type. Just click on Add..., fill in the type name and the description. You can also select an icon for the new type.

What if you need to upload a new icon? Just make it into an 8-bit GIF file, 30x37 px, 96 dpi and upload it to:


If your install path is different or you're not running on Windows then make appropriate corrections.

How to edit or delete a Content Type

The only thing to know about editing is that you can not really change the type name. All you can update is the icon or description.

If you're ready to delete a type then make sure there is no content in the repository that's using it. Either update it all or delete.

How would you go about doing a mass-update? I'll show you one of the ways in on using Archiver(Ways on archiever is out of the scope of this article).

And now let's proceed to Custom Metadata.

Custom metadata

This is what the most of the metadata is. All new fields you will be creating will also be Custom metadata. Let's take look.

Lab 4: Exploring custom metadata

Once again, there is no way you can tell Custom metadata from Standard metadata—just by looking at the Content Information screen. Just as we did before—let's look at its database.

Custom metadata in the database

Go to your favorite database tool and check the list of columns in the table called DocMeta (as shown in the following screenshot):

The column names in DocMeta are the custom metadata fields.

Notice that Custom or Extended fields have an "x" prefix, not a "d" prefix, like Standard fields.


  • dID: Unique ID of the document revision. Note that this field was also used in the Revisions table. This is how you can link standard and extended metadata of one content item.
  • xComments: The Comments text box from your check-in form.
  • xCollectionID: Unique numeric ID or a virtual folder where the item is residing. If an item is not assigned to any folder, its xCollectionID is zero.

Now run select * from DocMeta; and see the values for Custom meta fields for items in your repository.

And here's how to add new fields.

How to add new fields

It's easy to add a new metadata fields. Let me walk you though. Let's begin with a simple text field.

Text fields

  1. Bring up Configuration Manager Administrative Applet. (Expand the Administration Tray and follow the Admin Applets link to bring up a page with Admin Applets.)
  2. Click on Add.
  3. Give it a name and change field properties as you see fit (as shown in the following screenshot):

Click on Update Database Design to commit your changes.

How to make sure your recent changes reflect on the Check In form:

Every time you change meta fields, make sure you publish the schema by selecting Publish Schema from the Options menu in Configuration Manager (as shown in the previous screenshot).

And now let me show you how to add option lists.

Option lists

What if you want to add a drop-down box that displays a list of values to pick from? Here's how you do it. Let's add a dropdown to our newly created text field:

  1. Bring up Configuration Manager and click on Edit.
  2. Check the Option List box. Click on Configure to open the Configure Option List dialog(as shown in the following screenshot):

  3. Click on Edit.
  4. Type in or paste the values.
  5. OK the dialogs.
  6. Publish the schema.

Click on New Check In on the top left.

Voila! The Vendor field now has a dropdown (as shown in the following screenshot):

And what if you need user's to pick a contract for a specific vendor? How can you make a list of contracts refresh every time you pick a new vendor? Let's see this in the following section.

How to add fields that depend on each other

This is a little tricky. Not hard, but it takes a few minutes of preparation. Let me walk you through it. You'll like the result!

We have a Vendors list. Let's add a list of their contract engagements. Oracle UCM calls it Dependent Choice Lists. You can make any number of lists depend on each other. As soon as we get these two connected, you'll see how to add more.

First, we need to create database tables to store the values for both vendors and contracts. It's actually very simple. Begin with creating the database tables.

Creating database tables

To create the database tables carry out the following steps:

  1. Bring up Configuration Manager.
  2. Go to the Tables tab and click on Create Table.
  3. Give the table name and description (as shown in the following screenshot):
  4. Add these two columns:
    Id, int, primary key
    Name, varchar 100
  5. Now click on Add Recommended. This adds timestamp fields, needed for replication.
  6. Click on OK to save the changes.

Create another table for Contracts:

  1. Call it VendorContracts.
  2. Add the following columns:

    id, int, Primary key
    Vendor Id, int (this will be a link to the Vendors table, a foreign key)
    Description, varchar 100

  3. Click on Add Recommended and then on OK to close the dialog and createyour table (as shown in the following screenshot):

This is another big advantage of the Content Server. Your super-user Content Server admin is able to safely create tables, views, and database structures for the content server WITHOUT A DBA! It is safe and easy for them to do so, and the interface helps to protect users from making dangerous mistakes.

We're done creating tables! Now you need to link them. How? By creating Views.

Creating Views

  1. In Configuration Manager select Views tab and click on the Add button to open the Add View dialog (as shown in the following screenshot):
  2. Select the Vendors table and click on Next.
  3. Place checkmarks against id and Name so you can use them for your metadata values. Then click on Finish to proceed (see the following screenshot):
  4. Name it VendorsView and add a description.
  5. Pick id as Internal Column and Name as Visible Column. This way you will be storing Vendor ID in the database as a metadata value while your users will see vendor name.
  6. OK the dialog. Your view is now created (as shown in the following screenshot):
  7. Repeat steps one to four to create another view for the Contracts table. Call it VendorContractsView. Make sure you make all three columns visible—id, vendorId, and Description.

Congratulations! Your views are now created. You're almost ready to put your dependent fields on the form. The last preparation is defining the relationships.

Defining relationships

This one will only take a few seconds. In Configuration Manager, go to the Relationships tab and click on Add.

Give it a name and pick Parent and Child views and fields (as shown in the following screenshot):

Now you're ready to create drop-down fields. I'll also show you another neat, brand-new way of doing it with Content Server 10G R3—tree views.

Populating option lists

Wait! What good will these fields do to us if they have no values to display? Let's put the values in real quick.

My personal favorite is the batch edit feature. It allows you to put in hundreds of values at once, even paste from Excel. Here's how you do it.

In Configuration Manager select the view where you need to add or edit values. Click on Edit Values… on the bottom right (as shown in the following screenshot):

Click on Edit Batch on the bottom right. A simple text box comes up (as shown in the following screenshot):

Just type in or paste your values. They need to be separated by a pipe character, the one above the back slash on most keyboards. It's that simple. If you need to put Oracle with ID of 1 then simply type:


The header row shows you an example. Just paste your value below it and OK the dialogs. Ready?

Now put in the values for VendorContractsView. You can add spaces and tabs if you like so it's easier to edit (as shown in the following screenshot):

Done! Let's put the fields on the form now. Seriously!

Putting the fields on the form

We already have a Vendor field. Let's just edit it so it uses the VendorsView:

  1. In Configuration Manager go to Information Fields and select Vendor.
  2. Click on Edit.
  3. Check the Enable Option List box and click on the Configure button next to it.
  4. Select Use View and pick VendorsView.
  5. OK the dialogs to complete the edit.

Now let's add a field for vendor contracts.

  1. In configuration Manager, click on Add. Type Contract for the field name.
  3. Select Use view and pick VendorContractsView.
  4. In the bottom portion of the form check the Dependent field box.
  5. Pick xVendor for Depends on field.
  6. Pick Vendors_Contracts for the relationship (as shown in the following screenshot):
  7. You're done! OK the dialogs to complete.

Update Database Design. Publish the schema. Bring up your check-in form. Notice how the options in your Contract field change when you change the selection in the Vendor box (as shown in the following screenshot):

And here's how to handle multiple selections.

Multiple selections

Sometimes you need to select more than one value. For instance, you may engage Oracle on more than one project. So how would you enable that?

Really simple! Just edit the Contracts field in Configuration Manager and change the Option List Type to Multiselect List. That's it! Just publish the schema when you're done (see the following screenshot):

Every time you make a selection from a contract list, a new value is added to the right. The red X next to a value allows users to delete it (see the following screenshot):

And I left the best for the last. Check out how you can create tree views.

Tree views

It's the cool new addition in 10g R3. Instead of two fields for vendors and contracts you can have only one, and still allow multiple selections:

How to enable that?

Just pick Use Tree on the Configure Option List dialog and click on Edit Definition.

All you need to do is pick your first-level view, a relationship, and a second-level view. That's it! And yes, you can still have Option List Type set to Multiselect List.

Perfect! We have defined new metadata fields.


In the above article, we have covered, where Content Server stores all metadata values, how to add, edit, and delete fields.

You've been reading an excerpt of:

The Oracle Universal Content Management Handbook

Explore Title