¿Se puede agregar contenido a un documento creado con webscript?

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
josenavarrovarg
Active Member

¿Se puede agregar contenido a un documento creado con webscript?

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!

5 Replies

Re: ¿Se puede agregar contenido a un documento creado con webscript?

¿Te refieres a subir o modificar contenido utilizando una invocación REST? (sería equivalente a CMIS)

File upload | Alfresco Documentation 

Software Engineer in Alfresco Search Team.
josenavarrovarg
Active Member

Re: ¿Se puede agregar contenido a un documento creado con webscript?

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("cmisSmiley SurprisedbjectTypeId", "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.

Re: ¿Se puede agregar contenido a un documento creado con webscript?

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í?

Software Engineer in Alfresco Search Team.
josenavarrovarg
Active Member

Re: ¿Se puede agregar contenido a un documento creado con webscript?

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

Re: ¿Se puede agregar contenido a un documento creado con webscript?

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...

Software Engineer in Alfresco Search Team.