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 !!
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)));
}
}
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 La manipulation des content data me semble un peu hasardeuse…je n'ai pas bien compris ce que vous voulez dire!!
Content from pre 2016 and from language groups that have been closed.
Content is read-only.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.