En un reciente proyecto me vi en la necesidad de trabajar con el
Oracle Universal Content Manager (UCM) mediante a API de RIDC. Abundan
en la web ejemplos de como hacer esto, lo cual fue una gran ventaja para
mis tareas. No obstante, fue más difícil encontrar en buen ejemplo para
acceder a los FOLIOS del UCM, e incluso me encontré con algunos
problemas a la hora de pasar los parámetros en forma adecuada.
Es por ello que hoy dejo un breve fragmento de código que muestra como acceder a los servicios de RIDC mediante Java.
Para ello creé un proyecto Java en eclipse, y agregué las librerías oracle.ucm.ridc-11.1.1.jar y oracle.ucm.ridc.was-lib-11.1.1.jar.
Use un Pojo, ConsultaDocumentos, para modelar los documentos. Este Pojo puede ser usado en un contenedor de Vaadin u otro framework para representar los resultados de los documentos contenidos en un FOLIO de Oracle UCM.
Código de ejemplo:
Es por ello que hoy dejo un breve fragmento de código que muestra como acceder a los servicios de RIDC mediante Java.
Para ello creé un proyecto Java en eclipse, y agregué las librerías oracle.ucm.ridc-11.1.1.jar y oracle.ucm.ridc.was-lib-11.1.1.jar.
Use un Pojo, ConsultaDocumentos, para modelar los documentos. Este Pojo puede ser usado en un contenedor de Vaadin u otro framework para representar los resultados de los documentos contenidos en un FOLIO de Oracle UCM.
Código de ejemplo:
public class RIDCBusiness { public static List getSearchResultsByFolio(String folioID, String idConnectionURL, String username) { //idConnectionURL = idc://192.168.110.22:4444 //username = weblogic final ArrayList resultado = new ArrayList(); ServiceResponse response = null; try { final IdcClient client = getUCMConnection(idConnectionURL, username); final DataBinder dataBinder = client.createBinder(); dataBinder.putLocal("IdcService", "LOAD_FOLIO_NODE"); dataBinder.putLocal("RevisionSelectionMethod", "LatestReleased"); dataBinder.putLocal("dDocName", folioID); final IdcContext userContext = new IdcContext(username); response = client.sendRequest(userContext, dataBinder); final DataBinder binder = response.getResponseAsBinder(); final DataResultSet resultSet = binder.getResultSet("__DATA_slot"); // loop over the results if (resultSet != null) for (final DataObject dataObject : resultSet.getRows()) resultado.add(new ConsultaDocumentos(dataObject)); } catch (final Exception e) { Logger.getLogger("RIDCBusiness").error("Error en getSearchResultsByFolio", e); } finally { if (response != null) response.close(); } return resultado; } public static IdcClient getUCMConnection(String idConnectionURL, String username) throws IdcClientException, IOException { final IdcClientManager clientManager = new IdcClientManager(); final IdcClient client = clientManager.createClient(idConnectionURL); return client; } } public class ConsultaDocumentos implements Serializable { private static final long serialVersionUID = 1L; private final String id; private final String info; private final String tipo; private final String titulo; private final String nombre; private final String fecha; private final String fechaExpiracion; private final String extension; private final String formato; private final String docName; public ConsultaDocumentos(DataObject dataObject) { id = dataObject.get("xcsd:dID"); info = dataObject.get("xcsd:dInfo"); tipo = dataObject.get("xcsd:dDocType"); titulo = dataObject.get("xcsd:dDocTitle"); nombre = dataObject.get("xcsd:dOriginalName"); fecha = removeZ(dataObject.get("xcst:createdate"); fechaExpiracion = removeZ(dataObject.get("xcsd:xFechaExpiracion"); extension = dataObject.get("xcsd:dExtension"); formato = dataObject.get("xcsd:dFormat"); docName = dataObject.get("xcsd:dDocName"); } // se omiten los getters y setters }
Comentarios
Publicar un comentario