Buenas!estoy teniendo un problema al intentar crear un documento a traves de la api de web services. El caso es que yo quiero crear un documento y darle por un lado los aspectos de TITLED, que tienen como propiedades titulo y descripcion y por otro el aspecto VERSIONABLE que tiene otras tantas propiedades y el aspecto INLINEEDITABLE que tambien tiene sus propias propiedades…Total, que yo pensaba que lo que habia que hacer es crear el nodo, darle los aspectos, con el addAspect de cada uno y guardarlo, pero veo que solo me guarda el ultimo aspecto que le he dado…he probado a intentar actualizarlo despues de crear cada aspecto, pero entonces me casca…os pongo el codigo porque creo que lo que me esta fallando es la forma de actualizar(si es que hay que hacerlo asi)Yo basicamente lo que hago es una vez construido el cmlBlock, le añado los aspectos y luego hago un update…pero asi , solo me guarda el aspecto inlineEditable, que casualmente es el ultimo que le meto…A ver si alguien me puede echar una mano, porque me urge un poco y no encuentro nada de añadir varios aspectos a la vez…GRACIAS!// Comienza la construcción de nodo
NamedValue[] contentProps = new NamedValue[1];
contentProps[0] = Utils.createNamedValue(Constants.PROP_NAME, name);
CMLCreate create = new CMLCreate("1", companyHomeParent, null, null, null, Constants.TYPE_CONTENT, contentProps);
// Añadimos aspectos al nodo
//[b]ASPECTO TITLED[/b]
NamedValue[] titledProps = new NamedValue[2];
titledProps[0] = Utils.createNamedValue(Constants.PROP_TITLE, titulo);
titledProps[1] = Utils.createNamedValue(Constants.PROP_DESCRIPTION, descripción);
CMLAddAspect addAspect = new CMLAddAspect(createQNameString("http://www.alfresco.org/model/content/1.0", "titled"), titledProps, null, "1");
//[b]aspecto versionable[/b]
CMLAddAspect addAspectVersionable=null;
if (version){
//añado aspectos versionable
NamedValue[] versionable=new NamedValue[3];
versionable[0]=Utils.createNamedValue(createQNameString("http://www.alfresco.org/model/content/1.0", "initialVersion"), "1.0");
versionable[1]=Utils.createNamedValue(createQNameString("http://www.alfresco.org/model/content/1.0", "autoVersionOnUpdateProps"), "true");
versionable[2]=Utils.createNamedValue(createQNameString("http://www.alfresco.org/model/content/1.0", "autoVersion"), "true");
addAspectVersionable = new CMLAddAspect(createQNameString("http://www.alfresco.org/model/content/1.0", "versionable"), versionable, null, "1");
}
// [b]ASPECTO INLINEEDITABLE[/b]
CMLAddAspect addAspectInline=null;
if (editInline){
//añado aspecto editar online
NamedValue[] inline=new NamedValue[1];
inline[0]=Utils.createNamedValue(createQNameString("http://www.alfresco.org/model/application/1.0", "editInline"), "true");
addAspectInline=new CMLAddAspect(createQNameString("http://www.alfresco.org/model/application/1.0", "inlineeditable"), inline, null, "1");
}
// Contruimos CML Block, con el nodo y sus aspectos
CML cml = new CML();
cml.setCreate(new CMLCreate[] {create});
//DOY LOS ASPECTOS
cml.setAddAspect(new CMLAddAspect[] {addAspect});
if (version){
cml.setAddAspect(new CMLAddAspect[] {addAspectVersionable});
}
if (editInline){
cml.setAddAspect(new CMLAddAspect[] {addAspectInline});
}
// Creamos y recuperamos el contenido vía Repository Web Service
UpdateResult[] result = WebServiceFactory.getRepositoryService().update(cml);
Reference content = result[0].getDestination();
// Escribimos el contenido
ContentServiceSoapBindingStub contentService = WebServiceFactory.getContentService();
String text = textoHTML;
// hay que darle el formato segun el tipo!!!
ContentFormat contentFormat=null;
if (tipo.equalsIgnoreCase("html")){
contentFormat = new ContentFormat("application/msword", "UTF-8");
}
if (tipo.equalsIgnoreCase("txt")){
contentFormat = new ContentFormat("text/plain", "UTF-8");
}
System.out.println("formato del contentFormat–>"+contentFormat.getMimetype());
contentService.write(content, Constants.PROP_CONTENT, text.getBytes(), contentFormat);