Environnement

AEM Assets 6.0, 6.1, 6.2, 6.3.

Étapes

Les éléments ne peuvent pas être déplacés correctement à l'aide de l'API JCR Session.move.  Au lieu de cela, vous devez utiliser l'API PageManager.move.

Par exemple :

PageManager pageManager = ((PageManager)resourceResolver.adaptTo(PageManager.class));
Resource sourceResource = resourceResolver.getResource("/content/dam/example.jpg");
String destinationPath = "/content/dam/test/example.jpg";
pageManager.move(sourceResource, destinationPath, null, false, true, null, null);

Malheureusement, cette méthode d'appel n'inclut pas complètement tout ce qui est fait par com.day.cq.wcm.core.impl.commands. Classe AbstractCopyMoveCommand qui gère la requête de l'interface utilisateur. Pour simuler entièrement l'interface utilisateur, vous devez déclencher cette requête en interne à l'aide de SlingRequestProcessor.

Voir cet article pour plus de détails sur la façon de déclencher une telle demande:
http://www.nateyolles.com/blog/2015/10/get-rendered-html-for-an-aem-resource-or-component.

La demande serait :

POST /bin/wcmcommand

Avec ces paramètres Post :

cmd=movePage
integrity=true
_charset=utf-8
destParentPath=/content/dam
destName=test1.png
srcPath=/content/dam/test.png

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne