Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.
SOLVED

page image nodes with unpublished status

Avatar

Level 7

I know for a page or for a dam asset, can check cq:lastReplicationStatus to know whether a resource  ( page or dam asset only) replication status. (published, unpublished etc)

Is there a way to know when I trigger a workflow on a page and page has some images that are not yet published ?

Thanks,

Sree

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi Yes,

You can find assets reference in a page using AssetReferenceSearch and

Replication status of page or assets either by Replicator or Node API.

Example servlet which find all the assets referred in a page and their replication status

                  Resource resource = req.getResourceResolver().getResource(pagePath+"/"+JcrConstants.JCR_CONTENT);

                  Node node = resource.adaptTo(Node.class);

                  AssetReferenceSearch assetReference = new AssetReferenceSearch(node,"/content/dam",req.getResourceResolver());

                  for (Map.Entry<String, Asset> assetMap : assetReference.search().entrySet()) {

                  //    String val = assetMap.getKey();

                      Asset asset = assetMap.getValue();

                      Resource resource2 = req.getResourceResolver().getResource(asset.getPath()+"/"+JcrConstants.JCR_CONTENT);

                      Node assetsNode = resource2.adaptTo(Node.class);

                      String replicationStstus ="NOT REPLICATED YET";

                      if(assetsNode.hasProperty(REPLICATION_PROPERTY)) {

                       replicationStatus = assetsNode.getProperty(REPLICATION_PROPERTY).getString();

                      }

                      log.debug("Assets "+asset.getPath() + " --- Replication Status "+replicationStatus);

                    

                  }

Screen Shot 2018-07-26 at 10.41.20 AM.png

aem63app-repo/GetPageAsset.java at master · arunpatidar02/aem63app-repo · GitHub

Thanks

Arun



Arun Patidar

View solution in original post

2 Replies

Avatar

Correct answer by
Community Advisor

Hi Yes,

You can find assets reference in a page using AssetReferenceSearch and

Replication status of page or assets either by Replicator or Node API.

Example servlet which find all the assets referred in a page and their replication status

                  Resource resource = req.getResourceResolver().getResource(pagePath+"/"+JcrConstants.JCR_CONTENT);

                  Node node = resource.adaptTo(Node.class);

                  AssetReferenceSearch assetReference = new AssetReferenceSearch(node,"/content/dam",req.getResourceResolver());

                  for (Map.Entry<String, Asset> assetMap : assetReference.search().entrySet()) {

                  //    String val = assetMap.getKey();

                      Asset asset = assetMap.getValue();

                      Resource resource2 = req.getResourceResolver().getResource(asset.getPath()+"/"+JcrConstants.JCR_CONTENT);

                      Node assetsNode = resource2.adaptTo(Node.class);

                      String replicationStstus ="NOT REPLICATED YET";

                      if(assetsNode.hasProperty(REPLICATION_PROPERTY)) {

                       replicationStatus = assetsNode.getProperty(REPLICATION_PROPERTY).getString();

                      }

                      log.debug("Assets "+asset.getPath() + " --- Replication Status "+replicationStatus);

                    

                  }

Screen Shot 2018-07-26 at 10.41.20 AM.png

aem63app-repo/GetPageAsset.java at master · arunpatidar02/aem63app-repo · GitHub

Thanks

Arun



Arun Patidar