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
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 <Substring> `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
Introduction to WebCenter Content Services