03-20-2009 09:01 AM
Store STORE = new Store(Constants.WORKSPACE_STORE, "SpacesStore");
this.FILEtoDELETE =
new Reference(STORE, null,"/app:company_home/cm:MEDICAMENTO/cm:_x0030_100/cm:EXCIPIENTES/cm:_x0032_0090320_340086/cm:WebServiceSample_javi.txt");
boolean dev = false;
try
{
// Comprueba la existencia del directorio
WebServiceFactory.getRepositoryService().get(new Predicate(new Reference[]{FILEtoDELETE }, STORE, null));
dev=true;
}
catch (Exception exception)
{
// no existe el nodo.
System.out.println("Excepcion ");
dev=false;
}
java.lang.IllegalStateException: Failed to resolve to a single NodeRef with parameters (store=workspace:SpacesStore uuid=null path=/app:company_home/cm:MEDICAMENTO/cm:_x0030_100/cm:EXCIPIENTES/cm:_x0032_0090320_340086/cm:WebServiceSample_javi.txt), found 0 nodes.
En esta ruta, navegando por los espacios con el cliente web, si que existe el archivo WebServiceSample_javi.txt, y si lo copio y pego dentro del mismo espacio con el cliente web, ya si que puedo obtener una referencia.03-20-2009 09:09 AM
La recomendación cuando se trabaja con sentencias Lucene es, si se tiene acceso, realizar pruebas con las misma en el Node Browser de Alfresco así estas se facilitarán y encontraremos antes la sentencia que buscamos. Una vez encontrada antes de usarla desde una interfaz Java ya solo tendríamos que proteger los caracteres especiales (\ y ") al contruir la consulta.
03-20-2009 09:39 AM
Children
Child Name Child Node Primary Association Type Index
//Este nodo es creado por servicio web y no se puede borrar/referenciar.
{}cm:p_340086.pdf workspace://SpacesStore/9f4b6911-152b-11de-843c-e7b0ce71be28 true {http://www.alfresco.org/model/content/1.0}contains 0
//Este nodo es una copia con la interfaz web de uno que no se podia borrar, y si se puede borrar
{http://www.alfresco.org/model/content/1.0}Copy of p_340086.pdf workspace://SpacesStore/40a42cab-1533-11de-843c-e7b0ce71be28 true {http://www.alfresco.org/model/content/1.0}contains 1
//Este nodo es creado por servicio web, de una manera similar a los ejemplos del SDK y tampoco se puede borrar/referenciar. El nombre que le puse fue WebServiceSample_javi.txt
{http://www.alfresco.org/model/content/1.0}contains workspace://SpacesStore/1bd201ef-1548-11de-843c-e7b0ce71be28 true {http://www.alfresco.org/model/content/1.0}contains 4
03-20-2009 09:44 AM
03-23-2009 07:54 AM
String PROPIEDAD_CONTENIDO = "{http://www.alfresco.org/model/content/1.0}name";
private Reference obtenerReferenciaMetodoPadreHijos(Reference FOLDER,
String nombreContenido) {
Reference ref = FOLDER;
Reference refNodeDevolucion = null;
QueryResult queryResult = null;
try {
//Obtenemos los contenidos hijos del directorio padre
queryResult = WebServiceFactory.getRepositoryService()
.queryChildren(ref);
} catch (Exception ex) {
System.out.println("Exepcion obteniendo los hijos. "
+ ex.toString());
return null;
}
ResultSet resultSet = queryResult.getResultSet();
if (resultSet.getTotalRowCount() > 0) {
ResultSetRow[] rows = resultSet.getRows();
//Recorremos cada nodo hijo encontrado
for (int x = 0; x < rows.length; x++) {
ResultSetRow row = rows[x];
//NamedValue[] columns = row.getColumns();
// Obtenemos el nodo hijo
ResultSetRowNode node = row.getNode();
//System.out.println("ID nodo: " + node.getId());
//System.out.println("Type = " + node.getType());
//Creamos una referencia al nodo hijo
Reference ref1 = new Reference(STORE, node.getId(), null);
Query query = null;
//Comprobamos que podemos ver que el nodo hijo existe y que el nombre coincida con el que estemos buscando.
Node[] noderesult = null;
try {
noderesult = WebServiceFactory.getRepositoryService().get(
new Predicate(new Reference[] { ref1 }, STORE,
query));
//Recorremos cada nodo-hijo devuelto, normalmente 1.
for (int x1 = 0; x1 < noderesult.length; x1++) {
Node row1 = noderesult[x1];
NamedValue[] columns1 = row1.getProperties();
//buscamos la propiedad que contienen el nombre
int y1 = 0;
boolean enc = false;
while(y1 < columns1.length && !enc)
{
if (row1.getProperties(y1).getName().equalsIgnoreCase(PROPIEDAD_CONTENIDO) &&
row1.getProperties(y1).getValue().equalsIgnoreCase(nombreContenido))
{
//Hemos encontrado el contenido buscado. Devolvemos la referencia
refNodeDevolucion = row1.getReference();
enc = true;
}
y1++;
}
}
} catch (Exception ex1) {
System.out
.println("Error al obntener la referencia al contenido ");
}
}
} else {
System.out.println("The query returned no results");
}
return refNodeDevolucion;
}
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.