2012-04-05 3 views
0

Ich versuche, die Node Ref Datei in Standard-Root-Verzeichnis in meiner Java-Klasse hochgeladen.alfresco - Holen Sie sich die NodeRef der hochgeladenen Datei

Ich versuchte this Verbindung.

Aber es gibt leere Ergebnismenge zurück. Wie kann ich eine Suchabfrage schreiben, um den bestimmten Dateiknoten zu erhalten? Oder gibt es eine Möglichkeit, Knoten Ref von Stachel in Java-Klasse zu erstellen.

Mein Code:

NodeRef companyHomeNodeRef = null; 
      StoreRef storeRef = new StoreRef(StoreRef.PROTOCOL_WORKSPACE, 
        "SpacesStore"); 

      ResultSet rs = searchService.query(storeRef, 
        SearchService.LANGUAGE_LUCENE, "\\\"/app:company_home/app:user_homes/sys:boris/cm:mypics\\"); 

      try { 
       System.out.println("length :" + rs.length()); 
       if (rs.length() == 0) { 
        // throw new Exception("Didn't find Company Home"); 
       } else { 
        companyHomeNodeRef = rs.getNodeRef(0); 
       } 
      } finally { 
       rs.close(); 
      } 

dank

Antwort

0

Ich habe das Problem gelöst. Im Folgenden finden Sie einen Code zum Erstellen einer Knotenreferenz der Datei aus der Knotenreferenzzeichenfolge und zum Aktualisieren des Dateiinhalts.

  AuthenticationUtil.runAs(new RunAsWork<String>() { 

       @Override 
       public String doWork() throws Exception { 

        NodeRef nodeRef = new NodeRef("workspace://SpacesStore/f1a5e908-80cb-4c6e-b919-cc80fe53b835"); 
        if(contentService != null) { 
         ContentWriter writer = contentService.getWriter(nodeRef, ContentModel.PROP_CONTENT, true); 
         if(writer != null) { 
          writer.putContent(new ByteArrayInputStream("updated content".getBytes())); 
         } 
        } 
        return null; 
       } 

      }, AuthenticationUtil.getSystemUserName()); 
+0

Ich verstehe es nicht, woher kommt die magische noderef-Zeichenfolge? – Gagravarr

+0

Die Seite, wo ich diesen Code verwende, habe ich Knoten ref Zeichenfolge. Da ich neu im Freien bin, hatte ich früher mit der Erstellung von Knoten ref für Datei zu kämpfen. Außerdem funktionierte mein ursprünglicher Code nicht, selbst wenn die Abfrage im Abfrage-Browser getestet wurde. – mahesh

2

Ihre Lucene Suchsyntax ist falsch. Wenn du den Ordner möchtest, in den das Bild hochgeladen wurde, würdest du folgendes verwenden: PFAD: "/ app: firma_home/app: user_homes/cm: boris/cm: mypics"

Wenn du willst, dass die Objekte darin sitzen Ordner, würde verwenden Sie diese: PFAD: "/ app: company_home/app: user_homes/cm: boris/cm: mypics/*"

Und wenn Sie ein bestimmtes Objekt in diesem Ordner möchten, sollten Sie diese verwenden : PFAD: "/ app: company_home/app: user_homes/cm: boris/cm: mypics/cm: test.png"

Ein gutes Werkzeug für Ihre Fragen testen der Knoten Browser, verfügbar sowohl in Alfresco Explorer ist und Alfresco Teilen. Achten Sie darauf, "Lucene" als Suchsyntax auszuwählen und dann Ihre Abfragen auszuprobieren. Sobald sie das Objekt, das Sie suchen, zurückgeben, stecken Sie es in Ihren Java-Code.

+0

Vielen Dank für Ihre Antwort und alle Tutorials, die Sie geschrieben haben. Diese sind von Anfang an sehr hilfreich. Meine Datei befindet sich unter repository/sites/mysite/documentlibrary/meinordner/meinedatei. Ich versuche PATH: "/ app: Firma_home/app: user_homes/cm: MeineSite/cm: DocLib/cm: meinOrdner/cm: meineDatei". aber zeigt keine Ergebnisse für mich. Die Abfrage "PATH:"/app: firma_home/app: user_homes/cm: mysite "zeigt cm: doclib node darunter. Vermisse ich etwas? Kannst du mir bitte ein Beispiel zum besseren Verständnis erklären. Ist app: user_homes Standard Ich konnte dieses Verzeichnis nirgendwo in der Hierarchie sehen. – mahesh

+0

Jeff, über Java-Code, liefert leere Ergebnismenge für diese Abfrage "PATH:"/app: company_home ". Das Gleiche funktioniert im Knoten-Browser. Muss ich den Java-Code aktualisieren? Eigentlich ist es mein Ziel, den Knoten ref für die Datei zu bekommen und den Inhalt von Java-Code zu aktualisieren. Gibt es eine bessere Option, dies zu tun? – mahesh

+1

mahesh, wenn Sie dies noch nicht getan haben, schauen Sie sich den Node Browser an. In Alfresco Explorer befindet es sich in der Admin-Konsole. In Teilen steht es unter "Mehr, Anwendung". Der Node Browser hilft Ihnen, die hierarchische Struktur des Repos zu verstehen. Wenn Ihre Datei z. B. unter "repository/sites/mysite/documentlibrary/mein_ordner/meinedatei" gespeichert ist, lautet der Pfad/app: firma_home/st: sites/cm: mein_site/cm: dokumentLibrary/cm: meinordner/cm: meinedatei. –