X

Technical info and insight on using Oracle Documaker for customer communication and document automation

A Simple Guide to WebCenter Content Integration

Andy Little
Technical Director

Integration Methods

 

WebCenter Integration design depends on specific business requirements, and what your application can support with respect to integration models. WebCenter Content (WCC) exposes its services over a wide variety of protocols (web services, JSP, Java API, RIDC, EJB, J2EE, CORBA, RMI, IIOP, ODMA, SOAP, WebDAV, and COM). Available services are listed here (there are a lot of them!) The most common integration method is persistent URLs. Another is SOAP. But before you worry about the integration method you need to know what you’re integrating. More specifically, you need to understand your functional requirements and then map those to exposed WCC services. You can access all services through any of the available APIs. So once you have the requirements mapped to services, you can determine the non-functional requirements (e.g. security, integration methods, etc) and then it comes down to performing the integration. If you want to see SOAP WSDLs, You can login to the CS as an administrator and go to Administration > SOAP WSDLs to see the available service endpoints and download WSDL files for each service. Note that SOAP requests use WSS for authentication.

 

Before we dig too deeply, make sure you have an existing WebCenter Content system - if you don't, you can refer to my guide for detailed instructions on setting up a system from the ground up with Documaker, and WebCenter. I also have an existing guide on basic Documaker and WebCenter Content integration that provides more detail on that arena.

 

Example Pattern: Search/Retrieve

 

A typical integration pattern is to search for a document by some metadata criteria, then retrieve a selected document. With this pattern, we have several options. We can link directly to the document, or we can use a service to return the document by ID. Persistent URLs take this form:   http://<SERVER>:<PORT>/cs/idcplg?IdcService=<SERVICE_NAME>&PARMNAME=PARMVALUE

 

Search

This method is used to locate documents given a set of one or more search criteria.

 

Persistent URL

http://wcc:16200/cs/idcplg?IdcService=GET_SEARCH_RESULTS&QueryText=dDocTitle&lt;Substring&gt;%60Arms%60

 

SOAP Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sear="http://www.stellent.com/Search/">

   <soapenv:Header/>

   <soapenv:Body>

      <sear:QuickSearch>

         <sear:queryText>

         dDocTitle &lt;Substring&gt; `Arms`

         </sear:queryText>        

      </sear:QuickSearch>

   </soapenv:Body>

</soapenv:Envelope>

 

SOAP Results

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

   <SOAP-ENV:Body>

      <idc:QuickSearchResponse xmlns:idc="http://www.stellent.com/Search/">

         <idc:QuickSearchResult>

            <idc:SearchResults>

               <idc:dID>2</idc:dID>

               <idc:dRevisionID>1</idc:dRevisionID>

               <idc:dDocName>19216813916200000002</idc:dDocName>

               <idc:dDocTitle>Hogwart's Coat of Arms</idc:dDocTitle>

               <idc:dDocType>DigitalMedia</idc:dDocType>

               <idc:dDocAuthor>weblogic</idc:dDocAuthor>

               <idc:dSecurityGroup>Public</idc:dSecurityGroup>

               <idc:dDocAccount/>

               <idc:dExtension>png</idc:dExtension>

               <idc:dWebExtension>png</idc:dWebExtension>

               <idc:dRevLabel>1</idc:dRevLabel>

               <idc:dInDate>9/16/17 8:00 AM</idc:dInDate>

               <idc:dOutDate/>

               <idc:dFormat>image/png</idc:dFormat>

               <idc:dOriginalName>Hogwarts_coat_of_arms_colored_with_shading.svg.png</idc:dOriginalName>

               <idc:url>/cs/groups/public/documents/digitalmedia/mjaw/mdaw/~edisp/19216813916200000002.png</idc:url>

               <idc:dGif/>

               <idc:webFileSize>0</idc:webFileSize>

               <idc:vaultFileSize>1256024</idc:vaultFileSize>

               <idc:alternateFileSize>0</idc:alternateFileSize>

               <idc:alternateFormat/>

               <idc:dPublishType/>

               <idc:dRendition1>D</idc:dRendition1>

               <idc:dRendition2/>

               <idc:CustomDocMetaData>

                  <idc:property>

                     <idc:name>xComments</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xExternalDataSet</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xIdcProfile</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xTemplateType</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xAnnotationDetails</idc:name>

                     <idc:value>0</idc:value>

                  </idc:property>

                  <idc:property>

                     <idc:name>xIsACLReadOnlyOnUI</idc:name>

                     <idc:value>0</idc:value>

                  </idc:property>

                  <idc:property>

                     <idc:name>xLibraryGUID</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xPartitionId</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xWebFlag</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xStorageRule</idc:name>

                     <idc:value>DispByContentId</idc:value>

                  </idc:property>

               </idc:CustomDocMetaData>

            </idc:SearchResults>

            <idc:SearchInfo>

               <idc:startRow>1</idc:startRow>

               <idc:endRow>1</idc:endRow>

               <idc:pageNumber>1</idc:pageNumber>

               <idc:numPages>1</idc:numPages>

               <idc:totalRows>1</idc:totalRows>

               <idc:totalDocsProcessed>1</idc:totalDocsProcessed>

            </idc:SearchInfo>

            <idc:NavigationPages>

               <idc:headerPageNumber>1</idc:headerPageNumber>

               <idc:pageReference>1</idc:pageReference>

               <idc:pageNumber>1</idc:pageNumber>

               <idc:startRow>1</idc:startRow>

               <idc:endRow>1</idc:endRow>

            </idc:NavigationPages>

            <idc:StatusInfo>

               <idc:statusCode>0</idc:statusCode>

               <idc:statusMessage>You are logged in as 'weblogic'.</idc:statusMessage>

            </idc:StatusInfo>

         </idc:QuickSearchResult>

      </idc:QuickSearchResponse>

   </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

 

Retrieve

This method uses the document ID in <idc:dID>. Alternately you could directly reference the document’s URL as shown in the <idc:url> node. If the document ID is not known, you can also use the document name along with a revision specification — this method is the most likely to be used since the document name may be known by external systems without any knowledge of the internal document ID set by WebCenter. Review the GET_FILE documentation here.

 

Persistent URL

This example shows the file access using document ID:

http://wcc:16200/cs/idcplg?IdcService=GET_FILE&dID=2

 

This example shows the file access using document name and revision specification.

http://wcc:16200/cs/idcplg?IdcService=GET_FILE&dDocName=123456789&RevisionSelectionMethod=Latest

 

 

SOAP Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:get="http://www.stellent.com/GetFile/">

   <soapenv:Header/>

   <soapenv:Body>

      <get:GetFileByID>        

         <get:dID>2</get:dID>

      </get:GetFileByID>

   </soapenv:Body>

</soapenv:Envelope>

 

SOAP Results

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

   <SOAP-ENV:Body>

      <idc:GetFileByIDResponse xmlns:idc="http://www.stellent.com/GetFile/">

         <idc:GetFileByIDResult>

            <idc:FileInfo>

               <idc:dDocName>19216813916200000002</idc:dDocName>

               <idc:dDocTitle>Hogwart's Coat of Arms</idc:dDocTitle>

               <idc:dDocType>DigitalMedia</idc:dDocType>

               <idc:dDocAuthor>weblogic</idc:dDocAuthor>

               <idc:dSecurityGroup>Public</idc:dSecurityGroup>

               <idc:dDocAccount/>

               <idc:dID>2</idc:dID>

               <idc:dRevClassID>2</idc:dRevClassID>

               <idc:dRevisionID>1</idc:dRevisionID>

               <idc:dRevLabel>1</idc:dRevLabel>

               <idc:dIsCheckedOut>0</idc:dIsCheckedOut>

               <idc:dCheckoutUser/>

               <idc:dCreateDate>9/16/17 8:01 AM</idc:dCreateDate>

               <idc:dInDate>9/16/17 8:00 AM</idc:dInDate>

               <idc:dOutDate/>

               <idc:dStatus>RELEASED</idc:dStatus>

               <idc:dReleaseState>Y</idc:dReleaseState>

               <idc:dFlag1/>

               <idc:dWebExtension>png</idc:dWebExtension>

               <idc:dProcessingState>Y</idc:dProcessingState>

               <idc:dMessage/>

               <idc:dReleaseDate>9/16/17 8:01 AM</idc:dReleaseDate>

               <idc:dRendition1>D</idc:dRendition1>

               <idc:dRendition2/>

               <idc:dIndexerState/>

               <idc:dPublishType/>

               <idc:dPublishState/>

               <idc:dDocID>3</idc:dDocID>

               <idc:dIsPrimary>1</idc:dIsPrimary>

               <idc:dIsWebFormat>0</idc:dIsWebFormat>

               <idc:dLocation/>

               <idc:dOriginalName>Hogwarts_coat_of_arms_colored_with_shading.svg.png</idc:dOriginalName>

               <idc:dFormat>image/png</idc:dFormat>

               <idc:dExtension>png</idc:dExtension>

               <idc:dFileSize>1256024</idc:dFileSize>

               <idc:CustomDocMetaData>

                  <idc:property>

                     <idc:name>xComments</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xExternalDataSet</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xIdcProfile</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xTemplateType</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xAnnotationDetails</idc:name>

                     <idc:value>0</idc:value>

                  </idc:property>

                  <idc:property>

                     <idc:name>xIsACLReadOnlyOnUI</idc:name>

                     <idc:value>0</idc:value>

                  </idc:property>

                  <idc:property>

                     <idc:name>xLibraryGUID</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xPartitionId</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xWebFlag</idc:name>

                     <idc:value/>

                  </idc:property>

                  <idc:property>

                     <idc:name>xStorageRule</idc:name>

                     <idc:value>DispByContentId</idc:value>

                  </idc:property>

               </idc:CustomDocMetaData>

            </idc:FileInfo>

            <idc:downloadFile>

               <idc:fileName>Hogwarts_coat_of_arms_colored_with_shading.svg.png</idc:fileName>

               <idc:fileContent>XXXXXFileContentIsHereXXXXXXXX</idc:downloadFile>

            <idc:StatusInfo>

               <idc:statusCode>0</idc:statusCode>

               <idc:statusMessage>You are logged in as 'weblogic'.</idc:statusMessage>

            </idc:StatusInfo>

         </idc:GetFileByIDResult>

      </idc:GetFileByIDResponse>

   </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

 

That's it! Remember - for a more detailed view on Documaker Integration with WebCenter Content, refer to my guide.

 

References

Service guide for WCC

Simple Search Example

Introduction to WebCenter Content Services

Configuring WebCenter Content Web Services for Integration

Understanding Libraries

Understanding Folders

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.