Advertisements
RSS

Tag Archives: WCC

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:

Advertisements
 
19 Comments

Posted by on 31-01-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

 
7 Comments

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

 

Tags: , , ,

Using basic authentication for Oracle BPM service call

In our Oracle BPM 11.1.1.6 process we need some calls to Oracle UCM/WCC. Since UCM requires basic authentication we need to make sure the BPM process sends a token.

So in our composite we right-click the UCM webservice reference, select configure WS policies,

Composite

We select the oracle/wss_http_token_client_policy from the security list.

ConfigurePolicies

Now there are multiple ways options to configure the username + password:

  • In JDeveloper we can configure the default value (handy for quick DEV deployments)

We need to configure a binding property, however the thing is that the oracle.webservices.auth properties are not there in the LOV.

ConfigurePolicies_LOV

However if we go to the composite source we can just manually add both
oracle.webservices.auth.username
oracle.webservices.auth.password


  <reference name="sourceUCM" ui:wsdlLocation="CheckIn.wsdl">
    <interface.wsdl interface="http://www.stellent.com/CheckIn/#wsdl.interface(CheckInSoap)"/>
    <binding.ws port="http://www.stellent.com/CheckIn/#wsdl.endpoint(CheckIn/CheckInSoap)"
                location="CheckIn.wsdl" soapVersion="1.1">
      <wsp:PolicyReference URI="oracle/wss_http_token_client_policy"
                           orawsp:category="security" orawsp:status="enabled"/>
      <property name="oracle.webservices.auth.username" type="xs:string" many="false" override="may">weblogic</property>
      <property name="oracle.webservices.auth.password" type="xs:string" many="false" override="may">welcome1</property>
    </binding.ws>
  </reference>

When deploying the project the settings are automatically set.

  • Through Enterprise Manager (can be used to override the default)

If we navigate to our SOA Composite -> Dashboard tab ->  Services and References you can find a list of all webservice references.Click on it and go to the properties tab

Check the HTTP Basic Authentication segment and use this to override any DEV default settings (if necessary)

EM_Properties

 
Leave a comment

Posted by on 18-01-2013 in BPM, Oracle, SOA Suite, UCM, WCC

 

Tags: , , , , , ,

some Oracle UCM/WCC (WebcenterContent) examples and personal reminders

Addresses:

Console: http://servername:port/cs/
SOAP: http://servername:port/_dav/cs/idcplg (wsdl endpoints)
ODDC: http://servername:port/cs/idcplg
RIDC: http://servername:port/cs/idcplg (URL to Oracle Content Server’s CGI path)

UCM uses 2 ports it seems:
– Managed Server port + Internet traphic (console): default 16200
– IDC port: default 4444

Configuration

Config file containing ports: %domainhome%/ucm/cs/config/config.cfg

 

Default UCM WSDLs can be found here:

whereToFindWSDLs

Example SOAP message to upload document REQUEST:

</pre>
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:chec="http://www.stellent.com/CheckIn/">
 <soapenv:Header/>
 <soapenv:Body>
 <chec:CheckInUniversal>
 <chec:dDocTitle>final01.pdf</chec:dDocTitle>
 <chec:dDocType>Document</chec:dDocType>
 <chec:dDocAuthor>weblogic</chec:dDocAuthor>
 <chec:dSecurityGroup>PUBLIC</chec:dSecurityGroup>
 <chec:dDocAccount>WebContent</chec:dDocAccount>
 <!-- SECURE / PUBLIC / PersonalSpaces / process_spaces -->
 <chec:CustomDocMetaData>
 <chec:property>
 <chec:name>xComments</chec:name>
 <chec:value>my example uploaded document</chec:value>
 </chec:property>
<!-- <chec:property>
 <chec:name>xCollectionName</chec:name>
 <chec:value>/PersonalSpaces/weblogic/Public/</chec:value>
 </chec:property> -->
 </chec:CustomDocMetaData>

<chec:primaryFile>
 <chec:fileName>myDocument.pdf</chec:fileName>
 <chec:fileContent>base65 clob here</chec:fileContent>
 </chec:primaryFile>
<!--
 <chec:alternateFile>
 <chec:fileName>?</chec:fileName>
 <chec:fileContent>cid:1218599640725</chec:fileContent>
 </chec:alternateFile>
 <chec:extraProps>
 <chec:property>
 <chec:name>?</chec:name>
 <chec:value>?</chec:value>
 </chec:property>
 </chec:extraProps>
-->
 </chec:CheckInUniversal>
 </soapenv:Body>
</soapenv:Envelope>
<pre>

Example SOAP message to upload document RESPONSE:


<SOAP-ENV:Body>
 <idc:CheckInUniversalResponse xmlns:idc="http://www.stellent.com/CheckIn/">
 <idc:CheckInUniversalResult>
 <idc:dID>100</idc:dID>
 <idc:dRevisionID>1</idc:dRevisionID>
 <idc:dRevClassID>100</idc:dRevClassID>
 <idc:dRevLabel>1</idc:dRevLabel>
 <idc:StatusInfo>
 <idc:statusCode>0</idc:statusCode>
 <idc:statusMessage>Successfully checked in content item '1023157120000100'.</idc:statusMessage>
 </idc:StatusInfo>
 </idc:CheckInUniversalResult>
 </idc:CheckInUniversalResponse>
 </SOAP-ENV:Body>

Get Document:

The SOAP CheckInUniversal call will return a documentID which can be used like this:

http://servername:port/cs/idcplg?IdcService=GET_FILE&dID=100

Configuration:

Default port is 16200 but can be changed in EM here:

UCMaddress

References:

 
3 Comments

Posted by on 14-01-2013 in Oracle, UCM, WCC

 

Tags: , ,