01-10-2012 03:52 AM
if(nodeService.hasAspect(actionedUponNodeRef,"versionable")==false)
{
nodeService.addAspect(actionedUponNodeRef,"versionable",null);
fileFolderService.move(actionedUponNodeRef, destinationParent0, null);
}
List<FileInfo> listFichierEtDossier = fileFolderService.list(destinationParent0);
if(!listFichierAndDossier.isEmpty())
{
return;
}
for( FileInfo fichierOuDossier : listFichierEtDossier)
{
if(fichierOuDossier.isFolder())
{
// rien faire:fichierOuDossier est un dossier
}
else if(fichierOuDossier.isLink())
{
// ne rien faire: fichierOuDossier est un link
}else {
// fichierOuDossier est un fichier
if(nodeService.getPath(fichierOuDossier.getNodeRef())==nodeService.getPath(actionedUponNodeRef));
{
checkOutCheckInService.checkout(fichierOuDossier.getNodeRef());
NodeRef copieDeTravail=checkOutCheckInService.getWorkingCopy(fichierOuDossier.getNodeRef());
ContentData Contenu = (ContentData) nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_CONTENT);
nodeService.setProperty(copieDeTravail, ContentModel.PROP_CONTENT, Contenu);
Map<String,Serializable> versionProperties = new HashMap<String,Serializable>();
versionProperties.put(VersionModel.PROP_VERSION_TYPE, VersionType.MAJOR);
checkOutCheckInService.checkin(copieDeTravail, versionProperties);
pt0++;
}
}
}
if(pt0==0)
{
fileFolderService.copy(fichier, destinationParent0, null);
}
List<FileInfo> listFichierEtDossier = fileFolderService.list(destinationParent2);
if(listFichierAndDossier.isEmpty())
{
return;
}
for( FileInfo fichierOuDossier : listFichierEtDossier)
{
if(fichierOuDossier.isFolder())
{
// rien faire:fichierOuDossier est un dossier
}
else if(fichierOuDossier.isLink())
{
// ne rien faire: fichierOuDossier est un link
}else {
// fichierOuDossier est fichier
if(nodeService.getPath(fichierOuDossier.getNodeRef())==nodeService.getPath(actionedUponNodeRef));
{
// changer le contenu du fichier existant
ContentData Contenu = (ContentData) nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_CONTENT);
ContentData newContenu = ContentData.setMimetype(Contenu, "application/PDF");
nodeService.setProperty(fichierOuDossier.getNodeRef(), ContentModel.PROP_CONTENT, newContenu);
pt2++;
}
}
}
// changer le format du fichier en PDF et l'ajouter au dossier
if(pt2==0)
{
NodeRef fichier = actionedUponNodeRef;
ContentData Contenu = (ContentData) nodeService.getProperty(fichier, ContentModel.PROP_CONTENT);
ContentData newContenu = ContentData.setMimetype(Contenu, "application/PDF");
nodeService.setProperty(fichier, ContentModel.PROP_CONTENT, newContenu);
fileFolderService.copy(fichier, destinationParent2, null);
}
List<FileInfo> listFichierEtDossier = fileFolderService.list(destinationParent1);
if(listFichierEtDossier.isEmpty())
{
return;
}
for( FileInfo fichierOuDossier : listFichierEtDossier)
{
if(fichierOuDossier.isFolder())
{
// rien faire:fichierOuDossier est un dossier
}else if(fichierOuDossier.isLink())
{
// ne rien faire: fichierOuDossier est un link
}else {
// fichierOuDossier est fichier
if(nodeService.getPath(fichierOuDossier.getNodeRef())==nodeService.getPath(actionedUponNodeRef));
{
ContentData Contenu = (ContentData) nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_CONTENT);
nodeService.setProperty(fichierOuDossier.getNodeRef(), ContentModel.PROP_CONTENT, Contenu);
pt1++;
}
}
}
if(pt1==0)
{
fileFolderService.copy(actionedUponNodeRef, destinationParent1, null);
AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<Void>() {
@Override
public void doWork() throws Exception {
…mon code Java …
}
}, "admin");
le code en entier est le suivant:
package org.alfresco.sample;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.alfresco.repo.action.ParameterDefinitionImpl;
import org.alfresco.repo.action.executer.ActionExecuterAbstractBase;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.action.ParameterDefinition;
import org.alfresco.service.cmr.coci.CheckOutCheckInService;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.model.FileInfo;
import org.alfresco.service.cmr.model.FileNotFoundException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.version.VersionType;
import org.alfresco.repo.version.VersionModel;
public class MonActionActionExecuter extends ActionExecuterAbstractBase{
public static final String NAME = "traitement";
public static final String PARAM_DESTINATION_FOLDER_0 = "destination-folder-0";
public static final String PARAM_DESTINATION_FOLDER_1 = "destination-folder-1";
public static final String PARAM_DESTINATION_FOLDER_2 = "destination-folder-2";
private NodeService nodeService;
private CheckOutCheckInService checkOutCheckInService;
private FileFolderService fileFolderService;
int pt1=0;
int pt2=0;
int pt0=0;
public void setNodeService(NodeService nodeService)
{
this.nodeService=nodeService;
}
public void setCheckOutCheckInService(CheckOutCheckInService checkOutCheckInService)
{
this.checkOutCheckInService = checkOutCheckInService;
}
public void setFileFolderService(FileFolderService fileFolderService)
{
this.fileFolderService=fileFolderService;
}
@Override
protected void executeImpl(Action MonAction, NodeRef actionedUponNodeRef)
{
// TODO Auto-generated method stub
NodeRef destinationParent0 = (NodeRef)MonAction.getParameterValue(PARAM_DESTINATION_FOLDER_0);
NodeRef destinationParent1 = (NodeRef)MonAction.getParameterValue(PARAM_DESTINATION_FOLDER_1);
NodeRef destinationParent2 = (NodeRef)MonAction.getParameterValue(PARAM_DESTINATION_FOLDER_2);
AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<void>()
{
public void doWork() throws Exception
{
//… mon code Java …
try
{
List<FileInfo> listFichierEtDossier = fileFolderService.list(destinationParent1);
if(listFichierEtDossier.isEmpty())
{
return;
}
for( FileInfo fichierOuDossier : listFichierEtDossier)
{
if(fichierOuDossier.isFolder())
{
// rien faire:fichierOuDossier est un dossier
}else if(fichierOuDossier.isLink())
{
// ne rien faire: fichierOuDossier est un link
}else {
// fichierOuDossier est fichier
if(nodeService.getPath(fichierOuDossier.getNodeRef())==nodeService.getPath(actionedUponNodeRef));
{
ContentData Contenu = (ContentData) nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_CONTENT);
nodeService.setProperty(fichierOuDossier.getNodeRef(), ContentModel.PROP_CONTENT, Contenu);
pt1++;
}
}
}
if(pt1==0)
{
fileFolderService.copy(actionedUponNodeRef, destinationParent1, null);
}
List<FileInfo> listFichierEtDossier = fileFolderService.list(destinationParent2);
if(listFichierAndDossier.isEmpty())
{
return;
}
for( FileInfo fichierOuDossier : listFichierEtDossier)
{
if(fichierOuDossier.isFolder())
{
// rien faire:fichierOuDossier est un dossier
}
else if(fichierOuDossier.isLink())
{
// ne rien faire: fichierOuDossier est un link
}else {
// fichierOuDossier est fichier
if(nodeService.getPath(fichierOuDossier.getNodeRef())==nodeService.getPath(actionedUponNodeRef));
{
// changer le contenu du fichier existant
ContentData Contenu = (ContentData) nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_CONTENT);
ContentData newContenu = ContentData.setMimetype(Contenu, "application/PDF");
nodeService.setProperty(fichierOuDossier.getNodeRef(), ContentModel.PROP_CONTENT, newContenu);
pt2++;
}
}
}
// changer le format du fichier en PDF et l'ajouter au dossier
if(pt2==0)
{
NodeRef fichier = actionedUponNodeRef;
ContentData Contenu = (ContentData) nodeService.getProperty(fichier, ContentModel.PROP_CONTENT);
ContentData newContenu = ContentData.setMimetype(Contenu, "application/PDF");
nodeService.setProperty(fichier, ContentModel.PROP_CONTENT, newContenu);
fileFolderService.copy(fichier, destinationParent2, null);
}
// faire une verfication et une modification l'aspect du fichier
if(nodeService.hasAspect(actionedUponNodeRef,"versionable")==false)
{
nodeService.addAspect(actionedUponNodeRef,"versionable",null);
fileFolderService.move(actionedUponNodeRef, destinationParent0, null);
}
List<FileInfo> listFichierEtDossier = fileFolderService.list(destinationParent0);
if(!listFichierAndDossier.isEmpty())
{
return;
}
for( FileInfo fichierOuDossier : listFichierEtDossier)
{
if(fichierOuDossier.isFolder())
{
// rien faire:fichierOuDossier est un dossier
}
else if(fichierOuDossier.isLink())
{
// ne rien faire: fichierOuDossier est un link
}else {
// fichierOuDossier est un fichier
if(nodeService.getPath(fichierOuDossier.getNodeRef())==nodeService.getPath(actionedUponNodeRef));
{
checkOutCheckInService.checkout(fichierOuDossier.getNodeRef());
NodeRef copieDeTravail=checkOutCheckInService.getWorkingCopy(fichierOuDossier.getNodeRef());
ContentData Contenu = (ContentData) nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_CONTENT);
nodeService.setProperty(copieDeTravail, ContentModel.PROP_CONTENT, Contenu);
Map<String,Serializable> versionProperties = new HashMap<String,Serializable>();
versionProperties.put(VersionModel.PROP_VERSION_TYPE, VersionType.MAJOR);
checkOutCheckInService.checkin(copieDeTravail, versionProperties);
pt0++;
}
}
}
if(pt0==0)
{
fileFolderService.copy(fichier, destinationParent0, null);
}
}
catch (FileNotFoundException e)
{
// ne rien faire
}
}
}, "admin");
}
@Override
protected void addParameterDefinitions(List<ParameterDefinition> paramList) {
paramList.add(new ParameterDefinitionImpl(PARAM_DESTINATION_FOLDER_0,
DataTypeDefinition.NODE_REF,
true,
getParamDisplayLabel(PARAM_DESTINATION_FOLDER_0)));
paramList.add(new ParameterDefinitionImpl(PARAM_DESTINATION_FOLDER_1,
DataTypeDefinition.NODE_REF,
true,
getParamDisplayLabel(PARAM_DESTINATION_FOLDER_1)));
paramList.add(new ParameterDefinitionImpl(PARAM_DESTINATION_FOLDER_2,
DataTypeDefinition.NODE_REF,
true,
getParamDisplayLabel(PARAM_DESTINATION_FOLDER_2)));
}
}
Syntax error on token "void", Dimensions expected after this tokeneclipse n' accepte pas le "void " et je ne sais pas comment y remédier !!
01-10-2012 10:49 AM
package org.alfresco.sample;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.action.ParameterDefinitionImpl;
import org.alfresco.repo.action.executer.ActionExecuterAbstractBase;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.action.ParameterDefinition;
import org.alfresco.service.cmr.coci.CheckOutCheckInService;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.model.FileInfo;
import org.alfresco.service.cmr.model.FileNotFoundException;
import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.version.VersionType;
import org.alfresco.repo.version.VersionModel;
public class MonActionActionExecuter extends ActionExecuterAbstractBase{
public static final String NAME = "traitement";
public static final String PARAM_DESTINATION_FOLDER_0 = "destination-folder-0";
public static final String PARAM_DESTINATION_FOLDER_1 = "destination-folder-1";
public static final String PARAM_DESTINATION_FOLDER_2 = "destination-folder-2";
private NodeService nodeService;
private CheckOutCheckInService checkOutCheckInService;
private FileFolderService fileFolderService;
int pt1=0;
int pt2=0;
int pt0=0;
public void setNodeService(NodeService nodeService)
{
this.nodeService=nodeService;
}
public void setCheckOutCheckInService(CheckOutCheckInService checkOutCheckInService)
{
this.checkOutCheckInService = checkOutCheckInService;
}
public void setFileFolderService(FileFolderService fileFolderService)
{
this.fileFolderService=fileFolderService;
}
@Override
protected void executeImpl(Action MonAction, final NodeRef actionedUponNodeRef)
{
final NodeRef destinationParent0 = (NodeRef)MonAction.getParameterValue(PARAM_DESTINATION_FOLDER_0);
final NodeRef destinationParent1 = (NodeRef)MonAction.getParameterValue(PARAM_DESTINATION_FOLDER_1);
final NodeRef destinationParent2 = (NodeRef)MonAction.getParameterValue(PARAM_DESTINATION_FOLDER_2);
AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<void>()
{
public void doWork() throws Exception
{
//… mon code Java …
try
{
List<FileInfo> listFichierEtDossier1 = fileFolderService.list(destinationParent1);
if(listFichierEtDossier1.isEmpty())
{
return null;
}
for( FileInfo fichierOuDossier : listFichierEtDossier1)
{
if(fichierOuDossier.isFolder())
{
// rien faire:fichierOuDossier est un dossier
}else if(fichierOuDossier.isLink())
{
// ne rien faire: fichierOuDossier est un link
}else {
// fichierOuDossier est fichier
if(nodeService.getPath(fichierOuDossier.getNodeRef())==nodeService.getPath(actionedUponNodeRef));
{
ContentData Contenu = (ContentData) nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_CONTENT);
nodeService.setProperty(fichierOuDossier.getNodeRef(), ContentModel.PROP_CONTENT, Contenu);
pt1++;
}
}
}
if(pt1==0)
{
fileFolderService.copy(actionedUponNodeRef, destinationParent1, null);
}
List<FileInfo> listFichierEtDossier2 = fileFolderService.list(destinationParent2);
if(listFichierEtDossier2.isEmpty())
{
return null;
}
for( FileInfo fichierOuDossier : listFichierEtDossier1)
{
if(fichierOuDossier.isFolder())
{
// rien faire:fichierOuDossier est un dossier
}
else if(fichierOuDossier.isLink())
{
// ne rien faire: fichierOuDossier est un link
}else {
// fichierOuDossier est fichier
if(nodeService.getPath(fichierOuDossier.getNodeRef())==nodeService.getPath(actionedUponNodeRef));
{
// changer le contenu du fichier existant
ContentData Contenu = (ContentData) nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_CONTENT);
ContentData newContenu = ContentData.setMimetype(Contenu, "application/PDF");
nodeService.setProperty(fichierOuDossier.getNodeRef(), ContentModel.PROP_CONTENT, newContenu);
pt2++;
}
}
}
// changer le format du fichier en PDF et l'ajouter au dossier
if(pt2==0)
{
NodeRef fichier = actionedUponNodeRef;
ContentData Contenu = (ContentData) nodeService.getProperty(fichier, ContentModel.PROP_CONTENT);
ContentData newContenu = ContentData.setMimetype(Contenu, "application/PDF");
nodeService.setProperty(fichier, ContentModel.PROP_CONTENT, newContenu);
fileFolderService.copy(fichier, destinationParent2, null);
}
// faire une verfication et une modification l'aspect du fichier
if(nodeService.hasAspect(actionedUponNodeRef, ContentModel.ASPECT_VERSIONABLE)==false)
{
nodeService.addAspect(actionedUponNodeRef,ContentModel.ASPECT_VERSIONABLE,null);
fileFolderService.move(actionedUponNodeRef, destinationParent0, null);
}
List<FileInfo> listFichierEtDossier0 = fileFolderService.list(destinationParent0);
if(!listFichierEtDossier0.isEmpty())
{
return null;
}
for( FileInfo fichierOuDossier : listFichierEtDossier0)
{
if(fichierOuDossier.isFolder())
{
// rien faire:fichierOuDossier est un dossier
}
else if(fichierOuDossier.isLink())
{
// ne rien faire: fichierOuDossier est un link
}else {
// fichierOuDossier est un fichier
if(nodeService.getPath(fichierOuDossier.getNodeRef())==nodeService.getPath(actionedUponNodeRef));
{
checkOutCheckInService.checkout(fichierOuDossier.getNodeRef());
NodeRef copieDeTravail=checkOutCheckInService.getWorkingCopy(fichierOuDossier.getNodeRef());
ContentData Contenu = (ContentData) nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_CONTENT);
nodeService.setProperty(copieDeTravail, ContentModel.PROP_CONTENT, Contenu);
Map<String,Serializable> versionProperties = new HashMap<String,Serializable>();
versionProperties.put(VersionModel.PROP_VERSION_TYPE, VersionType.MAJOR);
checkOutCheckInService.checkin(copieDeTravail, versionProperties);
pt0++;
}
}
}
if(pt0==0)
{
fileFolderService.copy(actionedUponNodeRef, destinationParent0, null);
}
}
catch (FileNotFoundException e)
{
// ne rien faire
}
}
}, "admin");
}
@Override
protected void addParameterDefinitions(List<ParameterDefinition> paramList) {
paramList.add(new ParameterDefinitionImpl(PARAM_DESTINATION_FOLDER_0,
DataTypeDefinition.NODE_REF,
true,
getParamDisplayLabel(PARAM_DESTINATION_FOLDER_0)));
paramList.add(new ParameterDefinitionImpl(PARAM_DESTINATION_FOLDER_1,
DataTypeDefinition.NODE_REF,
true,
getParamDisplayLabel(PARAM_DESTINATION_FOLDER_1)));
paramList.add(new ParameterDefinitionImpl(PARAM_DESTINATION_FOLDER_2,
DataTypeDefinition.NODE_REF,
true,
getParamDisplayLabel(PARAM_DESTINATION_FOLDER_2)));
}
}
01-10-2012 04:09 PM
01-11-2012 08:47 AM
01-12-2012 04:10 AM
Et si vous utilisiez "Object" plutôt que "void" ?
// Create a good authentication
RunAsWork<Void> createAuthenticationWork = new RunAsWork<Void>()
{
public Void doWork() throws Exception
{
if (!authenticationService.authenticationExists(getName()))
{
authenticationService.createAuthentication(getName(), getName().toCharArray());
}
return null;
}
};
j'ai changé "void" par "Void" et ça marche 01-12-2012 04:40 AM
La manipulation des content data me semble un peu hasardeuse…je n'ai pas bien compris ce que vous voulez dire!!
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.