Sunday, July 31, 2011

The use of a Web Tier is always recommended in a production environment, for security, performance and better control and load management, no matter if is a Intranet, internet or extranet environment.

The most common use for the Web Tier with WebCenter is acting as Reverse Proxy to forward all requests to a frontend WebCenter site to the application server (Figure A), but there’s to many ways to do an enterprise deployment with a web tier and many flavors of web servers and load balancing options.

Let’s start with the WebLogic plugin with supported webservers. You can found the standard plugins in your WebLogic instalation dir, that will something like “%WEBLOGIC_HOME%/server/plugin/%OS%/”, but I recommend you to download the latest plugin from Oracle’s OTN or eDelivery websites, you will found the Oracle WebLogic Server Web Server Plugins 1.1 or later. With the version 1.1 you will found plugins for Apache 2.2.x (32-Bits and 64-Bits) and for IIS 6+ and IIS 7+. Always confirm the OS support with the WLS Plugin Support Matrix. If you need support for iPlanet 6+ or 7+, you can use the version 1.0. Any throuble to found the files, try search or create to the Oracle support (Ref.: Doc ID 1111903.1).

Some times you do not want to use a separate web server, you can use the WebLogic as a Web Server by using a servlet, but this is subject for another post.

When you are deploying a WebCenter solution using a proxy server, you need to remember to proxy all your requests from all weblogics for Security, performance and Control and also all non-weblogic requests such as static files, WebCenter Content custom requests, Services, Portlets and 3rd Party.

Is common in intranet deployments you see calls direct to the application servers, calls to several different servers, like the Figure C.

Above you can see the same sample with all calls using the web server, for proxy forward, for reverse proxy, static files caching, even the use of Oracle Coherence is easy when you have a WebCenter Spaces + Content deployment.

We cannot forget to talk about the clustering and load balancers, Clustering is easy done by the WebLogic, you just need to follow the documentation. For Load balancing you need to choose what kind and what load balancer you will use.

LOAD BALANCING

You can do load balancing using the Web Proxy Server with WLS Plugin or a servlet as mentioned above or a External Load Balancer (Hardware) or Appliance.

Using the WLS Plugin you will need to remember to create a entry for WebCenter Server that are you using, that means that you need to create a entry for the /webcenter/ another for the /cs/, another for the “custom sitestudio” calls, for the portlets (If you do not create a parent folder for the portlets, you will need to create a entry for each portlet) and an entry for any other 3rd calls.

The configuration file for each entry will looks like this sample for IIS7:

For a External Load Balancer (Hardware) you have many options, such as the f5 Big-IP, a guide to help you deploy with WebCenter could be found here.

There’s a option to use a hybrid configuration, with Hardware loadbalancers and Web Proxy to handle the web calls between the users and web farms, and web proxies and between the proxies and applications servers.

As with any tech work, one simple need can lead to another and another and soon there is a thread of quests in FMW layers to sweep up.

I was looking at viewing I/PM documents in Webcenter Spaces and thought sharing the same UCM should suffice but there is a bit more to it, obviously including sharing same security (LDAP).

I had two separate VMs with Webcenter and I/PM and so as a first step I made the latter use the same LDAP as WC but now when I login as admin user IPM admin tools are not available anymore... and thus the "sub-quest" began with looking at enabling log details etc and the summary is :

I/PM has its some tables in its own schema that store user/object info and those areSYSTEM_SECURITYDEFINITION_SECURITYDOCUMENT_SECURITY

These have GUID entries that need to be updated as needed (eg. when I moved the LDAP). In my case it was sufficient to delete entries in the first table as I did notcare much about the install I was playing with. However, the proper way to get this right is to use the refreshIPMSecurity feature.

Placeholders are a more flexible version of “contribution regions” from earlier releases. Placeholders were added in Site Studio 10gR4. A placeholder identifies where a region could be used for Contribution on a web page. Multiple placeholders may be added to a Page Template and identified by a placeholder name.

Each placeholder name has a placeholder definition.

A placeholder definition allows multiple Region Definitions and furthermore multiple Region Templates could be associated to each Region Definition

Region definitions are reusable groups of individual elements for a site content type.

Region templates are partial HTML files -i.e. no head and no body sections-, that define the layout and look-and-feel of the data in contribution regions within web pages.

This placeholder gets assigned a content file into it. This file is stored in the UCM Content Server and is called a Contribution Data File. Contributor data files are associated with a region definition to store the data for each element in the region definition.

A single placeholder on a web page can provide one of the multiple layouts associated to a placeholder (list of layouts determined by the Region Definitions associated to the placeholder definition).

This blog entry walks the reader through the configuration of Oracle Webcenter Capture (formerly known as Oracle Document Capture) in support of EBS Receipt Processing as part of the Oracle Webcenter Imaging (formerly known as Oracle Imaging and Process Management, Oracle I/PM) solution. Oracle Webcenter capture is responsible for production level document scanning and indexing and is an integral part of Oracle WebCenter Imaging, which provides an enterprise level end-to-end platform for managing document images within transactional business processes.In this scenario, the following components will be configured within Webcenter capture: File Cabinet, Index Profile, Import Server, Recognition Server, and the Commit Server.

• File Cabinet, part of the Capture Administration, is the “container” into which batches are scanned. As part of the file cabinet, index fields can be defined such that the values entered can be searched upon within the content management system such as Oracle Webcenter Imaging. In this case, the value(s) will be autopopulated by the Recognition Server when it reads the barcode of an Expense Report. The same index fields could be populated from a pick-list or a database lookup.• Index Profile: Enables additional configuration changes that need to be applied when users will need to index a batch.• Import Server: Imports images directly into Oracle Webcenter Capture from multiple sources including network folders, email, FTP sites, list files, and fax providers.• Recognition Server: This component is used to automate indexing through the recognition of barcode technology. For example, recognition server will interpret the barcode on an expense report, and will commit the document as soon as it has completed indexing the value.• Commit Server: This component processes batch commits on a scheduled basis. For example, the scanning and indexing could occur on independent workstations during business hours while the commit process using the commit server could occur during the off-peak hours.Assumptions:• A ‘Receipts’ Application has already been created in Oracle WebCenter Imaging.• Connectivity between Oracle Webcenter Capture and Oracle WebCenter Imaging.• Receipts are submitted with a cover sheet that contains a bar code with the expense report number.

1. First step would be to create a File Cabinet in Oracle Webcenter Capture. Call it ‘Expenses’.

2.Add 2 Index Fields, Expense Report and Classification. Ensure that both parameters are alphanumeric and have a max length of 25. Make sure that Expense Report is a Required Field. The values from the Index fields will be passed into the Imaging Application.

7. The next step is to create an Index Profile. Within Oracle WebCenter Capture, Click on Indexing and then Manage Index Profiles.On the General TabProfile Name: Expense Index ProfileFile Cabinet: Expenses

8, Skip the Filter Tab and click the Option Tab.Check the ‘Use the Commit Server’ option.9 .Click on the Fields Tab and select the ‘Classification’ and ‘Expense Report’ values.

10, Save the Index Profile and Close. The next step is to configure the Import Server
11. Click on the Import Server, Setup, Batch Jobs, Folder/List Provider. Add Job. On the
General TabFile Cabinet: ExpensesBatch Prefix: EXP
Default Batch Status: Ready for Recognition

13. Configure the Recognition Server. Click on Setup and then Batch Job

General Tab.

Batch Job Name: Expenses

File Cabinet: Expenses

Batch Prefixes: EXP

Batch Status: Ready for Recognition

Minutes to Wait: 0.

Check the ‘Use Commit Server’.

Check and Change Batch Status to: Failed Recognition.

14. Click on the Bar Code Recognition Tab. Uncheck the Enable the Auto-detect and select the Code-128.

15. Click on the Bar Codes Tab. Click on ‘New’ under the Bar Code Definitions.Description: Bar CodeValidation Rule: maskMask:#####. Since it is expected that the expense report number would be 5 characters, the mask would be #####. If the expense report number were 6 characters, the mask would be expected to be ######.Click Save.

16. Move to the Processing Tab.Bar Code: Bar Code. (This was created in the prior step).Check 'Clear All Index Values' and 'Keep Document Seperator.

20. Schedule and Activate the Commit Server.In the Scheduler, click on the Schedule Event.Event: All File CabinetsFrequency: Every 30 seconds.Click OK and Close.On the Commit Server, Click on 'Activate' under the 'Server' Menu.

21. Follow the same procedure for the Recognition Server and Import Server. When scheduling the Event for the Recognition Server, select ‘Expenses’ for the Event and ‘Every 30 seconds’ for the Frequency. Activate the Event.

22. Schedule the Job in the Import Server ensuring that the images will be picked up from the right import folder and choose the frequency as ‘Every 30 seconds’. Activate the Event.

23. Once the servers are activated, the image of the expense report should be picked up from the Import folder and processed through the recognition server where the expense report number should be retrieved and committed through to the Imaging server.

24. In the Imaging Application, do a search for the committed Expense Report.

Friday, July 29, 2011

Introduction

This post is focusing on how to create Content Presenter based pages with complex CMIS and custom content presenter templates that will create a filterable content list viewer using complex data types including Site Studio Region Elements.

The post will walk you through all steps based on a new Portal project, the tools you require to try this out is, JDeveloper 11gR1PS3 or 11gR1PS4, Oracle UCM Content Server 11gR1PS3 or 11gR1PS4, Oracle HTTP Services (optional), Oracle WebCenter Suite 11gR1PS3 or 11gR1PS4 In this demo we will serve all applications via the Oracle HTTP Server since this will enable in context editing from Content Presenter in the Portal.

Background

We are going to build a landing page where a filter bar will control Content Item listings, the content item listings will contain: Metadata and Regional Element Content from UCM. The Region Element content will originate from the Site Studio part of UCM. The end result will look like this:

Create Portal Project

Start Oracle JDeveloper as Default Role

Create New Application:

Name: BlogJuly2011

Application Template: WebCenter Portal Application

Add Content Server Connection to application

Open the home.jspx, located in Web Content/oracle/webcenter/portalapp/pages

Setting up content presenter and the filter bar, currently we will use a hard coded filter bar, however getting this to be automatic generated from ADF-BC or RIDC is a small task if the data structure and infrastructure is in place.

First we will add page markup with the filter and drop the Content Presenter Region, when dropping the region do not set the taskflow parameters

- In above code pay attention to row “25 to 35”, this rows add three filters (Business, Fashion, TV), this filters is based on af:commandLink with attached setPropertyListener.- The setPropertyListener is posting to a Page Parameter that is used to control the Content filter. In next step we will create this member.- Secondly other interesting point is row “40”, here we have added a region referencing the Content Presenter Taskflow, currently left the parameters unassigned.

As you can see in the step above the datasource is set to a SQL like statement, this statement is based on CMIS markup, lets look further into what is it actually do:- SELECT * FROM ora:t:IDC:GlobalProfile This part selects all fields from the GlobalProfile, if use the GlobalProfile we get access to all attributes including extend attributes in UCM.-WHERE ora:p:xTargetGroup = \''}${bindings.selectedTargetGroup1}${'\''} This parts filters out all Documents where the xTargetGroup is set to ${bindings.selectedTargetGroup1} –> this is the selection made when clicking in the filter.

- xTargetGroup is an extend attribute in UCM that I have added to filter on, this can be any attribute where you can store on of the example values (Business, Fashion, TV).Task: Add this attribute to UCM metadata!

Run the application by right clicking on index.html in the root of the “Portal” project

Lets add some content so we get something in the list, however before we do that lets add a Region Definition that will handle element data for future tasks

Now lets test the result by launching the new portal and navigate the Filter

The Result presentation is pretty dull, lets spice it up so we can use all information that the records are carrying. In this section we will create 2 new Content presenter templates, one template to handle the list and the second one will print each item in the list.

Step one create new content presenter template - Create folder called contenttemplates in path /Web Content/oracle/webcenter/portalapp- Create new JSFF (Fragment) name it, news-list-template.jsff- Add following code to the new fragment

Pay attention to the tag – dt:contentListTemplate, this tag is used to start a Content Presenter Listing when you get a list of items.The second important detail in the source code is the dt:contentTemplate where the view attribute is set to news.item.template.This tag include the template with View Id: news.item.template. This content presenter template is not yet created, this will be created in step 4 below.

Next step is to add this as an Portal Resource, right click the news-list-template.jsff and fill in the values accordinglyThe most important step on this screen is the View ID: news.list.templateThis will be used as templateView the content presenter taskflow binding, lets update this now.

Open the homePageDef and edit the doclibcontentpresenter1 Task Flow Binding

Now we need to create the single item content presenter template. This template will reference metadata from the given content item.

- Create new JSFF (Fragment), name it news-template.jsff- Add following code to the new fragment

Important points in the code above is the various references to metadata assets in the content item, most remarkable is the site studio region elements references.- Pay attention to the tag – dt:contentTemplateDef, this tag is used to present a individual Content Presenter item. In the code markup we have also implemented two different metadata types, one is data from the table content and other type is embedded element data from the site studio content. Table Metadata example: Row 10: <af:outputText value="#{node.propertyMap['dInDate'].value.calendarValue}"Site Studio Element data:Row 15: <af:goLink text="#{node.propertyMap['RD_NEWS:TITLE'].asTextHtml}"The unique markup to reference Site Studio Element data is to prefix the element name with the Region Definition Name that is enclosing the selected element. I.E {Region Def}:{Name}

Final step is to register the new Content Presenter Template as a Portal ResourceThe important step here is to set the View ID to news.item.template, this name is referenced in the content presenter list template news-list-template.jsff

Last step is to deploy the application to the application server where you want to run the portal. My result of last actions:

To further test the new portal you can add more content to the enabled filters by repeating step 7.4.

Finally you can update the skin to get improved look&feel, replace contents of portal-skin.CSS with following: