You are not logged in.
Bonjour,
Afin d'utiliser le org.ametys.cms.workflow.ContentWorkflowHelper je voudrais convertir mon ModifiableContent en WorkflowAwareContent. Est-ce possible et si oui comment ?
Merci.
Offline
Bonjour,
Généralement les contenus créés sont tous ModifiableContent et WorkflowAwareContent. Tu n'as pas à le convertir mais seulement à le "caster" en WorkflowAwareContent après avoir vérifier qu'il est bien WorkflowAwareContent :
Content content = ...
if (content instanceof WorkflowAwareContent)
{
_contentWorkflowHelper.doAction ((WorkflowAwareContent) content, ....);
}
Laurence Aumeunier
Ametys Expert
Offline
J'ai une NPE lors de l'utilisation de ContentWorkflowHelper.doAction(workflowAwareContent, 4):
Sitemap: error when calling sub-sitemap<map:mount><map:mount>java.lang.NullPointerException
at org.ametys.cms.workflow.ContentWorkflowHelper.doAction(ContentWorkflowHelper.java:207)
at org.ametys.cms.workflow.ContentWorkflowHelper.doAction(ContentWorkflowHelper.java:193)
at fr.smile.onisep.ideo2.plugins.ideo.recuperation.tools.ametys.impl.AmetysContentFactory.createContent(AmetysContentFactory.java:80)
Et avec l'utilisation de ContentWorkflowHelper.getAvailableActions(workflowAwareContent):
Caused by: java.lang.NullPointerException
at org.ametys.cms.workflow.ContentWorkflowHelper.getAvailableActions(ContentWorkflowHelper.java:179)
at org.ametys.cms.workflow.ContentWorkflowHelper.getAvailableActions(ContentWorkflowHelper.java:164)
at fr.smile.onisep.ideo2.plugins.ideo.recuperation.tools.ametys.impl.AmetysContentFactory.createContent(AmetysContentFactory.java:71)
Offline
Comment as-tu récupéré le composant ContentWorkflowHelper ?
Il s'agit d'un composant il faut donc le récupérer par un lookup (dans la méthode service de AmetysContentFactory par exemple):
private ContentWorkflowHelper _contentWorkflowHelper;
public void service(ServiceManager manager) throws ServiceException {
_contentWorkflowHelper = (ContentWorkflowHelper) manager.lookup(ContentWorkflowHelper.ROLE)
}
Ces erreurs me font penser que tu as plutôt fait:
ContentWorkflowHelper contentWorkflowHelper = new ContentWorkflowHelper()
Laurence Aumeunier
Ametys Expert
Offline