Exposing PeopleSoft portlets through WebCenter with WS-Security

Note: This post is an updated and extended version of this older post.

This post was produced jointly with Shawn Xin and Wellen Lau along with help and support from several other people.

1       Introduction

Often customers wish to expose a small part of PeopleSoft functionality to end users, without the need for those users to learn how to use the whole PeopleSoft user interface.  For example, there may be a desire to expose the absence request function in Employee Self Service through a staff intranet.

PeopleTools 8.48 and later releases allow you to expose PeopleSoft applications as “portlets” using the Web Service Remote Portlet (WSRP) standard, which is a convenient, code-free, way of integrating with portal platforms like Oracle WebCenter.

2       Requirements

The examples in this document were prepared using PeopleSoft HCM 9.1 with PeopleTools 8.50 and WebCenter 11.1.1.3.

3       Establishing the basic integration

In this section we will establish the basic integration between WebCenter and PeopleSoft.  Later, we will look at additional steps that can be carried out to add automatic sign on to PeopleSoft.

3.1     Exposing PeopleSoft Functionality using WSRP

The first step is to log on to PeopleSoft and tell it to expose some functionality as a WSRP portlet. Here we log on to PeopleSoft using the PS user:

Now, navigate to the PeopleTools menu, then Portal, then Structure and Content.

Now, we select the area of functionality we want to expose.  In this example, I am going to choose Self Service.

We navigate down to the page we want, in this example, going into Time Reporting.

And then Report Time.

Now we click on the Edit link to the right of Timesheet, Absence Request, or whichever function you wish to expose.

In the administration page that is displayed, all we need to do is check the WSRP Producible checkbox, as shown, and then click on the Save button.

We can repeat these steps for any other functions that we want to expose as portlets.  In my example, I have also exposed Personal Information as you can see in the image below.  You can get to this page by navigating to the WSRP Production menu item underneath PeopleTools and then Portal.  When you have exposed all of the functions you want to, expand the Web Service Endpoint URL box as shown, and take a note of the URL listed there, you will need this later.

3.2     Modifying the behavior to work well in an external portal

Since we are going to be using this function from an external portal, it is important that it respects the portal framework, and does not try to “take over” the whole screen.

To do this, we go to PeopleSoft Application Designer and open the component object to the Request Details page that gets displayed in PeopleSoft.  In the Component Properties section, we need to check the box labeled WSRP Compliant.

3.3     Registering the PeopleSoft WSRP Provider in WebCenter

That’s all we need to do in PeopleSoft, now we go to the Enterprise Manager to register our portlet(s).  This is accessed at http://yourserver:7001/em in a default install.  Login using an administrative user (e.g. weblogic) and navigate to the webcenter item under the Farm_your_domain > WebCenter > WebCenter Spaces menu.  Then open the WebCenter drop down menu (as shown) and select Register Producer from the menu.

Here we just need to give our producer a name, I used PeopleSoft, and provide the URL we copied down earlier.  Then add ?wsdl to the end of the URL, as shown in the diagram.  This tells Enterprise Manager to read the definition of the portlet, not the actual portlet itself.  Enterprise Manager needs this information to register the portlet(s).

Click on OK to save that, and now we are ready to go and use our portlet!

3.4     Adding the PeopleSoft portlet to a WebCenter page

Log on to WebCenter Spaces as any user, and create a new page in your Personal Space, but clicking on Create Page… in the Page Actions menu as shown.

You need to provide a name for your page, I called mine PeopleSoft Page, and select a layout, I used Stretch.

Now click on the Add Content button in the area where you want to put your portlet.  I used the main (lower) area.  With the Stretch layout that I selected, this one will expand to fill all available space on the page.

Composer will appear, and you can navigate into the Portlets folder to find our new portlet.

Here you will see the name you gave to the producer, PeopleSoft in my case.  Click on this to drill down to the portlet(s).

Now we see the two portlets that I exposed in PeopleSoft.  I am going to add the Personal Information Summary to my page.  Click on the Add link to do this, then the Close button to close Composer and return to your page.

By now the portlet will have probably rendered in your page and will look a bit like the image below.  Click on Save and then Close to get out of page editing mode and back to normal user/view mode.

Since we have not set up any single sign on yet, the PeopleSoft portlet is asking us to sign on to PeopleSoft.  Here I am using one of my demo users to log in to PeopleSoft:

And now we see the PeopleSoft portlet presenting information to us.  It’s as easy as that!

Of course, you can add more portlets to the page, and resize the portlet, and so on.  All the normal WebCenter capabilities are available.

4       Adding security

It may be convenient to set up automatic sign on so that users who are logged on the WebCenter will not be required to log on again to PeopleSoft.  This can be done by configuring WS-Security on both the WebCenter and PeopleSoft servers.

4.1     Creating certificates for use with WS-Security

Both WebCenter and PeopleSoft will need to have X.509 certificates to enable use of WS-Security.  Certificates can be a little confusing, so let’s start with a diagram that describes what we want to achieve.

WebCenter will have a keystore containing its private key orakey, plus PeopleSoft’s public key rootCA, and the certificate that PeopleSoft will use as the WS-Security recipient when we set up the automatic sign on qe_local.   qe_local is trusted because it was signed by rootCA which is trusted.

PeopleSoft will have a keystore containing its private key rootCA, plus WebCenter’s public key orakey, and the certificate that PeopleSoft will use as the WS-Security recipient when we set up the automatic sign on qe_local.

4.1.1     Create keystores for WebCenter and PeopleSoft

To create the keystores for WebCenter and PeopleSoft, we will use the keytool included in the Java Development Kit (JDK).

First we create a directory in the Middleware Home to keep our keystore and related artefacts.

C:\> cd \Oracle\Middleware
C:\Oracle\Middleware> md keystore
C:\Oracle\Middleware> cd keystore

The first step is to create a new keystore and a RSA key pair.  Note that this whole command is entered on one line.  It is shown here on multiple lines for ease of reading only.  You need to add in the appropriate Common Name (CN) as shown in bold.  Here we have used the fully qualified hostname of the WebCenter server, with the hostname as a cn and each domain name component as a dc.  You also need to provide a password for the key (keypass) and for the keystore (storepass), as shown.

C:\Oracle\Middleware\keystore> ..\jdk160_14_R27.6.5-32\bin\keytool
-genkeypair
-keyalg RSA
-dname "cn=webcenter,dc=au,dc=oracle,dc=com"
-alias orakey
-keypass welcome1
-keystore webcenter.jks
-storepass welcome1
-validity 1064

Now we will create a keystore and key pair for PeopleSoft, as shown. 

C:\Oracle\Middleware\keystore> ..\jdk160_14_R27.6.5-32\bin\keytool
-genkeypair
-keyalg RSA
-dname "cn=peoplesoft,dc=au,dc=oracle,dc=com"
-alias rootCA
-keypass welcome1
-keystore peoplesoft.jks
-storepass welcome1
-validity 1064

4.1.2     Create certificates

In this example, we are going to use self signed certificates.  This is suitable for test or development systems, but in a production system you may wish to purchase certificates from a trusted external Certificate Authority.  Alternatively, you may have already purchased a signing certificate and have your own certificate authority.  In this case, you will need to get your certificates signed by the administrator of the certificate authority.

The following command is used to create a new certificate which we will call orakey.

C:\Oracle\Middleware\keystore>../jdk160_14_R27.6.5-32/bin/keytool
-exportcert
-v
-alias orakey
-keystore webcenter.jks
-storepass welcome1
-rfc
-file orakey.cer
Certificate stored in file <orakey.cer>

Now we import that certificate into the WebCenter keystore with a new name, webcenter_spaces_ws.

C:\Oracle\Middleware\keystore> ../jdk160_14_R27.6.5-32/bin/keytool
-importcert
-alias webcenter_spaces_ws
-file orakey.cer
-keystore webcenter.jks
-storepass welcome1
Certificate already exists in keystore under alias <orakey>
Do you still want to add it? [no]:  yes
Certificate was added to keystore

The following command is used to create a new certificate which we will call qe_local.

C:\Oracle\Middleware\keystore>../jdk160_14_R27.6.5-32/bin/keytool
-exportcert
-v
-alias qe_local
-keystore peoplesoft.jks
-storepass welcome1
-rfc
-file qe_local.cer
Certificate stored in file <qe_local.cer>

Now we import that certificate into the PeopleSoft keystore with a new name, qe_local.

C:\Oracle\Middleware\keystore> ../jdk160_14_R27.6.5-32/bin/keytool
-importcert
-alias qe_local
-file qe_local.cer
-keystore peoplesoft.jks
-storepass welcome1
Certificate already exists in keystore under alias <rootCA>
Do you still want to add it? [no]:  yes
Certificate was added to keystore

4.1.3     Adding the certificates into the other party’s keystore

We also need to import this qe_local certificate into the WebCenter keystore, and the orakey certificate into the PeopleSoft keystore.

C:\Oracle\Middleware\keystore> ../jdk160_14_R27.6.5-32/bin/keytool
-importcert
-alias qe_local
-file qe_local.cer
-keystore webcenter.jks
-storepass welcome1
C:\Oracle\Middleware\keystore> ../jdk160_14_R27.6.5-32/bin/keytool
-importcert
-alias orakey
-file orakey.cer
-keystore peoplesoft.jks
-storepass welcome1

4.1.4     Copying the keystores into the correct locations

The WebCenter keystore can be copied into place using the following command:

C:\Oracle\Middleware\keystore> copy webcenter.jks
..\user_projects\domains\base_domain\config\fmwconfig

As for PeopleSoft, the keystore can be copied into place using the following command:

C:\Oracle\Middleware\keystore> copy webcenter.jks 
%PS_HOME%\webserv\%DOMAIN_NAME%\applications\peoplesoft\pspc.war\WEB-INF\classes\

4.2     Installing certificates in WebCenter

Once the file is in place, you need to login to Enterprise Manager to configure it.  This will be at http://your.webcenter.server:7001/em.  You need to login as an administrator, like the weblogic user for example.

Navigate to Farm_base_domain -> WebLogic Domain -> base_domain

From the context menu select Security -> Security Provider Configuration

Scroll down to Keystore, expand it, and click Configure

It is good practice to reset the configuration first.  To do this, uncheck the box Configure Keystore Management and click OK.  Then go back to Keystore, and click Configure again.

This time, check the box Configure Keystore Management and enter the following information as shown in the image below.

Keystore Path                  ./webcenter.jks
Password                       welcome1
Signature Key Alias            orakey
Signature Password             welcome1
Encryption Key Crypt Alias     orakey
Crypt Password                 welcome1

After you click on OK to save these settings, you will need to restart the WebLogic Admin Server (and the managed servers).

4.3     Installing certificates in PeopleSoft

To install the certificates in PeopleSoft, we first log in to PeopleSoft as the PS administrative user and navigate to PeopleTools -> Security -> Security Objects -> Digital Certificates.


Click on the + to add a new Root CA.  Choose the orakey.cer file we created earlier.  The alias must be orakey too – it needs to be exactly the same as on the WebCenter system.  Then click on the + again and add a Remote certificate, again choosing orakey.cer and using the alias orakey.

Once these steps are completed, you should see the certificates listed as in the example below.

4.4     Updating the WebCenter WSRP Producer registration with WS-Security information

We need to add some additional information to the WSRP Producer in WebCenter to tell it how about the security information to use with PeopleSoft.  Return to the WSRP Producer configuration screen (as described earlier) by logging on to Enterprise Manager and navigating to Farm_base_domain -> WebCenter -> WebCenter Spaces -> WebCenter and then in the popup WebCenter context menu to Settings -> Service Configuration.  Select Portlet Producers from the list on the left and then highlight your PeopleSoft WSRP Producer and click on the Edit button.

You need to fill in the security details as shown in the diagram below.

First, select WSS 1.0 SAML Token with Message Integrity in the Token Profile field, then select Custom for the Configuration field.  This will make the other fields available for editing.  You need to set the as follows (note that the values may be different for your environment):

Issuer Name              = www.oracle.com
Store Path               = c:/oracle/middleware/keystore/webcenter.jks
Password                 = welcome1
Signature Key Alias      = orakey
Signature Key Password   = welcome1
Encryption Key Alias     = orakey
Encryption Key Password  = welcome1

Note that we will make similar setting in PeopleSoft later and it is important that values you set in the two environments are identical.

4.5     Updating the PeopleSoft WSRP security options

To set the WS-Security configuration for PeopleSoft, we use the redeployWSRP batch file located in %PS_HOME%\webserv\%DOMAIN_NAME%\bin.

> redeployWSRP 5

In this case, we choose option 5 which redeploy the WSRPBaseService in PeopleSoft and set the security mode to WS-Security SAML Token with encryption.

4.6     Mapping users in PeopleSoft

If the usernames (SAML subject names) in WebCenter and PeopleSoft do not match, you may need to create mappings in PeopleSoft.

To do this, we log into PeopleSoft application as PS, and navigate to PeopleTools -> Security ->SAML Administration Setup -> SAML Inbound Setup.

Next we click on Add a New Value and enter the information required.  An example is shown below that maps the WebCenter user PAT to PeopleSoft user HCRAUS_KA0003.  Note that the Issuer must match the one that was specified in the WebCenter WSRP Producer registration’s security configuration.  The Qualifier should also be set to this value.

The values are set as follows:

  • Certificate Alias: The same name as the Root CA certificate
  • Issuer:  WWW.ORACLE.COM
  • SubjectName: The WebCenter user ID
  • QualifierName: WWW.ORACLE.COM
  • Mapping PeopleSoft UserID: The PeopleSoft user that WebCenter user is mapped to.

4.7     Validate Local Node Definition in PeopleSoft

We also need to make sure the Local Node Definition in PeopleSoft is set up with the correct authentication option.

To do this, we log on to PeopleSoft as the PS user and navigate to PeopleTools -> Portal -> Node Definitions, then click Search button to find the local node.

In the node definition page of the local node (in this case PSFT_HR), select Password from the drop-down list for Authentication Option and click on Save.

4.8     A final important consideration

When using WS-Security for automatic sign on to PeopleSoft, in order for the SAML assertion to be valid, the date/time on the PeopleSoft and WebCenter servers must be synchronized.  If this is problematic, then the PeopleSoft web server’s time may be set to be slightly ahead of WebCenter server.

Posted in Uncategorized | Tagged , , , , | 6 Comments

Installing WebLogic Server 10.3.3 on Ubuntu (64-bit)

Update:  This post describes a method for installing WebLogic Server 10.3.3 which involves first installing 10.3.2 and then patching up to 10.3.3.  It also now possible to just install 10.3.3 directly.  If you are an Oracle customer, you can download the 10.3.3 installer from eDelivery.

Another update:  You can now download a 10.3.3 installer from Oracle Technology Network, and also a “zip” distribution which you don’t need to “install” – just unzip -very handy for developers or for scripting test environments.

Yet another update: If you are reading this post because you are interested in installing SOA Suite, BPM Suite or WebCenter on a 64-bit Linux system, you may find more of what you are looking for in this post.  You may also want to install an Oracle database on Ubuntu?  If so, please take a look at this post.

Today, I was asked how to install the 64-bit (generic) version of WebLogic Server 10.3.3 on 64-bit Ubuntu.  For this post, I am using 64-bit Ubuntu 10.04 LTS Lucid Lynx, running in Oracle VirtualBox 3.20.

First we need to install the Sun JDK, which is a supported JDK for WebLogic Server.  As root, install the Sun JDK:

# cd /usr/lib/jvm
# sh <PATH>/jdk-6u20-linux-x64.bin

Next, we install WebLogic Server 10.3.2.  You can download this from Oracle Technology Network.  You want the Generic version of the Oracle WebLogic Server 11gR1 (10.3.2) – Package Installer.  Note: 10.3.2, not 10.3.3.

To install this, we run the following command, as a normal user:

$ /usr/lib/jvm/jdk1.6.0_20/bin/java -jar wls1032_generic.jar

After a few moments, the installer will appear.  Click on the Next button to start.

On the next screen we can set the location for our “Middleware Home.”  This is the directory where WebLogic Server will be installed.  I just accepted the default.

On the next screen you can provide your Oracle Support credentials (if you wish to) so that you can be notified of any important updates.  I just unchecked the box and clicked on Next to continue.  You will have to confirm in the popup box as shown.

On the next screen, we can select the type of installation.  I chose Typical and clicked on Next.

Next we select the JDK we wish to use.  This should already be showing the one we just installed and used to start the installation program, so you can go ahead and click on Next.

Next, we can specify the product installation directory.  I just took the default and clicked on Next.

Now we get a summary screen.  Click on Next to start the installation.

The installation will run, and we can watch the progress.

Once installation is completed we will see the following screen. Uncheck the Run Quickstart and then click on Done to exit the installation program.

We now have WebLogic Server 10.3.2 installed.  Next we need to download the 10.3.3 Upgrade Installer from Oracle Support.  If you have not used Oracle Support (formerly known as Metalink) for a while, you may notice it looks a little different now!

Once you have signed in go to the Patches & Updates section.

Click on the link for Product or Family (Advanced Search).

In the Product field, type in Oracle WebLogic Server, or select it from the list.

In the Release field, use the drop down box to select WLS 10.3.3.

In the Platform field, use the drop down to select Linux x86-64.

Click on the Search button.  You should get the following patch in your results.  Click on the patch number to open details of the patch.

On the right hand side, click on the Download button to download the patch and then unzip it.

This will give you a README file and the Upgrade Installer, called wls1033_upgrade_generic.jar.

To run the upgrade installer, we issue the following command:

$ /usr/lib/jvm/jdk1.6.0_20/bin/java -jar wls1033_upgrade_generic.jar

After a few moments, the Upgrade Installer will start.  Warning:  You may experience a little Déjà vu at this point!  Click on the Next button to start.

First, we need to select the Middleware Home to use.  Pick the same one we used earlier to install WebLogic Server 10.3.2.  This should be automatically selected for you.  Click on Next.

Again you can provide your Oracle Support credentials, or not, as you choose.

A summary screen will be displayed.  You may notice that WebLogic Server 10.3.3 includes some new options.  Click on Next to continue.

If you accept the defaults and leave that option selected, like I did, you will get a screen confirming where you want to install it.  Just accept the defaults again and click on Next to continue.

The installation will run, and you can watch progress.

Again, uncheck the Run Quickstart option and click on Done to exit the installer.

Now that the installation is finished, we want to create a domain.  This is done using the “config” script.

$ cd /home/mark/Oracle/Middleware/wlserver_10.3/common/bin
$ ./config.sh

After a few moments, the Configuration Wizard will start.  Select Create a new WebLogic Domain and click on Next to get started.

On the next screen you get the option to add some extensions.  I just accepted the defaults and clicked on Next.

Here you can give your domain a name and set the location where it will be stored.  Again, accept the defaults and click on Next.

On the next screen you need to set the administrator’s password by entering it twice.  Then click on Next.

Now you can select whether you want the server to run in Development or Production Mode, and which JDK to use.  Again, just accept the defaults and click on Next.

Here you get the option to change many other settings, and next time you create a domain, you might like to experiment with some of those, instead of just taking the defaults all the time!  But for now, let’s just click on Next again.

Here we see the summary screen, click on Next.

The domain will be created, and we can watch the progress.

After a few moments, the domain creation will be finished and we can click on Done to exit the Configuration Wizard.

Now we are ready to start up our server using the following commands:

$ cd /home/mark/Oracle/Middleware/user_projects/domains/base_domain
$ ./startWebLogic.sh

As the server starts up, if you look carefully at the output messages you may notice that it tells us it is running in 64-bit mode.

Once you get the message telling you the server is RUNNING, you can open up a browser and go to the WebLogic Server console.  This will be at http://yourserver:7001/console, and you can log on with the user weblogic and the password you created a moment ago.

When you click on Log In, you will see the console:

So, there we have it, a 64-bit WebLogic Server running on 64-bit Ubuntu.  The procedure for other Linux variants, Solaris, etc. is pretty similar and even installing on 64-bit Windows is not too different!  Good luck.

P.S.:  If there are any Ubuntu developers reading this post, I have not used Ubuntu for years and I must say that it looks fantastic and was very easy to install and use.  Congratulations on the great work!

Posted in Uncategorized | Tagged , , | 7 Comments

Rename all the files in a directory to add a prefix

This is a bit off topic, but it is something I frequently want to do!

When I am producing a new post I usually end up with a number of images that I want to include.  I normally create these in PowerPoint, and then save them as PNG images.  This gives me a directory with a bunch of files called Slide1.png, Slide2.png, etc.

I like to add a prefix to make it easier and cleaner and ensure there are no name clashes, but how to do this quickly and easily?

This is the fastest was I have found to do this:

for file in $(echo *.png); do mv ${file} ubuntu.${file}; done

I run this in a terminal window, and it does the job, leaving me with a bunch of files call ubuntu.Slide1.png, ubuntu.Slide2.png, etc. (in this case).

Posted in Uncategorized | Tagged | Leave a comment

Exposing E-Business Suite services using the Integrated SOA Gateway

Oracle E-Business Suite Release 12 introduced a new “Integrated SOA Gateway” that makes it very easy to expose functionality from E-Business Suite as web services.  This allows much easier integration to and from E-Business Suite.

In this post, we look at how to expose a piece of functionality in E-Business Suite as a service.  Here we are using Oracle E-Business Suite 12.1.2, a “Vision” system.

First we log on to E-Business Suite as the SYSADMIN user.

Next we navigate to the Integrated SOA Gateway responsibility and into the Integration Repository, as shown in the image below.

For this example, we will use the Price Request.  This is found under Order Management Suite then Advanced Pricing and Price List as you can see highlighted on the left hand side of the image below.  Then select Price Request from the list of integration points.  You will see a screen like the one below, that provides details of this integration point.  You can see that in this case, it is a PL/SQL API.  On the top right of this screen, there is a new button called Generate WSDL that we can use to easily expose this PL/SQL API (or any other integration point) as a web service.  Click on that now.

After two or three seconds you should get a confirmation message, like the one below, to let you know this was completed successfully.  Next we need to enable this new service.  This is done by clicking on the Deploy button which is highlighted in the image below.

Again, after a few seconds, your screen should update to look like the one below.  You can now see a link to the service description (WSDL) that can be used to call this service from other applications, systems, etc.

You can click on that View WSDL link to see the WSDL code.  Below is the first part of the WSDL for the above example.

Note: Make sure you open the WSDL in a new window or tab, we are not finished with this page yet!  You can do this by right clicking on the link and selecting Open in new tab or similar from the popup menu (this varies from browser to browser).

The final step is to grant access to the service, so that we will be able to invoke it.  To do this, we expand the list of operations in the last part of the interface page in Integration Repository , then check the box next to the interface we want to grant access to, and click on the Grant Access button.

Now enter the username for the user you want to grant access to, or use the search button to find the user.  In this example, it will be sufficient to grant access to ASADMIN.

Then save your changes.  Your screen should now look like this:

That’s all there is to it!  Certainly much easier than how we would have done this in the past.

Posted in Uncategorized | Tagged , , | 10 Comments

Speeding up VMWare

I was working with a very large VMWare image today, containing Oracle E-Business Suite R12.  The image is located on an external USB drive, simply because it is too large to fit on the internal disk on the available host machine.

It was running very, very slow, in fact so slow that it was completely unusable.

A little bit of research turned up some settings that can be used in this kind of situation.  The problem seems to be that VMWare creates a file in the same directory as the configuration (vmx) file where it stores the memory of the running guest machine.  This means there is a lot of I/O contention on the USB drive, not something that a lot of USB drives are very good at handling.

Happily, there is an option to make VMWare use RAM on the host to contain the guest’s memory, and to create any backing files on the main disk instead of the external disk.

Listed below are the settings I discovered and added into my VMX file.  In addition to this, I changed the option in VMWare Workstation’s Edit, Preferences menu option, in the Memory tab, to keep all of the guest memory in the host RAM.  I also tried this on VMWare Server.  The option is in a different place, but it does the same thing.

mainMem.useNamedFile=FALSE      ### this line is for Windows hosts
mainMem.backing="unnamed"       ### this line is for Linux hosts
sched.mem.pshare.enable = "FALSE"
MemTrimRate = 0
prefvmx.useRecommendedLockedMemSize = "TRUE"
prefvmx.minVmMemPct = "100"

The result of these changes was a dramatic performance improvement.  Actions that were previously taking several minutes before timing out or failing were now completely successfully in just seconds.

I am posting these settings here in the hope that they help others too.  I know I will be using them again next time I need to run a large VM!


Posted in Uncategorized | Tagged , | 8 Comments

Upgrading WebCenter and SOA Suite from 11.1.1.2 to 11.1.1.3

If, like me, you have an existing WebCenter and SOA Suite 11.1.1.2 installation, that you need to upgrade to the new 11.1.1.3 release, you may find the task a little daunting, as I did.  However, a little bit of careful research payed off, and I found that the Installation Planning Guide, particularly this section, are particularly useful and make the process very simple.

First, you need to upgrade your WebLogic Server from 10.3.2 to 10.3.3.  There is a WebLogic Server 10.3.3 installer on OTN, but this is not what you need.  You actually need to log on to Oracle Support (formerly known as Metalink) and download the Update Installer.  Full instructions on how to find it are included in the documentation linked to above.

You need to make sure you download the same kind of installer as you used to install your 10.3.2 server.  That means, if you installed the “generic” version, as opposed to the “win32” version or some other version, you need to make sure you download the “generic” updater.  If you installed the “linux” version, you need the “linux” updater, and so on.

With that completed, you then need to run the patch installers.  In my case, I ran the WebCenter 11.1.1.3 patch installer, then then SOA 11.1.1.3 patch installer.

The WebCenter 11.1.1.3 patch mainly contains fixes and updates, not a lot of new features, however there are some including an iPhone application and better integration with Microsoft Office 2007.

In contrast, the SOA 11.1.1.3 patch adds a lot of new functionality, most notable is the BPM 11g product which is installed as part of the patch, and adds the ability to use BPMN 2.0 in your composites – but that’s a whole other story.  The patch also adds the “BPEL domain” support that 10g users would be familiar with, and some other enhancements.

The final step is to run the Patch Set Assistant.  This will update your database schemas to suit the new patch.

After these three steps, you can then start up your domain at 11.1.1.3 level!   Not so hard after all!  Enjoy!

PS: There are some other post installation steps documented that you may want or need to do, depending on your installation.  Please be sure to read through them and carry out any extra steps that may apply.

Posted in Uncategorized | Tagged , , , | Leave a comment

Configuring the Web Clipping portlet to use an HTTP Proxy

Today, I was setting up an internal (intranet) deployment of WebCenter and one of the things I needed to display was the company share price, pulled from the Internet.  In order to do this, I used the built in Web Clipping portlet.  However, it needs to be configured to use an HTTP proxy so that it can access content on the Internet.

This is done by adding some settings to the provider.xml configuration file used by the portlet.  This configuration file is stored under the domain directory.  In my case, it is located here:

C:\Oracle\Middleware\user_projects\domains\base_domain\servers\
WLS_Portlet\tmp\_WL_user\portalTools_11.1.1.2.0\vuzpes\war\WEB-INF\
providers\webClipping\provider.xml

Note that the directory in bold and underlined is an automatically generated name.  Yours will probably have a different name.  It gets created when you add the web clipping portlet to a page.  You will want to do that first, if you have not already, so that the configuration file we need will be created.

If you open up this file, and scroll down about 30 or so lines, you will find that there is a long commented section that explains all of the proxy settings.  Following this, there is a sample set of proxy settings, as shown below:

 <!-- proxy information: Fill the following up if you have a proxy                           server between the provider and external sites.
  <proxyInfo class="oracle.portal.provider.v2.ProxyInformation">
    <httpProxyHost>yourproxy.yourdomain.com</httpProxyHost>
    <httpProxyPort>80</httpProxyPort>
    <dontProxyFor>.yourdomain.com</dontProxyFor>
  </proxyInfo>
  -->
Note that these are also commented out in the file.  You will need to update them with your proxy server settings, and also uncomment them.  There are several other settings that allow you to use a variety of different type of proxies, including those that require a user sign on.  For a basic HTTP proxy, you will just need to set the two items shown in bold in the sample above.
Once you have updated this file, you should restart for WLS_Portlet managed server.  Then your web clipping portlet will be able to access the Internet through your HTTP proxy.
Posted in Uncategorized | Tagged , , | Leave a comment

Installing Oracle Policy Automation on WebLogic Server

Today I needed to install Oracle Policy Automation into a WebLogic Server (11g) environment, for integration into a WebCenter Spaces portal (more on that later).   The documentation provides some hints on how to do this, but not all of the necessary detail.  So here is how to do it:

I am installing the Oracle Policy Automation 10.1.0.27 Web Determinations server on WebLogic Server 10.3.2.

First step is to download the OPA software from Oracle Technology Network and then unzip the downloaded file.

Inside this file, you will find a directory called web-determinations, which contains a file called web-determinations.war.  You need to unzip this file into a new directory, e.g. using WinZip.  I called my directory unzipped.  You should see four directories: content, data, META-INF and WEB-INF.

Navigate into the WEB-INF directory, then classes, then configuration.  Here you will find a file called application.properties, which we need to edit.

About 10-15 lines from the top  of the file, you will see these two settings, which you need to update as shown:

load.rulebase.from.classpath =true
rulebase.path               =rulebases

Now, save the file, and return to your unzipped directory.  Using WinZip, or something similar, create a new zip archive file, called web-determinations.zip which contains the four directories here in your unzipped directory.  Those four should appear as the top level directories inside your new zip file.  You may wish to compare with the old one to make sure you have zipped from the right place in the directory structure.

These changes are necessary because of the way that WebLogic Server handles war files at deployment and runtime.  Specifically, it does not explode out all of the contents like some other application servers do.  So we want to load our rulebases from the classpath instead of directory.

Now, you are ready to deploy.

The deployment is done the normal way, in WebLogic console, go to Deployments, click on Install, point to the war file you just created, then take the defaults for all the other pages and click on Finish.

When it is done, you can click on the Testing tab to get easy access to the URL to open up the web interface, which should look like this:

There will not be any rulebases available yet (somewhat obviously).  Stay tuned for another post on creating, deploying and testing a rulebase!

Posted in Uncategorized | Tagged , | 1 Comment

Using the new AutoSuggest Behaviour in ADF

ADF 11.1.1.2 added a new Auto Suggest capability that allows you to provide automatic suggestions as a user types data in a field (just like Google do).  This post provides a quick demo of how to use this capability.  You will need JDeveloper 11.1.1.2 (or later) to do this.

First, we create a new application, by selecting New from the File menu.  Select Fusion Web Application (ADF) as the template, and give your application a name.  I called mine SuggestionDemo.  Then click on Finish.

Two projects will be created for you.  We are only going to use the ViewController project in this example.  Right click on this project and select New…

We are going to create a Java class that will act as the source of our suggestions.  You could also use a web service, or a database, etc. to get the suggestion list.  Select the General category and Java Class on the right hand side.  Then click on OK.

Give your class a name.  I called mine BackingBean.  Then click on OK.

Here is the code for the class.  In this example, I have just set up a list of city names in the constructor.  You need to provide a public method that returns a List and accepts a String as input in order to use it for suggestions.  In the method below, I am just going through the list and finding all of those that contain the input String.  ADF will send the current contents of the field to this method as the users types.

package view;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;

public class BackingBean {

 private List<SelectItem> suggestions = new ArrayList<SelectItem>();

 public BackingBean() {
 super();

 //initialise list of choices
 suggestions.add(new SelectItem("Sydney"));
 suggestions.add(new SelectItem("Melbourne"));
 suggestions.add(new SelectItem("Singapore"));
 suggestions.add(new SelectItem("Tokyo"));
 suggestions.add(new SelectItem("Beijing"));
 suggestions.add(new SelectItem("San Francisco"));
 suggestions.add(new SelectItem("New York"));
 suggestions.add(new SelectItem("Houston"));
 suggestions.add(new SelectItem("Seattle"));
 suggestions.add(new SelectItem("London"));
 suggestions.add(new SelectItem("Paris"));

 }

 public List getSuggestions(String input) {

 // create a new list to hold matching items
 List<SelectItem> items = new ArrayList<SelectItem>();

 // loop through the suggestions list
 for (SelectItem item : suggestions) {
 // check if each item contains the input string
 // convert both to upper case to make a case insensitive comparison
 // you could also do startsWith() or other String comparison methods here
 if (item.getLabel().toUpperCase().contains(input.toUpperCase())) {
 // if the item contains our input string, add it to our matching items list
 items.add(item);
 }
 }

 // return the matching items
 return items;
 }

Now we will create our user interface.  Right click on the Web Content folder in the ViewController project and select New…

Select JSF from the Web Tier folder on the left, and JSF Page on the right and click on OK.

Give your page a name, I called mine demo and pick a starter page template.  I chose the Oracle Three Column Layout.  Then click on OK.

Your new page will open in the designer (as shown below).  Drag an Input Text component from the Component Palette onto the white area in the middle of the page.  If you cannot see the Component Palette, you can open it from the View menu.

Click on the new input field and update its Label in the Property Inspector.  I called mine City as you can see below.  Again, if you cannot see the Property Inspector, you can open it from the View menu.

We need to tell our page about the backing bean we created.  this is done by creating a binding.  You can just double click on the input field itself.  This will open the Bind Action Property dialog box as shown below.  Click on the New… button.

Type in a name for your bean.  I called mine BackingBean.  Then click on the Browse… button next to the Class Name field.

The Class Browser dialog box opens.  Type in the name of the class you created earlier, and then select it from the list and click on OK.

The Create Managed Bean dialog box should now look like the example below.  Click on OK.

You are returned to the Bind Validator Property dialog box now.  At this point, the binding we need has already been created, so you can just click on Cancel here.

Now right click on the input field and select Insert inside Input Text – City and then ADF Faces… from the popup menu.

In the list that appears, select the Auto Suggest Behavior and then press OK.

A dialog box will appear so that we can specify the source of the suggested items.  Click on the little arrow to the right of the field and then select Method Expression Builder… from the menu that appears.

Navigate through the folder structure to find your backing bean’s getSuggestions method (or whatever you called yours) as shown below.  When you select it the expression will be filled in automatically, as shown.  Then click on OK.

You will see the expression has been added to the dialog box.  Press OK again.

Now we are ready to try it out!  Select Save All from the File menu to save your work, then right click on the page somewhere and select Run from the menu.

This will start your embedded WebLogic Server (if it is not already running), build and deploy our application and open this page in your default browser.

When the browser opens you can just start typing in the City input field (as shown below) and you will see the suggestions appear and change as you type more characters in the field.  You can use the arrow keys to select a recommendation, or you can click to select.

It’s as easy as that.  You can use the automatic suggestions anywhere you can use an input field, incuding inside other components.

Posted in Uncategorized | Tagged | 2 Comments

Exposing PeopleSoft portlets through WebCenter

A new updated and expanded version of this post, which includes information about how to configure security is located here.

I often get asked about exposing functionality from PeopleSoft through WebCenter – how do you do it?  How hard is it?  Here is a quick guide that shows you just how fast and easy it is!

Here I am using PeopleSoft 9 with PeopleTools 8.48 and WebCenter 11.1.1.2.

The first step is to log on to PeopleSoft and tell it to expose some functionality as a WSRP portlet. Here we log on to PeopleSoft using the PS user:

Now, navigate to the PeopleTools menu, then Portal, then Structure and Content.

Now, we select the area of functionality we want to expose.  In this example, I am going to choose Self Service.

We navigate down to the page we want, in this example, going into Time Reporting.

And then Report Time.

Now we click on the Edit link to the right of Timesheet.

In the administration page that is displayed, all we need to do is check the WSRP Producible checkbox, as shown, and then click on the Save button.

We can repeat these steps for any other functions that we want to expose as portlets.  In my example, I have also exposed Personal Information as you can see in the image below.  You can get to this page by navigating to the WSRP Production menu item underneath PeopleTools and then Portal.  When you have exposed all of the functions you want to, expand the Web Service Endpoint URL box as shown, and take a note of the URL listed there, you will need this later.

That’s all we need to do in PeopleSoft, now we go to the Enterprise Manager to register our portlet(s).  This is accessed at http://yourserver:7001/em in a default install.  Login using an administrative user (e.g. weblogic) and navigate to the webcenter item under the Farm_your_domain > WebCenter > WebCenter Spaces menu.  Then open the WebCenter drop down menu (as shown) and select Register Producer from the menu.

Here we just need to give our producer a name, I used PeopleSoft, and provide the URL we copied down earlier.  Then add ?wsdl to the end of the URL, as shown in the diagram.  This tells Enterprise Manager to read the definition of the portlet, not the actual portlet itself.  Enterprise Manager needs this information to register the portlet(s).

Click on OK to save that, and now we are ready to go and use our portlet!

Log on to WebCenter Spaces as any user, and create a new page in your Personal Space, but clicking on Create Page… in the Page Actions menu as shown.

You need to provide a name for your page, I called mine PeopleSoft Page, and select a layout, I used Stretch.

Now click on the Add Content button in the area where you want to put your portlet.  I used the main (lower) area.  With the Stretch layout that I selected, this one will expand to fill all available space on the page.

Composer will appear, and you can navigate into the Portlets folder to find our new portlet.

Here you will see the name you gave to the producer, PeopleSoft in my case.  Click on this to drill down to the portlet(s).

Now we see the two portlets that I exposed in PeopleSoft.  I am going to add the Personal Information Summary to my page.  Click on the Add link to do this, then the Close button to close Composer and return to your page.

By now the portlet will have probably rendered in your page and will look a bit like the image below.  Click on Save and then Close to get out of page editing mode and back to normal user/view mode.

Since we have not set up any single sign on yet, the PeopleSoft portlet is asking us to sign on to PeopleSoft.  Here I am using one of my demo users to log in to PeopleSoft:

And now we see the PeopleSoft portlet presenting information to us.  It’s as easy as that!

Of course, you can add more portlets to the page, and resize the portlet, and so on.  All the normal WebCenter capabilities are available.

A new updated and expanded version of this post, which includes information about how to configure security is located here.

Posted in Uncategorized | Tagged , , , , | 3 Comments