Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
AEM Cloud Service - Sling Post Processor to remove duplicate values with Bulk Editor Append Mode by Sreekanth Choudry Nalabotu Abstract Goal AEM Cloud Version : 2021.3.5087.20210322T071003Z-210225 (March 22, 2021) Using Append mode in Bulk Edit, duplicate tag values could be inserted in custom metadata field when Tag widget is used in schema. Sling Post Processor below scrubs the data and removes any duplicates when assets metadata is updated using bulk editor... Solution 1) Add a bulk update sling post processor apps.experienceaem.assets.core.listeners.BulkUpdateAppendPostProcessor to remove any duplicate values... package apps.experienceaem.assets.core.listeners; import org.apache.commons.lang.ArrayUtils; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.request.RequestParameter; import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.servlets.post.Modification; import org.apache.sling.servlets.post.ModificationType; import o
AEM Cloud Service - Dynamic Media open, download Smart Crops, Video Encodes from Preview Server (Test Context) by Sreekanth Choudry Nalabotu Abstract Goal AEM Cloud Version : 2021.3.5087.20210322T071003Z-210225 (March 22, 2021) Add a button Smart Crop Download in Asset Details action bar to open/download smart crops for images and encodes for videos. Please stress test the logic for large video encode downloads.... Solution 1) Add a service user eaem-service-user in repo init script ui.config\src\main\content\jcr_root\apps\eaem-cs-smart-crop-open\osgiconfig\config.author\org.apache.sling.jcr.repoinit.RepositoryInitializer-eaem.config scripts=[ " create service user eaem-service-user with path system/cq:services/experience-aem set principal ACL for eaem-service-user allow jcr:read on /apps allow jcr:all on /conf end " ] 2) Provide the service user to bundle mapping in ui.config\src\main\content\jcr_root\apps\eaem-cs-smart-crop-open\osgiconfig\config.author\org.apache.sling.service
Hybrid AEM Architecture for Modern Web Frameworks by Prashant Onkar Abstract This blog highlights and addresses commonly faced issues while building scalable, dynamic enterprise applications using popular front-end frameworks with AEM (Adobe Experience Manager). Even though there are some tools available to address issues faced with Single Page Applications (SPA), when it comes to traditional (Non-SPA) applications, there is dearth of documentation on most of the issues faced while working with React and Angular. Introduction As front-end frameworks like React, Angular and Vue.js are gaining popularity, understanding the nuances of integration with headful AEM becomes imperative to the success of implementation of a content-centric enterprise application. Even though there are some tools and documentations around development of Single Page Applications using AEM and React or Angular, there is lack of information on implementing a traditional (Non-SPA) application using AEM and modern
Apologies for the duplicate post. Seems like something in the original is breaking the page, so I'll try this again:I'm trying to dynamically retrieve a translated message using Javascript from my created dictionary in AEM's translator (/libs/cq/i18n/translator.html).We've got dictionary values set up like:String EN FR========================================================TEST-001 This is a Test1 FR:This is a Test1TEST-002 This is a Test2 FR:This is a Test2TEST-003 This is a Test3 FR:This is a Test3I've looked through the Internationalizing UI Strings article (https://docs.adobe.com/docs/en/aem/6-2/develop/components/i18n/i18n-dev.html) but when I try to the following:Granite.I18n.setLocale("en");Granite.I18n.get("TEST-001");orGranite.I18n.setLocale("fr");Granite.I18n.get("TEST-001");I only get returned the string I've passed in (i.e. "TEST-001").Could someone help me understand how to retrieve the translated value back?T
Are you taking full advantage of reports and dashboards within Workfront? We know how important it is for you and your teams to have immediate access to data to make the right decisions, to have full visibility into the work being planned and executed, to highlight successes, and to identify bottlenecks or process gaps. Reports and dashboards are the answer, and they’re easier to create in Workfront than you might think! Click into this blog post for more information on visualizing and presenting information in reports or dashboards to avoid the dreaded digital clutter. Have questions about reporting? Reply to this thread and we'll get you taken care of!
Elevate Key Information to Speed up Execution! If you’ve been following this reporting series on the Community, you now have a handle on the basics of report creation in Workfront. So, to kick things up a notch we want to make sure you are taking advantage of 3 System Administrator favorite, slightly-more-advanced, reporting features: - Column Rules - Running Reports with the Access Rights of Another User - Automatic Report Deliveries This blog covers detailed instructions and tips for leveraging all three of these key features. NOTE: Past discussion posts from this series include introduction to reporting, charts, and wildcards.
No text available
Hi, OOTB page properties dialog has thumbnail tab which allow to select an asset from DAM or upload from file system. I tried to have a custom tab with another thumbnail. I can drag and drop different assets on ootb thumbnail and custom thumbnail but when I save the page properties and open again both thumbnails having same asset. How can I have different thumbnails at page properties level? for example one thumbnail for desktop and another thumbnail for mobile. I also tried using commerce asset picker but no luck. Thanks,Radha Krishna N
Our company already use adobe managed services for our contents. We have 1 author n 2 publishers instances and are hosted in adobe managed AWS. We have few REST API's exposed for other applications through author instance. This design have been implemented by adobe common services team. Existing design has 2 major flaws. With increased api calls, author instance performance has gone down. Also, it's not scalable. Additionally, new design should be able to alert consumer if there is any change in the actual asset during/after publish. Please advise best solution for the above problem. If you can share architecture solution diagram for the above solution, that'll be really great.
Could not apply/close the dialog in a component after browser resize. Please find the below steps.Open the pageResize the browser windowOpen the dialog (dialog occupies the entire browser)Apply/Close the dialogOther stakeholders say, this must a problem after SP7 upgrade. But when I checked in local (which is not having SP7) the same problem exist.Actual result:The apply/close button in dialog is not workingExpected result:The dialog should apply new changes or close the dialog. ThanksSHYAMSUNDAR TK
Hello Community, It has been a while that I posted something here. A lot of people want to leverage form with DAM assets. Simple example, you have an adaptive form and you want user to upload the image but instead of saving it in some other system you want to leverage DAM assets. Two main things for such use case: DAM has a very exhaustive set of HTTP API that can help you create folders and assets. Form fields have a lot of events on which you can trigger the HTTP API and POST the form data to DAM. Sample: Create a simple html widget for file upload. <p>Image</p><p><input id="default_file" type="file" name="logo">&nbsp;<button id="clear">clear</button></p> Create JS to handle file upload and ingest the payload to DAM API. $('#default_file').change(function(){//on change eventformdata = new FormData();if($(this).prop('files').length > 0){file =$(this).prop('files')[0];formdata.append("fil
Authoring Improvements in AEM as a Cloud Service by James Talbot Abstract AEM as a Cloud Service continues to execute on an aggressive innovation road map, and part of this roadmap includes upgrades to the authoring experience. The Adobe Engineering team is able to seamlessly roll out these new innovations and authors can be assured that they are always on the latest version of AEM. The best part is that there is no interruption of service using Adobe’s Continuous Integration approach. Let’s review some of the great new authoring improvements in AEM as a Cloud Service that have been rolled out recently to all authors: Page versioning It is now possible to have much more control over the page versioning process. Versioning a page allows a user to restore that page after deletion. However, page versioning can impact performance and it can take up to five seconds for a user to delete a single page, which can result in frustration, especially in a fast paced content creation environment
Explore a single platform for the entire AEM Community. Reach New Heights in Adobe Experience Manager by aemsimplifiedbynikhil Abstract Hello AEM folks after a long time. So Let’s get started with the topic in which we will track the download of any doc or pdf from your web application. To track this we will use GTM and Google Analytics along with AEM codebase. So GTM (Google Tag Manager) is a free service provided by Google. So we will create a container in GTM. You can go to https://tagmanager.google.com/?hl=en#/admin/accounts/create to create GTM container and give the container name and choose Target Platform as Web Google Analytics Settings variable needs to be created using the tracking id from Google Analytics which can be obtained from going to Google Analytics dashboard and Admin. Then Tracking Info > Tracking Code. Copy the ID that looks like this UA-XXXXXX-XX and paste it to the Tracking ID field in GTM. Now we will create a trigger which will be attached to this tag
[AEM]-How to write Sling Jobs in AEM? by Veena Vikraman Abstract Everyday is a new learning. I keep my eyes and ears open to learn things which I might have missed to learn. I am ashamed to say that I was not aware of Sling Jobs for a very long time. But they say "Better late than never" . This is why it is always good to work under people or architects who know the technology and want to do things the right way than the easy way . Since I have learned the benefits of using Sling Jobs , I would like to share my learning with all who are not yet aware of this . So let's first see what is a Job and what is its benefits As per the official documentation Jobs (Guarantee of Processing) In general, the eventing mechanism (OSGi EventAdmin) has no knowledge about the contents of an event. Therefore, it can't decide if an event is important and should be processed by someone. As the event mechanism is a "fire event and forget about it" algorithm, there is no way for an event admin to tell i
Efficiency Gap We were looking for a way to re-use landing pages to track lead sources from multiple events without needing to re-create the pages or forms every time. Whether generating leads at a trade show or soliciting opt-ins at a networking event, our business teams wanted an easy user experience that was as simple for them as it was for their lead. The solution? We built a single landing page with a query string variable that could be updated for each event. To top off the level of simplicity, we managed bit.ly short links for the different events, creating an even easier experience for our sales members on the event floor. Here's an expired example: chem.rs/macs20 This page is our general opt-in page, but with the added query string containing "macs20," it allows us to capture leads against a known source. To support this specific lead capture tool, I built a smart campaign in Marketo with the following trigger: This trigger sim
I tried and failed to get osgi config files to work in my own code as discussed here.I found one example on the web of someone else who has created an OSGI config the same as mine, but unfortunately, they also don't include a config file.I took their source code, added it to my project, added a config file, and get same result - AEM is ignoring the config file.I suspect this is a problem with eithermy env (M1 Mac running Java 11),a bug in the latest AEM cloud SDK,a problem with the wknd sample project.Here is the example I took:https://github.com/nateyolles/aem-osgi-annotation-demoAs this project wont build (AnnotationProcessor is not an ImageIO SPI class), I simply copied the following files to the same place in the wknd projectv (see below for exact source code)SampleOsgiService.java/impl/Configuration.java/impl/SampleOsgiServiceImpl.javaSampleOsgiServlet.java package com.adobe.aem.guides.wknd.core.services; public interface SampleOsgiService { String getSettings(); }packag
Hi All,I am trying to setup personalization using geolocation, but it is not working in publish instance.The behaviour works fine in author instance.
Hi All,While trying testing the addSignatureField from link below:Adobe Experience Manager Help | Using AEM Document Services Programmatically I am getting java.lang.ClassNotFoundException: com.adobe.aemfd.docmanager.source.DocumentSourceHandler.Can you please advise which jar contain DocumentSourceHandler? why it is not included?Testing with AEM 6.2 jaraemfd-client-sdk-6.2.0.jarorg.apache.sling.api-2.16.4.jarThanks and regardsJia Jiunn Wong
Save time (and duplicate efforts) with Wildcards! It’s fairly common for different Workfront users, teams or departments to all request similar reporting information. For example, wanting to see a list of overdue work items, tasks due the following week, or hours logged by individual. Rather than creating separate reports for each of these requests, we recommend leveraging date-based or user-based wildcard filters so the results dynamically change based on the timeframe or the logged in user viewing the report. Learn how to create wildcard filters, and download step-by-step instructions for 3 must-have reports that use wildcards filters.
HelloI am working with aem 6.5Currently I am trying to integrate Brightcove to my localI have account id and all required details for Brightcove service configBut when I hit localhost:4502/Brightcove/admin pageIt does not show videos list bcz in console I can see pulse.json service is throwing 500 error and when I checked logs, it is getting nullpointer exception that's it. Nothing more available to understand.I have also provided proxy settings in Brightcove services config as mentioned in their page. Can anyone help me with this issue.
Adobe Experience Platform Mobile SDKs Move to Swift for iOS by Jaemi Bremner Abstract In late 2016 we embarked on a journey to reimagine our existing Adobe Experience Platform Mobile SDKs. There were a few concrete goals in mind, as well as a few nice-to-haves. First and foremost we wanted to implement an extensible and pluggable architecture that would allow for incremental additions of functionality, both internally developed and from partners and customers alike. Additionally, we wanted to build platform-independent logic that was easily portable across various client devices and operating systems. Lastly, we wanted to ensure that the various performance metrics that we track for the SDK (CPU time, memory consumption, binary size, stability) remained at least the same as our pre-existing SDKs. Language selection With our baseline requirements and architectures in hand, we moved on to the selection of the underlying language(s) that could be used to achieve or exceed our goals. Bec
AEM Forms: Custom Styling for the AEM Forms Component by perficient Abstract The AEM Forms product comes with many out-of-the-box (OOTB) UI components that allow you to build meaningful forms for your business; the forms can be used to collect data, like applications, surveys, and consent authorization. But, these OOTB UI form components come with default UI styling. When we integrate AEM Forms into a website, the OOTB form components adapt to the websites styling using the themes. In some business use cases, the themes will not meet the requirements. So, in those use cases, we need to use the custom styling for individual components. In this blog, I am going to highlight how easy it is to customize the OOTB components’ UI styling. To demonstrate this, I am going to use the AEM Forms Table and Textfield component. The default UI style of a textfield component is to display the border around the textfield as shown. AEM Forms provide flexibility to change the components styling throug
AEM: Import and re-use Groovy snippets in your scripts and customize the console by Theo Pendle Abstract The AEM Groovy console is a great open-source tool for AEM administrators. It allows you to write Groovy scripts that can be executed on a live AEM instance to run against the JCR. You need to add an alt property to all images of your site? No problem. Need to find references to a particular piece of content? Easy! The console lets you write the script directly in AEM, save it and run it, without ever having to recompile or redeploy any code. If you aren’t already aware of the AEM Groovy console, there are a number of articles to help you understand its benefits, but the best place to look if you want to try it out is the public Github repo which features some example scripts. One thing that isn’t mentioned there but that becomes very useful when you start using and re-using your scripts is how to import code from one script into another. This will help you avoid writing 500-line
Hello, I currently have a use case where the user fills in the adaptive form and should be able to download the Document of Record PDF (XDP template) with the form data by clicking a button. The purpose of this use case is so the entered data is not stored in AEM or a database, so the adaptive form only serves as a form filler. From my initial findings, there is a Java API you can use to generate the DoR:https://helpx.adobe.com/experience-manager/6-3/forms/javadocs/com/adobe/aemds/guide/addon/dor/DoRService.html What would be the best way to implement this API for use in an adaptive form? I would like this to be used for a majority of my forms. Thank you
Hi folks! I wanted to make sure you were aware of this User Group next week for Creative Agency and Marketing customers. Two different Omnicom agencies will sharing how they use Proof (spoiler alert, they each use it VERY differently). Hope you can join us!
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.