Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
Case Study: Retailer Launches Improved Insight POC with Adobe Experience Platform by Sunish Verma and Nick Hecht. Abstract This blog details a single implementation or customization on Adobe Experience Platform. Not all aspects are guaranteed as general availability. If you need professional guidance on how to proceed, then please reach out to Adobe Consulting Services on this topic. We have been experiencing global new trends in customer experience since early 2020. Retailers, in particular, have had to adapt to new safety and security public health requirements while committed to delivering exceptional customer experience. For example, real-time offers from anywhere are imperative to offer the customers the best value as well as delightful interactions. Web, mobile, and curbside shopping must be seamless. For CIOs and CMOs, actionable reporting and real-time data science insights have become mission-critical to deliver these new and improved customer experiences in these extraord
AEM micro-optimizations (part 3) by Jörg Hoh Abstract Welcome to my third post on AEM micro-optimizations. Again with some interesting ways how you can improve your AEM application performance, somethings with little improvements, but sometimes with significant ones. During some recent performance optimization I came across code, which felt a bit odd. Technically it was quite easy: for (Item item : manyItems) { proprocessSingleItem (resolver, item); } void processSingleItem (ResourceResolver resolver, Item i} { // do something with the resourceResolver resolver.commit(); } That is indeed a very common pattern, especially in software, which evolved over time: You have code, which deals with a single item. And later, if you need to do it for multiple items, you execute this code in a loop. Works perfectly, and the pattern is widely used. And it can be problematic. If you have an operation in that performSingleItem() method, which comes with a method creating some overhead . Maybe yo
AEM Cloud Service - Assets Metadata Editor Multifield Limit Validation by Sreekanth Choudry Nalabotu Abstract Goal Add a Client Side Validator for limiting the number of items in a Multifield in Assets Metadata Editor Min/max limit configuration is hardcoded in the extension. For making it configurable via schema model check this post Solution Create a client library /apps/eaem-cs-meta-limit-mf/clientlibs/clientlib-limit-mf with categories=dam.gui.coral.metadataeditor and dependencies= eaem.lodash. Add the following js logic for validator in /apps/eaem-cs-meta-limit-mf/clientlibs/clientlib-limit-mf/meta-limit-mf.js (function($, $document){ var DATA_MF_NAME = "data-granite-coral-multifield-name", MF_NAME = "./jcr:content/metadata/eaemKeywords", EAEM_VALIDATION_ERROR = "eaem-assets-validation-error", EAEM_MAX_ITEMS = 5, EAEM_MIN_ITEMS = 1, continueSave = true; $document.on("foundation-contentloaded", validateMF); function validateMF(){ var $multifield = $("[" + DATA_MF_NAME + "='"
It’s well-established that SFDC’s URL field type isn’t up to the task of storing real-world URLs, since it maxes out at 255 characters.[1] What isn’t discussed much, if at all, is that those 255 characters aren’t limited to ASCII. Indeed, a URL field can contain an IRI, a.k.a. URL with Unicode characters that haven’t been percent-encoded. (And it might be smart to store IRIs: as I mentioned in the recent post on decoding URLs for attribution, IRIs are space-efficient.) It bears repeating that there’s a clear career advantage to knowing your way around text encoding. You don’t want to be the one — and I’ve been the one myself, to my lasting shame — saying “Oops, we’ll never know what those ???? or ���� or ÿÿÿÿ characters were in the original data.” When you pull data into your on-premises db, you need to know what you’re gonna get. Don’t make an A— out of U(nicode) and Me Earlier today I was auditing the column typ
I am a developer and I have a local instance I use for building and testing. My system is using the Java 11 JDK. After some number of builds, I haven't counted but the instance is fine for a bit then fails. The builds are successful and deploy fine. The issue I'm running into is that something happens where the pages I have created no longer render. In fact, neither do the WE Retail pages. The response to the request to the page is an empty document. The only way I have been able to fix it is by deleting the entire crx-quickstart tree then rebuilding the instance. This is time consuming and painful. I loose all of my configurations and changes that aren't backed up in a package, those that are, require me to then load the package after the instance has rebuilt. I have tried compacting the indexes and forcing them to rebuild but that doesn't work. Has anyone else had a similar issue and if you were able to fix it, how did you do so?
Hi Team, Hope you all are fine and safe. AEM version: 6.4.2 Issue: With the admin user, I am able to add components in parsys but with other users "+" sign does not appear. What would be missing here? Regards,AP
The Summit 2021 session recording URLs for the following Adobe Campaign sessions are now available on their respective session posts in the Adobe Campaign Community. Check out the ones you wish to revisit: Session Title Description Speakers Build an Omnichannel Ecosystem That Connects with Customers Empowered customer can engage with a brand whenever and however they want. To deliver valuable experiences, marketers must understand and even anticipate when and how a customer engages. Hear how Comcast uses Adobe Campaign to provide... Bruce Swann, Group Product Marketing Manager , Adobe | Natalie Cawley, Senior Manager, Campaign Management Systems, Comcast NBC Universal | Josh Mann, Head of Marketing Technology, Comcast Find the Value of Adobe Campaign with Managed Cloud Services Learn about upgrading your on-premises or hybrid deployment of Adobe Campaign to Managed Cloud Services. Discover how to: Lower the total cost of ownership by simplif
AEM - Create custom OSGi Configuration by Adobe Docs Abstract Introduction Create custom OSGi configuration to capture the credentials of your document cloud account To make a custom OSGi configuration, we need to first create an interface whose public methods will represent the fields in the configuration. Create an interface named DocumentCloudConfiguration and paste the following code in it. package com.aemforms.doccloud.core; import org.osgi.service.metatype.annotations.AttributeDefinition; import org.osgi.service.metatype.annotations.ObjectClassDefinition; @ObjectClassDefinition(name="Document Cloud Service Configuration", description = "Connect AEM Forms With Document Cloud") public @interface DocumentCloudConfiguration { @AttributeDefinition(name="Client ID", description="Client ID") String getClientID() default ""; @AttributeDefinition(name="Client Secret", description="Client Secret") public String getClientSecret() default "26dc4de1-f7f0-46b6-9e8e-86270ad34f58"; @Attr
Create an Adobe I/O project by Adobe Docs Abstract Video: https://images-tv.adobe.com/mpcv3/5255/30cbbbbf-f4ca-429c-820f-2f80d72dcb50_1620669322.854x480at800_h264.mp4 The first step in creating the integration is to create Adobe ID Go to the Adobe Developer Console Login using your Adobe ID created in Step 1 Create a new project Please follow the video to create your Adobe I/O project. Read Full Blog Create an Adobe I/O project Q&A Please use this thread to ask the related questions.
AEM - Implement the methods of the interface by Adobe Docs Abstract Interface implementation The following is the complete code the class implementing the interface. This class makes use of 2 utility methods getAccessToken, getJWTToken and static method getContentAnalyserRequest of GetContentAnalyser class. package com.aemforms.doccloud.core.impl; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import java.security.KeyFactory; import java.security.interfaces.RSAPrivateKey; import java.security.spec.KeySpec; import java.security.spec.PKCS8EncodedKeySpec; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import javax.mail.BodyPart; import javax.mail.internet.MimeMultipart; import javax.mail.util.ByteArrayDataSource; import org.apache.http.Consts; import org.apache.http.HttpEntity; import org.apache.http.HttpHost; import org
AEM as a Cloud Service Tutorials - Create custom process step by Adobe Docs Abstract Custom Process Step The following is the complete code of the custom process step which converts and replaces the native files with the converted pdf’s. This custom step searches for all attachments under the folder name which is provided as a process argument in the workflow. This custom process step uses the methods of the custom DocumentCloudSDKService to create PDF’s. package com.aemforms.doccloud.core; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import javax.jcr.Binary; import javax.jcr.Node; import javax.jcr.Session; import org.osgi.framework.Constants; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.adobe.aemfd.docmanager.Document; import com.adobe.granite.workflow.WorkflowException; import com.adobe.granite.workflow.WorkflowS
Creating your first OSGi Service with AEM Forms by Adobe Docs Abstract OSGi Service An OSGi service is a Java class or service interface, along with a number of service properties as name/value pairs. The service properties differentiate among different service providers that provide services with the same service interface. An OSGi service is defined semantically by its service interface and implemented as a service object. A service’s functionality is defined by the interfaces it implements. Thus, different applications can implement the same service. Service interfaces allow bundles to interact by binding interfaces, not implementations. A service interface should be specified with as few implementation details as possible. Read Full Blog Creating your first OSGi Service with AEM Forms Q&A Please use this thread to ask the related questions.
Creating your first servlet in AEM Forms by Adobe Docs Abstract Sling Servlet A Servlet is a class used to extend the capabilities of servers that host applications accessed by means of a request-response programming model. For such applications, Servlet technology defines HTTP-specific servlet classes. All servlets must implement the Servlet interface, which defines life-cycle methods. A servlet in AEM can be registered as OSGi service: you can extend SlingSafeMethodsServlet for read-only implementation or SlingAllMethodsServlet in order to implement all RESTful operations. Servlet Code import javax.servlet.Servlet; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.servlets.SlingAllMethodsServlet; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import com.adobe.aemfd.docmanager.Document; import com.adobe.fd.forms.api.FormsService;
Hello Marketing Nation, Welcome back to the Marketo Success Series! In this series, we partner with Marketo Champions and Champion Alumni to fully explore how some of our most celebrated Marketo experts are using Marketo Engage to drive success. In this edition, we teamed up with Marketo Engage Champion Alumni Rajesh Talele and Kelly Jo Horton to discuss their best practices around Marketo Engage Forms, form styling, progressive profiling, and more! Introduction Marketo Engage Forms empower Marketers to create beautiful, stable, and flexible web forms without programming knowledge. Forms can reside on Marketo landing pages and also be embedded on any page of your website. You can even extend the out-of-the-box functionality Marketo forms provide using Forms 2.0 JavaScript API. Why use forms? Marketers use forms to acquire brand new leads to your marketing database and to update information about existing leads. Marketo forms can also be used for various
Hi All,I am facing an issue with classic components which are used in touch UI framework that are included as <cq:include path="articleintro" resourceType="/apps/intel/commons/components/content/articleintro"/>but when i am trying to edit the component and save it sling:resourceType property is not saving for that include component.Whereas for the same component in classic UI i am able to see that property as saved.Could you please help me understand why and where exactly this POST request for the dialog are formed and saving THanks,Mani Kumar K
Information has been added about the tracked URLs signature issue in a guideline documentation: Tracked URLs Signature Issue As per recent developments, tracked URLs can fail when URL signature is active in Campaign. Some mailboxes can be more impacted than others, as some companies have specific security tools which can impact links and alter the URL signature mechanism. If you are impacted by this, then refer to the guideline documentation for best practices and recommendations along with the steps to do it. 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.
We have +10K images that have an incorrect expiration date. What is the best way to remove or change the date in bulk? For example:ACS Bulk Workflow or something in MCP?ORmetadata processing profile (not every item in the folders are incorrect)ORCRX / command?Any help appreciated
Don't miss this User Group next week on the topic of Training End Users.
Don't miss this User Group next week on the topic of Training End Users. We'll have a great presentation from the University of Arizona.
Hi All,Kindly help me with the below issue for Component Rollout in AEM 6.4I have MSM setup for the site. And i am not able to do a component level roll out as the icon is not available. If a new component is created the icon is available.Is there any procedure or series of events to be followed to achieve the Rollout for components and for the icon to be available in the editor.html view of the page.Note: Page Rollouts are working fine.
Join us for our next Adobe Target Community Q&A Coffee Break, taking place Wednesday, June 10th @ 10am PDT 👨‍💻☕👩‍💻--> REGISTER NOW <-- 👨‍💻☕👩‍💻 We'll be joined by David Son aka @davidsonpm, Adobe Target Product Manager, who will be signed in here to the Adobe Target Community to chat directly with you on this thread about your Adobe Target questions pertaining to her areas of expertise: At.js Mobile Alloy APIs Want us to send you a calendar invitation so you don’t forget? Register now to receive a reminder! A NOTE FROM NEXT WEEK'S COMMUNITY Q&A COFFEE BREAK EXPERT, DAVID SON REQUIREMENTS TO PARTICIPATE Must be signed in to the Community during the 1-hour period Must post a Question about Adobe Target THAT'S IT! *(think of this as the Adobe Target Community equivalent of an AMA, (“Ask Me Any
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.