RSS

Author Archives: jvzoggel

About jvzoggel

Middleware Consultant / the Netherlands / 's-Hertogenbosch / RUBIX.nl

BPM Suite PS6 (11.1.1.7 ) available for download

Reblogged from SOA Community Blog:

Click to visit the original post
  • Click to visit the original post

PS6 is a Major Update which includes:

· Complete process model to execute from Composer

· Simplified end user experience in Workspace

· Adaptive Case Management

· Instance Revisioning

The new version of BPM Suite PS6 is available. At our SOA Community Workspace (SOA Community membership required) you can find the latest presentation, highlights include

Process Composer

• Business analysts can capture the process…

Read more… 164 more words

Finally! Very interested in the adaptive case management feature.
 
Leave a comment

Posted by on 04/01/2013 in BPM, Oracle

 

Tags: , ,

Error with Weblogic Domain Configuration Wizard (containing UCM)

When creating a new DEV domain for BPM, SOA and UCM 11.1.1.6 and using the config.sh wizard the following error occured:

DomainCreationError

ERROR create_gui com.oracle.cie.wizard.domain.gui.tasks.DomainCreationGUITask - Generation Error!!
Traceback (innermost last):
File "<iostream>", line 17, in ?
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

The solution is simple when you now the answer (as always). Instead of using the “default” config script in %MIDDLEWARE_HOME%/wlserver_10.3/common/bin

You should use the config.sh script in:
%MIDDLEWARE_HOME%/Oracle_ECM1/common/bin

References:

 
1 Comment

Posted by on 02/25/2013 in Oracle, Weblogic

 

Tags: , ,

How to Configure WebLogic Server to Send a Notification When Its Configuration is Changed

My former collegue, Java maven (no not that one, this one) and friend Pierluigi contacted me about my post regarding the Weblogic Security Audit Provider. As always Pier is very political correct ;)

Comment

To my positive surprise he found a great solution for the limitation of the security audit provider. He discovered a way to configure WebLogic server to send a notification when it’s configuration is changed [Knowledge Base ID 1377733.1].

Which is awesome if you have a large Oracle environment and maintenance team and want to keep track of all the changes. Wish we knew this last year at the huge envuironment I was working then.

His blogpost contains all the code, scripts, etc so go and check it out!!! :)

And to end with his favourite quote:

Failure is not an option

References:

 
Leave a comment

Posted by on 02/21/2013 in Java, Oracle, Weblogic, WLST

 

Tags: , , , ,

JDeveloper crashing while using BPM plugin

We have this really annoying bug in JDeveloper 11.1.1.6 while using the Oracle BPM plugin.
The application crashes approximately every hour with this nice feedback:

error

and this logging:


oracle.adf.share.ADFContext:Feb 8, 2013 9:49:35 AM oracle.adf.share.ADFContext getCurrent
WARNING: Automatically initializing a DefaultContext for getCurrent.
Caller should ensure that a DefaultContext is proper for this use.
Memory leaks and/or unexpected behaviour may occur if the automatic initialization is performed improperly.
This message may be avoided by performing initADFContext before using getCurrent().
For more information please enable logging for oracle.adf.share.ADFContext at FINEST level.

oracle.adf.share.jndi.ReferenceStoreHelper:Feb 8, 2013 9:49:35 AM oracle.adf.share.jndi.ReferenceStoreHelper getReferencesMapEx
WARNING: Incomplete connection reference object for connection:STUB

oracle.jps.common:Feb 8, 2013 9:49:36 AM oracle.security.jps.internal.common.util.StrictValidationEventHandler handleEvent
WARNING: Failed to validate the xml content. SchemaLocation: schemaLocation value = 'http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd' must have even number of URI's. Location: unavailable.

oracle.jps.common:Feb 8, 2013 9:49:36 AM oracle.security.jps.internal.common.util.StrictValidationEventHandler handleEvent
WARNING: Failed to validate the xml content. cvc-complex-type.2.4.b: The content of element 'propertySets' is not complete. One of '{"http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd":propertySet}' is expected. Location: unavailable.

oracle.adf.share.jndi.ReferenceStoreHelper:Feb 8, 2013 9:49:36 AM oracle.adf.share.jndi.ReferenceStoreHelper getReferencesMapEx
WARNING: Incomplete connection reference object for connection:SOA_MDS

Invoking command: Changes in myProcess
Invoking command:
Invoking command:
Invoking command:
Invoking command:
Performing action Save[ from oracle.bpm.fusion.studio.editor.ProcessEditor ]
Invoking command: [ from oracle.bpm.fusion.studio.editor.ProcessEditor ]
Performing action Save All[ from oracle.bpm.fusion.studio.editor.ProcessEditor ]
Invoking command: [ from oracle.bpm.fusion.studio.editor.ProcessEditor ]
Invoking command: [ from oracle.ide.navigator.ProjectNavigatorWindow ]
Invoking command: modify adf-config for soa
Invoking command: [ from oracle.ide.runner.RunLogPage ]
Invoking command:
Invoking command:
Invoking command:
Invoking command:
Uncaught exception
java.lang.NullPointerException
 net.miginfocom.layout.Grid.addLinkIDs()
 net.miginfocom.layout.Grid.<init>()
 net.miginfocom.swing.MigLayout.checkCache()
 net.miginfocom.swing.MigLayout.getSizeImpl()
 net.miginfocom.swing.MigLayout.preferredLayoutSize()
 o.bpm.ui.layout.MigLayout.preferredLayoutSize(MigLayout.java:114)
 j.a.Container.preferredSize(Container.java:1599)
 j.a.Container.getPreferredSize(Container.java:1584)
 jx.s.JComponent.getPreferredSize(JComponent.java:1636)
 o.ii.editor.SplitPane.doLayoutBottomTabs(SplitPane.java:537)
 o.ii.editor.SplitPane.doLayout(SplitPane.java:523)
 j.a.Container.validateTree(Container.java:1507)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validate(Container.java:1480)
 jx.s.RepaintManager.validateInvalidComponents(RepaintManager.java:669)
 jx.s.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:124)
 j.a.event.InvocationEvent.dispatch(InvocationEvent.java:209)
 j.a.EventQueue.dispatchEventImpl(EventQueue.java:642)
 j.a.EventQueue.access$000(EventQueue.java:85)
 j.a.EventQueue$1.run(EventQueue.java:603)
 j.a.EventQueue$1.run(EventQueue.java:601)
 j.security.AccessController.doPrivileged(Native Method)
 j.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
 j.a.EventQueue.dispatchEvent(EventQueue.java:612)
 j.a.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
 j.a.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
 j.a.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
 j.a.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
 j.a.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
 j.a.EventDispatchThread.run(EventDispatchThread.java:122)
Uncaught exception
java.lang.NullPointerException
 net.miginfocom.layout.Grid.addLinkIDs()
 net.miginfocom.layout.Grid.<init>()
 net.miginfocom.swing.MigLayout.checkCache()
 net.miginfocom.swing.MigLayout.getSizeImpl()
 net.miginfocom.swing.MigLayout.preferredLayoutSize()
 o.bpm.ui.layout.MigLayout.preferredLayoutSize(MigLayout.java:114)
 j.a.Container.preferredSize(Container.java:1599)
 j.a.Container.getPreferredSize(Container.java:1584)
 jx.s.JComponent.getPreferredSize(JComponent.java:1636)
 o.ii.editor.SplitPane.doLayoutBottomTabs(SplitPane.java:537)
 o.ii.editor.SplitPane.doLayout(SplitPane.java:523)
 j.a.Container.validateTree(Container.java:1507)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validateTree(Container.java:1513)
 j.a.Container.validate(Container.java:1480)
 jx.s.RepaintManager.validateInvalidComponents(RepaintManager.java:669)
 jx.s.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:124)
 j.a.event.InvocationEvent.dispatch(InvocationEvent.java:209)
 j.a.EventQueue.dispatchEventImpl(EventQueue.java:642)
 j.a.EventQueue.access$000(EventQueue.java:85)
 j.a.EventQueue$1.run(EventQueue.java:603)
 j.a.EventQueue$1.run(EventQueue.java:601)
 j.security.AccessController.doPrivileged(Native Method)
 j.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
 j.a.EventQueue.dispatchEvent(EventQueue.java:612)
 j.a.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
 j.a.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
 j.a.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
 j.a.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
 j.a.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
 j.a.EventDispatchThread.run(EventDispatchThread.java:122)

Marc Nelson mentions this in his blogpost but Oracle Support seemed more confused then us about this error. So in the end we discovered a quick fix solution on the Oracle forums here.

Solution:

The bug is in one of the third party librararies which is named: MigLayout from Mig Infocom AB.

According to their support forum this bug is fixed with Version 3.6.3:
You can download the fix in version 3.6.3 here
and replace the Library 3.6 which is shipped with Jdeveloper in directory:
%JDEV_HOME%\jdeveloper\ide\lib\miglayout-3.6-swing.jar

Dont forget to rename the downloaded 3.6.3 version and overwrite the old file, JDev will be looking for the exact 3.6 name.

References:

 
3 Comments

Posted by on 02/07/2013 in BPM, JDeverloper, Oracle

 

Tags: , ,

Integration of Oracle BPM and Oracle UCM/WCC

This blog is the 3rd in a serie of 3 blogposts. All regarding the different approaches we tested during our project where we had very content rich (a lot of documents) Oracle BPM processes.

  1. Using attachment documents with Oracle BPM Human Tasks
  2. Using a Content Server documents with Oracle BPM Human Tasks
  3. Integration of Oracle BPM and Oracle WCC/UCM

So let’s start with the beginning. The Oracle documentation mentions how to enable this integration from the Human Task configuration. However it’s a bit vage how to configure the UCM/BPM integration itself.

So first we enable this magical checkbox on our Human Task:

01_HumanTask_UseDocumentPackage

Which after deployment results in this error message: Document Store not available. Please configure the document store.

02_Error_DocumentOpslagNietBeschikbaar

When we check our loggings we can see that:


<Error> <oracle.soa.services.common> <BEA-000000><oracle.bpel.services.workflow.repos.UCMUtil.getUCMInfo>
Error retrieving UCM information from the server.
Ensure that credential store map WF-ADMIN-USER with key WF-ADMIN-CREDENTIAL contains UCM server admin username/password.
Also ensure that Workflow configuration parameter UcmIdcUrl contains IDC socket connection url to connect to UCM server and UCM server has permission to let SOA server connect to it using IDC protocol.

Of to work we go. We need to make sure that our SOA/WLS/UCM configuration is correct and these settings are scattered on multiple locations in Oracle Enterprise Manager.

Before we start you need to make sure you have the IDC (IntraDoc) port of your UCM installation. To verify this check your UCM configuration file: %domainhome%/ucm/cs/config/config.cfg
Most likely this will be 4444.

First the SOA/BPM part:
Right-click soa-infra -> SOA Administration -> Workflow config -> “More Workflow Notification Configuration Properties” -> workflow config -> human-workflow.
Make sure the setting UcmIdcUrl is configured correctly to contain the UCM-server hostname and IDC port.

11_SOAINFRA_Config1

Second we configure the username and password the BPM/SOA engine will use to connect to the UCM server which is located in the Weblogic section of EM. So rightclick on your domain in Weblogic Domain -> yourdomain -> Security -> Credentials.

14_WLS_Security1

Create a new Map WF-ADMIN-USER and in that map create a new Key WF-ADMIN-CREDENTIAL

15_WLS_Security2

3rd part is to make sure the UCM server will accept our connection, so let’s rightclick the Oracle Universal Content Management server in the WebCenter section of your Enterprise Manager. Make sure the Intradoc (IDC) serverport is correct and that the IP filter contains the SOA/BPM server hostname.

13_UCM_Security1

Save, restart if needed and check your Workspace Manager again for your attachments.
And voila the error shouldn’t be there anymore and when clicking the Add icon you will now find some additional UCM options. Small cheer here, your BPM/UCM configuration is now working.

Result

You may now upload documents to your task:

21_Task_UploadUCM

Or search UCM for documents:

22_Task_SearchUCM

Success, we have a working configuration between Oracle BPM and Oracle UCM.

In our case we have the additonal requirement to attach the document from the BPM process as mentioned in the earlier blogpost.So instead of mapping the full URLfor our content management server and document in the attachment.URI element, we can just simply use the following function: concat(“ecm://”,bpmn:getDataObject(‘DO_Case’)/ns1:case/…/DocumentNr)
where documentNr is an element containt the ID returned by the UCM servers CheckInUniversal operation.

The attachment.URI element will look something like this: ecm://100
Besides that, make sure to the attachment.StorageType ellement to: UCM

When the task is assigned to the BPM Workspace it will now contain the reference to the correct UCM document.

Attachment

References:

 
11 Comments

Posted by on 01/31/2013 in BPM, Oracle, UCM, WCC

 

Tags: , , ,

Using a Content Server with Oracle BPM Human Tasks

This blog is the 2nd in a serie of 3 blogposts. All regarding the different approaches we tested during our project where we had very content rich (a lot of documents) Oracle BPM processes.

  1. Using attachment documents with Oracle BPM Human Tasks
  2. Using a Content Server documents with Oracle BPM Human Tasks
  3. Integration of Oracle BPM and Oracle WCC/UCM (soon)

After succesfully adding documents in the full payload of our Human Task payload (this blogpost) we decided to help our ADF developers and spare them the huge base64 content. :)

So the next step was trying to store the document in Oracle UCM/WCC.
So how did we end up doing that ? Good question, glad you asked.

First we added a Service Call activity in our Oracle BPM project and used the imported default Oracle UCM CheckIn.wsdl.

ZaakProces

We use the following Data Association in our Service Call mapping:

DataAssociation_Call

We can then change the data association in our Human Task. Instead of the attachment.content in the former blogpost we now use the attachment.uri field to concat the string:

http://SERVERNAME:PORT/cs/idcplg?IdcService=GETFILE&dID=&#8221; and the CheckInUniversal callout result which contains a documentID (for an example see this blogpost)

DataAssociation_Task

The result is the attachment in your ADF page containing an URL reference to your content server.

Attachment

 
4 Comments

Posted by on 01/31/2013 in BPM, Oracle, UCM, WCC

 

Tags: , , ,

Using attachment documents with Oracle BPM Human Tasks

This blog will be the 1st in a serie of (likely 3) blogposts. All regarding the different approaches we tested with during our project in which we had Oracle BPM processes which were very content (a lot of documents) rich.

  1. Using attachment documents with Oracle BPM Human Tasks
  2. Using a Content Server documents with Oracle BPM Human Tasks
  3. Integration of Oracle BPM and Oracle WCC/UCM (soon)

First basic proof we needed is to make sure we can start a Oracle BPM process containing a document which then can be shown on the Human Task as attachment.

Lucky for us Manh-Kiet Yap wrote an excellent blogpost regarding this feature

We start the Oracle BPM instance with a SOAP XML message containing a document in Base64 format:


<soapenv:Body>
<zaak:startCase>
<bo:BO_CaseTrigger>
<bo:caseTrigger>
<v1:CaseType>someInfo</v1:zaakType>
<v1:documentNaam>request.pdf</v1:documentNaam>
<v1:document>JVBERi0xL.......olJUVPRg==</v1:document>
</bo:caseTrigger>
</bo:BO_CaseTrigger>
</zaak:startCase>
 </soapenv:Body>

On the call to the Human Task we use the following mapping:

HumanTask_Mapping_ContentBase64_blog

For the attachmentscope we select BPM, the other option is TASK and I actually think this would be sufficient since the attachment info is already in the process. But just to make sure, we select BPM as mentioned by Kiet in his blogpost.

Note:

  • Attachment file names that use a multibyte character set (MBCS) are not supported
  • Attachments of up to 1998K can be uploaded. You can modify this setting by setting the context parameter in web.xml as follows:
    <context-param>
      <param-name>org.apache.myfaces.trinidad.UPLOAD_MAX_DISK_SPACE</param-name>
      <param-value>1998</param-value>
    </context-param>
    

Reference and all credits:

 
4 Comments

Posted by on 01/22/2013 in BPM, Oracle

 

Tags: ,

 
Follow

Get every new post delivered to your Inbox.

Join 265 other followers