How to Style an ADF Checkbox

December 6, 2016

By: Andreja Sambolec – Application Consultant

Sometimes, you want to customize your checkbox component by changing the background color.

This can be done using CSS and :after and :before pseudo classes on checkbox elements.

This is what a checkbox looks like:


The condition necessary to be able to change the background color:

The element must precede the

The steps to style a checkbox:

#1 Hide the checkbox

input[type=checkbox] {
opacity: 0;

#2 Use :checked and :before pseudo classes to style checkbox

.checkbox input[type=checkbox]:checked + label::before{
content: 'ON';
background-color: #428bca;

Read more on these steps here.

So, how do you apply these steps to ADF components?

To display a checkbox component in ADF, we are using af:selectBooleanCheckbox element:

<af:selectBooleanCheckbox value=”#{bindings.InternalApplication1.inputValue}”






There are two options to set the label:

  1. Using label attribute– it’s placed before input component
  2. Using text attribute – it’s placed after input component

When using text, the result is:

<td valign=”top” nowrap=”” class=”AFPanelFormLayoutContentCell”>

<span class=”af_selectBooleanCheckbox_content”>

<span class=”af_selectBooleanCheckbox_content-input”>

<input id=”r1:0:sbc4::content” name=”r1:0:sbc4″ class=”af_selectBooleanCheckbox_native-input” type=”checkbox” value=”t” checked=”” onclick=”this.focus()”>

<label for=”r1:0:sbc4::content” class=”p_OraHiddenLabel”></label>


<label for=”r1:0:sbc4::content” class=”af_selectBooleanCheckbox_item-text”>Refugee</label>




When using label, the result is:


<tr class=”checkbox af_selectBooleanCheckbox p_AFDisabled” id=”r1:0:sbc1″ _adftrc=”r1:0:sbc1::icon-style”>

<td class=”af_selectBooleanCheckbox_label af_panelFormLayout_label-cell”>

<label class=”af_selectBooleanCheckbox_label-text” for=”r1:0:sbc1::content” id=”r1:0:sbc1::contentlabelId”>Internal Application</label>

</td><td valign=”top” nowrap=”” class=”AFPanelFormLayoutContentCell”>

<span class=”af_selectBooleanCheckbox_content”>

<span class=”af_selectBooleanCheckbox_content-input”>

<input id=”r1:0:sbc1::content” name=”r1:0:sbc1″ disabled=”” class=”af_selectBooleanCheckbox_native-input” type=”checkbox” value=”t” checked=”” onclick=”this.focus()” aria-labelledby=”r1:0:sbc1::contentlabelId”>




We can see that only the option with text works because the label is set after the input element.

If you have the readOnly attribute set to ‘true’, replace it with ‘disabled=true’. This will make it easier to style.

This is what the CSS should look like:

/**hide checkbox*/
.checkbox input[type="checkbox"] {
opacity: 0;
width: 0px;

/*style label to display checkbox*/
.checkbox .p_OraHiddenLabel {
position: relative;
left: inherit;
font-size: 12px;
top: inherit;
content: "";
display: inline-block;
position: relative;
width: 17px;
height: 17px;
left: inherit;
margin-left: 0px;
border: 1px solid #cccccc;
border-radius: 3px;
background-color: #428bca;
border-color: #428bca;

/*style for unchecked state
Set the content to have no issues with moving elements when switching between states – the content is hidden, but save space for it.

.checkbox input[type="checkbox"]:not(:checked) + label:before {
content: "ON";
color: #428bca;
display: inline-block;

/*style for checked state*/
.checkbox input[type="checkbox"]:checked + label:before {
font-family: 'FontAwesome';
content: "\f00c";
display: inline-block;

/*styling disabled chheckbox*/
.checkbox input[type="checkbox"]:disabled + label {
background-color: #428bca;
border-color: #428bca;
opacity: 0.65;

af|selectBooleanCheckbox::item-text {
margin: 0px 1px;
padding-right: 3px;
padding-left: 2px;
vertical-align: middle;
margin-left: 1px;
left: -167px;
position: relative;

/**hide checkbox*/
.checkbox input[type="checkbox"] {
opacity: 0;
width: 0px;

af|selectBooleanCheckbox::content {
line-height: 19px;

The end result:


Automatic Redaction in WebCenter – A TEAM Webinar

September 7, 2016

redaction-logoProtecting sensitive data is extremely important for your organization. The release of public records, data breaches, and simple sharing between parties can cause unnecessary distress and costs when names, addresses, credit card numbers, etc. become public. Personally Identifiable Information, or PII, is any data that could potentially enable identification of a specific individual. Identifying this data is invariably important to protect your company, your employees, and your clients.

With a single disclosure breach reaching an estimated cost as high as seven million dollars ($7m) and affecting all manner of agencies, corporations, and hospitals across the globe every year, why not instead spend your resources on preemptive and preventative measures?

TEAM’s Redaction Engine utilizes multiple technologies to scan for and identify sensitive data already in your WebCenter Content repository, and newly scanned or checked-in documents. The engine then automatically redacts that information in subsequently generated PDFs.

Watch this video to learn more and join us for the webinar for a live demonstration for latest features and to answer any questions you may have.

redactionBenefits & Latest Features:

  • Integrated into Oracle WebCenter Content 11g & 12c
  • Pattern Recognition (regex and basic) identifies information such as:
    • SS Numbers
    • Date of Birth
    • Identification Numbers/Medical Forms
    • Credit Card Numbers
    • ACH Routing and Bank Account Numbers
  • Now allows multi-word phrases
  • Improved RegEx validation tester to provide better feedback for patterns
  • Redaction Templates
    • The ability to draw redactions in the UI and save them as a “template” that can be later utilized when checking in new documents
  • Create Redaction Sets – unique sets of criteria and patterns to be redacted
  • UI now includes comprehensive predefined Regular Expressions to match common use cases such as Social Security Numbers, telephone numbers, and financial amounts


TEAM’s 2nd Redaction Engine Webinar
September 29th, 2016 – 1:00PM CST 
Register Now!

Using Enterprise Manager for Troubleshooting and Optimizing your WebCenter Content Deployment

May 10, 2016

Raoul Miller – Enterprise Architect

When Oracle WebCenter Content made the architectural shift from a standalone J2SE application to a managed application running in WebLogic Server (WLS), the change provided a number of new capabilities for management, integration, and support.  One of these capabilities is the version of Enterprise Manager that is built into WLS which allows administrators to monitor many different aspects of the WebCenter Content application.

If you haven’t been through formal WLS or Enterprise Manager training, the interface may seem complex or confusing.  My speaking session at Collaborate 2016 in April explained how to use Enterprise Manager to monitor, optimize, and troubleshoot your WCC deployment(s) and I wanted to accompany that with a post here to provide a bit more context.

First a little background – there are multiple versions of Enterprise Manager (EM), and it’s important to be clear which one we are talking about.  Those of us who have worked with the Oracle Database will be familiar with the original EM that’s been used to manage databases since version 9i.  This is now specifically called Enterprise Manager Database Control.

At the other end of the spectrum there is the full-featured Enterprise Manager platform.  This is a multi-tier set of applications which monitor and manage all aspects of your Oracle hardware and software deployment.  We recommend it highly for large Enterprise clients, but it can be expensive and complex.

In the middle is the Enterprise Manager we will discuss today which is a set of web-based tools used to manage and monitor your WLS application server deployments.  You access this at almost the same URL as the WLS administration interface – http://<WLS servername>:7001/em – note the /em rather than /console for WLS, and it’s possible you may not be using the standard 7001 port.

Your initial screen will show you what is deployed to your domain and whether the applications / servers are running or not.


You’ll notice that there are lists of application deployments and managed servers within the domain and right clicking on any of these will show you custom actions for each.


Before we get to what to monitor and measure, let’s take a moment to review best practices when we are optimizing or troubleshooting WebCenter Content.  As the java application architecture has stayed much the same over the years, the standard areas to focus on have remained fairly constant.  It cannot be stated strongly enough that it is vital to look at ALL these areas, measure and test performance before making any changes, change one thing at a time, and then re-test and re-measure after making that isolated change.  It’s very much an iterative approach as without data you are just playing around with inputs and outputs to a black box model.

The areas you need to monitor and measure when optimizing or troubleshooting WCC are:

  • Java virtual machine
  • File system
  • Database (metadata and indexing)
  • Network
  • Authentication / authorization
  • Customization / components
  • Hardware


(I have to credit Brian “Bex” Huff and Kyle Hatlestad for their presentations back in the day at Stellent which taught me this approach.)

Enterprise Manager can help you with many of these areas, but not all – you need other tools to look at file system I/O and utilization, network speed and routing, and (non-oracle) hardware.  However, for the other areas, EM can be extremely helpful.  Let’s look at a couple of examples:

JVM metrics

Right click on the managed server instance and select JVM Performance


This brings up a pre-selected set of JVM metrics and a non-standard color scheme.



This will let you monitor the heap and non-heap memory usage in real time.

**TIP** You may see that the heap is smaller than you thought you had set it – I have often seen an issue where there has been confusion over where the non-default maximum and minimum heap sizes should be set.

Lower on the page you’ll see more granular data on JVM threads, objects, etc.



Datasource Metrics

You’ll need to open the metric palette on the right side of the screen and open up the Datasource Metrics folder.


**TIP ** Make sure you choose this rather than the Server Datasource Metrics, because you will need to select the “CSDS domain-level Datasource”.


WebCenter Content Metrics


Navigate to the WebCenter Content Server deployment at the bottom of the folder list in the left hand area:


Select “Performance Summary” and you’ll see a pre-selected set of content-specific metrics in the graph area.  As with all of the other selections, you can add or subtract metrics as you go – this short cut just gives you a good starting point.


We have only scratched the surface here of the capabilities of Enterprise Manager and its use for optimization of WebCenter Content.  For much more information, download to my presentation from Collaborate 2016 or contact us through our website.  We’ll be happy to discuss how we can further help you optimize and troubleshoot your WCC deployments.

Changing Menus in WebCenter Content 11g

November 19, 2013

By: Dwayne Parkinson – Solution Architect

For those of you coming from the land of 10g, you get to add yet another piece of information to the scrap heap that is “obsolete technical stuff I know.”  Specifically, how to modify the menu structure in WebCenter Content has been changed in 11g.  All of those NavBuilder tricks you know can rest in peace alongside your Perl and REXX programming skills.  In this article I will cover how the new navigation model works in much more depth than is currently available in documentation or on the web.


In general, the way navigation works now is that you add a few files to a component which contain menu information then enable the component.  The files make use of the new Data Include capabilities in 11g to append your menu entries to the default menu entries that are delivered with the system.

Four Steps to a Customized Menu

STEP 1: Add a Component
For this example we’ll add a new component, but if you already have a custom component that is used in your business, you can certainly skip this step and just add the menu resources to your existing component.

From the Component Wizard select Options and then Add

On the next screen we will fill in the name of the new component, leave the other fields at the default and then click OK.


(For more info on how to access and use the Component Wizard see

Once the component is created, we can begin adding the menu resources.  The first resource we’ll add is CoreMenuItems.  We will choose an HTML include/String resource as the type of resource definition.


On the next screen check the Data Include box.  This will change to the Data Include screen, which should look something like the one shown below.  If the default text doesn’t appear, don’t worry.  We have to replace it all anyway.


STEP 2: Create CoreMenuItems
CoreMenuItems is one of two resources you will most likely use to modify navigation.  It contains a list of menu items.  These are merely definitions of a menu item and aren’t meant to show where in the menu structure a menu item may exist.  If you are only rearranging the existing menu structure you won’t need this file, but assuming you want to add a menu item this file is necessary.

When creating these files keep in mind that the values in your file will load last and if you have the same name as one of the system values, your menu item will override the system value (discussed shortly).  For now, let’s create a few menu items so we can show some of the flexibility of this new navigation model.  Below is a screen shot of a sample menu item resource.  Let’s look at it in close detail.


Name: this must be CoreMenuItems and the case must match exactly.  Remember you’re appending to a resource that’s already out there.

In the editor, the first line identifies the column headings in the CoreMenuItems and it must be there.  Specifically the columns are:

  • ID – A unique identifier for your menu item.  This ID is used throughout the other files to refer to this specific menu item definition.
  • LABEL – This is the text that will appear on the menu
  • LINKTYPE – There are six pre-defined link types, however if needed, you can create your own link types by modifying std_compute_menu_link or navigation_modify_rset_menu_items.
    • CGI – This is used when executing content server services and contains everything after the http CGI path.  In other words, it starts with IdcService=
    • WEB – This is used when accessing the web viewable data on the content server and begins after the http web root which in most cases begins after myserver:16200/cs/ in the URL.
    • ADMIN – this is like CGI in that it executes a service using an http CGI path except it is used to execute services on the admin server using that servers CGI path.
    • JavaScript – executes a javascript
    • Enterprise – I haven’t tested this, but according to the documentation it is similar to CGI and ADMIN and appears to only be used when there are proxied servers and you wish to execute a service from the http enterprise CGI path.
    • External – this is used to access external websites.
    • LINKDATA – This is the data that corresponds to the link type.
      • CGI – the IdcService call to execute.
      • WEB – the path to the resource on the content server.
      • ADMIN – the IdcService call to execute.
      • JavaScript – the Javascript command to execute.
      • Enterprise – the IdcService call to execute.
      • External – the website address.  You must include the http:// in the address.

The next three lines (MYMENU_1, MYMENU_2, MYMENU_3) define menu heading items that have no actions.  These will simply be menu headings that are used to display a sub-menu.  Notice that there’s no LinkType or LinkData.

Finally the last six lines are menu action items that will perform various tasks.  There are examples of each type of link except Enterprise.  Notice also that THING_2 is a search and we include an Idoc Script  reference to <$UserName$>.  Idoc Script can be used throughout the menus.

STEP 3: Define CoreMenuItemRelationships
CoreMenuItemRelations is used to define where within the menu structure a specific menu item exists.  As with CoreMenuItems, we will be extending and potentially overriding the values that come with the system.  However, the very first thing we must know is that there are three default menus that ship with content server.  They are not so cleverly named, MENU_A, MENU_B and MENU_C and located as shown below





The CoreMenuItemRelationships describes the relationship of menu items within the content server.  The sample below shows how the menus above were created.  Let’s take a closer look at this information.


The <?commatable mergeKey=”primaryKey”?> line is very important and required to make the information merge correctly to the system default menu information.

The parentid, id and loadOrder specify the ID of the parent menu item and the child menu item as they are defined in the CoreMenuItems.  The load order determines the location on the menu.

As you can see, we add MYMENU1 to MENU_A which results in the My First Menu being added to the MENU_A navigation bar.  A load order of 500 is used  to ensure that the entry shows up at the end.  Shown farther down you can see that the same menu item can be used on multiple menus.  The final menus look like this.


It’s important to know that MENU_C is different than the other two menus in that it will only display a single item.  It is intended for invoking action on the content server, rather than displaying a menu.  If a menu item with no LinkType and LinkData (like MYMENU1) is attached to MENU_C, any corresponding menu items won’t be displayed.

STEP 4: Enable the Component
The final step is to enable the component and restart your content server.  If your menus don’t work as expected or the content server fails to start, there is most likely a typo in one of the files.

Additional Capabilities

Override Default Menus – The key to overriding the default menus is to first find where they are.  The menus are in the std_nav.idoc which is located in the \ucm\idc\resources\core\idoc folder within the WebCenter Content server instance.  Searching for CoreMenuItems and CoreMenuItemRelationships within this file will provide information about how the menus are constructed.

In our example we’re going to move My Subscriptions from the default location to the top of the My Content Server menu.


Searching the std_nav.idoc, we find the following line defines the MY_SUBSCRIPTTIONS menu item.

menu11And we further notice that the first entry in the MY_CONTENT menu has a load order of 10.  To move MY_SUBSCRIPTIONS so it’s first in the menu we simply override the load order by adding the entry to our custom component as shown below.


The result of adding that line is that the My Subscriptions item will be moved to the top of the menu.


Add Security & Other Flags via CoreMenuItemsFlags
In the new menu model, adding basic security and performing some systematic checks is fairly easy.  In our example, we may want to have one of the menus with administrative options only show up for system administrators.

As we’ve done before, we return to our component and add another include.  This time we add a CoreMenuItemsFlags include as shown below.


This  is fairly straight forward.  Supply a menu item ID and then assign some flags.  The flags are separated by a colon.  As shown above, MYMENU1 is disabled for everyone other than administrators and is not visible when not logged in.


If you’re like me this makes you ask two questions:  where are the flags defined and what happens if I need to add security that isn’t provided by these flags?

The answer to the first question is that these flags are all defined in the std_nav.idoc document previously referenced but I’ve included them below for ease:

  • isTopMenusOnly: Menu item is only shown in the Top Menus layout.
  • isTraysOnly: Menu item is only shown in the Trays layout.
  • isLoggedIn: Menu item is only shown to users who are logged in.
  • isAnonymous: Menu item is only shown to users who are not logged in.
  • isAllowIntranetUsers: Menu item is only shown if <$isAllowIntranetUsers$> is true.
  • isSelfRegistration: Menu item is only shown if self-registration is enabled.
  • isProxiedServer: Menu item is only shown if <$#env.IsProxiedServer$> is true.
  • isContributor:  Menu item is only shown if user is a contributor.
  • isAdminAtLeastOneGroup: Menu item is only shown if user is an admin of one or more groups.
  • isSubAdminOrSysManager: Menu item is only shown if the user is a subadmin or sysmanager.
  • isAdmin: Menu item is only shown if the user is an administrator.
  • isSubAdmin: Menu item is only shown if the user is a subadmin.
  • isSysManager: Menu item is only shown if the user is a sysmanager.
  • isContentRefineryPresent: Menu item is only shown if there is a content refinery present.
  • isDynamicConverterEnabled: Menu item is only shown if dynamic converter is enabled.
  • isJspServerEnabled: Menu item is only shown if JSP server is enabled.
  • hasIndexAdminActions: Menu item is only shown if there are index admin actions.
  • hasCollaboration: Menu item is only shown if collaboration is enabled.
  • hasDownloadBundle: Menu item is only shown if bundles are available for download.
  • isGroup: Menu item is a group.  This means that the item itself is not visible but any items with this item as the parent will be grouped together.
  • targetTop: Sets this menu item’s target as “_top”.
  • targetBlank: Sets this menu item’s target as “_blank”.
  • isIdcTokenRequired: Menu item calls a non-scriptable service and thus needs to provide the idcToken.

The second question is answered below.

Add Customized Security

The question often comes up of what to do about the menu items that aren’t covered by the default security flags above.  For example, a very common request is to constrain a menu or option to only those folks who have a specific role.  There are two ways to do this.  The first is a bit of a hack, but I’m not too proud to tell you about it.

As you’ll recall, when we were creating menu items I mentioned that Idoc Script can be used throughout the menus, so a simple way to restrict menus or menu items to specific roles is to add  Idoc Script right into the menu files like this:


It’s not the “best” way to do the job but it will work in a pinch.  For those who are seeking a more elegant solution, the best option is to add your own flags to the CoreMenuItemsFlags include.

The first step to adding your own flag is to add an entry to the flags CoreMenuItemsFlags include and type in whatever you want for a flag name.  For example if you are using records management you may want to make a flag called isRMAAdmin and use that to limit certain menu items to those folks who have rmaadmin roles.  In our case we’re going to add the flag to MYMENU1 as shown below.


It’s worth noting that the colon serves as a logical AND, so as you add flags to your content server you are building flexibility into your menu items and may have several flags that are distinct to your implementation, for example:

MYMENU1, hasHumanResources: hasITAdmin:isContributor:isRMAAdmin
MYMENU2, hasITAdmin:isVP

In cases where you need to do a logical OR you will need to create a flag that performs the OR logic like Oracle did with isSubAdminOrSysManager.

As you’ve probably guessed, there aren’t magic elves that interpret your newly created flag and just make it work behind the scenes.  You will have to extend the base functionality of the content server by extending the navigation_filter_rset_menu_item include as shown below.  NOTE: this is the same resource that you can override to create custom link types, but we won’t go into that here.


The first line of the code includes the existing version of the navigation_filter_rset_menu_item include.  The next lines check to see if the flag matches isRMAAdmin and the user does NOT have a role of rmaadmin.  If those conditions are met, the row is deleted from the menu.  This effectively removes the menu.  Obviously any Idoc Script can be used here to determine whether a menu row should be deleted, so you have tremendous flexibility.


We covered much of what the menu system has to offer, but there is more.  Everything that has been covered above is included in the MyMenu sample component that is available with this blog.  Perhaps the best additional resource for exploring the WebCenter menu system capabilities is through a sample component available from Oracle.  The component is available for download here: and it contains documentation and samples in addition to those we’ve provided.  Between the sample component included with this blog and the Oracle example you should have much of what you need to make excellent use of the flexible new WebCenter navigation model.

For more customization help with your WebCenter implementation, contact us today! 

Let TEAM Shed Some Light on WebCenter 11g

July 18, 2013

10g to 11g

FREE 2-Hour knowledge sharing session on the differences between WebCenter 10g and 11g. 
TEAM always strives to be a thought leader in the WebCenter community; offering blogs, videos, and how-to’s to inform our partners, customers, and community members alike.

We would like to extend a special opportunity to our current and potential customers for a free knowledge sharing session to learn the differences between WebCenter 10g and WebCenter 11g. This 2-hour session would be personal, on-premise or held remotely, and free of charge. Act now and learn what 11g can bring.

If you are interested in this personalized knowledge sharing session or would like to talk to TEAM about any other opportunities, please contact us! 

Press Release – TEAM Releases GSA Connector v3.1

June 19, 2013

ARDEN HILLS, MINNESOTA — June 19th, 2013

GSAConnector thumb2

TEAM Informatics, Inc., a leading enterprise software products firm in the Oracle® WebCenter market, announces the release of version 3.1 of the Google Search Appliance® (GSA) Connector for WebCenter Content.

The GSA extends the power of Google’s core search technology with its simplicity and familiar interface to corporate content across multiple servers and repositories.  TEAM’s GSA Connector provides the bridge between the GSA and Oracle’s leading ECM product, WebCenter Content.  TEAM has continued the Connector’s evolution in congruence with the evolution of WebCenter Content and the Google Search Appliance. The newest features provide full support for WebCenter Content Release

“We are constantly developing and increasing the capabilities of our GSA Connector,” explains Scott Olesen, Director of R&D for TEAM Informatics. “In version 3.1, along with supporting the newest release of WebCenter Content, we have included the ability to display search results in a customizable template within WebCenter Content. This newest feature will allow TEAM customers to continue to make the search interface their own.”

TEAM announces the release just prior to the Oracle WebCenter Partner Planning event in Chicago next week.

Find more information about the GSA Connector at TEAM’s website –

WebCenter Sites VS Site Studio: What You Gain, What You Lose

June 4, 2013

By: Jon Chartrand – Solution Architect

There have been an increasing number of clients questioning the real differences between these two products– not just in terms of the overall picture but on a feature-by-feature basis. After all, there are tens of thousands of highly functional Site Studio websites out there today (some of which I built) and when contemplating the shift from Site Studio to WebCenter Sites the question, “What will I gain and what will I lose?” is an extremely valid one. I thought it would be a worthy exercise to line up some of the major legacy features that clients have always found important and some of the newer didn’t-know-I-wanted-that features and see how both WebCenter Sites and Site Studio stack up.

Microsite Management
It’s becoming fairly common in my experience that clients aren’t just building and managing a single site anymore. Trying to squeak out as much ROI as possible means utilizing your licenses to their utmost. Public facing, vendor portal, intranet… The list can be extensive. This means the solution you choose must handle multiple/many websites easily.
WebCenter Content with Site Studio (WCC/SS) WebCenter Sites (WCS)
SS absolutely handles multiple websites with aplomb. You get individual address control, asset assignments, cross-site asset utilization, security control, and individualized workflows. On the other hand, the interfaces for managing a large number of websites can quickly get cumbersome and the logistics of managing multiple asset groups can be taxing. WCS has power to spare when it comes to managing multiple websites. The flexible asset model provides deep integration for assets and any number of websites while the walled-garden approach to the sites ensures your content is protected. The power of the WEM interface comes to the fore when dealing with multiple sites as the ease in switching between interfaces saves users time and complication.
I would probably give the edge on this one to WCS. Ultimately the newer WEM interface simplifies process management (though overall administration is more complex). SS can find itself burdened by the bevvy of data files, project files, and definitions while WCS maintains a bit more distance between the user and these materials.
Multi-language Support
We live in an increasingly shrinking world and as much as multiple websites are becoming common, so too are multilanguage adaptations. The question becomes how easy or difficult is it for you to manage language-versions of your sites in your WCM system.
WebCenter Content with Site Studio (WCC/SS) WebCenter Sites (WCS)
I’ve personally worked on several multilanguage implementations with SS. The pleasing element is the different approaches that can be taken; clone the whole site, clone only the content, swap out content, etc. Each method has its pros and cons in terms of contribution and maintenance. The problem is, besides whole-site cloning every other method is a customization. It may not be complex but every customization to your system is something else to be concerned about. WCS’ flexible asset modeling provides a different kind of power to this operation. With the ‘locale’ attribute for creating multilingual sets and the automatic assignment of master assets, WCS comes to the table with a flexible and powerful tool for simply accomplishing this once-onerous task. All without core customizations or custom components.
This one goes to WCS. While SS can and does handle multilanguage implementations, the WCS asset model steps up with a robust implementation of this concept already in hand.
Remote Caching (Site Delivery)
This is one of those features you probably know about but didn’t know you should want it. In traditional architectures you might deploy an F5 or similar device at the top of your stack to handle caching and delivery of your HTML and site files. This provides faster load times for end users and offloads burden from your primary application server to a unit designed to handle the load.
WebCenter Content with Site Studio (WCC/SS) WebCenter Sites (WCS)
WebCenter Content and Site Studio have several options for internally caching materials but nothing is provided in the package for remote caching. Most often the route taken is to deploy an F5 or similar device. WCS comes with Satellite Server (SaS) – a coresident or remote application which handles the caching and distribution of your HTML and site files. With bidirectional communication to the Sites Server, SaS keeps pages and content fresh without having to interact with it administratively. Remote SaS can be deployed on light hardware too.
Have to give this one to WCS. Satellite Server is an ingenious piece of technology that comes with your license. It deploys easily on a light hardware footprint and provides a simple method to cache remotely and offload server burden.
It’s always important to maintain strong chains of accountability when it comes to anything being produced by your business. Robust workflows help to create accountability and editorial ownership without (hopefully) interfering in employees’ routines. It’s also important to have customizable and unique paths for different types of content being produced and edited – all with the end goal of firm control over quality and accuracy of produced content.
WebCenter Content with Site Studio (WCC/SS) WebCenter Sites (WCS)
WebCenter Content has long been lauded for its robust and customizable workflow processes. Integration with live web content has made this an even stronger feature as well. Quickly deployable, easy to migrate, and totally customizable based on any metadata value, the WCC workflows are hard to beat. WCS’ workflow processes are definitely slanted in the direction of the content servers’ strength: web content. The product’s unfortunately unintuitive approach to workflow entrance and exit also makes the process more difficult to manage – especially given users common expectations.
This one goes to WCC/SS. While WCS certainly has the ability to perform workflowing processes, the balance of power, ease of use, and customizability give the edge to WCC.
Digital Asset Management (DAM) & Content Conversion
The ability to create packages of pre-sized renditions of your imagery, manipulate and convert video, or dynamically convert documents into web-viewable renditions can be a major boon to your contribution efforts. While it’s rare to need all these features, any one of them can be a serious help.
WebCenter Content with Site Studio (WCC/SS) WebCenter Sites (WCS)
With built-in (though somewhat limited) functionality for conversions and easy integration with several 3rd party applications, WCC allows you to convert full-size imagery to pre-sized web renditions and thumbnails or all Word docs to PDFs right at check-in. DAM and Content Conversion are not functionality within WCS.
This one is clearly in the WCC wheelhouse as it is part of the larger Enterprise Content Management (ECM) strategy which WCC embodies.
In-Context Contribution & Desktop Integration
Your contributors need simple access to update website content and documents. In-context contribution allows your authors to view the site as it looks live and quickly make changes, small or large, to reshape or refine your message. The same applies to documents as well; your users should have easy Windows-integrated access to items in the repository.
WebCenter Content with Site Studio (WCC/SS) WebCenter Sites (WCS)
Site Studio’s in-context contribution is robust and time-tested. Security can be applied at the placeholder level providing tight editorial control over portions of a single page. Integration with users’ workstations using Desktop Integration Suite (DIS) provides simple but powerful access to all authorized content in WCC. WCS’ Insite editor is a step forward in terms of integration and simplicity although the deep level of customizability adds to development overhead. With the same tight security controls, the only thing WCS lacks is the intimate integration with workstation desktops.
The edge goes to WCC/SS. While Insite is a step forward, the limited nature of WCS’ workstation integrations holds it back in this category. There’s word of eventual revamped functionality for WCS in this area but until then…
Segmentation / Content Targeting
Customizing the content that appears on your website based on metrics and provided-info? Yes, please. That’s Segmentation in a nutshell and it’s a concept that as its implementation continues to grow will change the web in fundamental ways.
WebCenter Content with Site Studio (WCC/SS) WebCenter Sites (WCS)
There is no out of the box facility for Segmentation. It would be very possible to develop something custom for Site Studio to do this but for even a few segments the development would become increasingly complex and burdensome. WCS’ rules engine (also called Engage) allows clients to create visitor segments and assign specific content to appear for those segments. Then metrics from any number of sources (analytics, user-provided, etc) are combined with implicit and explicit rules to determine which content to show. It’s complicated and can quickly become difficult to manage but when handled deftly can take a website to the next level.
No doubt, WCS wins this category hands down. While something custom can be crafted for WCC, the WCS rules engine is an out of the box feature which many clients should be utilizing.
User Generated (Social) Content
Facilitating your visitors to engage with your content through ratings, polls, and commenting is an incredibly important part of the modern web experience. The rise of dynamic social websites has changed how every visitor interacts with the content around them.
WebCenter Content with Site Studio (WCC/SS) WebCenter Sites (WCS)
WCC/SS has no out of the box functionality in this area. The most common path of utilizing a 3rd party service vendor is easy to setup and implement across your site however this can complicate matters when it comes to retention, moderation, or feature sets. While ultimately simple to implement, this isn’t a feature of WCC. The WCS product can be extended by the installation of the Sites Community Server (CoS). This server integrates with WCS and through simple code changes introduces commenting, ratings, and polls. Due to the integration with WCS you have administrative control over white-listing words, moderation, and retention. There is additional overhead to install the software, configure it, and modify templates to utilize it but the long-run benefits beat out those provided by a 3rd party software solution.
This one definitely goes to WCS. The current paradigm of social interactions with web content is embodied by the Community Server and the firm control it gives you over that content is excellent.
Mobile Site Delivery
The ability to deliver a seamless mobile experience for your website may be very important to you depending on the demographics of your visitors. In today’s mobile world users have come to demand an acceptable mobile experience – whether mobile-CSS or a full application deployment.
WebCenter Content with Site Studio (WCC/SS) WebCenter Sites (WCS)
WCC/SS does not provide any tools to enable or aid in the delivery of mobile-specific websites. As with any website, it’s possible to create mobile-specific CSS or even to redirect users to a different SS website designed especially for mobile devices. With the addition of the Mobility Server (MoS) for WCS, the business is provided with a tool to begin adapting and molding the mobile experience for any site in the system. The authoring environment can mimic various mobile devices to allow you to test display and functionality without extensive device purchasing. As well, the software aids in enabling location-aware functionality and maintaining user generated content methods. Keep in mind there is additional overhead to install the software and configure it.
The winner is definitely WCS. With the addition of MoS to an installation, clients are provided with a constellation of functionality that WCC was simply never built to provide.
Enterprise Content (Document) Management
Business doesn’t just create web content – it generates all manner of digital materials from documents to images to presentations and videos. Storing, classifying, converting, and retrieving these materials is crucial to ensure employees and visitors have access to the latest and greatest whenever they look for it.
WebCenter Content with Site Studio (WCC/SS) WebCenter Sites (WCS)
WCC’s true power is in the Enterprise Content Management arena. Whatever type of content you can throw at it, WCC allows you to flexibly assign metadata and meticulously store a full revision history. These processes tie in seamlessly with the workflows allowing end-to-end coverage of a content items lifecycle. The content management system (CMS) underlying Sites is robust but it was built from the ground up for Web Content Management (WCM), not document management. In this area it is simply eclipsed by the lifetime purpose of WCC and its decade-plus of evolution in this space.
ECM is hands-down the realm of WCC – especially when you factor in DAM, conversions, workflow, and records management capabilities.

Here’s how the standings break down:

Feature WCC/SS WCS
Microsite Management X
Multi-language Support X
Remote Caching (Site Delivery) X
Workflow X
Digital Asset Management (DAM) & Content Conversion X
In-Context Contribution & Desktop Integration X
Segmentation / Content Targeting X
User Generated (Social) Content X
Mobile Site Delivery X
Enterprise Content (Document) Management X

Ultimately there are two enormous factors to consider:

  1. While Oracle has announced the sun-setting of the Site Studio product, it’s fully included with the 11g release of the WebCenter Content product and supported through 2019.
  2. While I made each feature a winner-take-all, the overall isn’t a take-all comparison. You’ll need to judge on the features you find the most compelling for you own initiatives.

The last item I would submit for your consideration is that when you look at the summary chart above, it certainly appears that each software package has strength where the other may be weaker. Not long ago we came to the conclusion that WebCenter Content and WebCenter Sites are somewhat of a matched pair. When combined in a single architecture, you get industry-best ECM features and tools (from Content) and industry-best WCM features and tools (from Sites). We’ve even begun investing in this conclusion with the development and release of the TEAM Sites Connector, which is our first step in unifying these systems. And looking just a little way down the road, imagine you could migrate your legacy Site Studio web content directly over to Sites… Interesting indeed. Look for at our previous post with more details on how these applications fit so well together and how you can leverage that for a stronger, more robust architecture. Contact us for a personal conversation.