Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
How many ‘AEM Page Templates and Components’ a project should have? by Sachin Mali Abstract This is an open-ended question and somewhat hard to give a very definitive or precise answer and most of the time one might start with ‘It depends!!’. However frequently this pops up in the various meetings with varying audiences and an answer or explanation might or might not satisfy the audiences. Here is my attempt at it Lets Review Basics An AEM Component is a piece of UI and two or more components arrangement creates a web page. Web pages can have distinct layouts and these layouts are created by arranging components in different order and/ or numbers. Templates are used to predefine the layout structures for a webpage and ultimately create web pages from them. Read Full Blog How many ‘AEM Page Templates and Components’ a project should have? Q&A Please use this thread to ask the related questions.
Reusing Authored Content Effectively with Contextual Content Variables for Adobe Experience Manager by bounteous Abstract Adobe Experience Manager (AEM) provides non-technical users with a lot of power and flexibility when creating content as well as supplying tools for significant content reuse, like Content Fragments, but there are still situations in which developers need to be brought in to handle specific requirements. One of those cases is when content needs to be authored on a specific page but also surface values that are authored elsewhere in AEM. Bounteous is always looking for ways to enable our partners using AEM to be self-sufficient and empowered in their authoring environment and so Contextual Content Variables, a newly released feature in Adobe Consulting Services (ACS) AEM Commons, seeks to solve this need for direct developer intervention when trying to surface a contextual variable inside authored content. Contextual Content Variables This new feature allows autho
【目的】AEM 6.5.10から、ページ編集画面で、パスフィールドの入力にアセットブラウザーからのドラッグ&ドロップが使えるようになりました。本記事では、パスフィールドにドラッグ&ドロップ機能を有効化する手順を説明します。この機能はAEM 6.5.10のリリースノートに記載の下記項目に該当します。https://experienceleague.adobe.com/docs/experience-manager-65/release-notes/service-pack/6.5.10.html?lang=ja・Sitesエディターにあるパスフィールドを使用すると、作成者はContent Finderからアセットをドラッグできます【環境】AEM as a Cloud Service, AEM 6.5.10以降【対応方法】パスフィールドのノードにdroppableプロパティを追加します。名:droppableタイプ:Boolean 値:trueWKNDのHelloWorldコンポーネントにパスフィールドを追加し、droppable属性をtrueにしたカスタマイズ例を示します。(https://experienceleague.adobe.com/docs/experience-manager-learn/getting-started-wknd-tutorial-develop/project-archetype/component-basics.html?lang=ja)/apps/wknd/components/helloworld/cq:dialog/content/items/column/items/path<?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/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"
【問題/事象】AEM 6.5.7以降でインボックス(http://localhost:4502/aem/inbox)に説明がAsync Jobで始まる通知が多く届くようになりました。本記事では、この事象について原因と対応方法を説明します。【環境】AEM as a Cloud Service, AEM 6.5.7以降【対応方法】インボックスに届いた非同期ジョブ(Async Job)の通知を選択し完了にします。【原因】AEM 6.5.7以降でページ移動やMSMロールアウト等を行うと、非同期ジョブとして実行されます。非同期ジョブはインボックスから完了操作を行うまでステータスがアクティブのままになります。その結果、インボックスへの通知が残ります。<留意事項>・上記は以下記事の抄訳/翻訳となります。KB記事タイトル(英語). Adobe Experience Manager: Notifications for asynchronous jobs remain in your Inbox, July 19, 2022, https://experienceleague.adobe.com/docs/experience-cloud-kcs/kbarticles/KA-20120.html, (参照 2022-07-21).・本記事にいただいたコメントへの返信はお約束できません。あらかじめご了承ください。
Granite UI Multifield Maximum Items Validation by Sourcedcode Abstract For almost all cases of AEM implementations, adding validation for maximum items for the Granite UI Multifield is a must. In this article, we will put together a script that will register a new validator (foundation.validation.validator) to the foundation-registry (the foundation-registry is used in the Granite UI framework). In this solution, we will be utilizing the jQuery Validation library (the validation library used by Granite UI is achieved by using the jQuery Validation plugin). We must register a client library specifically targeting the author, which is specific to customizing page authoring, which will inject JavaScript into the context of the page and execute the registry and scripts. After the installation of this validation code, you should be able to just include two additional properties to the multifield Granite UI component, and it should be validating as expected: Two fields: granite:class=”gra
What’s the maximum size of a node in JCR/AEM? by Jörg Hoh Abstract An interesting question which comes up every now and then is: “Is there a limit how large a JCR node can get?”. And as always in IT, the answer is not that simple. In this post I will answer that question and also outline why this limit is hardly a constraint in AEM development. Also I will show ways how you can design your application so that this limit is not a problem at all. (Allow me a personal note here: For me the most interesting part of that question is the motivation behind it. When this question I asked I typically have the impression that the folks know that they are a bit off-limit here, because this is a topic which is discussed very rarely (if at all). That means they know that they (plan to) do something which violates some good practices. And for that reason they request re-assurance. For me this always leaves the question: Why do they do it then?? Because when you follow the recommended ways and con
Hi Team,below is the code(partial) using which I am able to generate JWT token and subsequently access token using single scope=profile,how to combine another scope (offline_access) to generate JWT token which which gives me access token as well as refresh token claims.put("aud", "http://localhost:4502/oauth/token"); claims.put("iss", "u3a3i5pn1mgalf3fq7oof8jk33-iyz0qx0v"); claims.put("sub", "admin"); claims.put("exp", exp); claims.put("iat", iat); claims.put("scope", "profile"); //claims.put("scope", "offline_access"); claims.put("cty", "code"); token = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.RS256, privateKey).compact(); Thanks Regards,Sriram
Hey all,I am trying to set up the sitemap of a new site, the other sites in our publish environment have functional sitemaps so I replicated the same configuration to set it to as both scheduled and on demand. For this I followed the official documentation video but upon navigating to my sitemap (site2/us/en.sitemap.xml) I get the following Of if I go to site2/us/en.sitemap-index.xml I get this instead Inspecting the page source is of no use, as there is nothing there. Any advice? As mentioned before other sitemaps on the instance do work so site/us/en.sitemap.xml for example renders a sitemap.
We are trying to understand the working principle of OOTB Scheduled Activation Workflow. Actually we are not clear how Adobe has implemented "Waiting for Activation" block.Workflow: /libs/settings/workflow/models/scheduled_activationIf some useful documents could be shared, it would be very helpful for us to understand it. When we see "Waiting for Activation" participant step in the workflow, we don't see any timeout related logic here.
Hello, We are using AEMaaCS Author. Is there a way to programmatically check/verify if an asset has already been published to Brand Portal from Author instance? I wasn't able to find a metadata property on the asset node that confirms that. There is dam:portalReplicationAction which same asset have set to "ActivateQueued" but I don't see it on all assets that have been published to our Brand Portal. Before a process of moving an asset we need to verify if it is already on the Brand Portal and if so republish it after the move. Can you please help with finding a way to determine that? Thank you!
Hi Team , We have a use -case where in we are using OOTB socialMediahelper.java and socialMediaHelperImpl.java with 1-2 additional fields in it.So we have used the same logic on our project. functionality works fine.But when it comes to its Junits . its fails to request.adaptTo(socialMediahelper.java).All the time it gives null. -> I debugged it and see adapter and adaptable is getAdapter(adaptable,type) it fails.final Map<String ,List<AdapterFactoryDescription>> factories = getAdapterFactories(adaptable.getClass());factories.get(type.getName)); this is giving null and at code print log.debug("No Adapter factory found to map {} to {}, adaptable is slinghttprequest, and type is interface SocialMediaHelper.. Same Code as in complete OOTB when I check it works in vanilla instance. What am I missing here.. what should give as adapter and adaptable to make this succesfull request.adapTo(SocialMediaHelper.class) Please help
The Experience League Community team is excited to announce a new feature on Experience League’s AEM Community! The new “Blogs” tab on AEM’s Community page will give our top AEM Advocates (i.e., Internal Users, AEM Champions, Community Super Users, User Group Leaders, and Community Advisors) exclusive permission to post/share blogs and content from both internal (i.e., within Experience League) and external sources all in one place on Community. Now, there is no need to search for AEM blogs/content/announcements on multiple external sources; AEM Community Blogs is your one-stop shop for all AEM technical, educational, and support content. And the best part is, that it is posted by expert AEM customers and partners! This is an AEM blog Aggregator. We will keep on adding (day-to-day basis) all the AEM blogs (internal and external) here at the Blog tab. This feature will be ‘going live’ on July 12th. Click here to access existing aggregated AEM blogs and bookm
【問題/事象】非本番環境で Adobe Experience Platform Debugger を使用してタグを検証する際に、埋め込みコードをより簡単に設定する方法について教えてください。 【解決手順または回避手順】以下のヘルプページのとおり、ユーザーは埋め込みコードを直接入力することができます。 ・Adobe Experience Platform Debugger を使用した埋め込みコードのテストhttps://experienceleague.adobe.com/docs/experience-platform/tags/publish/environments/embed-code-testing.html?lang=ja ただし、ユーザーは Adobe Experience Platform デバッガーにログインすることで、埋め込みコードをより簡単に設定することも可能です。 検証が必要なサイトのページにアクセスします。Adobe Experience Platform Debugger を起動し、概要情報が表示されていることを確認します。上部の [Sign In] リンクから Adobe Experience Platform Debugger にログインします。左ペインの [Experience Platform Tags] を選択し、[Configuration] タブをクリックします。ページ埋め込みコードの「…Actions」をクリックし、[Replace] を選択します。プロパティと環境を選択します。 上記の方法では、埋め込みコードを直接入力しなくても、埋め込みコードを簡単に入れ替えることができます。 <留意事項>・上記は以下記事の翻訳となります。A simple way to set the “Test embed codes” using Adobe Experience Platform Debugger, July 20, 2022, https://experienceleague.adobe.com/docs/experience-cloud-kcs/kbarticles/KA-19864.html, (参照 2022-07-20). ・本記
【問題/事象】イメージリクエスト発行の際、無効な値では既存の変数の値を上書きできません。この問題を再現する手順の例を次に示します。 手順 1. s.t() メソッドを呼び出し、以下の値を送信します。 eVar1: Old value eVar2: Old value 手順 2. 新たなオブジェクトを作成し、再度 s.t() メソッドを呼び出して上書きします。 var y = new Object(); y.eVar1 = “”; y.eVar2 = “New value”; s.t(y); 結果: 以下の値が送信されます。eVar1 は空の値では上書きされません。 eVar1: Old value eVar2: New value 【環境】AppMeasurement for JavaScript 【解決手順または回避手順】Analytics の値を上書きするには、有効な値を指定する必要があります。 ・変数のオーバーライドhttps://experienceleague.adobe.com/docs/analytics/implementation/js/overrides.html?lang=ja <留意事項>・上記は以下記事の翻訳となります。Unable to override variable with invalid value, July 19, 2022, https://experienceleague.adobe.com/docs/experience-cloud-kcs/kbarticles/KA-19773.html, (参照 2022-07-19). ・本記事にいただいたコメントへの返信はお約束できません。あらかじめご了承ください。
【問題/事象】他のユーザーが作成した Data Warehouse リクエストをキャンセルしたい。どのようにすればよいですか? 【解決手順または回避手順】リクエストのキャンセルは Adobe Analytics 管理者が Data Warehouse リクエストマネージャーから実行できます。 組織のシステム管理者は、Admin Console を使用して Adobe Analytics の製品管理者権限を付与することにより、ユーザーに Adobe Analytics 管理者の役割を与えることができます。(https://adminconsole.adobe.com) ・Data Warehouse リクエストの管理https://experienceleague.adobe.com/docs/analytics/export/data-warehouse/data-warehouse-requests-manage.html?lang=ja <留意事項>・上記は以下記事の翻訳となります。How to cancel a “Data Warehouse” request created by another user, July 19, 2022, https://experienceleague.adobe.com/docs/experience-cloud-kcs/kbarticles/KA-19646.html, (参照 2022-07-19). ・本記事にいただいたコメントへの返信はお約束できません。あらかじめご了承ください。
Utilize same dialog structure in multiple components by Heena Shirke Abstract Let's say multiple dialogs contain same set of fields. Rather than creating same set of nodes each time, we can create the structure only once and refer every where. In this post we will learn how to refer a dialog in another dialog. Steps: 1. Let's create a sling:Folder where we will keep repetitive set of nodes. Let's name it as datasource. 2. One of the most common repetitive set of fields would be URL and Label. Let's create a container for the same. 3. Create a node called "button" under datasource node name="./name" fieldLabel="Name" sling:resourceType="granite/ui/components/coral/foundation/form/textfield" jcr:primaryType = "nt:unstructured" 4. Create a node called "content" under button node sling:resourceType = "granite/ui/components/coral/foundation/container" jcr:primaryType = "nt:unstructured" 5. Create a node called "items" under content node jcr:primaryType = "nt:unstructured" 6. Under
Adobe Experience Manager in the Metaverse by Rishabh Behl Abstract The world was surprised when Facebook rebranded itself as Meta in October 2021. The focus of the tech giant changed from being a social media platform to bringing the metaverse to life and helping people connect, find communities, and grow businesses [1]. Soon after Meta, there were a series of announcements from other tech giants as well on their offerings for the Metaverse. This has definitely triggered the curiosity of many individuals on what is exactly the metaverse is and what the future holds. What is a metaverse? The term “metaverse” originated in the 1992 science fiction novel Snow Crash as a portmanteau of “meta” and “universe.”[2] In contemporary context metaverse can be considered as an amalgamation of multiple Technology elements such as virtual reality (VR), augmented reality (AR), immersive virtual experience, etc., where a user will use their virtual avatar to interact in a digital universe. The me
Website Redesign: How to Approach Website Versioning in AEM: Part One by Exadel Abstract Working with page versions in AEM is pretty straightforward, but what if you need to maintain two versions of the entire website? We got a request on one of our projects to implement major updates in website design. We were planning to work on what we decided to call “Web Refresh” stories, across several sprints, but we wanted to launch all of the changes together on a specific date. Before that could happen, we needed to store the changes separately with the functionality to test and demo the changes without it affecting the current site. The changes that we developed for Web Refresh would not apply to the live pages automatically; they would exist as version 2 (v2). In this series of articles, we’ll walk you through how we approached this challenge. General solution for site redesign All the Web Refresh components/templates were developed as a new v2 component library and stored in the same b
AEM - Authoring - Page Status Visualisation by Arun Patidar Abstract The AEM sites console http://localhost:4502/sites.html/content can list the AEM pages in List, Column and Card view. Column View To check the page status for example if the page is published or not, you need to click on individual page. Due to that the overall pages status in not visible in a glance. Maximum number of AEM user use this view to navigate through the pages. but none of the view gives more accurate information like if the page is unpublished that means is it never published or unpublished later? Whether the page is modified after the publish or before the publish? And it is impossible to get all this information visually. The same concern and improvement demand is raised by AEM Community User at https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager-ideas/published-status-visualization/idc-p/461069 What can be done to improve visualisation The inspiration can be taken from class
Trying to generate PDF using "Communications document generation" API. Doc URL - https://adobedocs.github.io/experience-manager-forms-cloud-service-developer-reference/api/sync/#tag/Communications-document-generation-synchronous-APIs Sample code suggest we can use URL. When I tried with my xdp on Azure blob with readonly public access and content type as plain text then PDF generation fails with "Error 400 The specified template is not valid. Specify a valid template and retry." // You can also pass a URL for the template and set the content type to text/plain builder.addTextBody("template", "https://forms.enablementadobe.com/content/ocrfiles/address.xdp",ContentType.TEXT_PLAIN); Any clue? why?
Hi ,I am using coral touch ui sling:resourceType="granite/ui/components/coral/foundation/form/pathbrowser" when user selects the required path in touch ui dialog it must append .html at the end .How to achieve itThe xml data i have is <accessLevelPathjcr:primaryType="nt:unstructured"sling:resourceType="granite/ui/components/coral/foundation/form/pathbrowser"fieldLabel="Access Level Page Path :"name="pagepath"rootPath="/content">Thanks
Dears As shown in the figure below, the contentfragment list of all projects cannot be displayed, and the list of individual projects can only be displayed by direct access through the url. Does anyone know the reason?
I am trying to understand if there is a way to store pdf and XML files on Adobe experience cloud - AEM sites.
Zero to Hero: Starting and Scaling a Personalization Program Presented by: Kaitlin White, Adobe Target Product Marketing Manager (aka @kaitlinwhite) and Heather Adkins, City National Bank SVP, Marketing Technology Manager Date: Thursday June 28th, 2022 It takes hard work and strategic planning to build up your personalization program and go from zero to hero, but the effort is well-worth the results. Ready to level-up your personalization program, or maybe you’re not sure where to start? Don’t fret — we’re bringing in industry expert Heather K. Adkins of City National Bank to share the winning strategies she’s used to build and scale their optimization program from 15 to 102 activities and increase conversions by 104% in just two years. Join us to hear about: Establishing a culture of optimization at your organization Building a scalable program (even if resources are limited) Choosing which Adobe Target capabilities to start with and how to increase your adopti
Don't miss this livestream session regarding data collection for the Adobe Experience Cloud. Our experts will provide a deeper dive into Adobe's advanced data collection capabilities, including functions like data prep for data collection. See how to configure Datastreams and how/when to use the data prep mapper tool.When: Thursday, July 21st at 9am PDTRegister: https://engage.adobe.com/ExpLeagueLive-220721.html Thanks and hope to see you there!
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.