10-22-2007 11:08 AM
Repository repository = (Repository)this.factory.getBean("JCR.Repository");
Session session = null;
try {
session = repository.login(new SimpleCredentials("admin","admin".toCharArray()));
Node root = session.getRootNode();
Node companyHome = root.getNode(path);
// Changement de status du document en "For Approval"
companyHome.setProperty("lpr:DocumentStatus", "For Approval");
companyHome.save();
// Ici code manquant de déplacement vers le dossier ..Review
…
// Affichage des propriétés du document pour Debug uniquement
PropertyIterator iterator = companyHome.getProperties();
while(iterator.hasNext()) {
Property prop = iterator.nextProperty();
if (!prop.getDefinition().isMultiple()) {
String property = prop.getName();
System.out.println("JCR - property : " + property);
if (!property.equals("cm:content")) {
System.out.println("JCR - Property - " + property + " = " + prop.getString());
}
if (property.equals("lpr:DocumentStatus")) {
System.out.println("JCR - Status: " + property + " = " + prop.getString());
}
}
}
}
finally {
session.save();
session.logout();
}
Si quelqu'un peut m'aider, car je pêche complètement
10-22-2007 12:10 PM
10-22-2007 12:53 PM
Bonjour,Je pense également que les Webservices seraient beaucoup plus adaptés, mais vois-tu, je débute dans la programmation Java, alors si tu peux m'aider, je t'en remercie d'avance. L'API JCR semble assez restreinte, et c'est le seul exemple que j'ai pu trouver à ce jour et je comptais également m'orienter vers les Webservices.
Pourquoi utilise-tu l'API JCR pour accéder au repository ? Tu ne peux pas le faire en WebService ou API native Alfresco ?
10-23-2007 03:43 AM
10-23-2007 04:59 AM
Repository repository = (Repository)this.factory.getBean("JCR.Repository");
Session session = null;
try {
session = repository.login(new SimpleCredentials("workflow","password".toCharArray()));
// access the page via JCR
Node rootNode = session.getRootNode();
Node curentNodeRef = rootNode.getNode(path);
// Convert the JCR Node to an Alfresco Node Reference
NodeRef AdminNodeRef = JCRNodeRef.getNodeRef(curentNodeRef);
// Update status in Document
nodeService.setProperty(AdminNodeRef,PROP_DOCUMENT_STATUS,status);
session.save();
// Ici code manquant de déplacement vers le dossier ..Review
…
session.save();
}
finally {
session.logout();
}
pour le moment je ne sais toujours pas comment faire pour déplacer mon document, mais je pense que ce n'est plus qu'une question de temps, à moins que…
10-23-2007 07:41 AM
10-23-2007 09:39 AM
Bonjour,Ok, c'est bien dommage, mais bon le hic, c'est que j'arrive à faire fonctionner mon bout de code en utilisant une authentification JCR et récupère ainsi un Node JCR que je convertis en Node de référence Alfresco.
Il y a des exemples dans le SDK Alfresco pour utiliser les WebService (projet FirstWebServiceClient) et l'API native (projet FirstFoundationClient). En fait quasiment personne n'utilise l'API JCR, donc tu trouveras peu de monde pour t'aider
AuthenticationService authenticationService = serviceRegistry.getAuthenticationService();
authenticationService.authenticate("WORKFLOW_USER", "WORKFLOW_PASSWORD".toCharArray());
NodeRef AdminNodeRef = …
Comment à partir de cet authentification, je peux récupérer le NodeService, alors que j'y arrive en JCR (cf ci-dessous)session = repository.login(new SimpleCredentials("WORKFLOW_USER","WORKFLOW_PASSWORD".toCharArray()));
Node curentNodeRef = rootNode.getNode(path);
et que j'arrive à convertir ensuite de la sorte// Convert the JCR Node to an Alfresco Node Reference
NodeRef AdminNodeRef = JCRNodeRef.getNodeRef(curentNodeRef);
// A partir d'ici je peux faire tous ce que je veux sur les élémnets de mon repository, même déplacer un Node.
…
session.logout();
10-23-2007 10:27 AM
10-23-2007 10:47 AM
Je ne connaissais pas cette page du Wiki expliquant comment mélanger du code JCR et de l'API Alfresco mais ça a l'air sympa.Oui, c'est ce que j'ai fait, et ça marche, mais mon code ressemble plus à une bidouille amateur que du grand professionalisme. Je le mets à disposition très bientôt. Avis aux amateurs
Si je reviens à ton post du 23/10/07 à 10h59, tu as donc réussi à ouvrir une session via la JCR, puis récupérer le NodeRef et le NodeService Alfresco. Ensuite tu peux appeler la méthode moveNode du NodeService pour déplacer ton noeud vers le dossier Review, pour peu que tu aies son NodeRef…
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.