lunes, 31 de julio de 2017

WCP 12c: Using WCCDOC Task Flow as Document Preview

One of the biggest changes of Oracle WebCenter Portal 12c has been its integration with Oracle WebCenter Content.

All the legacy ADF Bounded Task Flows such as Document Explorer, Document Viewer etc... has been deprecated and replaced with the same component as used by WCC ADF UI.

Oracle WebCenter Portal 12c uses a wrapper to WCC ADF UI called Content Manager Task Flow (which internally calls to wccdoc, wccmain and other internal Task Flows used by Oracle WebCenter Content).


One of the missing functionalities is how can we preview a Document in WCP 12c as Document Viewer does not exists anymore.

In OTN WCP Forum I was asked how to achieve this. It can be achieved with the wccdoc Task Flow (https://community.oracle.com/thread/4061288)

There are two choices for accessing a detail of a specific content / document in WCP 12c:
  • Offer a link by using /wccdoc Servlet which will open a Oracle WebCenter Portal page with Content Manager Task Flow pre-loading the specific content / document specified in the dDocName parameter. (E.g.: /wccdoc/d?dDocName=[YourdDocName])

    Use the following snippet of code for generating links to Detail / Download a specific document in WCP:
    public static String getApplicationURL() {
     HttpServletRequest request = (HttpServletRequest)ADFContext.getCurrent().getEnvironment().getRequest();
     StringBuilder urlBuilder = new StringBuilder(request.getScheme()).append("://").append(request.getServerName()).append(':').append(request.getServerPort()).append(request.getContextPath());
     return urlBuilder.toString();
    }
    
    public static String generateDownloadDocumentLink(String dDocName) {
     StringBuilder docURL = new StringBuilder(DocUtil.getApplicationURL());
     docURL.append("/wccproxy/d?dDocName=");
     docURL.append(dDocName);
     return docURL.toString();
    }
    
    public static String generateDetailDocumentLink(String dDocName) {
     StringBuilder docURL = new StringBuilder(DocUtil.getApplicationURL());
     docURL.append("/portal/wccdoc?dDocName=");
     docURL.append(dDocName);
     return docURL.toString();
    }

  • By adding the wccdoc Task Flow to the Resource Catalog and configuring its Input Parameters.
    wccdoc Task Flow in the Resource Catalog

    WCCDOC Task Flow Input Parameters (Compact Mode overrided)
Take care when configuring the WCCDOC Task Flow as it will throw a  ClassCastException ( javax.servlet.ServletException: /wcc/docInfoTabs.jsff @23,67 test="#{wccDocInfoBean.summaryTabDisplayed}": java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean) If you try to use the checkbox of the Compact Mode Input Parameter. The secret is to setup manually to a boolean EL Expression!!.

Use #{wccRuiConfiguration} in the Wcc Rui Configuration Input Parameter. It is a Managed Bean pre-calculated by Oracle WebCenter Portal with the connection settings.

Now you can configure a WebCenter Portal Page to display specific document / content.
Map the dID and (or) dDocName to a URL parameter or Page Attribute to make it dynamic!.

Note: The usage of WCCDOC Task Flow is not supported by Oracle.

No hay comentarios:

Publicar un comentario