Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
I am trying to use a custom Image component where the image should be dragged and dropped on to the dialog in my Experience Fragment. The issue is that every time I configure the image, the image disappears from the dialog but when checked in crx, the fileReference property is getting appended with some characters as shown in the image. Any suggestions please?The same component works fine on pages created using other templates, I am facing this issue only on my Experience Fragment.
In this recent post I described how you can save database space, optimize bandwidth, and increase readability by storing URLs in their decoded form: A decoded URL is equivalent to an IRI (Internalized Resource Identifier). That’s the official standard for “A string that’s like a URI, except it allows international characters to be used without percent-encoding.” Using IRIs whenever you can is super-smart: an IRI can make the difference between fitting in a 255-character “URL” field[1] and losing critical data. But do think about whether you’re storing the URL for reporting (i.e. a history of page visits, form conversion pages, referrers) vs. whether you intend to use it in an outbound link later on. If you might link to it in a web page, an IRI is still fine. But IRIs aren’t ready for email links. IRIs don’t work, as-is, in an <a> tag in an email Contrary to popular belief, an IRI (a.k.a. URL with inte
Running AEM 6.5 with JDK 11? by Asutosh Jena Abstract While running AEM 6.5 with Java 11 we ran into several issues especially with environment stability. This post outlines some of the items we all need to be aware of and address when using Java 11 with AEM 6.5 The Java Common Annotations module was removed from Java 11, so you need to add javax.annotation-api as a dependency. javax.annotation javax.annotation-api 1.3.2 provided If you are seeing blank pages after deploying or bundle install on AEM it’s possible it’s happening due to https://issues.apache.org/jira/browse/FELIX-6184 You can resolve this by editing to /crx-quickstart/conf/sling.properties and update sling.bootdelegation.sun=sun.*,com.sun.*,jdk.internal.reflect,jdk.internal.reflect.* Since Java 9 Modules to make reflection work you need to allow it explicitly with --add-opens JVM option. Without it you may get errors like following: Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make Clas
Adobe partners with governments in all 50 states to accelerate digital modernization by Jonathan Benett Abstract Digital modernization in government has been picking up steam over the last decade. In normal years, government agencies would often grapple with shifting technology priorities and budgets. This has led to some uneven improvements in the past. However, the need for agencies to quickly support the public due to the COVID-19 pandemic was a driving force and intensified the focus on delivering digital services. This dedication and commitment to expanding digital government has led to the most significant digital modernization effort across all levels of government in our history. The accelerated adoption of new technologies to improve digital customer experience (CX), ensure government mission continuity and support the government’s workforce, was made possible due to dedicated public servants and strong public-private partnerships. At Adobe, partnering across industries to
Walgreens online portal built on Adobe Experience Manager. by Stephen Frieder Abstract In Summer of 2020, Walgreens Boots Alliance announced a strategic partnership with Adobe and Microsoft. The technology partners would play an important role as Walgreens and Boots (UK) worked to enhance shopping and wellness experiences, while driving a mass personalization effort. In the U.S., that meant activating a loyalty program with over 100 million members. The partnership with Adobe Experience Cloud brought a set of tools that produced deeper customer insights, while delivering more relevant customer experiences that were integrated across channels like the website, mobile app, and in-person retail. In the months since the partnership was unveiled, Walgreens Boots Alliance has made great progress, demonstrating what it means to drive meaningful digital transformation on the behalf of customers. Most recently, Walgreens in the U.S. launched an online portal for Covid-19 vaccines. The experi
AEM - Core Components 2.16.0 by Adobe Abstract Enhancements 1. Improve the accessibility of a variety of components (e.g. Title, Carousel, Search...) 2. Add the new Link Handler processing to existing components Bugfixes: For a list containing all the fixed issues in this release, see 2.16.0 milestone Read Full Blog AEM - Core Components 2.16.0 Q&A Please use this thread to ask the related questions.
Project App Builder by Pedromonjo Abstract Last year, Adobe released a framework (not exactly a new product), called Project App Builder. I barely noticed it when it was announced. However, one of my customers requested me a very specific feature, for which App Builder was the perfect tool. Although it has been ages since I last did any serious development, it was a good opportunity to learn this new tool. This is an introduction to this tool and, in future posts, I will get into more details. Background Have you ever thought “I wish this functionality was added to that tool”? Maybe you have even suggested it in the forums or asked your Adobe representative about it. I have definitely been in these conversations. As usual, the problem is that, if a feature is asked by only one person or does not align with the product’s roadmap, it will never be implemented. This is especially the case for the SaaS tools: Analytics, Target, Audience Manager and Campaign Standard. If your tool of
Hello, I have an adaptive form with about two dozen fields that are marked as required fields, yet somehow I have users that are able to submit their form when some of these fields are empty. I have submitted hundreds of test forms in our test and production environments and am unable to replicate this behaviour. Does anyone have any suggestions on potential solutions, or avenues of investigation that I can pursue for this issue?
Custom Oak Indexes : AEM Part-4 (Autosuggestion) by Bimmisoi Abstract As of now we have implemented Stop Words, Synonyms Words, Custom Index Creation. let's implement auto suggestion for search. Autosuggestion : Autosuggestion/Autocomplete/Predictive search is a search feature where the search engine predicts the user’s query and provides suggestions as the user types. The user can select any of the autocomplete suggestions and be taken to results without having to manually type every character. We can follow below steps to implement this. Create indexRules node : type - nt:unstructured Create cq:PageContent node : type - nt:unstructured Create properties node : type - nt:unstructured Create jcrTitle node : type - nt:unstructured Add below property in those properties which you want to be fetched in auto search drop down. Properties : useInSuggest : true [Boolean] After reindex changes will start reflecting. Hope this helps!! Happy Coding 🙏 If you like my post and find
Custom Oak Indexes : AEM Part-5 ( Porter Stemming & Lower Case ) by Bimmisoi Abstract As of now we have implemented Autosuggestion, Stop Words, Synonyms Words, Custom Index Creation. let's implement Porter Stemming & Lower Case for search. Porter Stemming : In this implementation search will reduce any of the forms of a word such as "talks, talking, talked" or "read, reading" to their elemental roots "talk" and "read".And it will only consider root words for search. We can follow below steps to implement this. Create analyzers node : type - nt:unstructured Create default node : type - nt:unstructured Create filters node : type - nt:unstructured Create PorterStem node : type - nt:unstructured Lower Case : It converts any uppercase letters in a token to the equivalent lowercase token. All other characters are left unchanged. Example : In: "Down With CamelCase" Tokenizer to Filter: "Down", "With", "CamelCase" Out: "down", "with", "camelcase" We can follow below steps to
Custom Oak Indexes : AEM Part-3 (Stop Words) by Bimmisoi Abstract As of now we have implemented Synonyms Words, Custom Index Creation. let's implement stop words for search. Stopwords : Stop words are commonly used words such as articles, pronouns and prepositions. stop words should be indexed for precise result listing . If a phrase contains stop words, the stop words will not be searched, but the searchable words will be searched in the order as entered. Example : "from AEM blog" phrase will exclude "from" as searchable word and search rest of the phrase. We can follow below steps to implement this. Create analyzers node : type - nt:unstructured Create default node : type - nt:unstructured Create filters node : type - nt:unstructured Create Stop node : type - nt:unstructured Properties words : stop.txt [String] Create stop.txt file : type - nt:file After reindex changes will start reflecting. Read Full Blog Custom Oak Indexes : AEM Part-3 (Stop Words) Q&A Please use this
Custom Oak Indexes : AEM Part-2 (Synonyms Words) by Bimmisoi Abstract As of now we have created custom Index. let's implement synonyms words for search. synonyms : In most of the search implementation search should work for synonym words. Example : If a user is searching for Mumbai or Bombay or BOM , results should be same. Or We can follow below steps to implement this. Create analyzers node : type - nt:unstructured Create default node : type - nt:unstructured Create filters node : type - nt:unstructured Create Synonym node : type - nt:unstructured Properties synonyms : synonyms.txt [String] Create synonyms.txt file : type - nt:file After reindex changes will start reflecting. Read Full Blog Custom Oak Indexes : AEM Part-2 (Synonyms Words) Q&A Please use this thread to ask the related questions.
Custom Oak Indexes : AEM Part-1 (Custom Index Creation) by Bimmisoi Abstract With latest version of AEM, Oak does not index content by default, Custom indexes need to be created as per the requirement.If there is no index for a specific query, possibly many nodes will be traversed. The query may still work but probably be very slow. So let's quickly create a custom Index. We will explore below search features. Synonyms Words Stop Words Autosuggestion PorterStem & Lower Case For Creating Lucene custom Index step please follow below steps Open CRXDE and navigate to http://localhost:4502/crx/de/index.jsp Navigate to /oak:index Create node with jcr:primaryType = oak:QueryIndexDefinition Index must have below properties while creating it must be of type oak:QueryIndexDefinition must have the type property set to lucene must contain the async property set to the value async, this is what sends the index update process to a background thread Click save all and save your changes. Bel
Sling models: the story behind @Inject by Reyn van de Craats Abstract This blog post is based on an issue encountered on a project I’ve worked on. I’ve been working with AEM for a while and in that time I wrote my share of Sling models and unit tests for them. Reading through lots of references on the internet explaining which annotations you can use and how they work. Also using some third-party custom annotations and even adding a custom annotation myself to be used in Sling models. Yet all this time, the way Sling models work their magic stayed magical somehow... Especially the mysterious @Inject annotation. However, I never encountered really weird behaviour that couldn’t be accounted for one way or another. Until recently. Before presenting the issue I want to indicate what DOES work. In an OOTB AEM instance, the Sling model based on the SlingHttpServletRequest works and injects the current page fine, however, the one based on the Resource does not work! This makes a lot of sen
AEMasCS REST API calls from POSTMAN or any external application by Myaemlearnings Abstract This post details the steps to invoke REST API hosted in AEM as a Cloud Service (AEMasCS) instance from POSTMAN or any external application. As we all know AEM is REST based Web application and contents of Repository can be accessed via GET call to respective path (Eg say, ".json" extension or content path with ".html" extension) and updates to Repository is possible via respective HTTP method type + API endpoint as exposed (Eg. Assets HTTP API Create Folder POST request), provided we have Authentication and Authorization to the accessing endpoints. Authentication is achieved using the credentials that we use to access our instance. Eg. In our local AEM author instance, we login using admin/admin or any username as created/available in the respective instance Authorization refers to the permissions to the path we are accessing Eg: If we are to make GET request on /content/we-retail.html, we n
Hi Experts, I have an AEM Forms HTML workspace with multiple startpoints (forms). Is it possible to jump from one Form to another form? Example: I have 2 forms in workspace (Form-1 and Form-2) If I click on button in Form-1, it has to redirect to Form-2. Please guide me to achieve my requirement. Regards,Srujan
Use this thread to ask any questions related to the Implementing and Measuring Internal Site Search course/playlist on Experience League. Experts are monitoring this thread to ensure your questions are answered.
Here is a summary of recommended statuses and steps for the most common channels.I recommend numbering your statuses and adding “Success” to the success status. It will make it clearer and easier for everyone to understand which status is success.ChannelProgram TypeStatusesStepEmail SendEmail1 Member2 Engaged - Success1020List ImportDefault1 Member2 Do Not Use (Hide step)1020Online AdvertisingDefault1 Member2 Engaged - Success1020OperationalDefault1 Member2 Do Not Use (Hide step)1020NurtureEngagement1 Member2 Engaged - Success1020SeminarEvent1 Member2 Registered3 No Show4 Attended - Success10203030TradeshowEvent1 Member2 Visited Booth3 Engaged - Success102020WebDefault1 Member2 Engaged - Success1020WebinarEvent1 Member2 Registered3 No Show4 Attended – Success5 Attended On-Demand - Success1020303040The step in a channel is to prevent you from accidentally allowing a record to go backwards in status. If you make a mistake and need to set a record to a previous step this can be a problem.
Use this thread to ask any questions related to the Getting Started with Offer Decisioning for Marketers course on Experience League. Experts are monitoring this thread to ensure your questions are answered.
The Campaign Client Console requirements have been updated in the Compatibility Matrix as per the latest Adobe Campaign Classic build, which is, Build 9282 released in Release 21.1.2 on April 15, 2021. Please check the Compatibility Matrix documentation for the updates and changes. In case you have any questions, please feel free to post them below or reach out through the community Q and A section. In case you have any ideas and/or suggestions regarding the Campaign Classic product, then kindly submit them here.
Hi guys,is there a way in AEM to get a value from AEM runmodes in client-side JS?I have a key value that is changing depending on the environment, it needs to be on client-side JS since it is calling a widget integration.Thanks before!
Hi - i want to implement a member portal using AEM with SPA Editor. Members will need to be authenticated based on external identity provider like Okta. To elaborate the case a bit,1. user will login via a landing page. This page will be a pre-login page, where it'll just show some about the company details. This we know we can implement in AEM with an SPA editor mode as well.2. when user clicks login, he/she will be redirected to an external IdP (Okta), to authenticate, upon successful authentication, an OAuth token will be returned.3. user will land on a "my profile" page, where it will say "Hello, member name" which will be based on the returned token's info. few questions:1. any special setup i need to do when setting up the IA in AEM? do i need to set the "my profile" page as an authenticated page? 2. for example the "my profile" page, will SPA Editor still work in the post login case? are we able to allow the authors edit the
I have created a dialog with a multifield where the first item is a dropdown selection on selection of the value the next items are populated. The dropdown options are DM video/ Youtue video. If the selection is DM video it will populate title, video path filed and image path filld. If its a YT Video the next items title, youtube link and the image path filed populates. For the first time I have authored they are correctly storing at the node level and in dialog too, But when I open the dialog for the second time the author values are mixing with not rightly selected dropdown. The YT fileds are set to DM or viceversa The below attached is the dialog xml, pls suggest. <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:granite="http://www.adobe.com/jcr/granite/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" jcr:primaryType="nt:unstructured" jcr:title="Videos"&n
The Adobe Certification team has a new vendor for buying certification exam vouchers -- Xvoucher. To promote this new offering, there's a 20% discount off of your first exam purchase through August 31st. You have one year to use your voucher. This offer is available to anyone. Marketo MCSA is excluded from this offer.As always, those who belong to Adobe Solution Partner Program at a Bronze or above level get a 33% discount on certification exams, plus partner learner journeys and free on-demand training, sandbox access, and more in our Portal. If you work for a partner and haven't joined the SPP, then you're missing out on a lot! Register to join your company's account. It just takes a couple minutes. A special promotion for Marketo practitioners is also running through June 30th. Get FIFTY PERCENT OFF most certification exams--MCSA/Master is excluded from this offer.
We waste a lot of space and bandwidth treating URL-like strings* as if they’re too precious to decode. I’m thinking it’s time for a new approach! URLs are ASCII-only Remember (hoping you do!) that URLs can only contain visible ASCII characters — capital A-Z, lowercase a-z, numeric 0-9 and a handful of symbols. (And some of those characters need to be %-encoded, depending on how you use them.) More important, all characters outside the ASCII range must be %-encoded. So a common letter like accented é (%C3%A9), everyday symbols like © and ™ (%C2%A9 and %E2%84%A2 respectively), and every non-Latin character can’t appear in human-readable form. Percent-encoding is wildly wasteful (but usually unavoidable) While it’s great that there’s an established way to include any character, percent-encoding takes up a crazy amount of space. Take the trademar
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.