03-05-2018 10:23 AM
Buenas,
Quisiera saber si existe la forma de agregar contenido (como ContentStream) a un documento creado a través de un webscript 'personalizado' que cree. Sé cómo hacerlo con CMIS, pero necesito saber si puedo darle contenido usando un webscript y si es así, agradecería que me guíen con la forma de hacerlo.
PD: no sé si sea relevante, pero el modelo de contenido es custom también.
¡Saludos!
03-05-2018 01:30 PM
¿Te refieres a subir o modificar contenido utilizando una invocación REST? (sería equivalente a CMIS)
File upload | Alfresco Documentation
03-05-2018 01:49 PM
Hola Angel, lo que necesito es poder agregar contenido a un documento que creo utilizando un webscript. Explico: desde java envío (con POST) los datos como nombre del archivo y metadata al webscript que me crea el archivo y debo darle contenido, como el ContentStream que utilicé cuando hice esto mismo con CMIS.
Lo que debo hacer entonces es leer una hoja de cálculo que entre sus datos tiene la ruta del archivo que tiene el contenido que quiero colocar en este documento que creo, pero no sé de qué manera hacer esta 'copia' como lo podía hacer con CMIS.
Con CMIS hacía esto, es un un extracto del código:
Map<String, Object> properties = new HashMap<String, Object>();
properties.put("cmisbjectTypeId", "D:bc:document, P:bc:data");
properties.put(PropertyIds.NAME, name);
properties.put("bc:documentType", nameDoc);
properties.put("bc:documentTypeId", idType);
properties.put("bc:idDocument", typeDoc);
properties.put("bc:folioDocument", folio);
properties.put("bc:rutClient", clientId);
properties.put("bc:clientName", clientName);
fld = CreateFolders.CreateFolderTree(CreateFolders.listFolderNames(clientId));
try {
byte[] data = Files.readAllBytes(new File(path).toPath());
InputStream stream = new ByteArrayInputStream(data);
ContentStream contentStream = new ContentStreamImpl(name, BigInteger.valueOf(data.length),
"application/pdf", stream);
fld.createDocument(properties, contentStream, VersioningState.MAJOR);
} catch (IOException e) {
e.printStackTrace();
}
Mi consulta es como llevar este ContentStream (solo el content porque las propiedades las seteo en el Webscript con los datos recibidos por POST) al webscript para así poder aplicar el 'document.content = args.contentStream' o algo parecido y así mi documento tenga contenido.
Por si sirve, así envío los datos por POST hacia el webscript:
post.setEntity((HttpEntity) new UrlEncodedFormEntity(data, "UTF-8"));
Donde "data" es una lista de NameValuePair.
03-05-2018 01:54 PM
Creo que eso es precisamente lo que te proporciona la API a la que he hecho referencia antes. ¿O has desarrollado tu propio webscript y quieres enviarle el contenido del documento por ahí?
03-05-2018 02:01 PM
Así es, he usado mi propio webscript porque así me lo han pedido en la práctica profesional :B
Viendo la API veo que me permite subir subir un archivo y su metadata a un repositorio dado, pero en mi caso solo necesito obtener el content stream de un archivo para así ingresarlo a este documento que creo con el webscript
03-05-2018 02:23 PM
No sé si entiendo bien lo que necesitas, pero supongo que podrías adaptar tu webscript para que fuese un POST que acepta un formulario (no hay otra forma de subir un fichero).
Quizá el código fuente de Alfresco te sirva de inspiración: https://github.com/Alfresco/community-edition-old/blob/master/projects/remote-api/config/alfresco/te...
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.