Friday, November 19, 2010

BPM Portal - How To Configure Oracle BPM 11g Process Portal on Oracle WebCenter Spaces 11g

Oracle BPM 11g is attractive product for enterprise customers, one of the reasons - it can be integrated with custom enterprise applications through portal - Oracle WebCenter Spaces 11g. I had chance to discuss with several interested customers, most of them are facing issues to setup and run both domains together - SOA/BPM and WebCenter. Time ago I have promised to discuss configuration process - Oracle BPM 11g Integration with ADF and WebCenter Suite - Quick Overview. It is very interesting and challenging topic. Chapter 3.2 Using Oracle Business Process Management Suite with WebCenter Spaces from Oracle BPM 11g Installation and Configuration guide is very abstract, without details. Its what I will try to fix today.

In order to get better understanding and to see sample screenshots of Oracle BPM 11g process portal, you can check Oracle BPM 11g User's guide chapter 9 Getting Started with Oracle Business Process Management Process Spaces (Process Spaces).

Finally, there is Oracle Fusion Middleware 11g Patching Guide, where you can find basic steps how to extend WebCenter Spaces 11g domain with Oracle BPM 11g functionality. Read section 4.6.5.3 Enabling Process Spaces in a WebCenter Domain from this guide. In few words, you need to go to Oracle BPM 11g installation folder, extract process portal package, provide valid parameter values, run script and thats it. We will look today into these properties and will see how to extend WebCenter Spaces 11g.

You can download Oracle BPM 11g and WebCenter Spaces sample configuration properties from my environment - process-portal-install.properties.

Go to Oracle SOA 11g and BPM 11g domain installation and open bpm folder:


Extract process portal package, you will find process-portal-install.properties file there:


Taskflows folder contains ADF Libraries with standard BPM 11g ADF task flows, we can copy into the same folder our task flows, if we want them to be available in WebCenter Spaces 11g process portal:


My process portal contains three ADF Libraries with custom ADF 11g task flows.

In order to make these ADF task flows visible in WebCenter Spaces 11g, go to util folder and edit DefaultGroupSpaceCatalog.xml file:


This file should include references to our custom ADF 11g task flows available in ADF Libraries. Same file contains declarations for standard BPM 11g task flows as well:


Now we are approaching towards main part of this blog post - process portal installation properties:


I will walk through and describe all important properties:

#Flag to decide whether to extend existing BPM domain or create a new one.
extendSoa=false

Default value is false, this means script will integrate Oracle SOA/BPM 11g and WebCenter Spaces 11g domains, also it will extend WebCenter Spaces 11g with standard ADF BPM 11g and custom ADF 11g task flows.

For initial script execution, always use false, once domains are integrated - always use true.

#webcenter spaces installation details
wcOracleHome=/home/redsam/Oracle/Middleware/Oracle_WC
#If extendSoa flag is set to true, then configure the below two properties to point to BPM domain
wcDomainName=wc_domain
#Flag to control whether to set domain realm password or not
wcSetDomainRealmPassword=true
#This is the password to setup trusted domains. Same password should be set on BPM domain as well
wcDomainRealmPassword=welcome1
wc.server.port=8888

Provide installation details for WebCenter Spaces 11g domain. Ignore comment in the script about extendSoa flag. If you are running script for the first time (integrating SOA/BPM 11g and WebCenter Spaces 11g domains), make sure you are providing correct WebCenter Spaces 11g domain realm password, it must be same as it is set on SOA/BPM 11g domain. This will allow to communicate both SOA/BPM 11g and WebCenter Spaces 11g domains between each other. You can set domain trust password on SOA/BPM 11g domain manually, go to domain settings and select General section from Security tab:


Scroll down to the advanced section and change SOA/BPM 11g credentials, to the same value as you are planning to use for WebCenter Spaces 11g domain:


If Oracle Universal Content Management and Discussions are not configured yet on WebCenter Spaces 11g domain, you can configure them by providing following property:

#Flag to control whether to configure services
wcConfigServices=true

If these services already in place, set this property value to false.

Properties for Oracle UCM are pretty straightforward:

#content server details
wcContentServerName=127.0.0.1
wcContentServerPort=4444
wcContentSpacesRoot=/WebCenter0809
wcContentAdminUser=sysadmin

Same for Oracle Discussions:

wcDiscussionServerUrl=http://127.0.0.1:8890/owc_discussions
wcDiscussionAdminUser=weblogic

The rest of the properties, you can find in my sample installation properties file from above.

Execute install.xml script with ant:


This will configure and integrate SOA/BPM 11g and WebCenter Spaces 11g domains together or will extend WebCenter Spaces 11g domain with custom ADF 11g task flows, bases on extendSoa property value.

After few minutes, when configuration will be finished, you should restart WebCenter Spaces 11g managed server:


BPM 11g process portal - Process Workspace becomes available in WebCenter Spaces 11g:


Our custom ADF 11g task flows are available as well and can be added from the resource catalog:


Its how standard BPM 11g functionality can be integrated and accessed from portal environment, where our custom ADF 11g applications are accessible as well.

39 comments:

. said...

Thanks for the information.

. said...

i do each one of the instruccions but I can see the next message of error



BUILD FAILED
/../Middleware/Oracle_SOA1/bpm/processportal/install.xml:82: The following error occurred while executing this line:
/.../Middleware/Oracle_SOA1/bpm/processportal/install.xml:158: The type doesn't support the nested "mapper" element.

Andrejus Baranovskis said...

Are you using ANT from inside of SOA/BPM domain or external?

Andrejus

. said...

you mean the ANT directory ?

the ANT is located into the this directory

/.../Oracle/Middleware/modules/org.apache.ant_1.7.1/bin/ant -f install.xml



Atmorphius ... thx for help !

Andrejus Baranovskis said...

I was not getting such error. Do you run on Windows or Linux?

Andrejus

. said...

Linux


I'm using Oracle Enterprise Linux 5.2

Andrejus Baranovskis said...

This error might happen, if user don't have privilege to create files. You should check script line, where error is generated - it is unzipping task.

Regards,
Andrejus

. said...

Ok I'd check it . . .

. said...

I execute the line command with the root user and,this is the message


[root@serversoa ~]#
cd /.../Oracle/Middleware/Oracle_SOA1/bpm/processportal
[root@serversoa
processportal]# /.../Oracle/Middleware/modules/org.apache.ant_1.7.1/bin/ant -f install.xml
Buildfile: install.xml

BUILD FAILED
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at
org.apache.tools.ant.loader.AntClassLoader2.defineClassFromData(AntClassLoader2.java:76)
at
org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1090)
at
org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1154)
at
org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1107)
at
org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:977)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at
org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:457)
at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:183)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at
org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:142)
at
org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:91)
at org.apache.tools.ant.Main.runBuild(Main.java:653)
at org.apache.tools.ant.Main.startAnt(Main.java:187)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

Total time: 0 seconds
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at
org.apache.tools.ant.loader.AntClassLoader2.defineClassFromData(AntClassLoader2.java:76)
at
org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1090)
at
org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1154)
at
org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1107)
at
org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:977)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at
org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:457)
at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:183)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at
org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:142)
at
org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:91)
at org.apache.tools.ant.Main.runBuild(Main.java:653)
at org.apache.tools.ant.Main.startAnt(Main.java:187)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Bad version number in .class file
[root@serversoa processportal]#

Andrejus Baranovskis said...

I'm not sure, something is wrong with your environment...

Andrejus

. said...

I verified my JAVA_HOME , and I logged with root user, but I see the same error.

Buildfile: install.xml

readPasswords:

validate-env:
[echo] Validating the environment..

update-jars:

copy-wf-config:
[echo] workflow config file is being copied..
[copy] Copying 1 file to /.../Oracle/Middleware/Oracle_SOA1/bpm/processportal/generated/stage/custom.war/WEB-INF/lib
[jar] Building jar: /.../Oracle/Middleware/Oracle_SOA1/bpm/processportal/generated/stage/custom.war/WEB-INF/lib/oracle.bpm.processportal.wfclient-config.jar
[delete] Deleting: /.../Oracle/Middleware/Oracle_SOA1/bpm/processportal/generated/stage/custom.war/WEB-INF/lib/wf_client_config.xml

create-catalog:

BUILD FAILED
/.../Oracle/Middleware/Oracle_SOA1/bpm/processportal/install.xml:82: The following error occurred while executing this line:
/.../Oracle/Middleware/Oracle_SOA1/bpm/processportal/install.xml:158: The type doesn't support the nested "mapper" element.

Andrejus Baranovskis said...

You can try to run on official Oracle Linux VM. I can't help you, it works on my environment.

Andrejus

TamerQumhieh said...

Hi Thanks for the great effort, but I was wondering if I have Webcenter and BPM on different boxes, shall I use the same steps? meaning shall I set extendSoa to false or true?

Andrejus Baranovskis said...

Yes, same procedure should be followed - no difference if on separate boxes.

Andrejus

Atmorphius said...

What version do you have of Ant ?

in my case

Apache Ant version 1.6.5 compiled on June 2 2005


Do you think the Ant version is my problem ?


thanks for help - Atmorphius

Andrejus Baranovskis said...

Yes, I'm running newer Ant:


[redsam@localhost bin]$ ./ant -version
Apache Ant version 1.7.1 compiled on June 27 2008

You should have same Ant on your system, just run it from Oracle Fusion 11g installation folder (for example):

/home/redsam/Oracle/Middleware/modules/org.apache.ant_1.7.1/bin

Andrejus

labatterie said...

Thanks for the information.

Sachin Gupta said...

Dear Andrejus,
We have got 11.1.1.3 BPM/SOA domain (No webcenter installed in this) runnning in one machine and Webcenter (No BPM/SOA) running in another machine.

In our webcenter, we are not getting tab for Process Workspace (Similar to BPM workspace application). We configured Worklist service and this service shows very basic/short details of tasks. Can you please help me adding process workspace Or BPM workspace to Webcenter. Am i missing something ? Do i need to extend my domain ? If yes then can you please help me in locating the document/process for the same ?
Thanks.

Andrejus Baranovskis said...

Hi,

You should be able to configure BPM support for WebCenter domain using instructions from this blog. You are facing configuration issues?

Andrejus

Sachin Gupta said...

I followed all the steps given in your tutorial (and link on the oracle). Everything went fine but Webcenter Spaces 11g is still not showing "Process Workspace" even after we restarted the Webcenter. Do i have to configure something else in Webcenter to make it available ? Pls note that all of the servers (Admin, SOA and Webcenter) are hosted in one local machine and there is no error during runtime or configuration. Thanks.

Andrejus Baranovskis said...

Hi,

You should login into WebCenter Spaces with weblogic user and open list of available spaces for this user. You should Process Workspace Space available.

Andrejus

tim said...

Hi I get the following error when I run the ant command ant -f install.xml -DpromptForPasswords=true
[exec] javax.management.InvalidAttributeValueException: Array has at least one null element
[exec] at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)

Any ideas what I've done wrong?

Thanks

tim said...

Fixed the issue, 2 hard coded values in the py script. my wc managed server is called different from the default WC_spaces. i changed the py script and it worked.

Andrejus Baranovskis said...

Very good ! :)

Anonymous said...

Hi,

When I run ant, I get the error:


[exec] at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
[exec] Caused by: weblogic.common.ResourceException: weblogic.common.ResourceException: DataSource 'mds-soa' can not be created. It is non-transactional and so can not use XA-aware pool 'mds-soa'
[exec] at weblogic.jdbc.common.internal.DataSourceManager.checkDataSource(DataSourceManager.java:236)

Thanks.

Andrejus Baranovskis said...

Make sure you are not using XA data source.

Andrejus

Anonymous said...

Thanks Andrejus,

That did it.

The problem is that this adds a task-flow to Group Space. Is there any way to add this to Personal Space Catalog.

Thanks.

Cenk Ozan Kahraman said...

We had the AX problem. We had changed the py code. Then the ant script succesfully finished. After we logged out from Webcenter, we had this error:

java.io.FileNotFoundException: MDS-00013: no metadata found for metadata object "/login.jspx"

subbu said...

I'm unable to see the flow of an BPM process,any suggestions?

Anonymous said...

do this script support multidata RAC DB, in wc-post-install.py, i wonder how to use RAC datasouce as parameter?

setDatasource("SOADataSource", bpmDBUser, bpmDBPassword, bpmDBUrl, bpmDBDriver, "jdbc/SOAData
Source", wcManagedServerName)


https://forums.oracle.com/forums/message.jspa?messageID=9945131#9945131

Anil Saka said...

How can I configure webcenter if the bpm is running in a cluster env.
Do I need to create a VIP for the soa ,anaged servers and use it for configuration.

Anil Saka said...

Andrejus,
I have suceffuly extended the domain for bpm process portal, and ran the ant script with no issues.

i have webcenter on one server and BPM on another server and different domains.[gonfigured the global trust as well]

when i login to spaces i see the BPM relates work spaces but are inactive and when i login a weblogic i see the following error:

Caused by: oracle.j2ee.ws.wsdl.LocalizedWSDLException: WSDLException: faultCode=PARSER_ERROR: Failed to read wsdl file at: "http://localhost:7001/integration/services/IdentityService/identity?WSDL", caused by: java.net.ConnectException. : java.net.ConnectException: Connection refused


my suspicion its reffereing a local host instaed of the remote bpm server to acess the identity service WSDL and its failing.

is there way to manually update the wsdl location from the webceter domain:

the one i am talking about is :

http://localhost:7001/integration/services/IdentityService/identity?WSDL

i want to replace the host and port info and give the correct one.

Andrejus Baranovskis said...

Hi,

I suppose port 7001 is for BPM server in your environment?

May be when you was running script, in properties had localhost for BPM server address? But I doubt then, if install would be successful.

Since port is set correctly, i suppose that properties were incorrect for host during installation of BPM Spaces.

If you will need to change localhost manually, I think it will be quite a lot of places to change. You should check installation process script, may be BPM Spaces installation script have hardcoded localhost value for BPM.

I was installing on different machines PS4 version, didnt had this problem.

Andrejus

Anil Saka said...

Andre,
Thank you for your reply,

here is my properties file:
#BPM Runtime details
bpmHost=plsoalab02.xyz.com
#Managed server port if BPM is installed on managed server. Else admin port
bpmRuntimePort=8001
bpmAdminUser=weblogic
bpmAdminPassword=Password1

not sure where the installer is pickingup the localhost:7001 port.

quick question on seperate domain for BPM and webcenter.

in PRD is it recommended to have seperate domains or can we have one single domain for webcenter + soa [BPM]''
can you tell me pros and cons if possible.

Andrejus Baranovskis said...

This is for performance reasons. If you will install SOA/BPM and WebCenter into same domain - rather slow WebCenter will be totally slow :-)

Andrejus

Anil Saka said...

I agree with you on the perfomance impact if all of the managed servers on the same machine.

what if we span the managed servers to different machines and still have them defined in one single domain as perd EDG.

Andrejus Baranovskis said...

I was installing both BPM and WebCenter into same domain - I didn't faced any conflicting issues. Besides that Admin server performance is slower.

You should try this on on your environment, especially if you have separate physical servers for Managed Servers.

Andrejus

Anonymous said...

When i execute a command ant -f install.xml but i can see the next error
[exec] Updating deployment targets for the datasources...
[exec] This Exception occurred at Tue Dec 18 14:32:49 EST 2012.
[exec] javax.management.InvalidAttributeValueException: Array has at least one null element
[exec] Problem invoking WLST - Traceback (innermost last):
[exec] File "/opt/oracle/Middleware/Oracle_SOA1/bpm/process_spaces/wc-post-install.py", line 253, in ?
[exec] File "/opt/oracle/Middleware/Oracle_SOA1/bpm/process_spaces/wc-post-install.py", line 112, in updateTargets
[exec] File "", line 581, in set
[exec] File "", line 1847, in raiseWLSTException
[exec] WLSTException: Error occured while performing set : Error setting attribute Targets : Array has at least one null element
[exec] Use dumpStack() to view the full stacktrace
[exec]

BUILD FAILED
/opt/oracle/Middleware/Oracle_SOA1/bpm/process_spaces/install.xml:207: exec returned: 1

Do you know the cause of this error??
Thanks in advance

Евгений Поляков said...

Anonymous said...
When i execute a command ant -f install.xml but i can see the next error
[exec] WLSTException: Error occured while performing set : Error setting attribute Targets : Array has at least one null element

Do you know the cause of this error??
Thanks in advance

Just restart all managed servers and AdminServer.