Content Profiles allow administrators to craft custom check-in and search screens. They can perform all sorts of default metadata tips and tricks and generally craft targeted, context centric pages that help users properly apply metadata to their content.
By default, when the check-in page loads up the Content Type select list automatically sets itself to the first item in the list. Sometimes this can cause problems if users do not pay attention, get lazy, etc. On occasion it will be desirable to force the selection of a Content Type (dDocType).
In my Oracle OpenWorld 2009 demo I showed how to use the Web URL Map feature of Content Server to make images and renditions easier to use in Cascading Style Sheets. This post is about that topic and one of the components I demonstrated during that session.
Written by: Jason Stortz
Oracle WebCenter Content (abbreviated WCC and formerly referred to as UCM or Stellent) exposes nearly everything it can do as a service. WCC is very SOA friendly. We can take advantage of this fact and use something like curl or wget to execute services in WCC from the command line.
Out of the box, Site Studio nodeIds are unique across all websites on a WebCenter Content instance. However, there is a configuration flag to change this. If the WebCenter Content configuration flag SSGenerateUniqueNodeIdsis set to 0 (false), nodeIds will only be unique within each website.
Quite often we need to customize our Content Servers using some specific Java code. Usually we accomplish this by creating a custom component and utilizing Service Handlers or Java Filters (or both). Unfortunately, sometimes it might be hard to decide when you should use one over the other. So, let’s dig deeper into both and understand how they work.
When within a Java Filter, one may need to get the file for a particular revision of a content item. There is a class intradoc.server.DirectoryLocator that is very helpful. From this class, we can obtain the FileStoreProvider.
Running UCM admin applications directly from the server where Content Server is installed is called running them in stand-alone mode. No longer are they called applets, since the term “applet” is usually referred to a program which is included in a web page.
After you install UCM 11gR1 you may occassionally (or often) start your UCM managed server from the command line. When you do this, you will get prompted for your weblogic username and password. If you get tired of this you can create a text file named boot.properties.
One of the easiest ways to see what might be going wrong, or right, in Content Server is the use of trace sections on the System Audit page. Trace sections allow you a great variety of control over what kind of information shows up in the server output.
When contributing various assets in Site Studio Designer the Assign Info form will be presented. By default, the buttons to commit are at the bottom of the screen. This is not such an issue the first time I save/commit the content. However, as I continue editing/saving the content I get annoyed by the fact that I have to scroll to the bottom of the page and click Assign Info each time.
I am starting to release some of the example components demonstrated at my session this year at Oracle OpenWorld 2009. In the demo I briefly showed the Web Sites menu and talked about filtering the sites in this menu based on UCM Roles. This component demonstrates how one might accomplish such a task. As other articles related to my session come on line I will inter-link them together.
The other day I was using an Oracle database tablespace supplied by a dba for a development environment and when I went to rebuild the full text index the Repository Manager greeted me with this nifty little error:
ORA-01658: unable to create initial extent for segment in tablespace
Out on the [Oracle ECM Forums](https://community.oracle.com/message/3702130) a question came up about how to find out which index is currently active (from Java). It's quite simple really. Just use the getActiveProperty method of the ActiveIndexState class.
Today I was setting up a VMWare Workstation instance. I tried to ping the host. It did not work. Figures. I thought to myself, what’s the setting to enable that again? I get tired of hunting this down for the Windows Firewall and my Norton Firewall.
A question was asked on the Oracle ECM forums about what the various values for Release State meant. I knew which states some of the single character values represented, but not all of them. I was interested in finally finding out this answer for myself once and for all so I dug in.
A recent client has users who were getting frustrated about the case sensitivity of the UCM logins. Their old system did not have this restriction (feature?) and they wanted this removed. The more of these types of things you remove the less secure the login becomes, but depending on each situation the risk/reward analysis plays to either side of the fence.
The default query form setting out-of-the-box is the expanded "standard" form. New with 10gR3, you also get the Query Builder form that allows non-technical users to build more advanced queries. Query Builder also includes some new advanced options for power users.
Announcing: Redstone Content Solutions
I have been working with my business partner, John Klein, to form a new Advanced Training & Consulting company focused on Oracle products. We work specifically in the Enterprise 2.0 landscape. Please visit our new website to learn more about us and our services. Please feel free to contact us at any time for answers to your questions.
In a previous article we talked about using Groovy to execute the PING_SERVER service of our SOA enabled Content Server. Interesting, but fairly useless you might say. Let's see how we can conduct a search using Groovy and then access specific metadata from those search results.
Yet another way to work with UCM? You bet! But this one is super Groovy (sorry, I had to do that). Check out how to setup Groovy and the Remote Intradoc Client to integrate with the Oracle Fusion Enterprise Content Management platform. You know you want to!
When users create new datafiles through Site Studio Contributor the Primary File (primaryFile) field can be the source of some questions or confusion. This field is usually pre-populated with ?default.xml?. Sometimes users will ask what this field is and/or why they see it.
Sometimes I need to send someone to the documentation. Now and then it will be easier to tell them, "Hey, check out page 10 of the iDocScript guide!" This can easily accomplished by tagging #page= onto the end of the PDF URL.
It is very easy to disable a Stellent component manually. Sometimes when you install a new component you may find something is wrong and the server does not restart. Other times you might be developing the component yourself and the server again fails to restart. On a variety of occasions you will not even be able to fire up Component Wizard.
Did you forget your sysadmin password for your Oracle Fusion ECM (Stellent) Content Server?!
There are those rare occasions where you might not know the sysadmin password for your Content Server. The reasons for this are many and varied and certainly not limited to forgetting the password or the departure of your administrator who was the "keeper of the key".
You want to call a stored procedure from within your Oracle Fusion ECM Content Server (Stellent). This post will detail two ways to accomplish that. This post will also be written under the assumption that the stored procedure you are attempting to call resides in your Content Server database.
There have been some updates to the jQuery platform recently that I want to help promote. Here is a little history (my point: development is ongoing, it is not a dead end project).
When you want to get paging controls for your ResultSet and the ResultSet in question is SearchResults from one of a few search services you can include the xui_results_page_nav_controls dynamic html snippet to get paging controls on your page. You may have to jump through a few hoops because the buttons may not currently point to YOUR page. That is doable with some detective work.
I do content server development a lot. Unfortunately I have other responsibilities as well. I also move around a fair bit so I fire up the old laptop and shut it down a lot. I set my SQL Server, Apache and Content Server services all to manual. I really hate waiting for all that to load up when all I want to do is get online to triage email, etc.
Out-of-the-box unauthenticated users that interact with Content Server have access to a special account called #none. As a wise man MIGHT guess this is a way of saying "Here's your badge to access content with no account."
The idea for this component is not my own, I actually noticed this during a demo at one point. The concept is to remove the <HR> (horizontal rules) on the check in and search pages and instead use Rule Groupings with headers.
In part two of this series of articles about setting up a Fusion ECM Development Environment we will tackle some prep work as we near the actual installation of Content Server.
In this entry we will learn how to get SQL Server Express 2005 downloaded, installed and configured properly for use with Fusion ECM. We will also learn why you must select and download just the right version of the Express Edition to get the most search options.
Setting up content server to execute a JSP (Java Server Pages) is relatively simple. There should be some amount of caution in deciding the Security Groups to enable for JSP execution. With a JSP you can very nearly do ANYTHING, so you want to make sure only trusted sources can check-in and execute as JSP in your content server.
The other day I was staring at the Administration menu trying to find the ‘Admin Server’ menu item. I am embarrassed to admit that the lack of alphabetical ordering in the menu list causes me to spend a lot of time spacing out starting at the Administration menu looking for the Admin Server menu item. Way too much time, unfortunately.
Add this to config.cfg:
Then, you'll need to widen out the field (dOriginalName) in the Document table itself.
You might need to do this if your are importing content from another server or checking in content that has extremely long file names.
I have always wanted a quick way to build components without firing up ComponentWizard. I'm not talking about the actual construction of the component like adding resources. I'm talking about the assembly of the component zip file. Combing through the intradoc user group and other online forums can yield a little discussion about Apache ANT being used to construct component zip files. However, I did not find an easy reference to an actual ant file for such purpose.
A group of scientists put five monkeys in a cage. In the center of the cage was a step ladder, and a banana was hung from the very top. The monkeys scurried up the ladder to retrieve the banana and then the scientists sprayed them with freezing cold water to prevent them from reaching it. Each time they tried to go up the ladder, they were again sprayed until none of the monkeys went up the ladder.
With the newer versions of Site Studio (10gR3, at least 10.1.3.3.3+) there is a handy way to set the default link format for your site. You can do this through the Site Studio Designer and the setting is persisted in your Project XML file in Content Server. This is pretty handy if you want to do things like using one manner of linking to data files for 90% of your content creation work.
There are often a wide variety of reasons why someone may want to keep only the latest n revisions of content in their content server. These reasons range all over from keeping disk usage in check to a form of security/retention management. Whatever your reason the process is pretty straight forward. I am going to show you how to setup archiver to take out all but the latest X revisions. In a later post we can talk about various ways to enact that archive on a scheduled basis.
As a result of one of the more recent core updates for oracle content server the actual update screen has several new pieces of data available to help you with the install. I am not exactly sure when these pieces started showing up in the component update screen but they are very handy.
There are several ways to execute iDocScript from Java, but in this quick example we will use a PageMerger object. There are several ways to get ahold of a PageMerger object. If you are executing in a context where a service object is readily available you may be able to get a PageMerger object reference with code like this:
Occasionally, you might have the need to perform what is known as a metadata only check-in. To perform this action you will need a configuration variable known as AllowPrimaryMetaFile. This variable allows users to check in metadata only records. Similarly there is another configuration variable you may want to keep in mind known as AllowAlternateMetaFile. These settings will create check boxes next to the primary and alternate file inputs.
It is early in the project and you create a nifty Java application to access content server. It executes a few services and generally accomplishes some black wizardry that people OH and AH over. Everything is going well. You are just about to board the corporate jet for that all expense paid developer retreat in Hawaii when they call you back with a problem.
In the oracle forums today a question came up about how to add custom actions to the menus in the actions drop downs for the Content Information page (sometimes called the Doc Info page). I wanted to dive into this a little more because in 10gR3 the way the developers crafted the menus is much more extensible. It is very nice. Somebody should get a raise.
There are at least two possibilities for increasing metadata field sizes. The request most often heard inquires about increasing the default memo field size (which is originally 255 characters). The second avenue is to increase the size for a single one-off metadata field.
The other day I was trying to execute a search against content server in some JSP's (Java Server Page) and I wanted to perform a multi column sort, similar to how the old Multi-Sort component used to work. The content server in question was configured for DATABASE.FULLTEXT. Turns out, this is simple to perform. When you form your URL or binder (Local Data?) you need a variable named SortSpec and it should start with "order by" and follow the basic rules of a database query.
This is just a quick introduction to batch loading content into content server with the Batch Loader application. The application can be run from the command line as well as in graphical mode. I normally run it in graphical mode.
Sometimes we encounter the need to perform a search in content server that requires a lot of work with the <OR> query operator. Between that and a few other variables it might be possible to craft a query that is too long for content server. This happens especially with generated queries. If you are using universal query syntax or a verity engine for your search engine you might also encounter this. If the data you are searching on is metadata based you might be better off temporarily switching over to a database based search on the fly to find your results.
If you are trying to squeeze additional performance out of your production servers you might look into adding the setting DisableSharedCacheChecking. This would be placed in your config.cfg file or under general configuration through the admin server. As always, it may help to perform some kind of analysis or metrics gathering prior to adding the configuration and then re-analyze after configuration implementation. What this boils down to is content server watching dynamic html resource includes in components to see if they need to be reloaded.
Using “View Server Output” from the admin server can tell you a lot about what is going on inside your content server. The server output can accumulate so much information it can easily be overwhelming. To help with this we are going to take a closer look at the tracing sections and how we can expand the built in list of sections to allow us to trace and troubleshoot the code we build for content server.
Welcome to the inaugural post for the Redstone Content Solutions Technical Blog! I am, of course, obligated to demonstrate the use of the coreContentOnly flag in my first post. I wanted to present an actual concept out of the gate and I will follow up later with a post about who I am and my agenda.