CheckIn CheckOut Update [Résolu]

cancel
Showing results for 
Search instead for 
Did you mean: 
huberd
Member II

CheckIn CheckOut Update [Résolu]

Bonjour,

Dans le développement de mon workflow, mon processus de validation extrait une copie de mon document à valider de la sorte

NodeRef copyNodeRef = copyService.copy(AdminNodeRef, AdminCopyNodeRef,ContentModel.ASSOC_CONTAINS, QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, qname), true);
Dans le cas ou cette copie existe, le workflow la detecte et en effectue une copie de travail comme ceci (checkout):

List<NodeRef> copies = copyService.getCopies(AdminNodeRef);
if (copies != null && copies.isEmpty() == false) {
    for (NodeRef copy : copies) {
        if (nodeService.hasAspect(copy, ContentModel.ASPECT_COPIEDFROM) == true) {
            String copyName = (String)nodeService.getProperty(copy, ContentModel.PROP_NAME);
            NodeRef workingCopyNodeRef = cociService.checkout(copy,AdminCopyNodeRef,ContentModel.ASSOC_CONTAINS,QName.createQName("{copy}workingCopy"));
        }
     }
}
Une fois ma copie de travail effectuée, je souhaite la mettre à jour à partir d'un autre document, pour ensuite pouvoir proceder au checkin.

Le code permettant le checkin est le suivant :

Map<String, Serializable> versionProperties = new HashMap<String, Serializable>(1);
versionProperties.put(VersionModel.PROP_VERSION_TYPE, VersionType.MINOR);
cociService.checkin(workingCopyNodeRef,versionProperties);
Comment faire pour pouvoir mettre à jour en java ma copie de travail à l'aide d'une autre source. Quelle fonction utiliser ?
Merci pour votre aide.
3 Replies
pdubois
Active Member

Re: CheckIn CheckOut Update [Résolu]

Bonjour,

normalement pour faire le check out d'un node, il faut utiliser le "CheckOutCheckInService" et appeler la méthode "checkout".  La méthode "checkout" retourne une copie de travail.

Bien à vous.
huberd
Member II

Re: CheckIn CheckOut Update [Résolu]

Bonjour,

normalement pour faire le check out d'un node, il faut utiliser le "CheckOutCheckInService" et appeler la méthode "checkout".  La méthode "checkout" retourne une copie de travail.

Bien à vous.
Oui, c'est ce que j'ai fait comme indiqué précédemment dans ce post. Mais comment faire pour mettre à jour cette copie de travail ? Quelle fonction utiliser ?
pdubois
Active Member

Re: CheckIn CheckOut Update [Résolu]

La copie de travail se met à jour comme n'importe quel document. 
Pour voir un exemple de code, je vous conseille de regarder l'exemple "SDK FirstFoundationClient".

Regarder également le "CheckinCheckoutDialog", il est déclaré dans "faces-config-beans.xml", il utilise la classe "org.alfresco.web.bean.CheckinCheckoutDialog".
La page jsp utilisée est: update-file.jsp  remarquesz l'utilisation du tag <r:uploadForm> … </r:uploadForm>
Une méthode qui vous intéresse est: updateFileOK
Dans la calsse "CheckinCheckoutDialog" vous allez retouver une propriété appelée "property"  qui est de type "CCProperties". Cette propriété vous permet de retrouver le contenu du document chargé à l'aide du tag <r:uploadForm> … </r:uploadForm>

Je pense que vous pouvez réutiliser le dialog.  Il y a aussi du code pour les WF mais je n'ai pas eu le temps de l'analyser.

Je vous invite à lire également ceci http://wiki.alfresco.com/wiki/Dialog_Framework.


Donc pour résumer:
  1) checkout du document avec le "CheckOutCheckInService" qui crée une copie de travail.
  2) lancer le "dialog" sur la copie de travail pour faire l'upload du nouveau contenu.
  3) Appeler le "CheckOutCheckInService" pour faire le check in.

Bon WE.