Content Management

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Content Management as PDF for free.

More details

  • Words: 31,116
  • Pages: 142
BEA WebLogic

A

Portal

ET

®

B

Content Management Guide

Version 9.2 BETA Revised: April 2006

Copyright Copyright © 1995-2006 BEA Systems, Inc. All Rights Reserved.

Restricted Rights Legend This software is protected by copyright, and may be protected by patent laws. No copying or other use of this software is permitted unless you have entered into a license agreement with BEA authorizing such use. This document is protected by copyright and may not be copied photocopied, reproduced, translated, or reduced to any electronic medium or machine readable form, in whole or in part, without prior consent, in writing, from BEA Systems, Inc.

Trademarks and Service Marks

A

Information in this document is subject to change without notice and does not represent a commitment on the part of BEA Systems. THE DOCUMENTATION IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. FURTHER, BEA SYSTEMS DOES NOT WARRANT, GUARANTEE, OR MAKE ANY REPRESENTATIONS REGARDING THE USE, OR THE RESULTS OF THE USE, OF THE DOCUMENT IN TERMS OF CORRECTNESS, ACCURACY, RELIABILITY, OR OTHERWISE.

B

ET

Copyright © 1995-2006 BEA Systems, Inc. All Rights Reserved. BEA, BEA JRockit, BEA WebLogic Portal, BEA WebLogic Server, BEA WebLogic Workshop, Built on BEA, Jolt, JoltBeans, SteelThread, Top End, Tuxedo, and WebLogic are registered trademarks of BEA Systems, Inc. BEA AquaLogic, BEA AquaLogic Data Services Platform, BEA AquaLogic Enterprise Security, BEA AquaLogic Interaction, BEA AquaLogic Interaction Analytics, BEA AquaLogic Interaction Collaboration, BEA AquaLogic Interaction Content Services, BEA AquaLogic Interaction Data Services, BEA AquaLogic Interaction Integration Services, BEA AquaLogic Interaction Process, BEA AquaLogic Interaction Publisher, BEA AquaLogic Interaction Studio, BEA AquaLogic Service Bus, BEA AquaLogic Service Registry, BEA Builder, BEA Campaign Manager for WebLogic, BEA eLink, BEA Kodo, BEA Liquid Data for WebLogic, BEA Manager, BEA MessageQ, BEA Salt, BEA WebLogic Commerce Server, BEA WebLogic Communications Platform, BEA WebLogic Enterprise, BEA WebLogic Enterprise Platform, BEA WebLogic Enterprise Security, BEA WebLogic Express, BEA WebLogic Integration, BEA WebLogic Java Adapter for Mainframe, BEA WebLogic JDriver, BEA WebLogic Log Central, BEA WebLogic Mobility Server, BEA WebLogic Network Gatekeeper, BEA WebLogic Personalization Server, BEA WebLogic Personal Messaging API, BEA WebLogic Platform, BEA WebLogic Portlets for Groupware Integration, BEA WebLogic Real Time, BEA WebLogic RFID Compliance Express, BEA WebLogic RFID Edge Server, BEA WebLogic RFID Enterprise Server, BEA WebLogic Server Process Edition, BEA WebLogic SIP Server, BEA WebLogic WorkGroup Edition, BEA Workshop for WebLogic Platform, BEA Workshop JSP, BEA Workshop JSP Editor, BEA Workshop Struts, BEA Workshop Studio, Dev2Dev, Liquid Computing, and Think Liquid are trademarks of BEA Systems, Inc. Accelerated Knowledge Transfer, AKT, BEA Mission Critical Support, BEA Mission Critical Support Continuum, and BEA SOA Self Assessment are service marks of BEA Systems, Inc. All other names and marks are property of their respective owners.

Contents

1. Introduction Introducing Content Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 Storing Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Creating Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2

A

Using Content When Developing Your Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Securing Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Content Management in the Portal Life Cycle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4

ET

Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Staging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5

B

Part I. Architecture

2. Planning Your Content Management System Architecture Connecting Repositories to the Virtual Content Repository . . . . . . . . . . . . . . . . . . . . . . . 2-2 Choosing a Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Storing Content with a BEA Database Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 Storing Content with a BEA Filesystem Repository . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 Storing Content with a Third-Party Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 Organizing Your Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Securing your Content Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4

BEA WebLogic Portal Content Management Guide

iii

3. Configuring BEA Repositories Working with BEA Repositories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Working with a Default BEA Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Enabling Library Services for a BEA Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Modifying a BEA Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 Working with a BEA Filesystem Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 BEA Filesystem Repository Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Configuring a Filesystem Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Configuring Multiple BEA Repositories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6

A

Create Database Objects for the New Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 Connect the New Repository to the Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 Connect the New BEA Repository to the Virtual Content Repository . . . . . . . . . . 3-12

ET

4. Using Content Folders in Your BEA Repository

Creating a Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 Moving a Folder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 Deleting a Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3

B

Renaming a Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3

5. Using Content Workflows in Your BEA Repository Working with Content Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Using the Default Content Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 XML Elements of a Content Workflow Document . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Creating Content Workflow Documents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Creating a Content Workflow Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Adding Content Workflows to Your Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11 Assigning Content Workflows with Folders, Content Types and Content . . . . . . . 5-12 Assigning a Content Workflow to a Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12

iv

BEA WebLogic Portal Content Management Guide

Assigning a Content Workflow to a Content Type. . . . . . . . . . . . . . . . . . . . . . . . . . 5-12 Assigning a Content Workflow to a Content Item . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Managing Content Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Viewing Assigned Content Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Viewing Assigned Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13

6. Using Content Types in Your BEA Repository Understanding Content Type Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Supported Data Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 Property Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4

A

Using Primary Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Setting Default Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Defining Content Properties for Interaction Management . . . . . . . . . . . . . . . . . . . . . 6-4

ET

Using Abstract Content Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 Using Content Type Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 Out-of-the-Box Content Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 Ad Content Type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8 Article Content Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9

B

Book Content Type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10 Image Content Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11 Message Content Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11 Creating a Content Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12 Define Properties of a Content Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14 Marking a Content Type as Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16

7. Using WebDAV with Your BEA Repository WebDAV Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 WebDAV Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2

BEA WebLogic Portal Content Management Guide

v

Supported Versions of Microsoft Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Enabling WebDAV for Your BEA Repository. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Set Up a WebDAV Content Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3 Enable WebDAV for Your Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3 How WebDAV Determines the Content Type to Use . . . . . . . . . . . . . . . . . . . . . . . . 7-4 Disabling WebDAV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 Using WebDAV with Your BEA Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5 Enabling WebDAV for an Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5 Adding a Microsoft Word Document to a BEA Repository . . . . . . . . . . . . . . . . . . . 7-5

A

Using Windows Explorer Add a File to the BEA Repository . . . . . . . . . . . . . . . . . . 7-6

8. Connecting to a Third-Party Repository

Connecting to a Third-Party Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1

ET

Connecting to a JSR 170-Compatible Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4 Creating a Third-Party Repository Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4 Service Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-7 Repository Connection Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8

B

Connection Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-9 Value Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-11 Configuring the Expression Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12 Configuring the Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13 Propagation and Deployment Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-14

Part II. Development 9. Creating Content within a BEA Repository Creating Content within a BEA Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1 Example: Creating a Content Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2

vi

BEA WebLogic Portal Content Management Guide

Example: Checking Out a Content Version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4 Example: Rolling Back Content to a Previous Version . . . . . . . . . . . . . . . . . . . . . . . 9-4 Searching for Content within Your Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4 Searching for Content By Name. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5 Searching for Content By Property Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5 Searching the Full Text of Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 Searching Versions of a Content Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-8 Using Expressions to Search for Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-9

10.Delivering Content Within Your Portal

A

Working with JSP Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 Retrieving Content with JSP Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 Displaying Content with JSP Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3

ET

Displaying Content Using with the Content API . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-9 Personalizing Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-10 Using Content Selectors, Placeholders and Campaigns . . . . . . . . . . . . . . . . . . . . . 10-10 Implementing Caching when Using Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-24

B

Part III. Staging

11.Staging Your Content Management System Configuring Search Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1

Part IV. Production 12.Managing Content Publishing Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 Updating Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 Viewing Types Assigned to a Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 Viewing Content Assigned to a Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1

BEA WebLogic Portal Content Management Guide

vii

13.Managing Content Security Using Delegated Administration for Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 Delegated Administration Capabilities for Content. . . . . . . . . . . . . . . . . . . . . . . . . 13-2

B

ET

A

Setting Entitlements for Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3

viii

BEA WebLogic Portal Content Management Guide

CHAPTER

1

A

Introduction

ET

Most portals incorporate content into their applications. Content can be anything from an advertisements (graphic files), documents (word processor files), or animation files. Content that you use in your portal is typically stored in a content repository which is connected to your portal. Developers and administrators then have access to content and can determine how and when it is viewed by portal users. This chapter includes the following sections: Introducing Content Management

z

Content Management in the Portal Life Cycle

B

z

Introducing Content Management BEA WebLogic Portal’s content management system allows you to store content, track its progress, and incorporate content in your portal applications. It provides an easy integration between creating content and delivering that content to your users. Content creators can use WebLogic Portal’s repositories to create content and portal developers use the content API and JSP tools to deliver content to portal visitors. This section contains the following topics: z

Storing Content

z

Creating Content

z

Using Content When Developing Your Portal

BEA WebLogic Portal Content Management Guide

1-1

z

Securing Content

Storing Content

ET

A

You can store content in the provided BEA repository or use a third-party repository. Either method requires you to connect your repository to the Virtual Content Repository within the Portal Administration Console. The Virtual Content Repository allows content to be accessed by the WebLogic Portal content tools such as the federated API, JSP tags, and content selectors. In order for a repository’s content to be used within a WebLogic Portal, it must be connected to the Virtual Content Repository.

B

When using a BEA repository, you can set up the repository according to your organization’s content needs. Within a BEA repository, you can: z

Create content workflows to route content to appropriate users during the creation process.

z

Create content types that define how content is stored and what metadata is associated with it.

z

Create a hierarchy of folders to make it easier to categorize your content.

Creating Content Content creators can add content to your BEA repository through the Portal Administration Console which provides access to your content repositories. The BEA repository provides automatic versioning, a default content workflow, and the ability to search for repository content using keywords.

1-2

BEA WebLogic Portal Content Management Guide

In tr od uci ng Con ten t Ma na ge ment

Content creators also have user-specific workspaces that track content while it is in progress. <screenshot here> If you chose to use a third-party repository, you may either use Virtual Content Repository to create or modify content or rely on the native tools for your repository, depending on your implementation.

Using Content When Developing Your Portal Portal developers deliver content to your portal users using a variety of WebLogic Portal development tools. These include the content API, JSP tags, and personalization tools that use rules to personalize content delivery for certain portal users. For more information, see Chapter 10, “Delivering Content Within Your Portal.”

A

WebLogic Portal’s content management system allows developers to: Display content with JSP tags, HTML or controls.

z

Programmatically access and display content using the WebLogic Portal API.

z

Search across multiple repositories to retrieve content.

z

Personalize content delivery by using WebLogic Portal’s wide variety of personalization tools. Content selectors, placeholders, and campaigns deliver dynamic, personalized content to user based upon personalization rules or conditions. For more information about personalization, see the WebLogic Portal Interaction Guide.

ET

z

B

Securing Content

You can ensure the security of your portal content using Delegated Administration and Visitor Entitlements. You can use Delegated Administration to determine which users can add or modify content within the repository. Visitor Entitlements are used to allow or disallow portal visitors to view portal content. With Delegated Administration, you can control how content creators interact with the repository by associating Delegated Administration roles that are used to determine whether to grant or deny access to content, and to determine which capabilities on those content are available to the administrator, such as deleting or updating. Visitor Entitlements determine if portal visitors can view content when it is displayed within your portal. By using Visitor Entitlements, portal administrators can determine which portal visitors view what content and under what conditions.

BEA WebLogic Portal Content Management Guide

1-3

For more information about Delegated Administration and Visitor Entitlements, see the WebLogic Portal Security Guide.

Content Management in the Portal Life Cycle The tasks in this guide are organized according to the portal life cycle. For more information about the portal life cycle, see the BEA WebLogic Portal Overview Guide. The portal life cycle contains four phases: architecture, development, staging, and production. Figure 1-1 shows how content management fits into the portal life cycle. Figure 1-1 How Content Management Fits into the Four Phases of the Life Cycle

B

Create and modify content, and update parameters for personalized content.

ET

A

Choose, configure, and organize your content repository.

Use repository tools to add content and use Workshop for WebLogic to position content within your portal.

Test your portal content.

Architecture During the architecture phase, you determine which type of content repository you will use. You also plan the taxonomy of your repository and the content types you will use to organize your content. You also plan out propogation strategies and determine which content tools you will use. The chapters describing tasks within the architecture phase are: z

1-4

Chapter 2, “Planning Your Content Management System Architecture”

BEA WebLogic Portal Content Management Guide

Cont en t Ma na geme nt in t he Por t al Lif e Cyc le

z

Chapter 3, “Configuring BEA Repositories”

z

Chapter 4, “Using Content Folders in Your BEA Repository”

z

Chapter 5, “Using Content Workflows in Your BEA Repository”

z

Chapter 6, “Using Content Types in Your BEA Repository”

z

Chapter 7, “Using WebDAV with Your BEA Repository”

z

Chapter 8, “Connecting to a Third-Party Repository”

Development

A

During the development phase, content creators create content and publish content to the repository for use within your portal. Content creators use the Portal Administration Console to create and manage content. Using BEA Workshop for WebLogic Platform, portal developers use content selectors, placeholders, JSP tags, HTML and the content API to retrieve and display content.

ET

The chapters describing tasks within the development phase: z

Chapter 9, “Creating Content within a BEA Repository”

z

Chapter 10, “Delivering Content Within Your Portal”

Staging

B

The staging phase is when test your portal and verify that developed content is appearing correctly. You might move iteratively between developing and then testing what you created. If you return to the development phase and make changes, you must redeploy your portal application to see the changes in the staging phase. z

Chapter 11, “Staging Your Content Management System”

Production After you test your portal application in the staging phase, use the production phase to perfect your production environment. In the production phase, for example, you might use the Portal Administration Console to make changes to your portal application, such as adjusting content caches or updating published content files. You can also modify content selectors and start using campaigns, see the WebLogic Portal Interaction Management Guide.

BEA WebLogic Portal Content Management Guide

1-5

Chapter 12, “Managing Content”

z

Chapter 13, “Managing Content Security”

B

ET

A

z

1-6

BEA WebLogic Portal Content Management Guide

Architecture

A

Part I

ET

This section contains information to help you complete the architecture phase of deploying and using WebLogic Portal’s content management features. Your content management system consists of a repository and the content types you use to organize it. Choosing the type of repository you will use and defining the types of content that you will use should be done before adding content to your repository and delivering that content to your portal users. Part I contains instructions for tasks you should accomplish in the architecture phase. When you finish the architecture phase, you can proceed to the other phases.

B

For a description of the architecture phase of the portal life cycle, see the BEA WebLogic Portal Overview Guide. The portal life cycle is shown in the following graphic:

BEA WebLogic Portal Content Management Guide

A

Part I includes the following chapters:

Chapter 2, “Planning Your Content Management System Architecture”

z

Chapter 3, “Configuring BEA Repositories”

z

Chapter 4, “Using Content Folders in Your BEA Repository”

z

Chapter 5, “Using Content Workflows in Your BEA Repository”

z

Chapter 6, “Using Content Types in Your BEA Repository”

z

Chapter 7, “Using WebDAV with Your BEA Repository”

z

Chapter 8, “Connecting to a Third-Party Repository”

B

ET

z

CHAPTER

2

A

Planning Your Content Management System Architecture

Before you can begin to develop content and incorporate it within your portal application, you must set up your content repository and organize it so content creators and portal developers can access and search content efficiently, according to parameters you set.

ET

When you plan how you will use your content management system, you will consider: z

The type of repository you want to use

z

How you will organize your content repository

z

The content workflow will content creators use when creating content

B

This chapter includes the following sections: z

Connecting Repositories to the Virtual Content Repository

z

Choosing a Repository

z

Organizing Your Repository

z

Securing your Content Repository

BEA WebLogic Portal Content Management Guide

2-1

Connecting Repositories to the Virtual Content Repository Regardless of how you store your content, all repositories must be connected to WebLogic Portal’s Virtual Content Repository. The Virtual Content Repository allows content creators to access repositories using the content tools in the Portal Administration Console. It also connects your repositories to your WebLogic portal application.

A

The Virtual Content Repository automatically includes a BEA repository for you to use. It also integrates with leading enterprise management systems. Content creators access the Virtual Content Repository through the Portal Administration Console, see Figure 2-1. If you are using a third-party repository, whether or not you can modify content using the Virtual Content Repository depends on your implementation.

B

ET

Figure 2-1 Viewing Repositories connected to the Virtual Content Repository

Choosing a Repository Choosing a repository type depends on how you want to store your content and how much content you need to store. This section details the types of repositories you can use and the features of each. You can use either a BEA repository or a third-party repository with your portal. If you decide to use the BEA repository, there are two types of BEA repositories from which to choose: the default database repository and a filesystem repository.

2-2

BEA WebLogic Portal Content Management Guide

Choo sing a Reposi to ry

This section discusses the following topics: z

Storing Content with a BEA Database Repository

z

Storing Content with a BEA Filesystem Repository

z

Storing Content with a Third-Party Repository

Storing Content with a BEA Database Repository The default BEA repository comes pre-configured for use within your portal environment. It includes WebLogic Portal’s library services which provides content workflows and versioning. The default configuration uses tables in the portal database to store metadata, published content, and content versions.

A

Storing Content with a BEA Filesystem Repository

ET

Filesystem repositories allow you to use a filesystem in tandem with the BEA database to store your content. When you use a filesystem repository, content binary files are stored in the filesystem you designate, while the metadata associated with the files (content type information) is stored in the a database. This can increase performance for both data retrieval within your portal and bulkloading large amounts of data (and its associated metadata) to a filesystem repository.

B

When you use a filesystem repository, it is important for content creators to work with content using the Portal Administration Console. If you manipulate content within the filesystem directly, data will be out of sync and behave unpredictably. When you are using a filesystem repository with library services, non-published versions of content are stored in the BEA database. This provides an additional safeguard if the filesystem gets damaged or removed. For more information about using a filesystem repository, see Chapter 3, “Configuring BEA Repositories.”

Storing Content with a Third-Party Repository You can use third-party content repositories with WebLogic Portal. Some third-party content management systems provide connection interfaces for WebLogic Portal. BEA provides a set of Java classes called the WebLogic Portal content Service Provider Interface (SPI), which many enterprise content management (ECM) vendors have implemented. If the BEA WebLogic Portal Content Management Guide

2-3

vendor of your ECM system has implemented the SPI, then adding your repository to the Virtual Content Repository will simply require a configuration within the Portal Administration Tools. However, if your vendor has not implemented BEA's SPI, then you can use the instructions in Chapter 8, “Connecting to a Third-Party Repository,” to do so yourself. When you use a third-party repository to store content, you also continue to use that repository’s content tools to add and modify content or you may be able to use BEA's content tools, depending on the implementation.

Organizing Your Repository

A

When you use a BEA repository, you need to decide how to logically organize your content to ensure that it is easily retrieved, managed and used within your portal. You set up a hierarchy of content folders and also create content types that define the content properties that content creators use when defining content.

ET

Portal developers can use the metadata (properties) associated with content types to retrieve content files to display within your portal. When you set up content types, you want to be sure to include properties that are useful when retrieving and displaying content, such as the size of an image or whether it is click-able. Another example may be an “end date” property for content so developers can query for content that is still valid for use. You can also create and assign content workflows to content to ensure that content creators use a specific process when adding and publishing content to your portal.

B

For more information about organizing your repository, see Chapter 4, “Organizing Content within a BEA Repository.”

Securing your Content Repository Before starting to use a content repository, you can set up the users, roles, and privileges you want to use in order to dictate who can add, edit, or delete content within the repository. For example, you use Delegated Administration to create administration roles for users and groups that will create content or maintain your repository. You can set up a role that is used for publishing content and all users that are assigned that role can publish content to your portal. You may also want a separate role for creating content types or new folders. Visitor Entitlements allow a way for portal administrators to limit what content portal users can see. For example, within a portal used for human resources, you can entitle content published for managers so that only a user with a manager role can view that content.

2-4

BEA WebLogic Portal Content Management Guide

Se c ur i n g yo ur C o n te nt R e p o s i to ry

Users and roles are used when you set up Delegated Administration as well as Visitor Entitlements. For more information about setting up security for the Virtual Content Repository, see Chapter 13, “Managing Content Security.”

B

ET

A

For more information about setting up users and groups, see the WebLogic Portal User Management Guide.

BEA WebLogic Portal Content Management Guide

2-5

A ET B 2-6

BEA WebLogic Portal Content Management Guide

CHAPTER

3

A

Configuring BEA Repositories

WebLogic Portal installs with a BEA repository that is pre-configured for use with your portal application. It includes WebLogic Portal’s library services which provide content management features such as content workflow and versioning.

ET

You can use the pre-configured repository, and add additional repositories to suit your needs. This chapter includes the following sections: Working with BEA Repositories

z

Working with a Default BEA Repository

z

Working with a BEA Filesystem Repository

z

Configuring Multiple BEA Repositories

B

z

Working with BEA Repositories When working with BEA repositories, you can choose the default database-based repository or use a filesystem repository. Both allow you to use BEA’s robust library services to manage your content. Table 3-1 lists the features and advantages of both types.

BEA WebLogic Portal Content Management Guide

3-1

Working with a Default BEA Repository Table 3-1 Repository Types Features

BEA Repository (default)



Pre-configured out-of-the-box.



Robust content management features built-in such as versioning and content workflows.



Stores all content and metadata in the portal database. No additional configuration necessary, unless you want to use multiple repositories.



Stores published content in a filesystem.



Robust content management features built-in such as versioning and content workflows.



Can have higher performance than a default BEA repository.



Can be used with legacy content that is stored in a filesystem.

BEA Filesystem Repository

A

Repository

ET

Note: Does not support transactions as a database-based repository does. If your network connection goes down, data could be lost.

The default BEA repository comes pre-configured for your portal application. Before using your BEA repository, you should enable library services and add any custom properties needed for your environment.

B

Note: Library services allow you to version content and use workflows to manage the content creation process, see “Creating Content within a BEA Repository” on page 9-1 for more information about library services. This section discusses the following topics: z

Enabling Library Services for a BEA Repository

z

Modifying a BEA Repository

Enabling Library Services for a BEA Repository WebLogic Portal’s library services allow you to version content and use content workflows to route content through an approval and publishing process. If you are using a BEA repository, you should enable library services before organizing your repository. Enabling library services gives you access to content workflows and versioning.

3-2

BEA WebLogic Portal Content Management Guide

W or kin g wit h a BE A File system Reposi to ry

Note: Once you have enabled library services for a repository, they cannot be disabled. To do this: 1. Select Manage | Repositories to view the Repositories tree. 2. Click the BEA repository for which you want to enable library services. 3. In the Summary tab, click Library Services to view the Library Services dialog. 4. Mark the Library Services Enabled check box and click Save.

Modifying a BEA Repository

Table 3-2 BEA Repository Properties

A

You can add custom properties or additional BEA properties to your repository to match your configuration.

Definition

streaming_enabled

Information not available for beta.

cm_fileSystem_webpath

Information not available for beta.

webdav_enabled

Information not available for beta.

B

WEBDAV_TYPE

ET

Property

Provides the name of the content type to use when adding content to the repository when using WebDAV (Windows Explorer).

Working with a BEA Filesystem Repository Filesystem repositories allow you to use a filesystem in tandem with the BEA database to store your content. When you use a filesystem repository, content binary files are stored in the filesystem you designate, while the metadata associated with the files (content type information) is stored in the BEA database. Typically, this increases performance for data retrieval within your portal to a filesystem repository. As with all types of BEA repositories, non-published content is stored in the content database in separate tablespace from published content. This provides an additional safeguard if the filesystem gets damaged or removed. BEA WebLogic Portal Content Management Guide

3-3

This section discusses the following topics: z

BEA Filesystem Repository Considerations

z

Configuring a Filesystem Repository

BEA Filesystem Repository Considerations When you use a filesystem repository, there are additional requirements when working with both content types and associated content. This is because the repository design must match the associated filesystem.

z

Content Requirements

z

Configuring a Filesystem Repository

ET

Content Requirements

A

This section discusses the following topics:

When you use a filesystem repository, you must organize and manage content according to the same requirements you would have if storing content in a filesystem. For example, creating a folder in a filesystem repository creates a folder in the shared directory. For this reason, there are content requirements that help maintain the integrity of the repository and its associated filesystem. In a filesystem repository, you cannot associate folders with content types.

z

Content must have the same name as the binary filenames are restricted to the names of the binary file associated with it.

z

You must always include the file extension when you name or rename content.

B

z

z

Configuring a Filesystem Repository When you configure a repository within the Virtual Content Repository, you are creating a connection to the repository's datastore. In the case of a filesystem repository, the datastore is a filesystem on your network. When you add filesystem repository, you also need to add custom properties that direct WebLogic Portal to that filesystem.

3-4

BEA WebLogic Portal Content Management Guide

W or kin g wit h a BE A File system Reposi to ry

Before You Begin The recommended way to implement a filesystem repository is to modify the properties of the default BEA repository. By default, the BEA repository class remains deployed even after you modify the connection information. This is intended because the BEA repository classes (com.bea.content.spi.internal.ExtendedRepositoryImpl) are used to store metadata in the database.

Creating a Connection to the New Filesystem Repository Using the Portal Administration Console, configure a connection to the new repository. You will do this by editing the existing connection. If you want to create an additional repository, see “Configuring Multiple BEA Repositories” on page 3-6.

A

1. Select Content > Content Management from the navigation menu. 2. View the Manage | Repositories tree by selecting Repositories. Figure 3-1 shows an example of selecting the Repositories area.

B

ET

Figure 3-1 Manage Repositories Tree within the Virtual Content Repository Select Repositories to work with a repository in the Virtual Content Repository.

3. In the Manage | Repositories tree, click the existing BEA repository to view the Repository Summary. 4. Click Repository Details.

BEA WebLogic Portal Content Management Guide

3-5

5. In the Repository Details dialog box, edit the connection class to be the following: com.bea.content.spi.internal.FileSystemRepositoryImpl 6. Click Save. 7. In the Properties area, click Add Property. a. In the Name field, enter cm_fileSystem_path. b. In the Value field, enter the path to the filesystem that contains your content. For example: /home/myData. z

Be sure that the your portal application has network access to your filesystem.

c. Click Save.

To add this property, click Add Property.

A

8. If your filesystem is exposed using a web server, you should also set a cm_fileSystem_webpath property. This can significantly improve performance.

ET

a. In the Key field, type cm_fileSystem_webpath.

b. In the Value field, enter the URL of your filesystem.

Note: For example, your cm_fileSystem_path could be set to /home/myData but the same path could be referred externally as http://mydomain.com/data/myData which can be set using the cm_fileSystem_webpath property.

B

9. Click Create.

Caution: Do not set the STREAMING_ENABLED property for a filesystem repository.

Configuring Multiple BEA Repositories You can create multiple content repositories within the Virtual Content Repository to meet your unique business needs. For example, if you need a physical separation of your content data from your portal application data then you can create multiple BEA repositories. You must be working within an XA domain to effectively use multiple repositories, if using Library Services. Note: For large projects with several thousand content items, you can use separate database instances and minimize changes done in the production environment.

3-6

BEA WebLogic Portal Content Management Guide

Configuring Multipl e BEA Reposi to ri es

This process has three steps: z

Create Database Objects for the New Repository

z

Connect the New Repository to the Server

z

Connect the New BEA Repository to the Virtual Content Repository

Create Database Objects for the New Repository In this step, you create database objects for your additional content management database. 1. For Oracle or DB2 databases, create a new database user for your additional content management database. For SQL Server or Sybase, create a new database for your additional content management database objects.

z

ET

A

BEA provides sample scripts which can be copied and used to define the database resources that must be configured prior to running any .sql scripts. For each repository, a separate database/database user must be predefined according to the appropriate sample script, see the WebLogic Portal Database Administration Guide for more details. For Oracle, BEA provides the following sample scripts: WebLogic_HOME/portal/db/oracle/admin/create_tablespaces.sql and create_users.sql. z

For SQL Server and Sybase, BEA provides the following sample scripts: – For SQL Server:

B

WebLogic_HOME/portal/db/sql_server/admin/create_database.sql

– For Sybase: WebLogic_HOME/portal/db/sybase/admin/create_devices.sql and create_database.sql

Note: For both SQL Server and Sybase, the WEBLOGIC_INDEX file group must be defined for indexes created via the database-specific cm_create_tables.sql and cm_create_indexes.sql scripts to execute without errors. z

For DB2, BEA provides the following sample scripts: WebLogic_HOME/portal/db/db2/admin/create_tablespaces.sql and create_users.sql

Note: PointBase is not recommended for a production repository. 2. Connect to the database as the database user created in Step 1.

BEA WebLogic Portal Content Management Guide

3-7

3. Navigate to the appropriate database directory based on your environment. Depending on your database vendor, the path is: Oracle: WebLogic_HOME/portal/db/oracle/ SQL Server: WebLogic_HOME/portal/db/sql_server/ Sybase: WebLogic_HOME/portal/db/sybase/ DB2: WebLogic_HOME/portal/db/db2/ 4. Run the following scripts to create content management database objects: – cm_create_tables.sql – cm_create_fkeys.sql – cm_create_indexes.sql

A

– cm_create_triggers.sql

5. Run the following scripts from the directory WebLogic_HOME/portal/db/data/required: – sample_cm_insert_system_data.sql

ET

You can now connect your repository to WebLogic Server.

Connect the New Repository to the Server To connect the new repository to the server, you need to configure the WebLogic Server to point to the new repository.

B

To do this:

1. Start WebLogic Server for your domain, and log in to the console. 2. In the Domain Structure area, go to Services > JDBC > Data Sources. Figure 3-2 shows an example of the Summary of JDBC Data Sources page.

3-8

BEA WebLogic Portal Content Management Guide

Configuring Multipl e BEA Reposi to ri es

ET

A

Figure 3-2 Summary of JDBC Data Sources in the WebLogic Server Console

3. Click Lock & Edit to ensure that the server is locked before proceeding.

B

4. In the Data Sources table, click New to view the JDBC Data Source Properties page. Figure 3-3 shows an example of the JDBC Data Source Properties page.

BEA WebLogic Portal Content Management Guide

3-9

ET

A

Figure 3-3 Create New JDBC Data Source in the WebLogic Server Console

5. In the JDBC Data Source Properties page, complete the fields using Table 3-3. Table 3-3 JDBC Data Source Properties

Name JNDI Name

Input

B

Field Name

Enter the name of your new JDBC Data Source. Use contentDataSource as the JNDI name for your new repository data source.

Database Type

Use the drop-down list to select the database type that corresponds with your repository.

Database Driver

Choose a database driver. If using library services, you must use an XA driver.

6. Click Next to view the Transaction Options page. 7. In the Transaction Options page, select any transactions options you require. If you selected an XA driver, there are no transaction options to select. 3-10

BEA WebLogic Portal Content Management Guide

Configuring Multipl e BEA Reposi to ri es

Note: If you want to use library services, you must select an XA driver. 8. Click Next to view the Connection Properties page. Figure 3-4 provides an example of the JDBC Data Source Connection Properties page.

ET

A

Figure 3-4 JDBC Data Source Connection Properties Page in the WebLogic Server Console

B

9. Within the Connection Properties page, use the information in Table 3-4 to complete the dialog fields. Table 3-4 Connection Properties Connection Property

Description

Database Name

The name of the database you are using.

Host Name

Enter the host name used for the database you are using.

Port

Enter the port number of the port hosting your database.

Database User Name

Enter the database user name for the database login required for this database.

BEA WebLogic Portal Content Management Guide

3-11

Table 3-4 Connection Properties Connection Property

Description

Password

Enter the database password

Confirm Password

Enter the database password again to confirm.

10. Click Next to view the Test Database Configuration page. 11. Optionally, click Test Configuration. If the database test is successful, click Finish. 12. Click Finish. 13. When finished adding your data source, click Activate Changes to update the server.

A

Connect the New BEA Repository to the Virtual Content Repository

ET

After you have configured the new repository, you’ll need to connect it to the Virtual Content Repository. Use the Portal Administration Console to connect to a new repository. 1. Open the Portal Administration Console.

2. Select Content > Content Management from the navigation menu at the top of the console.

B

3. Select Manage | Repositories.

4. In the Manage | Repositories tree, click the Virtual Content Repository. 5. On the Browse tab, click Add Repository Connection. Figure 3-5 provides an example of the Browse tab within the Repositories area.

3-12

BEA WebLogic Portal Content Management Guide

Configuring Multipl e BEA Reposi to ri es

A

Figure 3-5 Browse Tab within the Manage Repositories Window

6. In the Add Repository Connection dialog, provide the following information:

Field

Description

Repository Name Connection Class

The name you give your new repository. For example: MyNewRepository com.bea.content.spi.internal.RepositoryImpl

The username field is only used when connecting to a third-party repository. When configuring a BEA repository, you can leave this blank.

B

Username

Password

ET

Table 3-5 Repository Connection Information

The password field is only used when connecting to a third-party repository. When configuring a BEA repository, you can leave this blank

Retype Password

Leave this field blank.

Enable Library Services

Unmark this checkbox if you do not want to use library services with this repository.

7. Click Save.

BEA WebLogic Portal Content Management Guide

3-13

B

ET

A

8. Within the Repositories area, click the repository you just created to verify that it has been created and view its Repository Summary.

3-14

BEA WebLogic Portal Content Management Guide

CHAPTER

4

A

Using Content Folders in Your BEA Repository

Within your BEA repository, you can use folders and subfolders to organize content into logical categories. In addition, you can associate folders with content workflows and content types. You can also apply security policies to folders.

ET

Folders allow you to organize your repository in the following ways: Maintain categories for different areas of content. For example, you can create folders per department such as human resources, ad campaigns, and video content.

z

Manage your content creation process. You can associate a folder with a content workflow. If a folder is associated with a workflow, all content stored in that folder automatically follows the same process. For more information about content workflows, see “Using Content Workflows in Your BEA Repository” on page 5-1.

z

Secure your content files. You can add administration roles to folders that allow or disallow users to access to content folders in your repository, using Delegated Administration. Visitor Entitlements can also be applied at the folder level. For more information about securing content, see Chapter 13, “Managing Content Security.”

B

z

The BEA repository allows you to use these features at both the folder level and the file level. For example, you can apply security policies on the folders in your repository and maintain workflows and content types at the content level. <SCREENSHOT> This chapter includes the following sections: z

Creating a Folder

BEA WebLogic Portal Content Management Guide

4-1

z

Moving a Folder

Creating a Folder You can create folders to help organize your content. You can choose to associate the folders you create with content workflows and/or content types. When a content workflow is associated with a content folder, all content within that folder follows the workflow. If content within the folder uses a content type that is also associated with a folder, the content type workflow overrides the folder workflow.

A

When a content type is associated with a folder, content added to that folder uses that content type. This is particularly helpful when if you have enabled WebDAV for your repository. WebDAV enables content creators to add content to the repository via Internet Explorer and other Windows applications, for more information see, <x-ref>. Note: If you are using a filesystem repository, you cannot associate a folder with content type. 1. Select Manage | Content in the resource tree.

ET

2. Select the repository to which you want to add a folder.

B

3. In the Browse area, click Add Folder to view the Add Folder dialog.

4. In the Add Folder dialog, type a name for your folder. 5. Optionally, associate a content workflow with the folder by selecting one from the Workflow drop-down list. 6. Optionally, click Advanced Options to associate a content type with this folder. Note: You can only associate a folder with a content type when you create a new folder. After you create a folder, it cannot be associated with a content type.

4-2

BEA WebLogic Portal Content Management Guide

7. Click Add when finished.

Moving a Folder After you have created the folders you need, you can re-arrange them within your repository if necessary. Moving a folder also moves all content within that folder. 1. Within the repository, select the folder you want to move. 2. After selecting the folder, click Move in the right tool bar. 3. The Move Content dialog displays. Click OK.

5. Click Paste in the right tool bar.

ET



A

4. Select the location to which you want to move the folder (for example, under an existing folder or at the repository root).

6. The Paste Content dialog displays. Click OK.

Deleting a Folder More to come.

B

Renaming a Folder more to come.

BEA WebLogic Portal Content Management Guide

4-3

A ET B 4-4

BEA WebLogic Portal Content Management Guide

CHAPTER

5

A

Using Content Workflows in Your BEA Repository

ET

Content workflows enable content creators to manage content using a defined publication process. BEA repositories come with one default workflow for you to use. You may want to create additional content workflows and customize content workflows to suit your business needs. For example, your content workflow can dictate how extensive the review process should be before content can be published in the portal. You can also customize a content workflow so that when content is published, e-mail is sent to an administrator.

B

Content workflows can be associated with content folders so that all content that resides in that folder follows the same publishing process. You can also associate content workflows with content types, which means that all content associated with that content type follows the same content workflow. Although you can add new workflows to your repository at any time, it is helpful to create workflows before you create your content types. The BEA repository includes a default content workflow that you can use. You can also create new content workflows or customize existing ones. This chapter includes the following sections: z

Working with Content Workflows

z

XML Elements of a Content Workflow Document

z

Adding Content Workflows to Your Repository

z

Managing Content Workflows BEA WebLogic Portal Content Management Guide

5-1

Working with Content Workflows Content workflows are XML files that store process information. Once these files are added to your repository, you can associate their defined workflow with content. You create and add content workflows by doing the following: 1. Create a content workflow document. This document is an XML document based on the content workflow schema that is used to define a content workflow for your repository. 2. Add the content workflow document to your repository and give it a name. After the content workflow document is added to your repository, it is available to associate with content. 3. When creating content, content folders, or content types, you can associate the named content workflow with the item.

ET

This section discusses the following topics:

A

4. When content creators add content that uses a content type, the content they create must move through the associated workflow. For example, Draft > Ready for Review > Published > Retired.

z

Using the Default Content Workflow

z

XML Elements of a Content Workflow Document

Using the Default Content Workflow

B

WebLogic Portal's content workflow includes the following statuses: Draft, Ready for Review, Rejected, Published and Retired, see Figure 5-1.Through Delegated Administration, you can assign content management capabilities to different users and groups. The different Delegated Administration rights have access to different content status transitions within the workflow.

5-2

BEA WebLogic Portal Content Management Guide

W o r k i n g w i t h C o nt e n t Wor k f l o w s

Figure 5-1 Default Content Workflow Diagram

A

To fully take advantage of the content workflow, you must set up Delegated Administration roles that assign different capabilities to the users and groups on your content management team.

ET

For example, you can create a separate role to manage the publishing of content, as well as an editor role which can modify content yet not publish. Optionally, if you have a small content management team, you can assign all capabilities to a single role. Note: The capabilities you give to a role determine how a user role participates in the content workflow. For example, if a role is not granted Publish capabilities they cannot transition content to the Published or Retired status.

B

Table 5-1 describes the content workflow statuses and the Delegated Administration capabilities needed for each.

BEA WebLogic Portal Content Management Guide

5-3

Table 5-1 Default Content Workflow Status

Usage Notes

Delegated Administration Capabilities Required

Draft

The initial status for all content items.

Publish

This status is also used to indicate a content item that is a work in progress and not ready for review. Items in Draft status display in the My Assigned Items folder for all users whose role includes Edit capabilities. Ready for Approval

Marks a content item for ready for review and/or publication to the site.

Publish

A

Content items that have the status Ready for Approval can only be modified by content administrators who have publish rights.

ET

Items in Draft status display in the My Assigned Items folder for all users whose role includes Publish capabilities. Content items that have this status can be accessed by portal content selectors or placeholders according to their content type property values.

Publish

Rejected

The Rejected status is used to re-route a content item to the last known user or group to which it was assigned.

Publish

Retired

The final status of a content item.

B

Published

Publish

This status indicates that a content item is no longer in use. When a content item has a retired status, it cannot be retrieved by a content selector or a placeholder. Deleted

When you delete a content item, you delete all versions of that content item. Only administrators with Delete capabilities can delete content. Content cannot be retrieved by placeholders or content selectors after it is has been deleted.

Figure 5-1 displays the default content workflow document.

5-4

BEA WebLogic Portal Content Management Guide

Publish

W o r k i n g w i t h C o nt e n t Wor k f l o w s

Listing 5-1 Default Content Workflow Document <workflow xmlns="http://schema.workflow.virtual.content.bea.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schema.workflow.virtual.content.bea.com">



A



can_publish



ET





can_publish

B





can_publish
can_publish

BEA WebLogic Portal Content Management Guide

5-5

can_publish
can_publish


A







ET







B





can_publish
can_publish

5-6

BEA WebLogic Portal Content Management Guide

W o r k i n g w i t h C o nt e n t Wor k f l o w s



A

can_publish

ET





B







<status id="1" text="Draft" /> <status id="2" text="Ready" /> <status id="3" text="Rejected" />

BEA WebLogic Portal Content Management Guide

5-7

<status id="4" text="Published" /> <status id="5" text="Retired" />



XML Elements of a Content Workflow Document Table 5-2 lists the XML elements of a content workflow document and the considerations for each element.

A

Table 5-2 XML Elements of Workflow Document Usage



Indicates a workflow transition.



Indicates from which status the transition originates. is a child element of the transition element. •

ET

Workflow XML Element

If you want to include the capability to switch from one workflow to another after content has been created, you should include an undefined that allows the workflow to smoothly replace other workflows, if needed. To do this, you should define a set to -1.

B

The corresponding should be a status that is defined in your workflow. For example, you can set up the undefined to move to the first status in your workflow. In the default content workflow, the undefined transitions to a of 1 (Draft).



5-8

Indicates the ending status of the transition.

BEA WebLogic Portal Content Management Guide

W o r k i n g w i t h C o nt e n t Wor k f l o w s

Table 5-2 XML Elements of Workflow Document Workflow XML Element

Usage



Indicates what action takes place within this transition. Four default action classes are: •

com.bea.content.virtual.workflow.DraftAction



com.bea.content.virtual.workflow.ReadyAction



com.bea.content.virtual.workflow.PublishAction



com.bea.content.virutal.workflow.RetireAction

You can also create your own custom classes. If you use your own custom class, be sure you add them to the portal classpath.

Indicates what Delegated Administration capability is needed to complete the transition.

A



The syntax required for defining a Delegated Administration capability restraint is as follows: Create: can_create



View: can_view



Update: can_update



Delete: can_delete



Associate: can_associate



Publish: can_publish

ET



B

If you allow portal visitors to modify content, you can also create a content workflow that uses the Visitor Entitlement capabilities. The syntax for defining a Visitor Entitlement capability is as follows:





Create: can_visitor_create



View: can_visitor_view



Update: can_visitor_update



Delete: can_visitor_delete



Associate: can_visitor_associate



Publish: can_visitor_publish

Indicates what user role is required to complete the transition. Be aware that this role is hardcoded in the workflow document and must be manually changed if the role name changes.

BEA WebLogic Portal Content Management Guide

5-9

Table 5-2 XML Elements of Workflow Document Workflow XML Element

Usage



Indicates which status is the beginning status for new content.

<status>

Defines a status ID. The status ID must have both a display name and a number attributed to the status. Numbers 1-5 are reserved for the default workflow and cannot be redefined in custom workflows.

Creating Content Workflow Documents

A

Content workflow documents are written in XML and based on WebLogic Portal’s content workflow XML schema, as listed in Table 5-2. You create or edit a content workflow document using an XML editor. An XML editor reads a schema, as well as all the schemas the schema imports, and shows you elements and attributes that can be added to an XML document.

ET

You can customize your content workflow according to your needs. Some examples of customized content workflows include: z

Change the display names of the content workflow states to match your company’s process.

z

Simplify the content workflow to allow publishing content with fewer steps.

z

Extending the content workflow to allow for certain actions to take place when content changes states.

z

B

This section discusses the following topic:

Creating a Content Workflow Document

Creating a Content Workflow Document The easiest way to create a new content workflow document is to use the default content workflow and save it as a new document. Note: Become familiar with the content workflow schema before you create a content workflow document, “XML Elements of a Content Workflow Document” on page 5-8. To create a new content workflow document by modifying an existing document: 1. Select Manage | Repositories to view the repository tree.

5-10

BEA WebLogic Portal Content Management Guide

A dd ing Con te nt W or kfl ows to Yo ur Rep osi to ry

2. Navigate to the content workflow you want to copy. 3. In the Workflow File area, click Download File and choose to Save to Disk. This saves a copy of the content workflow document in the location you specify. 4. Make your modifications. For more information about the content workflow XML schema, see Table 5-2. 5. When finished, save the content workflow with a new name. Add the new workflow document to your repository, see “Adding Content Workflows to Your Repository” on page 5-11.

Adding Content Workflows to Your Repository

A

Content workflows must reside in your repository before you can associate them with content. You can do this using the Content Management part of the Portal Administration Console: 1. Select Manage | Repositories to view the repository tree.

ET

2. Select the repository to which you want to add a workflow. 3. Select Workflows to view the Workflows tab.

4. Click Add Workflow to view the Add Workflow dialog. 5. Enter a name for your new workflow in the Add Workflow dialog.

B

6. Optionally, enter a description for your workflow.

7. Use the Browse button to select the workflow XML file you want to add. 8. Click Save.

Workflows can be associated with content types or folders to define the process that content creators follow when adding content to a repository, see “Working with Content Workflows” on page 5-2. This section discusses the following topics: z

Assigning Content Workflows with Folders, Content Types and Content

z

Assigning a Content Workflow to a Content Type

z

Assigning a Content Workflow to a Content Item

BEA WebLogic Portal Content Management Guide

5-11

Assigning Content Workflows with Folders, Content Types and Content When a content workflow is associated with a content folder, all content within that folder follows the workflow. If content within the folder uses a content type that is also associated with a content workflow, the content type workflow overrides the folder workflow. You can also change the content workflow for an individual content item. If the content workflow is set at the content item-level, that content workflow overrides any other associated content workflow.

Assigning a Content Workflow to a Folder After you have added a content workflow to your repository, you can associate it with a content folder.

A

When a content workflow is associated with a content folder, all content within that folder follows the workflow. If content within the folder uses a content type that is also associated with a content workflow, the content type workflow overrides the folder workflow.

ET

You can choose to associate content workflows at the folder level, or only with content types, see “Assigning Content Workflows with Folders, Content Types and Content” on page 5-12 for more information. To associate a content workflow with a folder within the Virtual Content Repository: 1. Select Manage | Content to view the content tree.

B

2. Navigate to the folder to which you want to associate a content workflow. 3. Click the folder to view.

4. In the Summary tab, click Workflow to view the Switch Workflow dialog. 5. In the Switch Workflow dialog, select a content workflow from the drop-down list and add comments, if needed. 6. Click Update.

Assigning a Content Workflow to a Content Type Information not available for beta release.

5-12

BEA WebLogic Portal Content Management Guide

Ma na gin g Cont en t Wor kf lo ws

Assigning a Content Workflow to a Content Item Information not available for beta release.

Managing Content Workflows You can manage content workflows in many of the same ways you manage content. You can add security features such as entitlements and delegated administration that will help determine who can modify a workflow or associate a workflow with a content type or folder. You can also view which content types use which workflows, or see a list of all the content associated with a single workflow. This helps you see which content workflows are in use. You cannot delete a content workflow if it is currently assigned to a content type or any content.

Information not available for beta release.

ET

Viewing Assigned Content

A

Viewing Assigned Content Types

You can search for and view content that has been explicitly assigned a content workflow that overrides the content workflow associated with its type.

B

Additional information not available for beta release.

BEA WebLogic Portal Content Management Guide

5-13

A ET B 5-14

BEA WebLogic Portal Content Management Guide

CHAPTER

6

A

Using Content Types in Your BEA Repository

ET

Content types are named property sets that can be associated with a content file. When content creators add content to your BEA repository, they associate their content with a content type that matches the content file they are adding. Content types can include any combination of metadata properties and content files (binary properties). For example, when adding an image file to the repository, a content creator may choose to associate the image file with the “image” content type. The “image” content type may include properties such as width and height, as well as if the image is color or has alternative text.

B

Content types also determine how you will be able to search for content and how much information (metadata) you can associate with a content file. By thoughtfully planning out your content types, you can make it easier for portal developers to retrieve and deliver content within your portal application. The BEA repository includes some predefined content types, but you can create your own types to meet your business needs. As a best practice, you should design and add most of your content types before releasing the content repository to content creators to add content. Although you can add additional content types at any time during your development process; you cannot delete a content type after it has been associated with content. Content types are comprised of the following parts: z

Properties You define the properties included in a content type, the legal values for each and if that property is required, and so on. For example, the properties for a content type used for images may include the image dimensions, the date it is being uploaded, and so on.

BEA WebLogic Portal Content Management Guide

6-1

z

Content Workflows Content types can be associated with content workflows. Content workflows enforce a publication process for content. When you associate a content workflow with a content type, all content that uses that content type follows the same publication process (unless the content item is assigned its own workflow). For example, the BEA default workflow includes the following process: Draft > Ready for Review > Published > Retired.

This chapter includes the following sections: Understanding Content Type Properties

z

Using Abstract Content Types

z

Using Content Type Inheritance

z

Out-of-the-Box Content Types

z

Creating a Content Type

A

z

ET

Understanding Content Type Properties

When creating content types, it is important to understand the properties you can use to define content. The property types you use determine how content can be used in your portal. The more properties that are associated with a piece of content, the more granular your searches can be when retrieving content associated with that type.

B

The properties you associate with image files also determine how the file can be used in your portal. For example, you can use content properties in conjunction with interaction management tools such as content selectors and campaigns to define when content expires and stops displaying to your users. Note: For more information about interaction management, see the WebLogic Portal Interaction Management Guide. Property definitions for content type properties are multi-faceted. A content type property definition includes the data type is valid for the property and what options can be applied, such as making a property value required or assigning it a default value. This section discusses the following topics:

6-2

z

Supported Data Types

z

Property Options

BEA WebLogic Portal Content Management Guide

U nd e r s t an di n g C o nt e n t Type Properti es

z

Using Primary Properties

z

Setting Default Values

z

Defining Content Properties for Interaction Management

z

Using Abstract Content Types

Supported Data Types Properties can be of different data types. Each data type represents a unique definition that helps you capture specific information about content. For example, to associate content files with content, you must define a property that uses the binary property type. Users can associate binary files (documents, graphics, and so on) with content. You can also define properties as String data types, which allows users to associate a description of the file with the content.

Table 6-1 Supported Data Types Value Definition

Boolean

A data type that can have one of two values: true or false.

Long Integer

A 64-bit integer

A 64-bit integer that includes one decimal.

B

Number with Decimal (Double) String

ET

Data Type

A

Table 6-1 lists the data types that can be used.

A variable length character string of up to 254 alphanumeric characters.

Date/Time

A data type that contains the date and time. When this definition is used, users can define the value using a calendar and time entry control.

Binary

A data type that contains a binary file.

Nested Content Type

A data type that contains another content type.

Link

A data type that contains a link to another content item within the Virtual Content Repository.

BEA WebLogic Portal Content Management Guide

6-3

Property Options When you define a property, you define how that property definition behaves within the context of your content type. For example, you can make a property required or read-only. Table 6-2 lists the property options that are available. Table 6-2 Available Property Options Usage

Required

Makes this property mandatory when creating content.

Read Only

Information not available for beta.

Primary Property

Ensures that this property is retrieved in all searches. Binary properties must be marked as primary properties.

Searchable

Makes this property accessible through developer content queries. Occasionally, you will not want to make properties searchable. For example, salary data might be confidential and not searchable.

Is Explicit

Information not available for beta.

ET

A

Property Option

Using Primary Properties

B

Primary properties are used by portal developers when retrieving content to display to portal users. To display binary content in your Content Selectors and Placeholders, you must assign binary properties as the Primary Property.

Setting Default Values

You can set default values for the properties you define within your content types. Default values ensure consistent data entry when content creators add content to your repository. You can also provide choice lists and limit the entries to the values included in the choice list.

Defining Content Properties for Interaction Management Targeting users with content is one of the most important aspects of including content in your portal. You can do this by using interaction management tools such as placeholders, content selectors, campaigns and JSP tags. For more information about personalization, see the WebLogic Portal Interaction Management Guide.

6-4

BEA WebLogic Portal Content Management Guide

U nd e r s t an di n g C o nt e n t Type Properti es

For example, each time an employee visits your intranet portal, you can display a different picture from the company picnic. Another example is to run a “campaign” telling employees that they can update their benefit information. In the internal human resources portal, you can create a campaign that runs from November 1 to 30, during which time the campaign displays an Open Enrollment graphic in the portal header region and, when employees make changes to their benefits. Adding specific properties to your content types can ensure that developers can take full advantage of the interaction management tools that are available. The following properties should be used for content with which you want to retrieve with interaction management activities. You can use an abstract content type to add interaction management properties to multiple content types within your repository, see “Using Abstract Content Types” on page 6-6. To do this, create a content type that includes each interaction management property and then mark it as Abstract. You can then add this abstract type to any content type within your repository.

A

Tip:

ET

For example, if you want to use goal setting to end campaigns based on the number of times content is clicked, you must use the adTargetUrl, adTargetContent, or adMapName properties as described in Table 6-3. Table 6-3 Interaction Management Properties for Content Type

Description

adTargetUrl

String

Makes an image clickable and provides a target for the clickthrough, expressed as a URL. The Event Service records the clickthrough.

B

Content Property

Depending on how you want to identify the destination of the ad clickthrough, use adTargetUrl, adTargetContent, or adMapName.

adTargetContent

String

Makes an image clickable and provides a target for the clickthrough, expressed as the content management system's content ID. The Event Service records the clickthrough. You can view a content item's unique ID by selecting the content item in the WebLogic Portal Administration Console and viewing the description in the Edit Content window. Depending on how you want to identify the destination of the ad clickthrough, use adTargetUrl, adTargetContent, or adMapName.

BEA WebLogic Portal Content Management Guide

6-5

Table 6-3 Interaction Management Properties for Content (Continued) Content Property

Type

Description

adMapName

String

Makes an image clickable, using an image map to specify one or more targets. The value for this attribute is used in two locations: •

In the anchor tag that makes the image clickable:



In the map definition: <map name=value>

If you specify a value for adMapName, you must also specify a value for adMap. Depending on how you want to identify the destination of the ad clickthrough, use adTargetUrl, adTargetContent, or adMapName. String

Supplies the XHTML definition of an image map. If you specify a value for adMap, you must also specify a value for adMapName.

adWinTarget

String

Displays the target in a new pop-up window, using JavaScript to define the pop-up window. The only value supported for this attribute is newwindow.

adWinClose

String

ET

A

adMap

Specifies the name of a link that closes a pop-up window. The link appears at the end of the window content. For example, if you provide Close this window as the value for this attribute, then Close this window appears as a hyperlink in the last line of the pop-up window. If a visitor clicks the link, the window closes.

adBorder

String

Specifies a text string for the alt attribute of the tag. If you do not include this attribute, the tag does not specify an alt attribute.

B

adAltText

Integer

Specifies the value for the border attribute of the tag. If you do not include this attribute, the border attribute is given a value of 0.

Using Abstract Content Types Additional information not available for beta. When you create a content type, you can mark it as abstract. Abstract content types allow you to create re-usable property sets to use as building blocks that you can add to content types. Abstract content types can only be used within the context of an existing content type. By using abstract

6-6

BEA WebLogic Portal Content Management Guide

Us i ng C o n t e nt T yp e I nh e r i t an c e

content types, you can ensure consistency across all content types that include that abstract content type. Abstract content types cannot be associated with content, unless used as part of another content type. If you mark a content type as “abstract”, you prevent content creators from creating content based on that content type. For example, if you wanted to include author information within more than one content type, you could create an abstract content type that included all the properties you wanted to store. For example, you could create an abstract type for address information. By adding this type to a content type, you could add the same address properties to each content type that uses the abstract type.

A

After you have created the “author info” content type, you can then add it to other content types where you want to track the same information. You can do this by using a nested content property. For more information about the nested property type, see “Creating a Content Type” on page 6-12.

ET

Using Content Type Inheritance Additional information not available for beta.

When you create a content type, you can specify if that content type inherits the properties from a parent type.

B

For example, you can create a content type for all catalog items that includes properties such as SKU and PRICE. Whenever you create additional content types that require this information, you can indicate that you want your content type to inherit from a different content type.

Out-of-the-Box Content Types The BEA repository includes six content types that are ready to use. You can use these content types when you add content to your repository or you can create your own. Although these content types may not meet all of your needs, they do provide examples of the properties you can include in your own custom types. In some cases, such as the ad and ad_shockwave content types, the properties used are required to take full advantage of interaction management features. For more information about interaction management, see the WebLogic Portal Interaction Management Guide. This section includes a reference of the content types that are included and the property definitions they use. You can re-create these properties in your own types.

BEA WebLogic Portal Content Management Guide

6-7

z

Ad Content Type

z

Article Content Type

z

Book Content Type

z

Image Content Type

z

Message Content Type

Ad Content Type

A

This content type can be used for content that is designed to be an advertisement. It includes properties that open and close popup windows as well as presents alternative text when the portal user’s browser does not support viewing the content.Table 6-4 provides information about the properties includes in the ad content type. Table 6-4 Ad Content Type Properties Data Type

content

Binary

Content binary file.

height

Long

Preferred height, in pixels.

width

Long

Preferred width, in pixels.

adTargetURL

String

The target URL for image clicks.

String

If set, target render will be in a popup window with this name.

String

If set, and adWinTarget set, a close link will be included.

adWinTitle

String

If adWinTarget set, this will be the name of the window.

adClickTarget

String

The target for a click.

adUseXhtml

String

Set to true to produce XHTML, set to false to produce HTML.

adAltText

String

The alternative text for an image.

adWinClose

6-8

B

adWinTarget

Description

ET

Property Name

BEA WebLogic Portal Content Management Guide

Ou t -o f - t h e - Bo x C o n t e n t T y p e s

Table 6-4 Ad Content Type Properties (Continued) Property Name

Data Type

Description

adMapName

String

The HTML image map name for the image (required if using the adMap property).

adMap

String

The XHTML content for an image.

adBorder

String

The value of the border attribute around the image.

audience

String

Target audience for the content. Default choices are external and internal.

A

Article Content Type

ET

The article content type is designed to be used for web articles. You can either associate the article file or include the text of the article as a property. Other helpful properties include start and end dates for when to display the article in your portal. These dates can be used when configuring campaigns. Table 6-5 details the properties includes in the article content type. Table 6-5 Article Content Type Properties Property Name contributor

Description

String

Contributor of the article.

Date

Start date to display the article.

B

startDate

Data Type

description

String

Description of the article.

endDate

Date

Date to stop displaying article.

file

Binary

Binary file of the article.

headline

String

Article headline.

language

String

Language in which the article is written.

articlePriority

String

Article priority.

sizeInBytes

Long

Size of article.

source

String

Source associated with the article.

BEA WebLogic Portal Content Management Guide

6-9

Table 6-5 Article Content Type Properties (Continued) Property Name

Data Type

Description

status

String

Status of the article.

subject

String

Subject of the article.

textContent

String

Text content of the article, if applicable.

url

String

URL associated with the article.

title

String

Article title.

Book Content Type

ET

A

The book content type can be used for books that you may want to suggest to your portal users. The book content type properties allow you to associate sample content from the book as well as author and publication details. Table 6-6 shows the properties included in the book content type. Table 6-6 Book Content Type Properties Data Type

abstract

Binary

application

String

author

String

city

Abstract of the book.

Application area of the book.

Author of the book.

String

City of publication.

String

Country of publication.

edition

String

Book edition.

email

String

Publisher e-mail information.

file

Binary

Sample chapter or any file associated with book.

isbn

String

ISBN number of the book.

keywords

String

Keywords associated with book.

link

String

Link associated with book.

country

6-10

Description

B

Property Name

BEA WebLogic Portal Content Management Guide

Ou t -o f - t h e - Bo x C o n t e n t T y p e s

Table 6-6 Book Content Type Properties (Continued) Property Name

Data Type

Description

note

String

Comments associated with book.

pub_date

Date

Date the book was published.

state

String

State the book was published.

Image Content Type

A

The image content type can be associated with simple image content. Table 6-7 shows the properties includes for the image content type. Table 6-7 Image Content Type Properties Data Type

Description

image_name

String

Name of image.

file description

ET

Property Name

Binary

Image file.

String

Description of the image.

B

Message Content Type

Table 6-8 Message Content Type Properties Property Name

Data Type

Description

subject

String

Subject of message.

date

Date

Date the message was posted.

from

String

Message originator.

organization

String

Organization associated with message.

group

String

Group associated with message.

id

String

Message id.

BEA WebLogic Portal Content Management Guide

6-11

Table 6-8 Message Content Type Properties (Continued) Property Name

Data Type

Description

body

String

Body text of message.

attachment

String

Attachments to message, usually a binary file.

to

String

Message destination.

message_name

String

Name of message.

link

String

Link to related URL.

A

Creating a Content Type Content types are created within the Portal Administration Console. To create a new content type:

ET

1. Within the Administration Console, select Content > Content Management. 2. Select Types within the resource tree.

B

3. Select the repository in which you want to create a type. Figure 6-1 shows an example window.

6-12

BEA WebLogic Portal Content Management Guide

C re at i n g a C o n te nt T y p e

A

Figure 6-1 Manage Types Window

ET

4. Within the repository area, click Add Type. The Add Type dialog displays as shown in Figure 6-2.

B

Figure 6-2 Add Type Dialog

5. In the Add Type dialog, enter a name and description for your content type. 6. Optionally, you can select a content type from which to inherit additional content properties. For more information, see “Using Content Type Inheritance” on page 6-7. 7. Optionally, you can select a workflow to use for this content type.

BEA WebLogic Portal Content Management Guide

6-13

Default is the name of the default workflow that comes with your BEA repository. If other workflows have been created for this repository, they display in the drop-down list in addition. For more information about workflows, see “Using Content Workflows in Your BEA Repository” on page 5-1. 8. Optionally, you can select a content type from which to inherit properties. 9. When finished, click Create Type. The Types tab displays. You can define properties for this content type using the Types tab.

Define Properties of a Content Type After creating a content type, you need to define the content properties for that type.

A

1. From the Type tab, select the type to which you want to define properties. Figure 6-3 shows an example Type tab.

B

ET

Figure 6-3 The Type Tab within the Manage Types Window

2. Select the Properties tab. 3. Click Add Property. The Add Property dialog appears as shown in Figure 6-4.

6-14

BEA WebLogic Portal Content Management Guide

C re at i n g a C o n te nt T y p e

Figure 6-4 Add Property Dialog

A

4. In the Add Property dialog, select the type of property you want to add: Basic Property, Link or Nested-Type Property.

ET

– To add a Basic Property, select a data type from the drop-down list. See “Supported Data Types” on page 6-3 for more information about data types. – To add a Nested-Type Property, select a content type from the provided list. A nested-type property will add the property definitions from the selected type to the type you are creating.

B

Note: Nested type properties allow you to include another content type within the type you are creating. When you do this, all properties from the nested property type are added to the content type you are creating. – To add a Link property, select Link. 5. Click Next to view the Add Property dialog. Figure 6-5 shows an example of the Add Property dialog.

BEA WebLogic Portal Content Management Guide

6-15

A

Figure 6-5 Add Property Dialog

ET

6. In the Add Property dialog, type a name for the property you are creating. 7. Mark the property option you want to assign to this property. For more information about property options, see “Property Options” on page 6-4. 8. Optionally, you can add a list of property values to be used for this property.

B

9. When finished, select either Save to exit the Add Property dialog or Save and Add Another to use the Add Property dialog to add another property.

Marking a Content Type as Abstract Optionally, you can mark a content type as abstract. Marking it as an abstract type allows you to use it as a “building block”, see “Using Abstract Content Types” on page 6-6. To mark a content type as abstract: 1. Select Types within the resource tree. 2. Select the repository in which your content type resides. 3. Click the content type you want to make abstract. The Summary tab displays in the right pane. 4. In the Summary tab, click Name & Status to view the Edit dialog.

6-16

BEA WebLogic Portal Content Management Guide

C re at i n g a C o n te nt T y p e

5. In the Edit dialog, mark the Is Abstract checkbox.

B

ET

A

6. Click Save.

BEA WebLogic Portal Content Management Guide

6-17

A ET B 6-18

BEA WebLogic Portal Content Management Guide

CHAPTER

7

A

Using WebDAV with Your BEA Repository

When you configure WebDAV for your BEA repository, content creators can save files directly to the BEA repository from Windows Explorer and other Microsoft applications.

ET

Note: For more information about WebDAV, see the WebDAV website. This chapter includes the following sections: WebDAV Overview

z

Enabling WebDAV for Your BEA Repository

z

Using WebDAV with Your BEA Repository

B

z

WebDAV Overview

Adding WebDAV support to your BEA repository effectively adds a new suite of applications to access, create and update content. Content creators can add files to a BEA repository using Windows Explorer or from Microsoft Office applications. Before adding WebDAV support to your repository, please review the following guidelines and requirements. z

WebDAV Guidelines

z

Supported Versions of Microsoft Office

BEA WebLogic Portal Content Management Guide

7-1

WebDAV Guidelines In summary, the WebDAV service requires certain directory structures to be in place and content names must match the associated binary file. When adding content to your repository using WebDAV, use the following guidelines: After adding a file to the repository, you cannot rename it without also renaming the associated file. The name of the content and the associated binary must be the same.

z

You must create content within a folder.

z

You cannot rename a file and move it at the same time. You must first move the file, then rename.

z

As with any content repository, if versioning is not being used, it is possible for content creators to overwrite work.

z

When adding very large files (larger than 10 MB), you should use the Virtual Content Repository through Portal Administration Console.

A

z

ET

Supported Versions of Microsoft Office

WebLogic Portal’s implementation of WebDAV requires Microsoft Office 2000, SP3 or greater, with MSDAIPP.dll version 8.103.3521.0. For additional details about Microsoft’s support for WebDAV, see http://www.greenbytes.de/tech/webdav/webfolder-client-list.html.

B

Enabling WebDAV for Your BEA Repository Before you can use WebDAV with your BEA repository, you must prepare your repository. You need to create a default content type for applications to use when you save content directly to your repository. For example, you can enable all WebDAV content to use the press release content type. You also enable your repository to recognize WebDAV content by defining a WebDAV property for your repository. Note: You can enable one BEA repository for use with WebDAV. If you are using multiple BEA repositories you must choose which one with which you want to enable WebDAV. This section discusses the following topics: z

7-2

Set Up a WebDAV Content Type

BEA WebLogic Portal Content Management Guide

En ab lin g Web DAV f or Yo ur BEA Rep osi to ry

z

Enable WebDAV for Your Repository

z

How WebDAV Determines the Content Type to Use

z

Disabling WebDAV

Set Up a WebDAV Content Type You must set up the default content type that will be used when the content is created. To do this: 1. Login to the Portal Administration Console. 2. Click Content Management. 3. View the Type List Resource Tree by selecting Manage | Type.

A

4. Define a new content type with at least one binary property. Mark this property as the primary property. Save the changes.

ET

Note: WebDAV can use an existing type as long as the content type has at least one binary property. WebDAV does not use any other properties other than this binary property, unless default values are set for properties within the content type.

Enable WebDAV for Your Repository You can enable WebDAV for one BEA repository within your Virtual Content Repository. To do this:

B

1. Select Manage | Repository to list the available repositories. 2. In the Manage | Repositories tree, click the existing BEA repository to view the Repository Summary. 3. In the Properties area, click Add Property. a. In the Name field, enter WEBDAV_ENABLED. b. In the Value field, enter true. c. Click Save. 4. In the Properties area, click Add Property. a. In the Name field, enter WEBDAV_TYPE.

BEA WebLogic Portal Content Management Guide

7-3

b. In the Value field, enter the name of the new content type you defined in “Set Up a WebDAV Content Type” on page 7-3 c. Click Save.

How WebDAV Determines the Content Type to Use The content type used for content added to the repository using WebDAV depends on which folder in the repository tree content is saved. If there is content type associated with the folder under which you are creating content and that content type defines a WebDAV property, WebDAV uses that property value to assign a content type.

A

If no content type is associated with the immediate folder, WebDAV iterates up the tree until it finds the first content type associated with a folder. If no content type is associated with any content folder WebDAV finds, it uses the content type associated with the repository.

ET

When you add a file to your repository using WebDAV, WebDAV associates the content with the content type you have configured for your repository. WebDAV automatically fills in system properties for the content type, but users need to log in to the Portal Administration Console to complete administrator-defined properties. For more information about associating a content type with a folder, see “Creating a Folder” on page 4-2.

B

Disabling WebDAV

If you want to disable WebDAV for a BEA repository, do the following: 1. In the Manage | Repositories tree, click the existing BEA repository to view the Repository Summary. 2. Click Repository Details. 3. For the WEBDAV_ENABLED property, enter a value of false. 4. Click Save.

7-4

BEA WebLogic Portal Content Management Guide

Usin g W eb DAV wit h Yo ur BEA Rep osi to ry

Using WebDAV with Your BEA Repository Content creators must configure their individual environments to take advantage of WebDAV features. Supported applications include Windows Explorer and Microsoft Office programs. The following procedure enables all WebDAV capabilities that are supported by WebLogic Portal. This section includes the following topics: z

Enabling WebDAV for an Environment

z

Adding a Microsoft Word Document to a BEA Repository

z

Using Windows Explorer Add a File to the BEA Repository

Enabling WebDAV for an Environment 1. Open Internet Explorer.

A

To enable WebDAV for your individual environment,

ET

2. Choose File > Open to view the Open dialog.

3. In the Open dialog, enter the URL where WebDAV is running in the text box. This URL is uses the same machine name and port as is used to access the Portal Administration Console, (for example, http://localhost:7001/webdav). 4. Mark the Open as Web Folder check box.

B

5. Click OK.

6. You are asked to login to the BEA repository, enter your login name and password. The BEA Repository is listed as a folder within Windows Explorer. You can use Windows Explorer to browse the content in BEA repository like you would any other folder.

Adding a Microsoft Word Document to a BEA Repository After configuring WebDav for your environment, you can save files directly to your repository from Microsoft Office programs. This examples explains how to add a a Microsoft Word document to a BEA repository. Note: When adding content to a BEA repository, you note the WebDAV guidelines, see “WebDAV Guidelines” on page 7-2. 1. Within Microsoft Word, choose File > Save As.

BEA WebLogic Portal Content Management Guide

7-5

2. Within the Save As dialog, navigate to the location of your BEA repository. 3. Click Save. 4. If you have not already logged into the BEA repository, you are prompted to log in. The file is added to the repository using the default content type and automatically fills in default values and system properties such as the version number, the date and so on, see “How WebDAV Determines the Content Type to Use” on page 7-4 for more information. After adding a file to the repository, you should log in to the Portal Administration Console and use the Virtual Content Repository to fill in additional properties.

Using Windows Explorer Add a File to the BEA Repository

A

You can add files to your BEA repository using Windows Explorer. You can drag-and-drop files to folders within your repository. Note: When adding content to a BEA repository, you note the WebDAV guidelines, see “WebDAV Guidelines” on page 7-2.

B

ET

Additional information not available for beta.

7-6

BEA WebLogic Portal Content Management Guide

CHAPTER

8

A

Connecting to a Third-Party Repository

ET

WebLogic Portal’s Virtual Content Repository enables you to plug in multiple, heterogeneous content repositories. Leading vendors such as Documentum, FileNet and FatWire and have built integrations (Content Service Provider implementations) that allow them to integrate with the Virtual Content Repository and their content accessed by portal tools such as content placeholders, content selectors, and so on. Contact your third-party repository vendor to find out the details about their implementation. If you are using a third-party repository that has not written an integration to the BEA’s Virtual Content Repository, you can write your own using BEA’s Service Provider Interface (SPI).

B

If you want to connect to a JSR170 repository, you can use BEA’s JSR 170 Connector. For more information about JSR170, see the JSR170 website. This chapter includes the following sections: z

Connecting to a Third-Party Repository

z

Creating a Third-Party Repository Implementation

z

Propagation and Deployment Considerations

Connecting to a Third-Party Repository If you want to use a third-party repository, you need to connect that repository to the Virtual Content Repository using the Portal Administration Console. After you have connected WebLogic Portal to a third-party repository, you can use that repository’s content within your

BEA WebLogic Portal Content Management Guide

8-1

portal. If the third-party repository is configured to be read/write, you can also use the Portal Administration Console to modify content within the repository. Note: Typically, you cannot use BEA’s library services with third party repositories. When you connect to a third-party repository, you may need to configure additional properties that match your third-party repository’s configuration. Consult your third-party documentation to verify the properties you need to configure and the connection class you should use.

Connecting to a JSR 170-Compatible Repository WebLogic Portal provides a connector to supported JSR 170 repositories such as Day Software’s CRX. If you want to use this repository, you do not need to write a custom implementation. To connect to a JSR 170 repository, do the following:

2. Click the Virtual Content Repository.

A

1. Select Manage | Repositories to view the Repositories tree.

ET

3. On the Browse tab, click Add Repository Connection. Figure 8-1 provides an example of the Browse tab within the Repositories area.

B

Figure 8-1 Browse Tab within the Manage Repositories Window

4. In the Add Repository Connection dialog, provide the following information:

8-2

BEA WebLogic Portal Content Management Guide

Con nec tin g to a Thi rd - Pa rt y Rep osi to ry

Table 8-1 Repository Connection Information Field

Description

Repository Name

The name you give your new repository. For example: MyNewRepository

Connection Class

If connecting to the Day Software CRX repository, use the following connection class: com.day.content.spi.jsr170.JNDIRepository Enter the username required to connect to you third-party repository the third-party repository you are using.

Password

Enter the password required to connect to your third-party repository.

Retype Password

Re-enter the password required to connect to your third-party repository.

Enable Library Services

Unmark this checkbox if you do not want to use library services with this repository.

ET

A

Username

Note: Typically, library services should not be enabled for use with third-party repositories.

5. Click Save.

B

6. Within the Repositories area, click the repository you just created to verify that it has been created and view its Repository Summary. 7. Configure the following properties if you are using Day Software’s CRX repository: Repository Property

Required Value

What it does:

jsr170.hide.builtin

true

This property prevents repository-specific types and properties from interferring with the Virtual Content Repository.

jsr170.uid.mapping

uuid

This property maps the IDs generated by your repository to the internal IDs needed by the Virtual Content Repository.

BEA WebLogic Portal Content Management Guide

8-3

8. Repeat the following steps for each property you want to add: a. In the Properties area, click Add Property. b. In the Name field, enter the name of the property you want to add. c. In the Value field, enter the value of the property. d. Click Save. 9. Within the Repositories area, click the repository you just created to verify that it has been created and view its Repository Summary.

Creating a Third-Party Repository Implementation

ET

A

The section discusses the necessary steps to implement the BEA Content Management SPI and use the implementation with the Virtual Content Repository. This SPI is not be tied to any particular underlying architecture, data source, or protocol. This means it can be applicable to a wide range of implementations including database-centric, filesystem-based and network protocol-based repositories. Note: For more information regarding the SPI, please review the Content SPI JavaDoc. The SPI implementation runs inside a WebLogic Portal enterprise application and can be clustered. It can also be deployed multiple times with different configuration parameters. Different implementations may affect scalability and performance for WebLogic Portal.

B

Implementing the BEA Content SPI involves implementing the repository connection and service interfaces that reside in com.bea.content.spi. The SPI domain is modeled around a set of value objects. These value classes are created, read, updated and deleted through a set of service interfaces. The service interfaces are accessed through a set of repository connection interfaces that are the gateway to the SPI implementation. The model tries to be as open as possible for the limited amount of functionality and relies on the SPI implementation to throw appropriate exceptions if the attempted operations are not allowed in the repository. For example, the SPI allows for content to be added to folders, if the repository does not allow that behavior then it must throw a RepositoryException stating so. If a method is not implemented at all, then a UnsupportedRepositoryOperationException can be thrown. This section includes the following topics: z

8-4

Service Interfaces

BEA WebLogic Portal Content Management Guide

Cr ea ti ng a Thi rd - Pa rt y Rep osi to ry I mple me nt at io n

z

Repository Connection Interfaces

z

Connection Sequence

z

Value Model

z

Configuring the Expression Model

z

Configuring the Repository

Table 8-2 lists the value classes included in the content SPI. Table 8-2 Value Classes included in the Content SPI Usage Notes

ContentEntity

ContentEntity is the superclass for most of the value classes. It defines that any subclass will be serializable and will also contain a unique ID.

ID

ID uniquely identifies a ContentEntity in the system. It consists of both a repositoryName (used by management layer) and also a UID (used by repository layer). The management layer ensures that both the ID is never null and that its UID is never null when referring to a ContentEntity that exists in the system.

ET

A

Value Class

This is a container for other nodes and also properties. A node can be of type hierarchy or content. Hierarchy nodes can contain both hierarchy and content nodes, while content nodes can only contain other content nodes.

Node

B

Nodes have a few system properties defined directly on the node class including createDate, createdBy, modifiedDate and modifiedBy. Nodes also have user or application-defined Property objects. In order for a node to contain Property objects, it must have an ObjectClass associated with it.

Property

Property is a name value pair that can contain zero or more Value objects. Its associated PropertyDefinition defines the shape of a Property. The association is an implicit relationship based on name.

Value

This is a generic wrapper for the real value, which can be a BinaryValue, Boolean, Calendar, Float, Long, or String.

BinaryValue

BinaryValue contains a byte array that includes the associated binary and also has the binary name, mime type, and size. A BinaryValue cannot always contain the actual byes for performance reasons. For the consumer of the SPI to get the actual bytes, they can use the NodeOps service interface.

BEA WebLogic Portal Content Management Guide

8-5

Table 8-2 Value Classes included in the Content SPI (Continued) Value Class

Usage Notes

ObjectClass

ObjectClass defines the schema for a node and contains a name that uniquely identifies it within a repository and also an array of PropertyDefinitions. ObjectClasses are stand-alone and do not provide an inheritance or containment structure.

As such, if the repository implementing the SPI has an inheritance or containment model, it must transform the requested ObjectClass into a single ObjectClass with all PropertyDefinitions found in all super ObjectClasses. If nodes are associated with an ObjectClass, it is recommended that you do not update the ObjectClass as there can be undesired outcomes.

PropertyDefinition defines the shape of a Property including its name, type, whether it is single-valued or multi-valued, read only, and mandatory. It also can define a set of PropertyChoices and whether the Property value is restricted to these choices. The validity of a PropertyDefinition is left to the SPI implementation with a few exceptions. The management layer requires the following rules be in place, even though they are not apparent in the class structure. These rules are enforced during the creation of a PropertyDefintion by the management layer, and the value model is not considered valid if the conditions are not true for PropertyDefintions (and the corresponding Properties) that are retrieved from an SPI implementation

B

ET

PropertyDefinition

A

Each ObjectClass can contain a primary PropertyDefintion. This allows the model to distinguish between content and metadata. The primary PropertyDefinition indicates which Property on a node represents the true content.

PropertyChoice

8-6



If the PropertyDefinition contains a reference, it can not be multi-valued, or binary.



If the PropertyDefinition is binary, it can not be multi-valued or restricted and can only have one PropertyChoice.



If the PropertyDefinition is Boolean, it cannot be multi-valued.

This defines a value choice for a Property and also whether it is a default for the Property. A PropertyChoice can be of any type that is supported by a Property.

BEA WebLogic Portal Content Management Guide

Cr ea ti ng a Thi rd - Pa rt y Rep osi to ry I mple me nt at io n

Service Interfaces Service Interfaces are used to perform CRUD (Create, Read, Update, and Delete) on value interfaces such as creating a node or updating a property to a node. Service interfaces, in general, operate on the entity's id, such as Node ID. This ID can be a UUID database ID or the element’s path as long as it uniquely identifies it to the repository. Service interfaces are expected to be transactional (where necessary), threadsafe and scalable. There can be one implementation for all interfaces, or a separate implementation for each service interface. All service methods throw a general com.bea.content.RepositoryException. The SPI also includes a few standard exceptions that inherit from RepositoryException.

Table 8-3 Service Interfaces

A

Table 8-3 lists the service interfaces available with the content SPI. For more information about these service interfaces, see the WebLogic Portal JavaDoc for the com.bea.content.spi package.

Usage Notes

NodeOps

NodeOps is the service interface for performing operations on nodes and their properties. This includes creating, updating, deleting, copying, moving and renaming nodes.

ObjectClassOps

ObjectClassOps is the service interface for performing operations on ObjectClasses and their PropertyDefinitions and PropertyChoices. This includes creating, updating and retrieving ObjectClasses. SearchOps is the service interface for performing searches for nodes. The search is based on the Search object defined in com.bea.content.expression along with the expression structure in the com.bea.p13n.expression package.

B

SearchOps

ET

Service Interface

Search is for any node that matches the property and/or ObjectClass definitions in the expression. There are system properties that can be part of the search and are defined in the Search class.

Repository Connection Interfaces Repository Connection Interfaces include Repository, Ticket and PasswordCredential. In order for a client of the SPI to connect to the services, the repository connection interfaces must be implemented. These interfaces allow an SPI implementation to be plugged into the BEA content management framework.

BEA WebLogic Portal Content Management Guide

8-7

The repository connection interfaces are responsible for accepting a PasswordCredential object, which includes a username and granting the client access to the various service interfaces. Table 8-3 lists the service interfaces available with the content SPI. For more information about these repository connection interfaces, see the WebLogic Portal JavaDoc for the com.bea.content.spi package. Table 8-4 Repository Connection Interfaces Usage Notes

Repository

Repository defines the configuration for a content repository and also provides access to the content repository services through the Ticket. It must be implemented as a J2SE class such that "new" can be called on it. The setProperties method on the Repository will be called on initialization so the Repository instance will always have its configuration properties before it is asked for a ticket. The Repository implementation can be configurable to allow for multiple instances to be deployed against different repositories.

Ticket

Ticket is the interface given back to the client after calling connect to a Repository with Credentials that are authenticated. It is the gateway to the content repository services.

Credentials

Credentials defines the credentials for a user attempting access to the content repository. Both authentication and authorization can be based on the Credentials. It is necessary for the SPI implementation to authenticate and authorize based on username, because password is not present in the PasswordCredential. If the username is null then the authentication can be based on an anonymous user.

B

ET

A

Service Interface

Connection Sequence

The ContentManagerFactory calls the SPI on a need-to-know basis. You can either write your SPI implementation to take advantage of this by lazy loading, or you can have your implementation load up front if that is more advantageous.

8-8

BEA WebLogic Portal Content Management Guide

Cr ea ti ng a Thi rd - Pa rt y Rep osi to ry I mple me nt at io n

A

Figure 8-2 Connection Sequence

ET

For example, both the getNodes and getNode calls may either return “light” versions of the node that do not include the properties, or they may return “full” versions of the node that do include the properties. If the properties are not part of the node, when the ContentManagerFactory needs the properties it will go back to the SPI to retrieve them. The InputStream for binary properties can only be returned on the getBytes() call, otherwise it will not get closed properly.

B

Listing 8-1 is an example of a repository implementation is that is called by the Virtual ContentManager. Listing 8-1 Example of Repository Implementation public class RepositoryImpl implements Repository { Properties properties; String name; public Ticket connect(Credentials credentials) { return new TicketImpl(credentials, properties); }

BEA WebLogic Portal Content Management Guide

8-9

public Ticket connect(String userName, String password) { Subject subject = com.bea.p13n.security.Authentication. getCurrentSubject(); Credentials credentials = new Credentials(subject); return new TicketImpl(credentials, properties); } public Properties getProperties() { return properties; } public void setProperties(Properties properties) {

{ return name; }

ET

public String getName()

public void setName(String name) {

}

B

this.name = name; }

Value Model Figure 8-3 shows the value model.

8-10

A

this.properties = properties; }

BEA WebLogic Portal Content Management Guide

Cr ea ti ng a Thi rd - Pa rt y Rep osi to ry I mple me nt at io n

B

ET

A

Figure 8-3 Value model

Configuring the Expression Model Figure 8-4 shows the expression model.

BEA WebLogic Portal Content Management Guide

8-11

B

ET

A

Figure 8-4 Expression Model

Configuring the Repository Once you have implemented the SPI, you need to connect the third-party repository to the Virtual Content Repository using the Portal Administration Console. Generally, third-party repositories require additional configuration properties in order to connect to the Virtual Content Repository, see “Connecting to a Third-Party Repository” on page 8-1. After configuring the repository, you can start utilizing it in BEA WebLogic Portal.

8-12

BEA WebLogic Portal Content Management Guide

P ro pa ga ti o n an d D e p l o yme nt Considerations

Propagation and Deployment Considerations

B

ET

A

Information not available for beta release.

BEA WebLogic Portal Content Management Guide

8-13

A ET B 8-14

BEA WebLogic Portal Content Management Guide

A

Part II Development

ET

Within content management, the development phase covers both creation of content as well as delivering that content to your portal users. Using the Portal Administration Console, content creators add content to the content repository using workflows and versioning. Using Workshop for WebLogic, developers use to incorporate content within the portal by using personalization tools such as content selectors and placeholders. Developers can also display content with JSP tags, controls and the content API. Content and portal developers can use these features to deliver content to your portal by performing some of the following tasks: Create content to be used within your portal

z

Search for applicable content to use within your portal

z

Choose how to display content in your portal

z

Personalize how content is presented

B

z

The decisions you made during the Architecture phase shape what you do in the development phase. For example, content creators create content according to the repository hierarchy and content types you have already put in place. When you finish the Development phase you can proceed to the Staging phase. Consider setting up a common development environment for the development phase and the staging phase. You might move iteratively between these two phases, developing and then testing what you created. If you moved on to the Production phase and then go back to make changes that affect the development phase, you must redeploy your portal application in order to view your changes. The

BEA WebLogic Portal Content Management Guide

BEA Propagation Utility performs the redeployment; see the BEA WebLogic Portal Production Operations User Guide for more information.

ET

A

For a detailed description of the development phase of the portal life cycle, see the BEA WebLogic Portal Overview. The portal life cycle is shown in the following graphic:

Part II includes the following chapters:

Chapter 9, “Creating Content within a BEA Repository”

z

Chapter 10, “Delivering Content Within Your Portal”

B

z

BEA WebLogic Portal Content Management Guide

CHAPTER

9

A

Creating Content within a BEA Repository

Content creators create content in the BEA repository through the Virtual Content Repository. The Virtual Content Repository is accessible through the Portal Administration Console and provides access to all configured BEA repositories.

ET

Creating content involves associating a content file with a content type and uploading the file to the repository. The BEA repository includes version tracking and a default content workflow that enforces a default process for content creation. This chapter includes the following sections:

Creating Content within a BEA Repository

z

Example: Creating a Content Item

z

Example: Checking Out a Content Version

z

Searching for Content within Your Repository

B

z

Note: Before content can be created, you must first create content types and design your repository hierarchy, see Chapter 4, “Organizing Content within a BEA Repository.”

Creating Content within a BEA Repository BEA repositories include library services by default. Library services provide versioning, workflow, as well as customized workspaces for content creators. z

Workflow management that provides a customizable workflow for developing content

BEA WebLogic Portal Content Management Guide

9-1

z

Content workspaces that provides a simplified user-based views of content that is currently in progress

z

Version control of content items and content types

Table 9-1 details the library services that are available to BEA repositories. BEA’s library services are only available when using a BEA repository. Table 9-1 Overview of BEA Repository Library Services What it provides:

Content Workflow

The Content Workflow allows you to move content through a set of statuses that can be further managed through WebLogic Portal's Delegated Administration. WebLogic Portal's default content workflow includes the following statuses: Draft, Ready for Review, Rejected, Published and Retired.

Content Workspace

The Content Workspace provides a simplified user-based view of content that is currently in progress. It contains two folders: My Checked Out Items and My Assigned Items. My Checked Out Items contains all content items that the current user has checked out for edit. My Assigned Items contains all items that are assigned to that user and require further action, such as approval.

ET

A

Library Service

Use the Content Workspace to:

View items that are currently assigned to your role. All users within a particular role view/modify items assigned to that role.



View items that you currently have checked out. This folder displays only those items checked out by the current user.

B



Content Versioning

Content Versioning allows you to keep track of multiple versions of a content item. Versioning provides a more powerful alternative to keeping backup files. With content versioning, you can easily view previous versions of a content item if needed, as well as keep a detailed record of when and why changes were made.

Example: Creating a Content Item In this example, you create content using the “book” content type, which is one of the default content types that is included with your BEA repository. Your repository may have other customized content types that differ from this example. To add content: 9-2

BEA WebLogic Portal Content Management Guide

E x amp l e : C re at i ng a C o n te nt I t e m

1. In the Manage | Content tree, select the repository to which you want to add content. 2. In the Browse area, click Add Content to view the Add Content dialog. 3. In the Add Content dialog, a. Type a name for the content. b. Select the book content type from the Type drop-down list. c. Click Add to view the Add Node page. 4. In the Add Node page, a. Associate content with item by clicking Upload File in the Primary Properties area.

A

b. Click Browse to select a content file from your filesystem. c. If you know the type of encoding you wish to use, select it from the drop-down list. If not, leave the default.

ET

d. Optionally, select the MIME format that matches the content you selected. e. In the Other Properties area, provide values for the properties listed. These property values are used by portal developers to retrieve your content. 5. Click Save. Your content item is saved and remains checked out of the repository.

B

While content is checked out of the repository, it is displayed in the Workspace View under the Checked Out Items folder. 6. To view your content item, select the Workspace View tab and navigate to your content item within the Checked Out Items folder. 7. Click the content item you created to view its properties. 8. In the Versioning and Workflow area, click Check In to view the Content Check In dialog. 9. Select a status from the Check in with Status drop-down list. 10. Enter any comments in the comments text box. 11. Click Check In.

BEA WebLogic Portal Content Management Guide

9-3

Example: Checking Out a Content Version In this example, you check out a content item, make some modifications, and change its workflow status. This example uses the content item created “Example: Creating a Content Item” on page 2. 1. In the Workspace View > Assigned Items, navigate to the content you want to check out. Note: Optionally, you can work with content that is not assigned to you navigating to the content you want to work with in the Repository View. You must have security access to the content you want to edit. 2. Select the content to view the Summary tab. 3. In the Versioning and Workflow area, click Check Out.

A

Your content item is now displayed in the Workspace View under the Checked Out Items folder. Use the steps listed in “Example: Creating a Content Item” on page 9-2 to edit your content.

ET

Example: Rolling Back Content to a Previous Version Information not available for beta.

To roll back to a previous version of content:

Check out the content item that you want to modify.

Within the Workspace View, navigate to the Checked Out Items folder.

B

Select the content you want to modify.

In the right pane, select the Version History tab. Optionally, you can search for the version you want to use by using the version history search, see “Searching Versions of a Content Item” on page 9-8.

Searching for Content within Your Repository As your repository grows, you can save time by using the Virtual Content Repository’s search features to find the content you want to work with. You can search the version history of a particular content item, as well as conduct a search of the entire repository. This section includes the following topics: z

9-4

Searching for Content By Name

BEA WebLogic Portal Content Management Guide

S e a rc h i n g f o r C o n t e nt w i th i n Yo ur R e p o s i to ry

z

Searching for Content By Property Value

z

Searching the Full Text of Content

z

Searching Versions of a Content Item

Searching for Content By Name If you know the name of the content you need to find, you can search for it by name. To search for content by name: 1. In the Manage | Content tree, select the repository you want to search. 2. In the right pane, select the Search tab.

A

3. In the Name field, select an operator from the drop-down list (contains, doesn’t contain, and so on) and type the name that you wish to use. 4. Click Search.

ET

Searching for Content By Property Value

You can use the property search when you know the properties used for the content you want to find. For example, if you want to find all content that was published on a certain day, you would search the “published date” property for a value of the date you want to find.

B

When you search for content according to property values, you can search published content, unpublished content or all content. To search your repository for content using property values, do the following: 1. In the Manage | Content tree, select the repository you want to search. 2. In the right pane, select the Search tab. <screenshot> 3. Select Advanced Search Options in the Search area. 4. Select whether you want to search Published content or New (unpublished) content by marking the appropriate check box. Mark both check boxes if you want to search for all repository content. 5. Select Or Search Specific Properties. Figure 9-1 provides an example of searching for specific properties.

BEA WebLogic Portal Content Management Guide

9-5

Figure 9-1 Search Properties Area

ET

A

6. Specific the properties for which you want to search, in the Search Specific Properties area. Use Table 9-2 for specific instructions on each criteria.You can use any or all of the criteria. If a criteria is left blank, it is not used in the search. Table 9-2 Specific Properties Search Criteria Search Criteria

Usage

Matches any condition

Choose whether you want your search to include any of the conditions you specify or all of them by marking the appropriate option.

Matches all conditions

Selecting a type determines which content type you want to find. Choose the content type(s) you want to search from the drop-down list.

B

Type

Include Subtypes

If you want to search for individual property values within the content type(s) you selected, mark Include Subtypes.

Type Properties

Define the property values for which you want to search. Select a property from the drop-down list, choose an operator (contains, equals, and so on) to use, and enter the value you are searching for.

Dates

You can search according to the date content was created or modified. Select Created or Modified from the drop-down list, select an operator (before, after, and so on), and use the calendar tool to select a date for which to search.

9-6

BEA WebLogic Portal Content Management Guide

S e a rc h i n g f o r C o n t e nt w i th i n Yo ur R e p o s i to ry

Table 9-2 Specific Properties Search Criteria Search Criteria

Usage

Creator or Editor

You can search for content according to the user name that created it or modified it. Select Created By or Modified By from the drop-down list and enter a user name in the provided field.

Binary Content

You can search for the binary file associated with content. For example, you can search for the size or the name of the file you want to find. Using the drop-down list, select the property of the binary file you want to search (file name, file size, or MIME type), select an operator and provide a value. You can search for content according to the folder or subfolder that it resides in within your repository. This is referred to as the Path to Content.

A

Path to Content

Fill in the folder name(s) you want to search using the following format:

ET

/foldername/subfoldername/contentname

7. When finished entering criteria, click Search. Your results display in the Search Results area.

Searching the Full Text of Content

B

You can search the full text of a content item which includes both its associated property values as well as the associated content file. Full-text search can only be used to find repository content that has been published for delivery to your portal. For example, you can use full-text search to find content of different content types that might include the same information. To use a full-text search to find content, do the following: 1. In the Manage | Content tree, select the repository you want to search. 2. In the right pane, select the Search tab. 3. Select Advanced Search Options in the Search area. Figure 9-2 provides an example of the Search area.

BEA WebLogic Portal Content Management Guide

9-7

Figure 9-2 Search Tab within the Repository View

A

4. Mark Published to search for content that has been published for delivery to your portal. Full-text search does not work on unpublished content. 5. Mark Full Text Search.

7. Click Search.

ET

6. In the text box provided, type the keywords for which you want to search. The text you provide will be used to search both the property values for content and the associated binary files.

Searching Versions of a Content Item

B

You can search the version history of a content item either by what is contained in the version comments or by using advanced options such as when the content was modified and by who. To search within the version history of a content item, 1. In the Manage | Content tree, select the content item whose version history you want to search. You can use the Search tab, see “Searching for Content By Name” on page 9-5. 2. Select the Version History tab in the right pane. 3. Within the Search area, you can search the version comments field for the content item for specific text. Enter the text you want to find and click Search. 4. Optionally, you can use the Advanced Search Options to search the version history by workflow status, date modified or by the user name who modified the version you are looking for, see Table 9-3.

9-8

BEA WebLogic Portal Content Management Guide

S e a rc h i n g f o r C o n t e nt w i th i n Yo ur R e p o s i to ry

Table 9-3 Advanced Search Options for Searching the Version History of a Content Item Search Criteria

Usage

Modified By

Searches for content versions that were modified by the user name you specify.

Workflow Status

Searches for content versions that have the workflow status you specify.

Checked in

Searches for content versions that were checked in before or after the date you specify. You can also specify a single date.

5. After defining your search criteria, click Search.

A

Using Expressions to Search for Content

B

ET

You can use expressions to search for content within your BEA repository, see “Using Content Queries” on page 10-10 for a complete reference to building content queries.

BEA WebLogic Portal Content Management Guide

9-9

A ET B 9-10

BEA WebLogic Portal Content Management Guide

C H A P T E R 10

A

Delivering Content Within Your Portal

Note: The code samples in this chapter have not been updated for the beta release. The 9.2 release includes a new API for content management. The previous API has been deprecated for this release. For more information, see the WebLogic Portal JavaDoc.

ET

When developing your portal, you use JSP tags, the content API and personalization tools to search for and display content to your portal users. Retrieving and displaying content is typically done within the context of a JSP page. Within a JSP page, you can use the API directly, a JSP tag, or use content selectors or placeholders to base content on queries or rules.

B

You can use content selectors and campaigns deliver personalized content to user based upon personalization rules or conditions. Within this context, you use JSP tags to retrieve the content you need. This chapter includes the following sections: z

Working with JSP Tags

z

Displaying Content Using with the Content API

z

Personalizing Content

z

Implementing Caching when Using Content

BEA WebLogic Portal Content Management Guide

10-1

Working with JSP Tags WebLogic Portal provides JSP tags that can be used to both retrieve and display content. to use retrieve content for use within your portal. However before you can use either feature, you must have configured the Autonomy search engine. WebLogic Portal relies on the Autonomy search APIs to implement content search. For more information, see Integrating Search with WebLogic Portal. Retrieving content or searching for the content is typically done within the context of a JSP page. However you can also retrieve content using the content API, see “Displaying Content Using with the Content API” on page 10-9.

z

Retrieving Content with JSP Tags

z

Displaying Content with JSP Tags

A

This section includes the following topics:

ET

Retrieving Content with JSP Tags

There are four content-specific JSP tags that can be used to retrieve content. For more information about JSP tags, see the WebLogic Portal JSP Tag Guide. Table 10-1 Content JSP Tags JSP Tag

Usage



B



Retrieves a content node based on an explicit path and stores the node in a variable. Retrieves a property value from a content node and stores it as a variable or prints it in the JSP.



Searches for and retrieves content nodes based on a supplied query and stores the results in a variable.



Information not available for beta.

Regardless of which tag you decide to use, retrieving for content within a JSP tag is done using one of two methods: z

10-2

Retrieving Content Using a Repository Path

BEA WebLogic Portal Content Management Guide

W o r k i n g w i t h JS P T ag s

z

Using Content Queries

Retrieving Content Using a Repository Path All content is addressable by a unique path. This path is visible in the Portal Administration Console as you create folders and content. Within the JSP tag, you can specify the repository path to retrieve content. For example, if your content hierarchy appears in the Portal Administration Console as shown in Figure 10-1, you could use the code in Listing 10-1 to retrieve CarPic.

ET

A

Figure 10-1 Content Hierarchy

B

Listing 10-1 Sample Code for Retrieving CarPic

<%@ taglib uri="content.tld" prefix="cm"%>

Displaying Content with JSP Tags After retrieving content, you need to decide how you will display it within the portal. Displaying content can be done using JSP tags and with personalization tools such as content selectors and placeholders. This section discusses JSP tags and provides some examples. For more information about personalizing content, see “Personalizing Content” on page 10-10. This section provides an overview of JSP tags you can use to display content.

BEA WebLogic Portal Content Management Guide

10-3

z

Content Display JSP Tags

z

Example: Using the JSP Tag

z

Displaying Content with Display Templates

Content Display JSP Tags Content can be displayed in your portal using the tags listed in Table 10-2, “JSP Tags Used to Display Content,” on page 10-4. For a complete reference for the tags listed, see the WebLogic Portal JSP Tag Guide. Table 10-2 JSP Tags Used to Display Content Description



Uses the Ad Service to send an ad query to the content management system.



Renders a content node from the Virtual Content Repository in the current JSP. Displays personalized web content in a JSP based on Placeholder and Campaign rules and queries that have been defined.







10-4

Performs a content attribute search in a content management system and returns an array of content objects. Implements a Content Selector that has been defined using Workshop for WebLogic. Displays personalized Web content in a JSP based on Content Selector rules and queries defined.

B





ET

A

JSP Tag

Allows a piece of in-line content to be shown if a user belongs to the specific User Segment defined with Workshop for WebLogic. Requests the registered view for a resource, which in turn renders it in the JSP. In order to use this tag, you must create display templates (views) and a mapping file (XML) to use templates with respective content types. For more information about setting up templates, see “Displaying Content with Display Templates” on page 10-7.

BEA WebLogic Portal Content Management Guide

W o r k i n g w i t h JS P T ag s

Example: Using the JSP Tag The most common way to display content is to use the JSP tag. This tag will call the com.bea.p13n.ad.AdService.renderContent() method. This will use the MIME type of the primary property's BinaryValue.getContentType() to pick an AdContentProvider to generate the appropriate HTML. The AdContentProviders are configured in META-INF/application-config.xml in the application directory, in an block under the tag. The name attribute of the should be the major/minor MIME type to match on, with the minor portion being optional.

ET

A

The provider attribute should be the fully qualified class name of the AdContentProvider implementation; you can create these in Java projects in your applications. So, if you created an implementation of AdContentProvider that handles generating appropriate HTML for video media, you would add the code shown in Listing in the tag in META-INF/application-config.xml:

Listing 10-2 Sample Code for


B

Properties=""/ rel="nofollow">

In your AdContentProvider, you need to implement the renderContent() method to return a block of XHTML that can display the content correctly. You can reference the com.bea.content.manager.servlets.ShowPropertyServlet registered under the serviceable URI to return the bytes of the content; this is useful in conjunction with , <EMBED>, and HTML tags. Note: <EMBED> tags don't always work correctly in all browsers, depending upon what plug-ins you have configured. WebLogic Portal includes AdContentProviders to handle images, text, and Shockwave files. Additionally, the default AdContentProvider will print out a link to any content with an unknown MIME type.

BEA WebLogic Portal Content Management Guide

10-5

After configuring your content renderers, you can use the JSP tag to display your content, as shown in the example code in Listing 10-3. Listing 10-3 Displaying Content with the JSP Tag <%@ taglib uri="content.tld" prefix="cm"%> <%@ taglib uri="http://www.bea.com/servers/p13n/tags/utility" prefix="utility"%> <%@ taglib uri="http://www.bea.com/servers/portal/tags/ad" prefix="ad"%>
A

sortBy="cm_nodeName desc"/> Found <%=nodes.length%> Node(s):




ET



B

You can also choose a specific content type (ObjectClass) and cycle through matching content on subsequent requests. You can use the JSP tag to do this. It will use the AdConflictResolver to select the content to display. It uses each content item’s adWeight property (converted to a number) as the relative weight of each content item and then uses a random number to pick which content to display; the higher the weight, the more likely the content is to be displayed. If the content doesn't have an adWeight property, it assumes a value of 1. This is an easy way to get rotating banner-style content on your website, as shown in Listing 10-4. Listing 10-4 Displaying Rotating Banner-Style Content within Your Portal <%@ taglib uri="http://www.bea.com/servers/portal/tags/ad" prefix="ad"%>

10-6

BEA WebLogic Portal Content Management Guide

W o r k i n g w i t h JS P T ag s

Displaying Content with Display Templates Information incomplete for beta. Display templates allow you to create views for content according to content type. You can create a default view based on a content types or you can create multiple views for that content type. For example, you can create a “thumbnail” view for an image as well as a view that displays the full-size image and a list of properties such as the price (if it is merchandise) or an address (if the image is an employee directory). You can set up display templates for any content type within your repository. Views are based on JSPs that you create. Views are then defined in a configuration file that you create. You can then use those views (display templates) with the tag. Using display templates within your portal involves three steps:

A

1. Creating JSP pages to use as templates (views).

2. Create a template-config.xml file to reference the views you have created. This file must be based on the

ET

3. Use the tag to display content using the respective view.

Creating Views to Use with your Display Template Information not available for beta.

Creating a template-config.xml File

B

In order to use display templates, you must create a configuration file that associates the views (JSP pages) you have created with the respective resources. For example, if you have created default view to use with a content type, you must configure that relationship using a template-config.xml file.

Table 10-3 XML Elements of the template-config.xml File Element

Definition



The first element of the template-config.xml file.



This element defines the repository you want to use... Properties: target = class =

BEA WebLogic Portal Content Management Guide

10-7

Table 10-3 XML Elements of the template-config.xml File Defines a default view (JSP page) to use for a resources.



Names the resource that for which you are defining a view. If you are defining a view for a content management resource, use the name of the content type for which you defined a view.

<webapp context>

The name of the web application of which the resource is a part. If you only have one web application within your EAR, you can omit this element.



The name of the view you want to define. You also need to define the URI property which lists the path to the JSP page you want to use as a view.

A

<default_uri>

Table 10-5 provides an example of a template-config.xml file.

ET

Listing 10-5 Sample template-config.xml document





B

<default uri="/jsp-dt/content_default.jsp" />

<default uri="/jsp-dt/product_default.jsp" /> <webapp context="name of your application"> <default uri="/jsp-dt/product_default.jsp" />


10-8

BEA WebLogic Portal Content Management Guide

W o r k i n g w i t h JS P T ag s

<default uri="/jsp-dt/camera_default.jsp" /> <webapp context="drtWebApp">


ET

A



Using the Tag Within a JSP When you use the tag, you need to also set the context for the resource you want to display.

Displaying Content Using with the Content API

B

If you are not in a JSP or servlet context, you can use the content API directly. For more information about the search APIs, see <x-ref to autonomy API doc>. Listing 10-6 Sample Code for Searching Content Via the APIs <%@ page import="com.bea.content.Node"%> <%@ page import="com.bea.content.expression.ExpressionHelper"%> <%@ page import="com.bea.content.expression.Search"%> <%@ page import="com.bea.content.manager.RepositoryManager"%> <%@ page import="com.bea.content.manager.RepositoryManagerFactory"%> <%@ page import="com.bea.content.manager.SearchOps"%> <% // Construct the search object from a content query and a sorting clause

BEA WebLogic Portal Content Management Guide

10-9

Search search = new Search(); search.setExpression(ExpressionHelper.parse(" cm_nodeName like '*Pic' ")); search.setSortCriteria("cm_nodeName desc"); // connect to the repositories RepositoryManager mgr = RepositoryManagerFactory.connect(session); // search and fetches Nodes Node[] nodes = mgr.getNodeOps().getNodes(mgr.getSearchOps().search(search)); %> Found <%=nodes.length%> Node(s):
    <% for (int i = 0; i < nodes.length; i++) { %>
  1. <%=nodes[i].getName()%>


  2. A

    <% } %>

    ET



Personalizing Content

B

Workshop for WebLogic supports development of personalized applications and the WebLogic Portal Administration Console enables portal administrators to adapt site interaction to fit the needs of the audience. The core of the personalization system is the underlying rules engine that matches users with appropriate content. Content selectors, placeholders and campaigns are the aspects of content management visible to administrators. Also, user segments contain the criteria that define the target visitor, such as gender or browser type. For complete documentation about personalizing portal content, see the WebLogic Portal Interaction Managment Guide.

Using Content Selectors, Placeholders and Campaigns Using Content Queries You can use the WebLogic Portal Expression language in WebLogic Portal Administration Portal to build content queries. You can build queries with the Advanced Query window from content-related JSP tags and when you are creating queries for placeholders, campaigns, and content selectors.

10-10

BEA WebLogic Portal Content Management Guide

Personal izing Content

The query compares a content property to a value that you enter. A query contains the following three parts: <property>. If the comparison is true, all matching content items are retrieved. For example: employee_type == 'manager'

This query retrieves any content item from the BEA Virtual Content Repository with a property called employee_type that contains the exact (==) String manager.

Queries are often made up of multiple clauses using and (&&) and or (||) logic. For example:

A

This query retrieves any content item with a genre property that has an exact value of rock or (||) alternative and (&&) with a platinum_records property value greater than 2. The parentheses separates one section of the query from the next, controlling the order of evaluation.

ET

(genre == 'rock' || genre == 'alternative') && platinum_records > 2

(genre==’rock’ || genre==’country’) && artist==’dead’

This query retrieves any content item with a genre property that has an exact value of rock or country and an artist property value of dead.

B

This section contains the following topics: z

Using Rules to Build a Query

z

Selecting Properties

z

Using Comparators

z

Supplying Values

z

Creating Complex Queries

z

Using Sample Queries

Using Rules to Build a Query Use the following rules when you build a query:

BEA WebLogic Portal Content Management Guide

10-11

z

Queries are case sensitive.

z

Queries can be simple, one-clause queries, or they can be more complex, multi-clause queries. In complex queries, parentheses control the order of evaluation for multiple query clauses, and clauses are evaluated using and (&&) and or (||) logic.

z

In a placeholder, only one content item can be displayed at a time. If you are using a Placeholder to run queries from a campaign (as well as its own default queries), you can run several queries, but only one query at a time. The query is determined by the placeholder's weighting system. After the query runs, the query can return multiple content items, but the placeholder displays only one of the retrieved content items. With your development server running, create a test placeholder or content selector in Workshop for WebLogic and construct queries for it using the Advanced tab in the Content Search window. The retrieved content is displayed in the Content Preview tab. If you utilize the userProperty() format to retrieve values for your query, you must enter a user name in the Preview User field of the Content Preview tab to retrieve the values for that user and display the retrieved content items.

Selecting Properties

ET

A

Tip:

The following two types of properties exist for content: z

User-defined content properties.

z

Explicit (system) content properties. See Table 10-4 for a list of explicit content properties.

B

You can use both properties in a query

User-defined content properties are stored in sets called types, which are defined in the WebLogic Portal Administration Portal. For example, you can create a type called Book and add properties, such as title, author, pub_date, and isbn. Explicit content properties are automatically associated with all content items and are automatically assigned values for a content item when the content item is added to the content

10-12

BEA WebLogic Portal Content Management Guide

Personal izing Content

repository. These properties, which are also listed in the com.bea.content.expression.Search class, include the items listed in Table 10-4. Table 10-4 Explicit Content Properties API

Description

cm_uid

Node.id.uid

The unique ID for a content item. You can view a content item's unique ID by selecting the content item in the WebLogic Portal Administration Console and viewing its description.

cm_createdDate

Node.createDate

The date on which a content item was created. You can view Creation Date information for content items by selecting their content folder in the WebLogic Portal Administration Console and selecting the Summary tab.

cm_createdBy

Node.createdBy

The user who created the content item. You can view Created By information for content items by selecting the content folder in the WebLogic Portal Administration Console and selecting the Summary tab.

Node.modifiedDate

The date the content item was last modified. You can view Modified Date information for content items by selecting their content folder in the WebLogic Portal Administration Console and selecting the Summary tab.

Node.name

The name of the content item, as shown in the WebLogic Portal Administration Console.

B

cm_modifiedDate

ET

A

Property

cm_nodeName

BEA WebLogic Portal Content Management Guide

10-13

Table 10-4 Explicit Content Properties (Continued) Node.path

The Virtual Content Repository path to the content item. For example, /BEA Repository/juvenilebooks/ TheCrazyAdventure.

cm_isHierarchy

Node.type == Node.HIERARCHY

Identifies a content folder rather than a content item. Content folders can contain content items and child content folders. When using this property in queries, compare it using a Boolean value of true or false.

cm_isContent

Node.type == Node.CONTENT

Identifies a content item rather than a content folder. Content items contain properties from the type with which they are associated. When using this property in queries, compare it using a Boolean value of true or false.

cm_objectClass

Node.objectClass.name

B

ET

A

cm_path

The content type associated with a content item. You can view Type information for content items by selecting the Types tab in the WebLogic Portal Administration Console and selecting the Summary tab.

cm_objectClassInstance

The instance of an object class

Finds all instances of a given object class and all of its children.

cm_value

The value

A metadata search for any property with a given value. This property is similar to a wildcard search.

10-14

BEA WebLogic Portal Content Management Guide

Personal izing Content

Table 10-4 Explicit Content Properties (Continued) BinaryValue.contentType

The MIME type for content item binary properties. For example, image/jpeg. You can view the MIME type of a content item by selecting it in the WebLogic Portal Administration Console and looking at the Primary Property Data Type field.

cm_binarySize

BinaryValue.size (For Node Properties)

The size of the binary value of content items. You can view the size of a content item's binary value by selecting the content item in the WebLogic Portal Administration Console, selecting the Properties tab, and clicking Download File. Click Save and right-click the displayed binary file to view the file properties.

BinaryValue.name (For Node Properties)

B

cm_binaryName

ET

A

cm_contentType

When you use this property in a query, specify binary size in bytes. The file name of the binary value of a content item. You can view the name of a content item's binary value by selecting the content item in the WebLogic Portal Administration Console and viewing the Name value in the Summary tab.

When you construct a query, you can specify property names by themselves without quotes. For example: title . However, if a property name contains spaces, double quotes, or dashes, you must enclose the property name within a toProperty() format. For example: toProperty('Favorite Author') . The query looks for the property name in all content types and returns any content item with that property value (if the content item meets the conditions of the query). However, you can also isolate a property within a specific type. For example, if you have a books type and an articles type that both contain a title property, you can retrieve content items with a specific title from within only the book type using the cm_objectClass property. For example: title likeignorecase '*Adventure' && cm_objectClass = 'books'

BEA WebLogic Portal Content Management Guide

10-15

Using Comparators Comparators provide the logic that compares a query's property to the value you enter. If a content item meets the conditions of the query, the content item is returned. Table 10-5 contains a list of the comparators you can use in your queries. Table 10-5 Available Comparators Description (Property Formats on Which the Comparator Can Act)

= or ==

Checks to see if a single-value property (including a single value containing a list) is exactly equal to the case-sensitive value you enter (Boolean, date and time, numeric, and string values). For example, genre == 'fantasy' retrieves any content item that has case-sensitive fantasy as the value for the genre property.

!=

Checks to see if a single-value property (including a single value containing a list) is not equal to the case-sensitive value you enter (Boolean, date and time, numeric, and string values). For example, genre != 'mystery' retrieves any content item that does not have case-sensitive mystery as the value for the genre property.

>

Checks to see if a single-value property is greater than the value you specify (date or time and numeric values). For example, pub_date > toDate('MM-dd-yyyy', ‘01-01-2000') retrieves any content item with a pub_date property set to a value later than January 1, 2006.

<

Checks to see if a single-value property is less than the value you specify (date or time and numeric values). For example, books in series < 3. Because the property name contains spaces, you must use toProperty(), as shown in toProperty('books in series') < 3 to retrieve any content item with a value less than 3 for the books in series property.

<=

10-16

ET

B

>=

A

Comparator

Checks to see if a single-value property is greater than or equal to the value you specify (date or time and numeric values). For example, toProperty('books in series') >= 3 retrieves any content item with a value greater than or equal to 3 for the books in series property. The property value of the sample content item is 1. Checks to see if a single-value property is less than or equal to the value you specify (date or time and numeric values). For example, toProperty('books in series') <= 3 retrieves any content item with a value less than or equal to 3 for the books in series property.

BEA WebLogic Portal Content Management Guide

Personal izing Content

Table 10-5 Available Comparators (Continued) like

Checks to see if a single-value property is like the case-sensitive value you enter. You can use wildcard characters * (one or more characters) or ? (single character). For example, author like 'P?nm*' retrieves any content that contains case-sensitive Penman, Panmen, or any other variation with a different character between the P and the n and any characters after the m for the author property. Note: If you do not put the asterisk (*) at the end, the content item is not retrieved, because more text follows the name Penman in the property value. Checks to see if a single-value property is like the value you enter. You can use the wildcard characters * and ?. Character case is ignored. For example, author likeignorecase 'pen*' retrieves any content with an author value that begins with pen in any case combination, such as penman, Penman, Penfield, and so on.

contains

Checks to see if a multi-value property contains exactly the single value you specify (date or time, numeric, and string values). In some implementations, this comparator can also work against single-value properties. For example, genre contains 'fantasy' retrieves any content containing an genre property value of exactly fantasy.

containsall

Checks to see if a multi-value property contains all of the exact values you specify (date or time, numeric, and string values). For example, genre containsall ('fantasy', 'children') retrieves any content that contains genre property values of fantasy and children. In some implementations, this comparator can also work against single-value properties.

B

ET

A

likeignorecase

containsany

Checks to see if a multi-value property contains any of the exact values you specify (date or time, numeric, and string values). For example, genre containsany ('fantasy', 'children', 'scifi') retrieves any content that contains genre property values of fantasy, children, or scifi. In some implementations, this comparator can also work against single-value properties.

in

Checks to see if a single-value property contains any of the values you enter. If the value you enter is not a list of possible values (is a single value), in is the same as = or == (date or time, numeric, and string values). For example, isbn in ('pending', 'not_available') retrieves any content that contains the isbn property value of pending or not_available.

BEA WebLogic Portal Content Management Guide

10-17

Supplying Values Values represent the content you want the query to return. By supplying values to a query, you are telling the query which content to retrieve or ignore based on the values stored on the content items. For example, if you have a content type called book with a property called title, all content items you associate with the book type have a title field. Each title value is unique, so in a query, you can enter the unique value you want, resulting in the query retrieving a specific content item (or ignoring the content item, depending on the comparator you use). You can enter values in two ways: 1. Hard code values in the queries – Use hard-coded values so that you get predictability with your queries. Hard-coded values let you pinpoint the specific content you want to retrieve.

ET

A

2. Get values from User Profiles and other types of property sets (Session and Request) – When you populate values from User Profile, session, or request property sets, the value in each specified User Profile, session, or request property is inserted programmatically into the query, letting you create personalized queries based on the current user's preferences or the current session or request. For example, in a query where a content property is author, you can get the value of the user's FavoriteAuthor profile property to supply the value for the query, letting the query retrieve content associated with the user's favorite author. Use the following guidelines to build values in queries:

B

– Enclose string literal values in single quotes. For example: 'pending'. – To supply a single or double quote, use a backslash for the quoting character (unicode characters are not supported). For example, if a book title is stored with double quotes, such as "The Crazy Adventure", enter the value like this: '\"The Crazy Adventure\"'. If the title is stored with single quotes, enter the value like this: title = '\'The Crazy Adventure\'' . – Unicode (such as "\u6565"), octal (such as "\7", "\65", "\377"), and standard Java escape sequences (such as "\n", "\r", "\b") are allowed in the string literals. – Boolean literals are either the true or false keyword (lowercase, without quotes). – Number literals are Java form (scientific notation is supported). Date or time literals are presented in toDate('formatStr', 'dateStr') format, where formatStr is the date and time format you want to use (such as 'MM/dd/yyyy') and dateStr is the actual date and time you enter (such as '01/01/2006').

10-18

BEA WebLogic Portal Content Management Guide

Personal izing Content

The formatStr must be a valid java.text.SimpleDateFormat string. If you omit the formatStr, the toDate() expects the date and time you enter to be in the following format: 'MM/dd/yyyy HH:mm:ss z' (where z is the time zone, such as MDT). For example: toDate('12/01/2004 06:00:00 MDT'). To specify date values only, enter the format you want for the formatStr. For example, for a date value only, specify toDate('MM/dd/yyyy', '12/01/2004'). You can also specify only the month and year, such as 'MM-yyyy'. Use the now keyword to specify the time at which the expression is being parsed at run time.

ET

Creating Complex Queries

A

– To supply query values from user, request, or session properties, use the following format: Property(<propertyset>, <propertyname>), where the type is user, request, or session. For example: userProperty('userpreferences', 'FavoriteAuthor').

You can combine multiple independent query clauses, tying them together with and (&&) and or (||) logic and controlling the order of evaluation with parentheses the way you would with algebraic expressions. This lets you create more complex queries. You can also include not logic (!) in complex queries by using the exclamation point in front of a parenthetical grouping.

B

The sample queries in Using Sample Queries provide examples of complex queries. Table 10-6 also contains an example that uses not logic.

Using Sample Queries

Figure 10-2 shows the properties set on a graphic stored in BEA's Virtual Content Repository.

BEA WebLogic Portal Content Management Guide

10-19

B

ET

A

Figure 10-2 Properties on a Graphic

The example queries in Table 10-6 use properties in the sample content item, and the description for each sample query tells you if the query will retrieve the content item. Table 10-6 Example Queries Query

Will Retrieve Sample?

Description

genre == 'fantasy'

Yes

Retrieves any content item that has case-sensitive fantasy as the value for the genre property.

10-20

BEA WebLogic Portal Content Management Guide

Personal izing Content

Table 10-6 Example Queries (Continued) Yes

Retrieves any content item with the will_visit_schools property set to true. There are no single quotes around true, and true is lowercase.

genre != 'mystery'

Yes

Retrieves any content item that does not have case-sensitive mystery as the value for the genre property.

pub_date > toDate('MM-dd-yyyy', '01-01-2005')

Yes

Retrieves any content item with a pub_date property set to a value later than January 1, 2005.

books in series < 3

No

Because the property name contains spaces, you must use toProperty(), as shown in the next example.

toProperty('books in series') < 3

Yes

A

will_visit_schools == true

ET

Retrieves any content item with a value less than 3 for the books in series property.

No

Retrieves any content item with value greater than or equal to 3 for the books in series property. The property value of the sample content item is 1.

toProperty('books in series') <= 3

Yes

Retrieves any content item with value less than or equal to 3 for the books in series property.

author like 'P?nm*'

Yes

Retrieves any content that contains case-sensitive Penman, Panmen, or any other variation with a different character between the P and the n and any characters after the m for the author property. Without an asterisk (*) at the end, the content item would not be retrieved, because more text follows the name Penman in the property value.

author likeignorecase 'pen*'

Yes

Retrieves any content with an author value that begins with pen in any case combination, such as penman, Penman, Penfield, and so on.

genre contains 'fantasy'

Yes

Retrieves any content containing an genre value of exactly fantasy.

B

toProperty('books in series') >= 3

BEA WebLogic Portal Content Management Guide

10-21

Table 10-6 Example Queries (Continued) No

The contains comparator does not allow wildcard characters.

genre containsall ('fantasy', 'children')

Yes

Retrieves any content that contains genre property values of fantasy and children.

genre containsall ('fantasy', 'children', 'scifi')

No

Retrieves any content that contains genre property values of fantasy, children, and scifi. The sample content item contains fantasy and children, but not scifi.

genre containsany ('fantasy', 'children', 'scifi')

Yes

Retrieves any content that contains genre property values of fantasy, children, or scifi.

isbn in ('pending', 'not_available')

Yes

Retrieves any content that contains the isbn property value of either pending or not_available.

ET

Complex Queries

A

genre contains 'child*'

No

Retrieves books that are part of a trilogy that were published after January 2005.

(genre contains 'children' || keywords like '*children*') && will_visit_schools == true

Yes

Retrieves books with a genre value set to children or has *children* in the keyword value; and whose author is available to visit schools.

((genre contains 'children' || keywords like '*children*') && will_visit_schools == true) && isbn != 'pending'

No

Retrieves books with a genre value set to children or has *children* in the keyword value; and whose author is available to visit schools; and with an isbn value that does not equal pending (meaning the book is not yet published). The parenthetical nesting controls the order of evaluation.

(title likeignorecase '*adventure' || genre contains 'fantasy') && (pub_date >= toDate('MM-yyyy', '01-2005') || isbn == 'pending')

Yes

Retrieves books whose title contains *adventure or whose genre contains fantasy; and whose pub_date is after January 2005 or whose isbn is still pending (not yet published).

B

toProperty('books in series') >= 3 && pub_date > toDate('MM-yyyy','1-2005')

10-22

BEA WebLogic Portal Content Management Guide

Personal izing Content

Table 10-6 Example Queries (Continued) (genre containsany userProperty('userpreferences', 'BookGenre') && (keywords likeignorecase '*pixies')) || author likeignorecase userProperty('userpreferences', 'FavoriteAuthor')

Depends

Reads the User's Profile properties and uses specific property values to supply the values in the query. The query provides personalized content retrieval, because retrieved content is based on user preferences. For example, if the current user has her BookGenre property set to mystery and her FavoriteAuthor set to Penman, Piper, this query will return the sample content. Even though the BookGenre value doesn't match in the first clause, the FavoriteAuthor in the or (||) second clause does match.

ET

A

If you are using the Property control or the setProperty JSP tag to set user property sets and properties programmatically (rather than creating property sets in Workshop for WebLogic), you can still use userProperty() in your queries.

Other Useful Queries (Not Related to the Sample Content)

B

language == userProperty('userpreferences', 'userPreferredLang')

((UserAge <= 35 && colors contains 'red' || UserAge > 35 && !(colors contains 'black')) && mimeType == 'text/html') && toProperty('Launch Date') < now && !(expireDate > toDate('MM-yyyy', '12-2004'))

This approach lets you serve language-appropriate content to each user based on the user language preference (userPreferredLang) stored in a property set. You could also use sessionProperty() to get the language preference from the session; or you could use requestProperty('DefaultRequestPropertySet' , 'Locale'), which returns the user's locale string, such as en-US.

This query uses not logic, as shown in the !(colors contains 'black') clause.

BEA WebLogic Portal Content Management Guide

10-23

Implementing Caching when Using Content

B

ET

A

Information unavailable for beta release.

10-24

BEA WebLogic Portal Content Management Guide

A

Part III Staging

This section contains guidelines and procedures to help you stage your content management system.

z



z



ET

When you are planning how to use content within your portal, determine the following:

Part III contains instructions for tasks you can accomplish in the staging phase. When you finish the staging phase, you can proceed to the Production phase.

B

For a description of the Staging phase of the portal life cycle, see the BEA WebLogic Portal Overview. The portal life cycle is shown in the following graphic:

BEA WebLogic Portal Content Management Guide

ET

Chapter 11, “Staging Your Content Management System”

B

z

A

Part III includes the following chapter:

BEA WebLogic Portal Content Management Guide

C H A P T E R 11

Content not available for beta release.

A

Staging Your Content Management System

B

ET

Configuring Search Capabilities

BEA WebLogic Portal Content Management Guide

11-1

A ET B 11-2

BEA WebLogic Portal Content Management Guide

A

Part IV Production

This section contains guidelines and procedures to manage your content after you have deployed your portal and are running in production.

z

TBD

z

TBD

ET

Some of the tasks including in managing your content include.

Part IV contains instructions for tasks you should accomplish in the Production phase.

B

For a description of the Manage phase of the portal life cycle, see the BEA WebLogic Portal Overview. The portal life cycle is shown in the following graphic:

BEA WebLogic Portal Content Management Guide

ET

Chapter 12, “Managing Content”

B

z

A

Part IV includes the following chapter:

BEA WebLogic Portal Content Management Guide

C H A P T E R 12

This chapter not available for beta.

A

Managing Content

ET

After you have moved your portal into production, you can still edit and maintain content within the content repository. You can also update personalization features such as content selectors and placeholders.

Publishing Content

Information not available for beta release.

B

Updating Content

Information not available for beta release.

Viewing Types Assigned to a Workflow Information not available for beta release.

Viewing Content Assigned to a Workflow Information not available for beta release.

BEA WebLogic Portal Content Management Guide

12-1

A ET B 12-2

BEA WebLogic Portal Content Management Guide

C H A P T E R 13

A

Managing Content Security

WebLogic Portal provides two ways to secure your content. Delegated Administration controls who can edit content within your repository, while Visitor Entitlements control who can view content when it is displayed in your portal.

ET

This chapter includes the following sections: z

Using Delegated Administration for Content

z

Setting Entitlements for Content

B

Using Delegated Administration for Content You can control how users and groups interact with the repository by associating Delegated Administration roles that are used to determine whether to grant or deny access to resources, and to determine which capabilities on those resources are available to the administrator. Before starting to use the Virtual Content Repository, you can want to set up the users, roles, and privileges you want to use in order to dictate who can add, edit, or delete content within the repository. Before you can assign content management resources to a Delegated Administration role, you must make sure the role exists. If no role exists, you must create it, then you can add users and content resources to it. For detailed information about setting up administrators, see the WebLogic Portal Security Guide. Note: The capabilities you give to a role determine how a user role participates in the content workflow. For example, if a role is not granted Publish capabilities they cannot transition

BEA WebLogic Portal Content Management Guide

13-1

content to the Published or Retired status. For more information about workflows, see “Working with Content Workflows” on page 5-2.

Delegated Administration Capabilities for Content Table 13-1 Delegated Administration Capabilities for Content How it is used:

Create

Allows users to create content.

View

Allows users to view the content and the any properties associated with it.

Update

Allows users to update the properties and change the content workflow status of the content.

Delete

Allows users to delete the content.

Associate

Allows users to associate this content as a link property within other content.

Publish

Allows users to move this content to the Publish status of the content workflow, making it available for display in the portal.

B

ET

A

Capability

Table 13-2 Delegated Administration Capabilities for Content Types Capability Create

How it is used:

Allows users to create a content type.

View

Allows users to view the properties of a content type.

Update

Allows users to update and modify a content type.

Delete

Allows users to delete a content type.

Instantiate

Allows users to create content based on this content type.

13-2

BEA WebLogic Portal Content Management Guide

Se tt in g En tit le ment s for Con t ent

Table 13-3 Delegated Administration Capabilities for Content Workflows How it is used:

Create

Allows users to create a content workflow.

View

Allows users to view the properties of a content workflow.

Update

Allows users to modify or update a content workflow.

Delete

Allows users to delete a content workflow from the repository.

Associate

Allows users to associate a content workflow with content or a content type.

A

Capability

Setting Entitlements for Content

ET

Visitor entitlements allow you to define who can access the content in your portal application and what they can do with it. Information not available for beta.

B

For more information about Visitor Entitlements, see the WebLogic Portal Security Guide.

BEA WebLogic Portal Content Management Guide

13-3

A ET B 13-4

BEA WebLogic Portal Content Management Guide

B

ET

A

Index

WebLogic Portal Content Management Guide

Index-1

A ET B Index-2

WebLogic Portal Content Management Guide

Related Documents