Explore product-specific spaces to ask questions, share insights, and learn best practices.
最近活躍
Getting Started with AEM Headless - GraphQL by Adobe Docs Abstract AEM’s GraphQL APIs for Content Fragments supports headless CMS scenarios where external client applications render experiences using content managed in AEM. A modern content delivery API is key for efficiency and performance of Javascript-based frontend applications. Using a REST API introduce challenges: Large number of requests for fetching one object at a time Often “over-delivering” content, meaning the application receives more than it needs To overcome these challenges GraphQL provides a query-based API allowing clients to query AEM for only the content it needs, and to receive using a single API call. AEM Headless GraphQL Video Series Learn about AEM’s GraphQL capabilities through the in-depth walk-through of Content Fragments and and AEM’s GraphQL APIs and development tools. AEM Headless GraphQL Video Series AEM Headless GraphQL Hands-on Tutorial Explore AEM’s GraphQL capabilities by building out a React Ap
How a Delta Migration Moves Content More Efficiently into AEM by Divya Kandikatti Abstract Moving from a legacy CMS into AEM requires the organization and management of a lot of moving parts; each of which must be rooted in your current needs, while keeping future strategic goals in mind. One of the most crucial steps is data migration, because the content needs to be moved into, and made acceptable, for the new system. A complication often occurs because of the time gap between content migration completion and site launch, when a data clean up is necessary. However, for most organizations, authors are not likely to be able to stop creating content for any length of time. It is critical to define a content cutoff strategy to ensure that all of the content created in this interim is migrated over to the new system, yet allows the least interruption to modifying and generating new content. Delta migration is a process that was created by Blue Acorn iCi experts in response to a recent
Get the Asset meta data from the asset node in AEM by keshav chaurasiya Abstract Get the Assets meta data from the asset node in AEM sling model @Model(adaptables = {SlingHttpServletRequest.class,Resource.class}, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL, resourceType="myproject/components/content/image") @Exporter(name="jackson", extensions="json", options= { @ExporterOption(name = "MapperFeature.SORT_PROPERTIES_ALPHABETICALLY", value = "true") }) public class ImageModel{ private static Logger LOG = LoggerFactory.getLogger(ImageModel.class); @SlingObject private SlingHttpServletRequest request; @Inject @Via("resource") private String image; } @Inject @Via("resource") private String imageMetaData; /** * @return the imageMetaData */ public String getImageMetaData() { String url = request.getRequestURI(); Resource resource = request.getResourceResolver().getResource("/content/dam/my-project/image/image.png"); Asset asset = resource.adaptTo(Asset.
Using cURL with AEM Cloud by Prince Shivhare Abstract What is cURL? cURL is an open-source command-line tool used to perform URL manipulations. It supports a wide range of internet protocols including HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, LDAP, DAP, DICT, TELNET, FILE, IMAP, POP3, SMTP, and RTSP. Downloading cURL cURL is a standard part of macOS and some Linux distros. However, it is available for almost every operating system. The latest downloads can be found at https://curl.haxx.se/download.html. Fetch the AEM as a Cloud Service Credentials Users with access to the AEM as a Cloud Service developer console will see the integrations tab in the Developer Console for a given environment, as well as two buttons. A user with the AEM as a Cloud Service Environment administrator role can click the Get-Service Credentials button to display the service credentials JSON, which will contain all the information required for the non-AEM server, including client id, client secret, private
Introducing Adobe Experience Manager’s New Headless Extension for Adobe Commerce PWA Studio by Jaemi Bremner Abstract This is the first part of a series of the new headless architecture for Adobe Experience Manager. In this post, Adobe Experience Cloud introduces its Adobe Experience Manager Headless Extension for PWA Studio that enables developers to leverage headless architectures to build app-like experiences for their customers that are fast, secure, and delightful on any device, mobile or desktop. Adobe Experience Manager provides the most innovation-friendly content tools in the market. Adobe Experience Manager enables you to more easily use and reuse your content across the web, mobile, and emerging channels such as IoT devices. Now, Adobe is introducing a new extension that enables Adobe Experience Manager authors to manage rich content and commerce experiences for the progressive web apps (PWAs) they build in PWA Studio by Adobe Commerce, powered by Magento. In this blog, we
How to handle Sling Scheduler in Adobe as a Cloud Service? by sudeshaempodcast Abstract With lot of new and fast features being provided by AEMaaCS, there are some important things we need to keep in mind while doing the implementation, one of them is cluster aware coding or develop cluster aware application. What is the need of cluster aware coding? With AEM as a Cloud Service, some things are changed and we need to keep them in mind while developing the application. The major one is, now the application will be running on cluster nodes which means instances can go down and new ones can come up any time. It will be great for authors with no downtime during the deployments but the question arises what will happen if the instance will go down during the scheduler is running? The code must be resilient especially as an instance might be stopped at any point in time. To over come this problem, we can use Sling Scheduled Jobs. If we are migrating project from 6.X.X to AEMaaCS, it is n
PDFs in AEM: Embed PDFs into Your Pages with PDF Viewer by Ben Vanderberg Abstract Content can come in a variety of formats in AEM. They could be images, videos, or even PDF documents. When it comes to PDFs, what is often the case is these PDFs are linked to and then rendered in the browser or downloaded to your computer, taking you away from the context and navigation of your own website. You also don’t get any insights into how they were interacting with PDFs other than downloading. There are a lot of common scenarios where this is the case. For example, you might see white-papers, guides, contracts, documents. If you are using AEM to power a customer portal or an intranet, you could have documents specifically related to a certain person that you want to host online. As part of AEM Core Components, there is now a new component called PDF Viewer, powered by Adobe PDF Embed API as part of Adobe Document Services. In a previous blog, I wrote in detail how you can take advantage of PD
Content Package Type Validation Forces Rethink of Standard Project Structure for Adobe Experience Manager ADOBE EXPERIENCE MANAGER by Mark Adamcin Abstract With the launch of Adobe Experience Manager (AEM) as a Cloud Service, Adobe has redefined the way content, code, and configurations are stored in AEM. The changes create a more explicitly structured project with strict enforcement, which translates to how AEM projects are set up and deployed. Let’s dive into the before and after pictures of that change, as well as providing reasoning for the changes in order to effectively deploy AEM as a Cloud Service. Prehistoric FileVault For about a decade, 2009 to the beginning of 2019, we built and deployed CQ5/AEM content packages like this, where question marks, dashed lines, and cloudy boundaries indicate areas of ambiguity, non-determinism, and opportunities to become more proficient with the Felix Admin Console. In the above diagram, we build two top-level content packages, herein labe
Listening and Handling Copy/Paste Events in Adobe Experience Manager by Sreenivas B Abstract This article will help you to do any post processing activity on copy/paste of an asset/page — here, I explain one of the important use cases which I have experienced, for which I needed this. When we integrate AEM with any cloud solution (Adobe or third party) for synchronizing assets or pages, we use some kind of reference ID for linking the content between AEM and the cloud service. For example, in the case of exporting an Experience Fragment to Adobe Target, we use Offer ID for linking the AEM XF and the corresponding offer in Adobe Target for further synchronization or updates to the offer. We usually save this reference ID in the content or metadata node of the page/asset. Now, the problem is, what if I copy/paste the asset/page in AEM for reuse? The metadata or properties also get pasted in the newly created page/asset. Now we have two assets/pages with same reference ID, which is pr
Customer Activity Hub: Blueprint for Building Extraordinary Customer Experiences with Adobe Experience Platform by Kevin Cobourn, Wendy Braun, Nick Hecht, Joel Huff, and Jody Arthur. Abstract In this post, Adobe Experience Platform introduces the fourth in its series of Digital Experience Blueprints — a whole new way to learn and understand how you can use its technology to build incredible customer experiences in real-time. The challenge in creating incredible customer experiences isn’t a lack of data. Architecting an amazing experience should be easy with all the customer data enterprises collect today. Yet doing so remains an elusive goal for many not because they don’t have the data they need, but because they cannot get that data into the right place at the right time and in a way that allows them to fully leverage it. Every day, customers interact with a brand, whether on the web, a mobile app, or in a physical store. A company is collecting these behavioral and personal data
Join the inaugural EMEA Analytics User Group Meeting on July 21st at 5pm CEST led by George Turner and Frederik Werner, featuring special guest appearances by Adobe's Jen Lasser, Eric Matisoff, and Ben Gaines. With this all-star group of speakers, we are going to dig into topics like the "Cookie-less Future", the Analytics Product Roadmap, and round things off with an open Q&A. Don't miss it!Agenda for this session:Welcome from George Turner and Frederik WernerIntroduction to the Adobe Analytics User Groups by Kelsey BourqueLive Poll to gather your expectations and wishes for what this User Group should beAdobe's view on the "Cookie-less Future" by Eric MatisoffAdobe Analytics Roadmap highlights by Ben GainesQ&A with all speakersHow to Sign UpIn order to get started, please take the following steps:Visit the Adobe Analytics User Group Homepage Fill in the relevant account details in order to create a profile for the User Group HubOnce you've completed this
Hi, I am trying to create to convert base64 encoded pdf document to com.adobe.aemfd.docmanager.Document object by using below line of code. But it throwing error. Any suggestion please. Document document = new Document(Base64.decodeBase64(base64)); Errors: Exception in thread "main" java.lang.NoClassDefFoundError: com/adobe/aemfd/docmanager/source/DocumentSourceHandlerat com.aemproject.core.workflows.ConvertBase64ToDocument.main(ConvertBase64ToDocument.java:76)Caused by: java.lang.ClassNotFoundException: com.adobe.aemfd.docmanager.source.DocumentSourceHandlerat java.net.URLClassLoader.findClass(URLClassLoader.java:382)at java.lang.ClassLoader.loadClass(ClassLoader.java:418)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)at java.lang.ClassLoader.loadClass(ClassLoader.java:351)... 1 more I don't know how to resolve this problem. -Sri
I am trying to migrate a component from Coral 2 to Coral 3. We have a sling:resourceType= granite/ui/components/foundation/form/fileupload which we changed to granite/ui/components/coral/foundation/form/fileupload. But after doing so the component dialog doesn't open. I looked at the OOTB AEM core image component at this location (/apps/core/wcm/components/image/v1/image) and got surprised that its using “cq/gui/components/authoring/dialog/fileupload”, instead of coral-3 resource type (/libs/granite/ui/components/coral/foundation/form/fileupload). All other nodes in this component are using coral-3 resource-type, but not the fileupload. Is there any reason for that? We went ahead with the cq/gui/components/authoring/dialog/fileupload, but this is breaking our Alt Text validation functionality. Can you please let me know why in Coral3 granite/ui/components/coral/foundation/form/fileupload is not being used?
as above. The drop-down list that supposed to list all the Marketo forms is empty. All I get is a message that says "Unable to load forms"setup:AEM 6.5.6ACS commons 4.8.6 (release version) (in our AMS hosted environment) | 4.8.6 (release version),5.0.4 (release version), 5.0.5-snapshot and 5.0.7-snapshot (just downloaded yesterday via git clone) (in my local instance)Things I did to setup Marketo in AEM:I followed this guide => https://adobe-consulting-services.github.io/acs-aem-commons/features/marketo-form/index.htmlBecause I cannot added the embed built-in/core component directly, I had to create a new component and extend the embed component. My new component has this => sling:resourceSuperType = core/wcm/components/embed/v1/embedI have created a Marketo config via Settings => Cloud services => Marketo. This created a new node/entry in /conf/myapp/settings/cloudconfigs/MarketoI also have to setup the design mode configuration for my component (configuration located in /
Data governance is a top priority for most digital marketing customers today. Given that, customers need control over the data that gets forwarded to AAM from Adobe Analytics. Implementing the [cm.ssf] context variable gives our customers the power to flag Analytics hits that should not be forwarded to AAM. Let’s discuss a couple of use cases where the [cm.ssf] context variable has been used as a solution.User consentThis use case was related to GDPR and user consent. If a site visitor has not provided consent, it is imperative that Analytics data not be forwarded to AAM. Please note, this solution does not capture user consent, however, if the customer has a consent management system or process, the [cm.ssf] context variable can be set to control the data sent to AAM via SSF. Elimination of pixels on specific pagesThis use case was related to eliminating all marketing pixels on specific pages of the site. Adding conditional logic to the p
Alerts in Workspace stopped working on 6/30. Anybody else seeing this issue?
Learn About CMS Headless Development by Adobe Docs Abstract In this part of the AEM Headless Developer Journey, learn about headless technology and why you would use it. Objective This document helps you understand headless content delivery and why it should be used. After reading you should: 1. Understand the basic concepts and terminology of headless content delivery 2. Understand why and when headless is required 3. Know at a high-level how headless concepts are used and how they interrelate Full-Stack Content Delivery Ever since the rise of easy-to-use, large-scale content management systems (CMSes), organizations have leveraged them as a central location to manage messaging, branding, and communications. Using the CMS as a central point for administering experiences improved efficiency by eliminating the need to duplicate tasks in disparate systems. In a full-stack CMS, all of the functionality for manipulating your content is in the CMS. Features of the system make up differe
AEM in Action - Debugging a component. Part 1 by Veena Vikraman Abstract Video: https://youtu.be/ZMAMGk4NK3A If you are a beginner in AEM and do not know how to debug a component from a page , I will try to help walk you through the basic steps. In this video I will walk you through the steps to identify a component and its rendering logic from only the given page. Once you finish this video, you should be able to locate the component, it's rendering script and its Sling Models. In another video , I will show how to change the related Sling Model , build and deploy . Please use the below navigation to easily navigate to portions you want to listen 0:00 Introduction 2:43 Debugging in Action - Problem 4:10 How to debug ? 10:16 Sling Resource Type - Sling resolution 12:30 Sling Resource Super Type 16:00 Conclusion Read Full Blog AEM in Action - Debugging a component. Part 1 Q&A Please use this thread to ask the related questions.
Update Link References inside Experience fragment on Rollout by Bimmisoi Abstract As we all know that when we create a live copy of experience fragment or rollout any experience fragments the site's link reference inside it does not get updated as it gets updated in a page. This feature is not available OOTB. In order to achieve that we can create a custom rollout config and can achieve our use case. Steps : Add Synchronization Actions to the Rollout Configuration Go to /apps/msm , create folder named rolloutconfig Under this node create another node jcr:primaryType ----- cq:RolloutConfig Title: Update XF Site Links Name: updateXFlinks cq:trigger: rollout Under this node now create another node Name: linksUpdateXF Type: cq:LiveSyncAction Implement LiveActionFactory : The following LiveActionFactory class implements a LiveAction which updates the link refence in experience fragment on creating a live copy or rollout from master experience fragment. I have excluded countryselecto
Adobe Journey Optimizer-Realtime Omnichannel Journeys For Better Customer Interaction by Nextrow Abstract Please note that while Adobe Journey Optimizer is expected to be released later in 2021, we have only been given a “roadmap” without any commitment to this specific application or its related features. Whether you’re still catching up on sessions or watching highlights from Adobe Summit 2021, you’re sure to hear or read about Adobe Journey Optimizer. This Adobe Experience Platform Application will be a centralized app “that helps brands to easily identify, create, and deliver the next best interaction,” according to Anjul Bhambhri, SVP Adobe Experience Cloud. Bhambhri’s description, in addition to the few related sessions, is enough to excite most anyone in the martech space, but there isn’t a lot of information on AJO available as of now. Based on what we do know, here is a general overview of what we hope to see when the application is released and why this tool is such a huge
The shift to cookieless will change marketing forever: 5 reasons to get there ahead of the competition by Adobe Blogs Abstract Google’s recent announcement that it will delay the depreciation of third-party cookies in their Chrome browser by nearly two years didn’t come as a shock to many observers. Between legal and regulatory challenges, lack of broad agreement and participation on standards, and a myriad of new and untested replacement technologies, companies and vendors alike are struggling to find new ways to reconcile their need to acquire new customers with consumer demand for transparency and privacy. While the announcement provides marketers more time to evolve their strategies around first-party data, consumer sentiment isn’t changing, and it won’t wait for brands to catch up. In other words, just because advertisers and publishers can continue to use third party cookies to track and target consumers doesn’t mean they should do so at the expense of developing first-party d
Code Reuse With Custom Sling Model Injectors by Perficient Abstract In my blog Writing Less Java Code in AEM with Sling Models, I talked about writing less code using Sling Models. I followed that up with Writing Less Java Code in AEM with Sling Models & Lombok. I talked about code generators helping in saving time by not writing redundant codes. You could say I am lazy. I like to use the tools and frameworks at my disposal. But sometimes it is inevitable. We have to write code. I am anything if not efficient. When I write code, I like to make it as concise and simple to understand as possible. In this blog, I am going to talk about the reusability of code helping in writing less code. Tag ID Model As an example, I am going to revisit the Tag id model from that first blog post. In that example, the multifield items had a tag ids property named ./tags. This I injected into the model as ItemTags @ChildResource ItemTags getTags(); And ItemTags implemented Iterable interface ItemTa
Hi Team,I have installed AEM 6.4 (with Service pack 2) on local machine successful. My plan is to create AEM SPA project in local environment. So i have refereed below adobe site link to create AEM SPA project Getting Started with React and AEM SPA Editor---------------------------------------------------------------https://helpx.adobe.com/experience-manager/kt/sites/using/getting-started-spa-wknd-tutorial-develop/react.html#local-dev-envBelow is the listing of chapters in the tutorial:OverviewChapter 0 - Project SetupChapter 1 - Editable ComponentsChapter 2 - Front End DevelopmentChapter 3 - Navigation and RoutingSuccessfully completed Chapter 0 - project Setup steps and finally build deployed project into my local AEM instance. As per the Chapter 1 steps i have created React "Text " in wknd project and build and deployed successfully into my local AEM instance. But "Text" component is not visible on my local environment.Chapter 1 - Editable ComponentsAdobe Experience Manager Help |
Quantifying the significant ROI, insights, and time-savings of integrating Adobe Analytics + Adobe Target Presented by: Drew Burns, Group Product Marketing Manager, AdobeBrian Shampnois, Director of Analytics, Brooks Bell Date: Tuesday, July 20th, 2021 Time: 8am - 9am PDT Brooks Bell and Adobe Product Management recap new Personalization research. In this webinar, we will cover the following topics: 1) How the Adobe Analytics and Target (A4T) integration streamlines implementation and time-to-value. 2) The scale and powerful use cases that customers have realized through this integration. 3) What degrees of increased revenue, time savings, and cost savings you can expect as a result of leveraging this powerful integration. REGISTER TODAY! Have any burning A4T-related questions that you'd like to have answered during the webinar? Post them below before you forget! We'll make sure you get your an
已經有帳戶?登入
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.