Quantcast
Channel: Experience Management - Experience Delivers
Viewing all 32 articles
Browse latest View live

Previewing Adobe Managed Services at Connect Web Experience

$
0
0

Adobe Managed Services will be back at Connect Web Experience. Last year’s conference was packed full of great content and this year looks even better.

Last time we introduced you to Adobe Managed Services and how we manage AEM customers on the Amazon Web Services (AWS) cloud platform. We had a fantastic time talking to you all, and so this time around we want to go even deeper into our operations stack. We will show you how we handle complex, geographically distributed AEM deployments running in AWS and explain key configuration changes we’ve made in order to optimise architecture and operations for a cloud hosted solution. We’re bringing an Adobe Professional Services consultant on stage with us to talk through one of our most architecturally challenging joint projects; a globally replicated DAM cluster which uses a shared S3 bucket to provide a single content model to all users.

We’ll then talk through how we’re moving the system to AEM 6.1 MongoMK to make that end user experience even better. In addition, we will walk you through some of our other geographically dispersed, high traffic projects and what we’ve done to optimise the performance. Finally, we’ll talk through the AEM 6 tuning and HA configurations we’re using to ensure our customer environments are fast and stable in the cloud.

Look forward to seeing you all!

The post Previewing Adobe Managed Services at Connect Web Experience appeared first on Experience Delivers.


Importance of Software Quality

$
0
0

I’m very much looking forward to the Connect’15 conference which takes place in Basel this week. The size of the conference was just right for me in the previous years, providing ample opportunity to meet AEM and Sling community members without being overwhelmed by the crowds, and this year’s program looks great!

The title of my talk is “Thoughts on software quality — and how does Apache Sling look?” I’ll present my view of the various axes on which one can measure software quality — obvious things like robustness, performance, flexibility and also less frequently discussed aspects like transparency, testability, relentless focus and a few other things.

Although software engineers will (hopefully) agree that quality is important, how one measures quality can vary greatly, so it is useful to discuss that. We’ll use Apache Sling as our guinea pig for our quality evaluation, to help describe the quality axes on a concrete basis.

This talk should help software developers and designers get a fresh view on quality, with pointers to how to improve it. If people walk out of my talk with more questions than answers I’ll be happy as well — quality is one of those ongoing quests in our journey towards perfect software, a quest in which we need to constantly adapt to changing needs and tools.

Looking at the program this might be one of the most “philosophical” talks of the conference, and I’m very happy that the organisers chose to schedule it — reflecting on how to improve our craft is particularly important when working on long-lived systems like the ones that we build with AEM and Apache Sling.

See you in Basel!

The post Importance of Software Quality appeared first on Experience Delivers.

Customizing AEM Touch-Optimized UI

$
0
0

I’m really looking forward to speaking at Connect Web Experience this year. I’ll share a session with Andreea Corbeanu where we will present you the newest features we’ve introduced in AEM 6.1 to help you customise the touch-optimized user interface.

Since AEM 6.0, we have made a point of providing a UI that not only could operate on both mobile and desktop devices, but that also is easily customisable by customers. Therefore, the latest release of AEM comes with new extensions points as well as with exciting features.

In our session, we’ll present you the following three topics:

Extending a Component dialog by providing only the missing pieces using the Sling Resource Merger

Previously, when extending a Component, you had to copy/paste the dialog of the super component and then adapt it. Now, you can effectively inherit the super dialog and only specify the different parts thanks since the Sling Resource Merger is able to merge resources based on their sling resource super type.

Creating and reusing custom Search Facets to enhance search abilities across the product

With AEM 6.1, you’ll be able to conveniently configure all of the search forms available throughout the product with a convenient editor on the one hand, and also to save particular search parameters so that you can quickly reuse them later on the other hand.

Adding a custom field to the Page Properties Bulk Editing

The latest release of AEM allows you to open and edit multiple Page Properties at the same time in the Bulk Editing interface. In this part of the talk, we’ll show you add to add a custom page property to the Bulk Editing interface.

The post Customizing AEM Touch-Optimized UI appeared first on Experience Delivers.

Integrations with Adobe Experience Manager

$
0
0
I’m looking forward to meeting many of you at Connect Web Experience in Basel. I’ll be leading a session “Adobe Experience Manager 6 Digital Asset Management: Integrations, Integrations, Integrations.”
What integration we are talking about? As part of the demo creation team and we often have a simple job — impress the AEM future customer. While our team works under tight timeframes to create complex solutions, we are able to create working prototypes leveraging superb AEM integration capabilities. Customers prefer to have solutions roughly working from start to end rather than polished fragment of this solution and rest as fairy tale.
During my session at Connect I will present integrations that extends DAM capabilities:
  • FrameMaker integration (what is FrameMaker huh? The tool still used by serious technical writers http://www.authorxml.com/)
  • PhantomJS and SlimerJS (scriptable Firefox and Chrome HTML rendering engines)
  • GeoSpatial AEM (did you know how good spatial indexes we can create with AEM and SOLR?)
During the session I will focus on visual effect, but I know that in many cases implementation code is as important as result. As software engineers it is not enough for us to know IF some prototype is working, but also HOW?
Feel free to connect with me on Twitter and GitHub.

The post Integrations with Adobe Experience Manager appeared first on Experience Delivers.

Dive into AEM Extension Points at Circuit

$
0
0

Since AEM 6.0, we’ve made a point of pro­vid­ing a UI that operates on both mobile and desktop devices, and is also easily customizable. You can learn more at CIRCUIT August 4-5 in Chicago. Following this direction, AEM 6.1 comes with new interesting UI extension points:

Extending Component dialog by diff

The Sling Resource Merger has been introduced in AEM 6.0 to allow easiest and upgrade-compatible customization of the UI consoles. In AEM 6.1, we can now leverage the same technique to extend Component dialogs.

Customizing Page Properties views

The different views of the Page Properties (Create Page wizard, Edit Page Properties, Bulk Edit Page Properties) are now easily configurable by simply using convenient flags in a single content structure.

Configuring Search Forms

All of the Search Forms available in the product could be also configured using a convenient WYSIWYG editor, and particular search parameters can be saved and reused.

Want to learn more and get your questions answered by the Adobe engineers

Join Andreea Corbeanu and myself in Chicago August 4-5 at CIRCUIT, maybe we can even grab a beer! Grab your ticket now here.

The post Dive into AEM Extension Points at Circuit appeared first on Experience Delivers.

Adobe Named a Leader in 2015 Gartner Magic Quadrant for Web Content Management

$
0
0

Gartner has once again named Adobe Experience Manager as a leader in its Gartner Magic Quadrant for Web Content Management. This is the fifth consecutive year the team has been recognized for our leadership in this market. It’s especially exciting news coming on the heels of Adobe Experience Manager also being named a leader in Gartner’s Magic Quadrant for Mobile App Development Platforms.

We believe this leadership recognition of Experience Manager in both these categories speaks to the continued innovation by Adobe’s product team, partners and customers. We feel it also illustrates the investments we are making to rapidly evolve Experience Manager as customer expectations shift faster and faster to mobile everywhere experiences. People are expecting brands to seamlessly engage with them across websites, mobile apps and even traditionally analogue experiences with in-venue screens.

With even conservative predictions that by 2020, there will be 35 billion connected devices shipped, the opportunity and challenges we face with mobile will only mushroom with the onslaught of the Internet of Things. Technology to support the digital transformation of customer experiences should be simple, yet powerful. Experience Manager, is not only a solution ready to take on the web content management challenges of today, but the mobile and Internet of Things experiences of today and tomorrow. A single solution for managing rich assets and delivering digital experiences across websites, apps, online communities, forms and even the recently announced shoppable video capabilities.

I am fortunate to be in the middle of a two week tour with customers and partners. I’ve been sharing how Adobe sees customer experiences evolving and the innovations we are bringing to market, which will continue to give the organizations that use Experience Manager the competitive edge.

Content Velocity 

Content marketing has become a critical focus as brands realize they need to the need create, manage and deliver relevant and delightful content across the customer journey. Content velocity, how quick a brand can harness creativity and marshall it into experiences that reach the intended audiences at the right moments is a defining competitive advantage in this digital age. To give brands this unique design advantage, Adobe has not only the leading web experience management solution, but also the solution connects to Adobe Creative Cloud in a way that accelerates the cycle from creativity to customer impact. In June, we announced an even greater connection between Adobe Experience Manager and Adobe Creative Cloud. This innovation brings together the world’s best creative tools and also content sourced via Adobe Stock (formerly Fotolia) with the industry-leading digital experience management solution.

This past week, we also introduced the availability of shoppable video which brings content consumption ever closer to commerce. With global video consumption growing, especially via mobile apps, now any video that is delivered with Experience Manager can be made shoppable and interactive with a few simple steps in Experience Manager.

Mobile Everything

We recognized a couple of years ago that a platform that just supported web experiences was not enough. To truly deliver digital experiences that have the greatest impact with customers, Experience Manager needed to manage and connect a brand’s web experiences with those that happen in mobile apps and even in-store venues.

While the responsive grid capabilities of AEM makes it easier to design responsive sites, Adobe Experience Manager Apps enables marketers to manages mobile apps created across Adobe Digital Publishing SolutionAdobe PhoneGap and even native apps. Across sites and mobile apps, Experience Manager lets marketers have consistent content management, analytics, personalization and governance. We just announced new features in Adobe Digital Publishing Solution which is available as part of AEM Apps. The launch event in New York showcased the mobile apps initiatives from brands such as Shell, Qantas and University of North Carolina. I invite you to check out the latest launch of Adobe Digital Publishing Solution.

Cloud Agility

One of the fastest growing options for Adobe is our cloud offerings, both managed services and SaaS. Adobe Experience Manager is the only solution that gives companies the option to manage the technology themselves or have Adobe manage it as a service on their behalf. Based on the ROI savings and evermore shorter time-to-market needs, more IT and marketing departments are turning to Adobe as the trust partner to manage Experience Manager as a service that scales globally and with great agility to scale to the consumer demand needed. In one particular scenario, a brand was able to offload the management of intense traffic spikes due to a campaign they were running in conjunction with a global sports events.

We also made available Experience Manager’s digital asset management and delivery as a SaaS offering to make it even easier for organizations to share valuable assets that are the foundation of any digital experience. As digital experiences span more devices and seep into everything we do, the cloud offerings for Adobe Experience Manager give organizations unprecedented speed to deployment, customization options and the elasticity to scale.

Unified Experience

We have exposed more of Adobe Analytics and Adobe Target capabilities with Experience Manager to provide a simple way to gain data insights and target content to various audiences. Building on top of the leading analytics and personalization engines means you get the full power of predictive and engagement analytics and testing across touch points should you need them now or in the future.

Adobe Experience Manager for All 

Adobe’s mission is to the change the world through digital experiences. With Adobe Experience Manager and Adobe Marketing Cloud, we have helped the top brands, such as Nissan and Citrix on this journey.

“Adobe Experience Manager gives us the tools to take control of content to deliver a more accurate and personalized experience for people inside and outside our company,” says Michael Berg, director of web product management, Citrix. “By building our foundation of Adobe Experience Manager, we can expand communications for all internal and external customers.”

However, over the past several years, we have seen a growing demand from mid-size organizations as well who realize they face the same digital customer experience expectations as large enterprises. Customers do not adjust their expectations because of a company’s size. This is well understood by companies such as MedHost. And the complexities to integrate with the rest of the organization’s technology stack is often just as demanding as was the case with My Move with the help of Adobe partner ICF.

Integration with our back-end systems was key because those systems help drive revenue and improve the services we provide to consumers,” said Jon Herberger, senior vice president and CIO, My Move, an advertiser-funded website that offers information, support and special offers related to moving for nearly 600,000 unique visitors per month. “Adobe Experience Manager, along with ICFI’s expertise, enabled all our integrations, whereas many other content management systems were unable to do so or were overly complex.”

“Our clients have entered a new reality where the digital experience is no longer a luxury — but an expectation. Their customers expect mobile optimized experiences. They expect personalization. They expect a message that speaks to them as an individual, not as part of the masses,” said Matt Van Bergen, senior vice president for ICF Interactive. “This has led to organizations going through a massive digital transformation that is evaluating all parts of their business and their agility to react to customer demands. Adobe Experience Manager, cloud and commerce solutions, and the entire Adobe Marketing Cloud has played a part in that digital transformation and we’re guiding them through this transition to revolutionize the engagement they have with their customers.”

At the end of this past April, we announced we announced a specific offering of our enterprise-class web experience management solution for mid-size companies.

Get your complimentary copy of Gartner’s Magic Quadrant for WCM and Gartner’s Magic Quadrant for MADP. I also invite you to check out a recent podcast interview with our very own Irina Guseva and Tim Walters, co-founder and Principal Analyst of Digital Clarity Group discussing the needs and opportunities web content management and customer experience management for mid-size organizations.

Here’s to our success and our continued partnership. The future of digital is ours to imagine and create! Let’s collaborate on how Adobe Experience Manager and Adobe Marketing Cloud can help your organization make the most of it.

Gartner does not endorse any vendor, product or service depicted in its research publications, and does not advise technology users to select only those vendors with the highest ratings or other designation. Gartner research publications consist of the opinions of Gartner’s research organization and should not be construed as statements of fact. Gartner disclaims all warranties, expressed or implied, with respect to this research, including any warranties of merchantability or fitness for a particular purpose.

The post Adobe Named a Leader in 2015 Gartner Magic Quadrant for Web Content Management appeared first on Experience Delivers.

Increase engagement and simplify authoring with AEM Forms 6.1 FP 1

$
0
0

Create engaging mobile-friendly forms more easily, support more mobile devices, and automatically insert targeted experiences in forms and documents with AEM forms.

Governments, financial institutions, and other regulated industries use AEM forms to streamline the home stretch of a customer journey, simplifying digital enrollment and making it part of a consistent experience available to anyone with a computer, tablet, or smartphone. Adobe Experience Manager forms  6.1 Feature Pack 1, released November 20, includes many features to help you develop engaging forms more quickly, personalize forms and documents to increase conversions and cross-sell, and extend reach to more devices. Here are a few release highlights:

  • A rule editor allows you to add dynamic behavior and build complex logic into forms without coding or scripting. For example, when a user types a zip code in the zip code field, you can invoke a web service to retrieve City and State data, further simplifying form filling for clients.

AEM Forms dynamic behavior

  • Defining adaptive panels as fragments allows you to reuse content across many forms, streamlining form creation and updates and ensuring form consistency.
  • Enabling an Adobe Target framework in an adaptive form image component allows you to deliver more personalized experiences based on configurable rules, offering new cross-sell opportunities.
  • A configurable charts component (for pie, donut, bar, column, area and other chart types) lets you visually represent data in adaptive forms and documents.

forms graphic 2

  • The AEM forms mobile app is now available in the Google Play Store for Android tablet users, and is also supported on Microsoft Surface devices and desktops running Microsoft Windows 8.1 and 10 operating systems.
  • Adaptive and HTML5 forms and documents are now supported on Q10 and Z10 Blackberry devices

Visit this page to find out more about what’s new in AEM forms 6.1 Feature Pack 1. The Feature Pack 1 release notes include installation and upgrade information.

The post Increase engagement and simplify authoring with AEM Forms 6.1 FP 1 appeared first on Experience Delivers.

AEM forms rule editor simplifies authoring of business rules in dynamic forms

$
0
0

Do you ever wonder in a form why you see a field for spouse name when the marital status you specified is single, or get validation errors only at the end when submitting a form, or having to manually compute your total family income? Shouldn’t the form be intelligent enough to figure out these things based on your inputs?

One of the key performance indicators of any digital form transaction is its conversion rate, which corresponds to the rate of form submissions. Intelligent and simplified form filling experiences, among other factors, significantly contribute to increased customer satisfaction and higher conversions. As forms technologies are evolving, customers expect faster turnaround time when filling forms. On the other hand, organizations strive for greater accuracy and check for business validations when capturing data.

Creating dynamic forms with business logic and that adapt to user inputs is a step in the direction that can help businesses optimize their form filling experiences and meet conversion goals.

Adobe Experience Manager 6.1 forms feature pack 1 introduces rule editor that empowers both business users and developers to build complex logic as rules in adaptive forms. These rules are defined to trigger actions on form objects and the form itself by evaluating conditions based on user inputs. The rules make adaptive forms dynamic resulting in simplified and enhanced form filling experiences.

Interesting enough? Let’s dig a little in to the salient features of AEM forms rule editor.

Variety of actions to make forms truly dynamic

In rule editor, you can write rules to dynamically perform various actions on form objects and the form, including:

  • Show or hide objects.
  • Enable or disable objects.
  • Set value of objects and object properties.
  • Invokes a web service to perform an operation.
  • Clear the value of an object.
  • Set focus to an object.
  • Save, submit, reset, and validate the form.
  • Add or remove instances of repeatable panel and table row.

In addition, you can write complex rules that include multiple condition and action statements using AND or OR operators. You can also use built-in functions and write mathematical expressions in rules to compute values and assign them to form objects.

Intuitive user interface to write rules effortlessly

Rule editor is for everyone, whether you are a business user or a developer. It provides two modes — visual editor and code editor — to help you create rules.

AEM froms visual editor

The visual editor mode of rule editor empowers business users to write rules themselves. It reduces their dependency on developers to write code for them to add dynamic behavior to forms. The visual editor is simple yet powerful interface that allows business users to simply drag-drop form objects and select operators to quickly write complex rules. In addition, rule editor automatically generates JavaScript code for rules written in the visual editor. You can switch from visual to code editor to view the generated code.

The following displays a rule in the visual editor to show the Spouse Salary field only when the value specified in the Marital Status field is Married.

visual-editor

AEM forms code editor

Developers who are proficient and comfortable with writing JavaScript code can take advantage of the code editor mode to write rules. In this mode, you can write new rules or modify existing rules in the code editor.

The following shows the auto-generated code for the rule created in visual editor shown above.

code-editor

Easy management of rules to bring peace of mind

Rule editor provides an interface where you can view rules and perform actions like create new rules and view, sort, delete, and edit existing rules.

manage-rules

Backward compatibility to preserve your existing scripts

If you are an existing AEM forms customer and planning to upgrade to AEM 6.1 forms feature pack 1, you must be wondering what will happen to your existing scripts post upgrade. Well, there is good news!

All scripts created in existing AEM forms version will be retained in the new rule editor when you upgrade. You can view and modify them in the code editor. Note that the Scripts tab you see in previous  versions is replaced by the AEM forms rule editor in feature pack 1.

I hope you are enthused by now to lay your hand on the cool new rule editor and geared up to create dynamic and delightful experiences for your form users. To get started with using rule editor, see Using Rule Editor Help.

Here’s wishing your customers a delightful form filling experience!

 

The post AEM forms rule editor simplifies authoring of business rules in dynamic forms appeared first on Experience Delivers.


AEM Technical Webinars 2015 Wrap Up

$
0
0

Welcome to 2016! I hope everyone’s year is off to a great start. We have some great technical webinars planned for Adobe Experience Manager (AEM) in 2016, starting with next week’s GEMs session on Oak Lucene Indexes, presented by Chetan Mehrotra and Alex Parvulescu from Adobe Engineering. But before that happens, I wanted to take a look back on last year. As a reminder, we run two separate Experience Manager technical webinar programs: GEMs exposes developers and users to cutting edge features from the engineers and product managers creating and defining the latest release. The Ask the AEM Community Experts series brings in a wider group of speakers and is orientated towards getting the most out of your current AEM implementation projects.

January

In January, Gabriel Walt and I kicked off the year with a sneak peek of some of the features targeted at developers which we were going to be announcing as part of the AEM 6.1 release. We covered everything from some of the repository enhancements in Oak through to new capabilities in the AEM Brackets plugin and beyond. The next week we had two great sessions. First Scott MacDonald, Gabriel Walt, and Feike Visser did a Sightly deep dive which walked through a variety of Sightly component development topics. And then Dominique Pfister from AEM Engineering and Andrew Khoury from AEM Support presented some great content around some new Dispatcher features for caching and optimization.

February

February included the release of a Feature Pack for AEM Forms and to start off the month, Steve Monroe and Girish Bedekar presented some of the new features and some great new samples included in this feature pack. A bit later in the month, David Catalan from the Adobe Quality Engineering team presented on how Adobe uses SonarQube to track software quality and how our customers can do the same on their AEM projects. Finally, I did an Ask the Experts about Login Based AEM sites in which I tried to answer some of the questions I’ve seen come up over the years on the AEM Forums.

March

March’s Ask the Experts was led by Adobe engineer Will McGauley did a deep dive into AEM Workflows. This session answered some burning questions about using the AEM Workflow engine and is definitely recommended for advanced AEM developers.

April

In April, Sreekanth Choudry Nalabotu from Adobe Consulting led an AEM technical webinar on Touch UI components session with support from Scott MacDonald. Sreekanth has been documenting his adventures with AEM for some time on his blog which has been required reading for AEM developers. Sreekanth started with some comparison of the Classic UI and the new Touch UI and walked through some of the steps that he has personally used to debug and troubleshoot Touch UI components.

May

In May, Lokesh BS from Mindtree and Scott MacDonald took a step down the stack in their Ask the Experts session on Apache Sling. If you wanted to learn more about Sling Selectors, Default Sling Post Servlet, Sling Models, and the Sling API, then this was the session for you.

June

June brought us a Tips & Tricks session from Gabriel Walt all about the Touch UI Sites interface. (You may need to enter a passcode for this session, it is AEMSitesUI) With the release of AEM 6.1 in the spring, this was a hot topic and there was a lot of interest in using the new user interface. Also that month, Tyler Rushton, who manages the AEM Documentation team, and Scott MacDonald presented a session where they walked through how the AEM Documentation is updated and maintained. It was a fascinating insight into how Adobe internally uses AEM.

July

The dog days of summer may start (at least in the Northern Hemisphere) in mid-July, but we packed in three great AEM technical webinar sessions in the latter part of July. First, AEM Product Manager Bertrand de Coatpont presented a Gems session on some of the new AEM Communities features in AEM 6.1 which enables the creation of online community sites with no development effort. Then Scott MacDonald and AEM community member Jaisan Sunny did as Ask the Experts session on some advanced component development topics. Finally, Tobias Bocanegra, Adobe Principal Scientist, did an indepth presentation on the Oak External Login Module which represents a significant change in how AEM integrates with external identity management systems like LDAP directories.

August

In August, Dan Klco from 6th Dimensions presented a really interesting session on the integration between AEM and Adobe Campaign. And then I returned to the AEM Gems stage with a presentation on ACS AEM Commons & Tools. It is a topic near and dear to my heart and there was some great feedback on the session.

September

September started with a Gems session by Martin Buergi and Markus Haack from AEM Product Management and Engineering, respectively, introducing a new integration between AEM and IBM Websphere Commerce. A bit later in the month, Adobe Super Hero and prolific blogger Joerg Hoh did an Ask the Experts session on Dispatcher caching.

October

October had two great Gems sessions. First, Christanto Leonardo and Christian Meyer from AEM Engineering presented on how to create custom widgets for Touch UI dialogs. As more of our customers move to a Touch UI-first approach, implementing more complex dialogs has become more and more common so this was definitely a welcome presentation. The following week,  Bertrand Delacretaz and Tomek Rekawek did a deep dive into the AEM upgrade process explaining common scenarios and gotchas. Incidentally, this was Tomek’s fourth month at Adobe (although he’s been using AEM/CQ for over 4 years) and it was great to see him jump right into our webinar series. The month ended with an Ask the Experts session conducted by Scott MacDonald and Russell Whitchurch about AEM integration with other Adobe Marketing Cloud solutions.

November

The last Ask the Experts session of the year was presented by Ken Beaton, Simon MacDonald, and Bruce Lefebvre from AEM Engineering on AEM Apps. Mobile is obviously a huge focus area for Adobe, our customers and partners, so it is great to see how developers can translate their existing AEM skills into the mobile application world.

December

Our last Gems session of the year was presented by David Catalan as a follow up to his presentation from February on SonarQube. This time David did a deeper dive into using SonarQube for JavaScript quality metrics. It was a highly illuminating session and a great way to end the year.

Looking back, 2015 was a great year for the AEM community, but we’re just getting started. If you missed any of these sessions (or maybe just forgot about them), now is a great time to catch up. And remember to come to the first AEM Gems session of 2016 on Wednesday, January 20 to learn more about Oak Lucene Indexes.

The post AEM Technical Webinars 2015 Wrap Up appeared first on Experience Delivers.

Digital asset management for web pages with AEM Assets

$
0
0

Consider a scenario where you are creating a blogging website, and you want to use Adobe Experience Manager (AEM Assets – digital asset management platform) as your media library. You can use Asset Selector to integrate your website with Adobe Experience Manager (AEM Assets). Post integration, you can import images and their associated metadata from the AEM Assets repository into your HTML pages (web pages).

Asset Selector is an AEM Assets interface that displays AEM assets. It is set up as a URL (http://<host>:<port>/aem/assetpicker). You can integrate it with your HTML page through an iframe, a pop-up window, or a new tab.

Asset Selector interacts with your web page using the HTML5 Window.postMessage communication protocol. For details, see The Window.postMessage method and Cross-document messaging.

Asset Selector uses the following structure (response object) to send data and actions (such as Done, Cancel, and so on):

Object {

config: Object

action: “done”

data: Array[1]

0: Object {

img: “http://<host>:<port>/content/dam/geometrixxoutdoors/products/equipmen
t/Sparrow.mov/_jcr_content/renditions/cq5dam.thumbnail.319.319.png”

path: “/content/dam/geometrixx-outdoors/products/equipment/Sparrow.mov”

size: “93.7 KB”

title: “Sparrow”

type: “video/quicktime”

url: “http://<host>:<port>/content/dam/geometrixxoutdoors/products/
equipment/Sparrow.mov”

. . . }

The following sections demonstrate how you can easily integrate Asset Selector with your web page. I am assuming that you have already been authenticated to the AEM instance.

Note: This exercise is applicable to AEM releases 6.0 and 6.1.

Integrate Asset Selector

Before you can use Asset Selector, you’ll need to add a few elements in your web page to fetch the asset’s metadata when you launch Asset Selector. Your web page can reside within or outside of AEM.

  1. In your web page, (for example, Sample.html) include the following:
    • An input element (for example import) that triggers the AEM Asset Selector page
    • A Div tag where you display the metadata fetched from the asset
    • An iframe skeleton (include this if you want to launch the Asset Selector page as an iframe)

SampleWebPageCode Select_Asset

  1. Include JQuery code in the Header section of your HTML page.
  2. Review the following code snippet for reference:

<!DOCTYPE html>

<html>

<head>

<title> My Sample Page </title>

<script

src=”http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jqu
ery.min.js”></script>

<script src=”sample.js”></script>

</head>

<body>

<div>

<h1> Fetch Assets from AEM </h1>

<!– Input element which would trigger the AEM Asset
Selector launch–>

<input type=”button” data-style=”iframe” class=”import_assets_activator” value=”Import”

Data-assetPickerURL=”http://localhost:4502/aem/assetpicker”/>

</div>

<div class=”asset-info”>

<table border=”2″>

<!– content goes here –>

</table>

</div>

<!– Open AEM Asset Selector in iframe & choose assets to
be picked –>

<iframe class=”content” width=”500px” height=”700px”
seamless>

<p>Your browser does not support iframes. </p>

</iframe>

</body>

</html>

  1. Include a custom java script (e.g. Sample.js) that does the following:
    • Adds a handler for the Import button, which accepts the Asset Picker URL as input and displays Asset Selector in a pop-up window, iframe, or tab
    • Binds a listener with any method (e.g., receiveMessage) to your page through the HTML5 window.postMessage protocol, which enables the message event to receive data from Asset Selector. The listener validates the message origin.
    • Validates the origin in the receiveMessage method before processing the data.
    • Parses the incoming data, which should follow the sample structure described above.
    • Displays the data in the Div tag created as part of step 1. Review the following code snippet for reference:

(function (document, $)
{

“use strict”;

var popup, assetPickerURL,

mode = “multiple”,

type = “”,

style = “popup”;

if (window.addEventListener){

window.addEventListener(“message”, receiveMessage, false);

} else if (window.attachEvent){

window.attachEvent(“onmessage”, receiveMessage, false);

}

$(document).ready(function (event) {

$(“iframe.content”).hide();

assetPickerURL = $(“.import_assets_activator”).data(“assetpickerurl”);

style = $(“.import_assets_activator”).data(“style”);

});

 

$(document).on(“click”, “input.import_assets_activator”, function (e)

{ var url = assetPickerURL;

 

if (style === “iframe”) {

_ iframe(event, url);

} else {

_ popup(event, url);

}

});

function receiveMessage(event) {

// Don’t accept messages from other sources!

if (assetPickerURL.indexOf(event.origin) != 0) {

return;

}

var fromDam = JSON.parse(event.data);

if (fromDam.config) {

var configFromDam = fromDam.config;

if (configFromDam.action === ‘close’ || configFromDam.action === ‘done’) {

if (popup) {

popup.close();

}

$(“iframe.content”).hide();

$(“.asset-info”).show();

 

}

if (fromDam.data) {

if ($(“div.asset-info table .header”).length === 0) {

$(“div.asset-info table”).append(“<tr class=\”header\”>” +

“<th>Thumbnail</th>” +

“<th>Title</th>” +

“<th>URL</th>” +

“<th>Type</th>” +

“<th>Size</th>” +

“</tr>”);

}

var dam_detail = fromDam.data;

for (var i in dam_detail) {

$(“div.asset-info table”).append(“<tr><td><img class=\”thumbnail\” src=” +

dam_detail[i].img + “></td>” + “<td>” + dam_detail[i].title + “</td><td>” +

dam_detail[i].url + “</td><td>” + dam_detail[i].type + “</td><td>” + dam_detail[i].size +

“</td></tr>”);

}

}

}

function _popup(evt, url) {

popup = window.open(url, “dam”,

“left=25%,top=25%,height=800,width=800,status=yes,toolbar=no,menubar=no,location=yes”);

}

function _iframe(evt, url) {

$(“.asset-info”).hide();

var popup = $(“iframe.content”).get(0).contentWindow;

$(“iframe.content”).attr(“src”, url);

$(“iframe.content”).show();

}

})(document, jQuery);

Testing your web page

After modifying the source code of your HTML page (Sample.html) based on the instructions in the previous procedure, open it in any browser. Perform these steps to test whether Asset Selector launches properly, and you are able to import assets and metadata:

  1. Click the Import button to launch Asset Selector.
  2. Select one or more assets from the Asset Selector page, and click Done.

Select_Asset

  1. Check whether Asset Selector propagates the assets’ metadata to your page (Sample.html).
  2. To launch Asset Selector with a different context, add parameters in the Asset Selector URL. For details, see Cross-document messaging.

References

[0] The Window.postMessage method

[1] Cross-document messaging

[2] Asset Picker (AEM Assets)

 

The post Digital asset management for web pages with AEM Assets appeared first on Experience Delivers.

If You Build It: How Developers Enable Agile Marketing Teams

$
0
0
re-post from Adobe Digital Marketing Blog

How Developers Enable Agile Marketing Teams

The evolution of digital-marketing tools has transformed the way marketers think. Our workflows have transformed from hand-writing lead cards to feeding a digital-experience management engine. When we sit down to compose content, we are already attempting to connect these assets to monitor performance and assess ROI. Modern marketing tools are integrated across all marketing functions.

The marketing tools we use are only as useful as their designs. Marketers need their tools to be simple and fast to use, easy to understand, and able to function without knowing code. When a marketer wants to perform a function, the developer must create a tool that not only makes that desire a reality, but also allows the marketer to use it instinctively while maintaining intuitive customer experience as the end goal. An emerging group of program managers who helped build this experience can speak “marketese” and “code talk.” They facilitate sessions between developers and marketing experts so the developers can see how the end user is working. This coordination helps developers deliver better products. In turn, this allows marketers to provide a better-designed, more-strategic experiences for digital customers.

The best indicator of how well a marketing tool has been developed is how well it allows marketers to react to the market. They should be able to update content in a timely manner — without needing to involve Information Technology (IT). Extensive template use should make it easier to perform tasks such as updating forms or changing content on a mobile app. IT should not be required to own content; marketers possess the content through a system of owners and permissions so they don’t step on each other’s work. IT provides and maintains the tools that the marketers use to manage content. All of these factors show how well the developers have communicated and laid out the requirements for given tasks. A well-integrated platform supports developers, making it easier for them to create these marketing experiences. It also benefits IT to allow resources to be focused on mission-critical tasks rather than overall maintenance.

Another key indicator of a well-designed tool is that it uses open standards in its development. This ensures there is a community of contributors who support the standards and help the users of this technology. Adobe’s community consists of developers who are Adobe employees as well as developers who work for our customers and partners. We are committed to providing developers with the knowledge they need to do their jobs better — no matter where they work.

immerse look va

IMMERSE, Adobe Experience Manager’s virtual developer’s conference, is our latest contribution to building and supporting this community of developers. It is a virtual conference, and thus, allows the greatest flexibility in participation and is intended for all developers and operations personnel responsible for designing, developing, deploying, and maintaining Adobe Experience Manager.

The name IMMERSE reflects the type of engaging developer experiences we want to deliver with this conference. With innovations in Internet of Things (IoT), connected cars, and virtual reality (VR), digital experiences are becoming even more immersive. Developers are an important part of the Adobe Experience Manager (AEM) ecosystem, and they become increasingly important as AEM becomes the bedrock of customer experiences with mobile apps and connections to other Adobe Marketing Cloud solutions, including Analytics, Target, Audience Manager, and Campaign.

Registration for IMMERSE is available now by using promo code TB8C33, which offers a special price of $75.00 USD, allows developers to attend any of the 70 sessions live, and provides access to all of the recordings through August 31, 2016.

The post If You Build It: How Developers Enable Agile Marketing Teams appeared first on Experience Delivers.

Recap adaptTo() 2015 an AEM developer event

$
0
0

Bringing developer experts together at adaptTo()

2015 was an interesting year for Adobe Experience Manager: lots of new technologies, a new BETA version and the promise that even more exciting changes are ahead of us. This might give an explanation for the number and quality of contributions that were made in 2015 at adaptTo(). Here are our 3 top-rated talks, as picked by our attendees. Voting criteria comprised of work context, presentation of content and whether the session should be recommended to others. See all the sessions here.

#1 Modern Web Applications with Sightly

Live performance – Radu Cotescu in action

 

In his talk, Radu Cotescu (also a Sling committer) highlighted the most important changes of the Sightly templating language of the past 12 months. In that time, Sightly became a part of Apache Sling’s core bundles and was adopted by many developers. The API clean-up and performance improvements (Sightly is now on par with JSP, performance-wise) were highlighted as factors in Sightly’s continued success.

In the main part of the talk, Radu provided a comprehensive survey of best practices when working with the new API. The many code examples were clearly fleshed out by highlighting significant DOs and DON’Ts. Mind-boggling stuff indeed!

The great thing is: you can check out the recommended coding style in the open source blog engine “publick” (https://github.com/nateyolles/publick-sling-blog) – a truly modern web application built on top of Apache Sling, Sightly, AngularJS and Bootstrap.

Presentation

 #2 So how do I test my Apache Sling application?

adaptto 3

Session Recap with Davide Giannella (center), Dominik Süß (right), Radu Cotescu (far right)

Robert Munteanu began his talk with an overview of testing stages. He dived in, starting with unit tests, then moving over to integration tests, before finishing with end-to-end tests. He outlined what is required to test Apache Sling Applications and how a Sling Application can be tested. Introducing Sling mocks for unit testing OSGi Services and Sling Models, he pointed out that Sling mocks speed up unit tests.

In addition, PAX as an integration test tool used to test OSGi Bundles and Sling made an appearance, followed by a live coding demonstration and Q&A session. Overall, a great overview of Sling mocks and testing a Sling application. Thanks, Robert.

Presentation

 #3 Building AEM applications with wcm.io

Networking at adaptT0() '15

Hackathon Session – Sling Testing Table with Stefan Seifert (far right)

In his session, Stefan gave an overview of the wide range of http://wcm.io stack. It’s a collection of modular libraries and completely open-source (hosted by pro!vision). Libraries and extensions are helpful in creating a sophisticated Adobe Experience Manager application. Modules are easy to use and ship with default scenarios. There are tons of extension points, where you can modify the behaviour to your own needs.

Just to name a few things:

  • Sling Models injectors to easily access Experience Manager objects. For example PageManager, WCMMode and I18n
  • AEM Mocks for better unit testing
  • Configuration mechanism with inheritance support and a ready-to-use touch ui configuration editor
  • … and many more.

Presentation

Call for Presentations 2016

We expect that 2016 will be as succesful as 2015 in terms of high quality contributions from the developer community. Learn how to share your project or topic with your peers here. Submission deadline: 22.04.2016. Remember speakers receive a free pass! For futher information, feel free to contact papers@adaptto.org . Not up for presenting– we’re offering an early bird ticket this year. Get a 20% discount on your tickets until 30.4.2016  http://adapt.to/tickets.

The post Recap adaptTo() 2015 an AEM developer event appeared first on Experience Delivers.

AEM Assets Touch UI Customizations Part 1

$
0
0

AEM Assets Touch UI Customization – Part 1

AEM Assets helps you create, manage, and deliver images, video, and other content to any screen or device. It provides a robust touch UI with responsive design for the author environment. You can customize the user interface to help you manage your assets better and run workflows more efficiently.

This is the first of a series of exercises to make custom changes to the AEM Assets user interface and its workflows to suit your business needs.

Applying MIME-type restrictions during asset upload

To add to your digital asset portfolio or stock image selection in AEM Assets, you can let users upload various types of assets (images, PDF files, RAW files, and so on). However, as an administrator, you may want to control the type of files users can upload. For example, you may want to restrict users from uploading video files to ensure that they only upload images to AEM Assets.

Alternatively, you may want to prevent the upload of images in a particular format because you no longer want to renew the license for the software required to edit such files types. You can also restrict users from uploading scanned images in PDF format to eliminate chances of malware being attached to these files.

This exercise helps you understand how you can easily impose MIME-type restrictions to the upload of assets to AEM Assets 6.1 by making small configuration changes to the corresponding content node within the CRX repository.

Important: To ensure that you do not lose your changes, press Save after you create, update, or edit a node or property.

  1. Launch Experience Manager in a new browser window.
  2. Launch CRXDE Lite from the URL http://localhost:4502/crx/de/index.jsp.
  3. Navigate to the fileupload node at /libs/dam/gui/content/assets/jcr:content/body/assetscontent/header/items/default/items/fileupload.
  4. Right-click the fileupload node, and select Overlay Node.
  5. In the Overlay Node dialog, select the Match Node Types check box, and click OK.
  6. Review the structure of the fileupload node, and ensure it matches the following:
    Blog 1
  7. Select the fileupload node and add the following property:
    Name: mimeTypes
    Type: String []
    Value: image/png

mimeTypes is a multi-value property and supports wildcards. If required, you can use the following alternative configurations:

a. Configure mimeTypes to enable users to upload multiple MIME types:
Name: mimeTypes
Type: String[]
Value: image/png, image/jpg

b. Configure mimeTypes to enable users to upload all types of images:
Name: mimeTypes
Type: String
Value: image/*

  1. Click Add, and then click Save All. Ensure that the values match the details displayed:
    Blog 2
  2. Click Add, and then click Save All.
  3. Open AEM assets in a new browser window.
  4. Upload a file and validate the flow. For example, try uploading a PNG file. The upload operation fails. In addition, a warning message notifies that assets of type PNG cannot be uploaded.

Applying sizeLimit Restriction during asset upload

AEM Assets lets you upload files of varying sizes. However, you may impose restrictions to the size of files that users can upload. Uploading large files usually takes a long time and can introduce performance bottlenecks in low-bandwidth scenarios and network glitches. Moreover, you may not want to invest additional resources required to process large files.

This exercise helps you understand how you can easily impose size restrictions in the AEM Assets 6.1 upload workflow by making small configuration changes in the fileupload node within the CRX repository.

  1. Launch Experience Manager in a new browser window.
  2. Launch CRXDE Lite from the URL http://localhost:4502/crx/de/index.jsp.
  3. Navigate to the fileupload node at /libs/dam/gui/content/assets/jcr:content/body/assetscontent/header/items/default/items/fileupload.
  4. Right-click the fileupload node, and select the Overlay Node option.
  5. In the Overlay Node dialog, select the Match Node Types check box and click OK.
  6. Review the structure of the fileupload node, and ensure it matches the following:
    Blog 3
  7. Select the fileupload node, and add a property sizeLimit with the following details:
    Name: sizeLimit
    Type: Long
    Value: 20000

Note: The size limit that you specify for assets in the Value property should be in bytes. For example, if you want to restrict users from uploading assets of size greater than 20 KB, specify 20000 in the Value property (20 KB = 20000 bytes)

  1. Upload a file and validate the flow. For example, upload a file of size greater than 20 KB size. A warning message notifies that assets of size greater than 20 KB cannot be uploaded and the upload operation fails.

 

 

The post AEM Assets Touch UI Customizations Part 1 appeared first on Experience Delivers.

AEM Assets Touch UI Customizations Part 2

$
0
0

AEM Assets Touch UI Customization – Part 2

Support for Customized columns in list view of AEM Assets

Consider a scenario where you want to add new columns to list view in Touch UI using Adobe Experience Manager (AEM Assets – digital asset management platform).  Similar feature is available for AEM sites (https://github.com/Adobe-Marketing-Cloud/aem-sites-extension-listview-columns). Follow the steps below to add custom columns to list view.

  • Overlaying ‘assetsavailablecolumns’ under /apps
    1. Overlay /libs/dam/gui/content/commons/listview/assetsavailablecolumns under /apps
    2. Create a node “custom” of type “nt:unstructured” under /apps/dam/gui/content/commons/listview/assetsavailablecolumns/
    3. Add the following properties  and save
Name Type Value
class String Custom
columnGroup String Other
default Boolean False
show-selector String .label .info .custom
sling:orderBefore String Comments
sling:resourceType String cq/gui/components/siteadmin/admin/pages/headers/deflt
sort-attribute String data-custom
sort-selector String .label .info .custom
sort-type String numeric
title String Custom

 

  • Overlaying ‘childasset’ under /apps
    1. Overlay /libs/dam/gui/components/admin/childasset/ under /apps
    2. Copy childasset.jsp from /libs/dam/gui/components/admin/childasset/childasset.jsp and paste it under /apps/dam/gui/components/admin/childasset/
    3. Open the childasset.jsp at /apps/dam/gui/components/admin/childasset/ and go to line 538
    4. Add the following line of code after line 538 and save the file
      <p class=”custom” data-custom=”<%=asset.getMetadata(“dam:custom”)%>” style=”text-align: center;”><%=asset.getMetadata(“dam:custom”)%></p>
  • See the custom column added in list view
    1. Upload an asset and go to properties
    2. Click on edit and under the basic tab, enter a value in the “custom” text field and save
    3. Switch to list view from the top right toolbar
    4. In the list view, click on the configure columns option under the “List View” switch
      Picture 1
    5. Scroll and check the “custom” option under the “other” section
    6. Refresh the page and now “custom” label can be seen as a column in list view

Picture 2
Caution: Make sure to hit save after every create/update/edit in nodes/properties

 

 

The post AEM Assets Touch UI Customizations Part 2 appeared first on Experience Delivers.

Efficiently Translate AEM Assets Metadata

$
0
0


5 Steps for Efficiently Translating Metadata for AEM Assets

If you plan to translate your digital assets, for example to use in multilingual product catalogs, you can rely on Adobe Experience Manager to handle your multi-language content in a professional and organized way. Experience Manager’s multilingual workflows enable you to translate binaries, metadata, and tags for digital assets into multiple locales and to manage the translated assets. For details, see Multilingual Assets.

For efficient asset management and to ensure that translated versions stay synchronized,  it is a good idea to create language copies of assets before you run translation workflows.

A language copy of an asset or a group of assets is a language sibling (or a version of the asset(s) in a cognate language) with a similar content hierarchy.

However, a language copy, like an asset, exists independently in the repository. Therefore, translating assets into multiple locales creates multiple language copies, which can drastically increase the size of the CRX repository. For example, translating assets with a combined size of 10 GB into two languages can increase the repository size by approximately 20 GB (10 GB for each language).

To translate assets efficiently, you can set up an optimal storage infrastructure and improvise the translation workflows.

Asset binaries occupy much larger storage space compared to metadata and tags. Therefore, if translating metadata and tags only serves your purpose, omit to translate the binaries. You can retain the original copy of the binaries in the repository for association with metadata and tags translated to different locales. Maintaining a single copy of binaries, instead of multiple translated versions, minimizes the impact on repository size.

File Data Store and Amazon S3 Data Store provide a storage infrastructure that is best suited for these scenarios. These storage repositories store a single copy of asset binaries (including renditions) that can be shared by metadata and tags in multiple locales. Therefore, creating asset language copies and translating metadata and tags does not affect repository size.

Perform these steps to set up your data store and configure your translation workflows for efficient translation:

  1. Do one of the following:
  2. Disable the DAM MetaData Writeback workflow.

As the name suggests, the DAM Metadata Writeback workflow rewrites the metadata to the binary file. Because the metadata changes after translation, writing it back to the binary file generates a different binary for a language copy.

Note: Disabling the DAM MetaData Writeback workflow turns off XMP metadata write-back on asset binaries. Consequently, future metadata changes are no longer be saved within the assets. Please evaluate the consequences before disabling this workflow.

  1. Enable the Set last modified date

The DAM MetaData Writeback workflow configures the last modified date for an asset. Because you disable this workflow in step 2, AEM Assets is no longer able to keep the last modified date of assets up-to-date. Therefore, enable the Set last modified date workflow to ensure that last modified dates of assets are up-to-date. Assets with outdated last modified dates can cause errors.

  1. Configure the translation integration framework to stop translating asset binaries. Unselect the “Translate Assets option” under the Assets tab to stop the translation of Asset binaries.
  2. Translate asset metadata/tags using Multilingual Asset workflows.

The post Efficiently Translate AEM Assets Metadata appeared first on Experience Delivers.


Announcing: Tools for AEM Forms

$
0
0

Getting better forms to market faster: Introducing reference themes and fragments for Experience Manager Forms

AEM Forms Design Tools

The goal of a digital form is to enroll a client in a service. Clear, consistent forms available on multiple channels as soon as a service launches can help maximize conversions. Unfortunately this is not an easy task. For example, organizations often want forms to conform to style guidelines and the look of existing web and mobile sites, which typically requires a CSS developer to implement. And many forms—particularly for regulated industries such as financial services—take a long time to author since they contain many fields and instructions.

Adobe Experience Manager Forms includes new tools that help you get forms to market faster, with the consistent look and elements you need. Experience Manager Forms now ships with reference themes, complete groups of styling elements that define how forms look.  You can use these reference themes out-of-the-box, or as a baseline to create your own form styles. Using the theme editor introduced in release 6.2, you can change fonts, background colors, banners, button styles and more with the click of a mouse—no CSS development required. Since the reference themes define styles for mobile and desktop displays, forms built using these themes will render appropriately on modern browsers and mobile devices.

blog photo1

Here is an example of a theme that aligns with the 18F Draft U.S. Web Design Standards. Using this theme, federal agencies can quickly create forms that serve both web and mobile users, while achieving consistency with other federal sites. More themes are available in the Experience Manager Forms package: AEM-FORMS-6.2-REFERENCE-THEMES-PKG.

Experience Manager Forms also now ships with tools that make creating consistent yet long forms a breeze. Reference fragments are groups of fields commonly used in forms, such as an address block, contact information, or employment history. You can simply drag and drop these fragments into a new form, dramatically speeding the authoring process while ensuring all forms use the same text, sequence, and layout for the same information. As with the reference themes, changing the fragments is simple—simply click on the fields you wish to change, and change their names, the help text associated with them, or whether the field is mandatory, for example. Once you change a fragment, Experience Manager Forms automatically updates all the forms using that fragment—ensuring every form is consistent and up-to-date.

 

blog photo 2

Here is an example of the Credit Card Information fragment. If your clients need to make a payment as part of an enrollment form, simply drag and drop this fragment from the assets browser into the form and publish. The fragment is styled based on the theme you have applied. More reference fragments are included in the package: AEM-FORMS-6.2-REFERENCE-FRAGMENTS-PKG.

Reference themes and fragments are just a few of the many ways Experience Manager Forms makes it quick and easy to create and publish consistent, engaging forms that are connected to other multichannel experiences. For more information, check out what’s new in Experience Manager Forms 6.2.

The post Announcing: Tools for AEM Forms appeared first on Experience Delivers.

AEM Assets UI – Customize Home Page

$
0
0

AEM Assets Home page (on AEM 6.1) provides a rich and personalized Welcome Screen experience. Did you know you can further customize the experience to suit your specific needs? For example, you can include additional navigational links (in addition to folders, collections, and catalogs) to quickly navigate to your favorite places. You can also add custom widgets and customize the default configuration workflow for the Assets Home page.

The following exercises enable you to add navigational links and widgets to the Assets Home page and alter its configuration workflow.

Prerequisites:

Enable the Assets Home page experience using the steps in AEM Assets Home Page Experience.
Important: To ensure that you do not lose your changes, press Save after you create, update, or edit a node or property.

Exercise 1: Add navigational links to the home page

  1. Navigate to http://localhost:4502/crx/de.
  2. Navigate to /libs/dam/gui/content/welcome/jcr:content/body/content/header/items/default/items.
  3. Right-click the node, and select Overlay under /apps with the checkbox selected.
  4. Navigate to /apps/dam/gui/content/welcome/jcr:content/body/content/header/items/default/items.
  5. Create a node of type nt:unstructured, and name it geometrixx.
  6. Add the following properties to the node geometrixx:
Name Type Value
contentRenderer String granite/ui/components/endor/actionbar/hyperlink
href String /assets.html/content/dam/geometrixx
icon String icon-facebookCoverImage
rel String cq-damadmin-admin-actions-foldersnavigation-activator
sling:resourceType String granite/ui/components/endor/actionbar/hyperlink
text String Geometrixx
title String Geometrixx
  1. Create a node under the geometrixx node of type nt:unstructured, and name it layoutConfig.
  2. Add the following property to the node layoutConfig:
Name Type Value
align String right
  1. Verify that geometrixx button appears on toolbar.

Exercise 2: Add Assets Home page custom widget

  1. Overlay /libs/dam/gui/components/admin/welcome/widgets/discover under /apps.
  2. Overlay /libs/dam/gui/components/admin/welcome/widgets/renderer under /apps.
  3. Create a folder of type nt:folder with the name rating under /apps/dam/gui/components/admin/welcome/widgets/discover.
  4. Create a file jsp under /apps/dam/gui/components/admin/welcome/widgets/discover/rating.
  5. Copy contents from /libs/dam/gui/components/admin/welcome/widgets/discover/new/new.jsp to

/apps/dam/gui/components/admin/welcome/widgets/discover/rating/rating.jsp.

  1. Open /apps/dam/gui/components/admin/welcome/widgets/discover/rating/rating.jsp and perform the following changes:
  • Remove lines 47-52 of the code.
  • Add the following code from line 47 and save the file

        res.put(“path”, “/content/dam”);

        res.put(“property”, “jcr:content/averageRating”);

        res.put(“property.value”, “5”);

        res.put(“p.guessTotal”, “true”);

        res.put(“p.limit”, “100”);

        res.put(“type”, “dam:Asset”);

  1. Create a file jsp under /apps/dam/gui/components/admin/welcome/widgets/renderer/.
  2. Copy the contents of the file /libs/dam/gui/components/admin/welcome/widgets/renderer/renderer.jsp to the file /apps/dam/gui/components/admin/welcome/widgets/renderer/renderer.jsp.
  3. Make the following changes to the file /apps/dam/gui/components/admin/welcome/widgets/renderer/renderer.jsp and save:
  • Add the following code after line 110:

Resource ratingProvider = resource.getChild(“ratingProvider”);

  • Add the following code after line 137:

        <!– Rating widget –>

    <section class=”card-group-top-section”>

        <h2 class=”card-group-section-heading”><%=i18n.get(“Favourite”,”asset welcome card heading”)%>

        </h2>

        <div class=”section-icon-circle”>

            <span class=”coral-Icon coral-Icon–asset coral-Icon–sizeM” style=”padding: 25%;padding-top: 1rem;”></span>

        </div>

        <img class=”card-group-section-image show-grid” src=”#” alt=”” style=”width: 97%;”>

    </section>

    <section class=”card-group-bottom-section”>

        <div class=”label detail tiles-view”>

            <sling:include path=”<%= ratingProvider.getPath() %>” resourceType=”<%= ratingProvider.getResourceType()%>”/>

        </div>

    </section>

    <div class=”label footer”>

        <h4 class=”wrap”><a class=”show-more-link” data-href=”<%=request.getContextPath() %>/mnt/overlay/dam/gui/content/welcome/activities.html?type=new”><%=i18n.get(“Show More”)%></a></h4>

    </div>

  1. Navigate to the path /etc/dam/welcome/widgets/defaults/new/.
  2. Create a node of type nt:unstructured with the name ratingProvider.
  3. Add the following property to the node and save:
Name Type Value
sling:resourceType String dam/gui/components/admin/welcome/widgets/discover/rating
  1. Load the Assets Home page. The Favorite widget appears under the Discover section.

Exercise 3: Add Assets home page custom configuration

  1. Overlay the node /libs/dam/gui/components/admin/assetsrouter under /apps.
  2. Create a file jsp under /apps/dam/gui/components/admin/assetsrouter.
  3. Copy the file jsp to /apps/dam/gui/components/admin/assetsrouter.
  4. Save the file.
  5. Open jsp from the path /apps/dam/gui/components/admin/assetsrouter/.

Comment the lines 49-62:

/* if (user!=null){

        String userPath = user.getPath();

        Resource preferenceNode = null;

        preferenceNode = resourceResolver.getResource(userPath + “/” + UserPropertiesService.PREFERENCES_PATH);

        if (preferenceNode != null) {

            ValueMap conf = preferenceNode.adaptTo(ValueMap.class);

            String recordingEnabled = conf.get(propertyName,”false”);

            if (“true”.equals(recordingEnabled)) {

                response.sendRedirect(contextPath + assetsHome + mountPoint);

                return ;

            }

        }

    }

    response.sendRedirect(contextPath + assetsVanity + mountPoint); */

  1. Add the following line immediately after the commented lines and save the file: sendRedirect(contextPath + assetsHome + mountPoint);
  2. Do the following to log in as a different user:
  • Click the User icon at the top right corner.

homepage_1

  • Select the user from the Impersonate as For example, select Alison Parker or Kelly Creative, and click OK.

 

  1. From the rail, click Assets. This Assets Home page is displayed.

 

 

The post AEM Assets UI – Customize Home Page appeared first on Experience Delivers.

Render custom metadata for Assets in AEM

$
0
0

Extend Asset List, Column, and Card view (for AEM 6.2)

Objective

Each view mode in the Adobe Experience Manager AEM Assets console displays a set of metadata based on the metadata schema associated with the assets.

However, you can display custom metadata in the List, Column, and Card view layouts by configuring existing metadata fields or adding fields using the Metadata Schema editor. The following sections describe how to extend the various layouts to render custom metadata.

Add custom metadata to assets

To add custom metadata prod:brandName, first register the namespace prod. Perform these steps to register the namespace prod:

  1. Navigate to the CRX explorer http://localhost:4502/crx/explorer, and log in with administrator credentials.
  2. Browse to the namespace editor page http://localhost:4502/crx/explorer/ui/namespace_editor.jsp
  3. Click New.
  4. In the URI box, add the namespace URI http://brand.com/retail/production.1
  5. Click Ok.
  6. Enter prod in the prefix textbox.1a
  7. Click Ok.
  8. Click Ok to close the conformation dialog.1b
  9. Click Apply to save the changes.

Perform these steps to add the custom metadata field prod:brandName using the metadata editor:

  1. From the Assets console, go to Tools > Assets > Metadata Schemas.
  2. Select the default form, and click Edit
  3. Drag the Single Line Text field to the form layout design area.
  4. Select the text field, and enter the values.
  5. Specify Brand as the value for Field Label.
  6. Specify ./jcr:content/metadata/prod:brandName as the value of Map to property.2
  7. Click Done to save the form.
  8. From the Assets console, select the asset(s), and click View Properties. The metadata editor is displayed for the selected asset(s).
  9. Specify a value in the custom metadata field, and save the form.3

Display custom metadata in Assets List View

  1. Navigate to CRXDE Lite from the URL http://localhost:4502/crx/de/index.jsp.
  2. Overlay the node /libs/dam/gui/content/commons/availablecolumns under apps.
  3. Add a node with the name brand and type nt:unstructured.4
  4. Add the following properties to the node:5
  5. Overlay /libs/dam/gui/coral/components/admin/contentrenderer/row/asset under apps.
  6. Copy the file jsp from /libs/dam/gui/coral/components/admin/contentrenderer/row/ to /apps/dam/gui/coral/components/admin/contentrenderer/row/asset.
  7. Edit the file jsp copied under /apps, and include custom.jsp by adding the following statement at line number 60 (before the displayLanguage row):

<cq:include script = “custom.jsp”/>6

  1. Right-click the node /apps/dam/gui/coral/components/admin/contentrenderer/row/asset, and select Create > Create File.
  2. Add jsp with the following content:

<%@page session=”false”%><%

 %><%@page import=”

            org.apache.sling.api.resource.Resource,

            org.apache.sling.api.resource.ResourceResolver,

        org.apache.sling.api.resource.ResourceUtil”%><%

%><%@taglib prefix=”sling” uri=”http://sling.apache.org/taglibs/sling/1.0″%><%

%><%@taglib prefix=”cq” uri=”http://www.day.com/taglibs/cq/1.0″%><%

%><%@taglib prefix=”ui” uri=”http://www.adobe.com/taglibs/granite/ui/1.0″%><%

%><cq:defineObjects /><%

    String metadataPath = resource.getPath() + “/jcr:content/metadata/”;

    Resource metadataRes = resourceResolver.getResource(metadataPath);

      String brandName = ResourceUtil.getValueMap(metadataRes).get(“prod:brandName”, “”);

%>

<td is=”coral-td” value=”<%= brandName %>”><%= brandName %></td>7

  1. Go to the Assets console, and select the List View The custom metadata field Brand is displayed between the Title and Locale columns.8

Display custom metadata in Column View

  1. Navigate to CRXDE Lite from the URL http://localhost:4502/crx/de/index.jsp.
  2. Overlay the node /libs/dam/gui/coral/components/admin/contentrenderer/column/columnpreview under apps.
  3. Copy jsp from /libs/dam/gui/coral/components/admin/contentrenderer/column/columnpreview to /apps/dam/gui/coral/components/admin/contentrenderer/column/columnpreview.
  4. Edit the file jsp under /apps, and include custom.jsp by adding following statement at line number 132 (before Modified check):

<cq:include script = “custom.jsp”/>

Note: Ensure that you use the closing expression %> appropriately within the scriptlet.9

  1. Include the prefix cq in the header section of jsp:

<%@taglib prefix=”cq” uri=”http://www.day.com/taglibs/cq/1.0″%>

  1. Right-click the node /apps/dam/gui/coral/components/admin/contentrenderer/column/columnpreview, and select Create > Create File.
  2. Add the file jsp with the following content:

<%@page session=”false”%><%

 %><%@page import=”

            org.apache.sling.api.resource.Resource,

            org.apache.sling.api.resource.ResourceResolver,

        org.apache.sling.api.resource.ResourceUtil”%><%

%><%@taglib prefix=”sling” uri=”http://sling.apache.org/taglibs/sling/1.0″%><%

%><%@taglib prefix=”cq” uri=”http://www.day.com/taglibs/cq/1.0″%><%

%><%@taglib prefix=”ui” uri=”http://www.adobe.com/taglibs/granite/ui/1.0″%><%

%><cq:defineObjects /><%

    String contentPath = slingRequest.getRequestPathInfo().getSuffix();       

    String metadataPath = contentPath + “/jcr:content/metadata/”;

    Resource metadataRes = resourceResolver.getResource(metadataPath);

      String brandName = ResourceUtil.getValueMap(metadataRes).get(“prod:brandName”, “”);

%>

<coral-columnView-preview-label>Brand</coral-columnView-preview-label>

<coral-columnview-preview-value><%= xssAPI.encodeForHTML(brandName) %></coral-columnview-preview-value>10

  1. Go to the Assets console, and select Column View
  2. The custom metadata field Brand is displayed when the asset is selected.11

 

Display custom metadata in Card View

  1. Navigate to CRXDE Lite from the URL http://localhost:4502/crx/de/index.jsp.
  2. Overlay the node /libs/dam/gui/coral/components/admin/contentrenderer/card/asset under apps.
  3. Copy jsp from /libs/dam/gui/coral/components/admin/contentrenderer/card/asset to /apps/dam/gui/coral/components/admin/contentrenderer/card/asset.
  4. Edit jsp under /apps, and include custom.jsp by adding following statement at line number 46 (before the first property list document):

<cq:include script = “custom.jsp”/>

Note: Ensure that you use the opening (<%) and closing (%>) expressions appropriately within the scriptlet.12

  1. Right-click the node /apps/dam/gui/coral/components/admin/contentrenderer/card/asset, and select Create > Create File.
  2. Add the file jsp with the following content:

<%@page session=”false”%><%

 %><%@page import=”

            org.apache.sling.api.resource.Resource,

            org.apache.sling.api.resource.ResourceResolver,

        org.apache.sling.api.resource.ResourceUtil”%><%

%><%@taglib prefix=”sling” uri=”http://sling.apache.org/taglibs/sling/1.0″%><%

%><%@taglib prefix=”cq” uri=”http://www.day.com/taglibs/cq/1.0″%><%

%><%@taglib prefix=”ui” uri=”http://www.adobe.com/taglibs/granite/ui/1.0″%><%

%><cq:defineObjects /><%

    String contentPath = slingRequest.getRequestPathInfo().getSuffix();       

    String metadataPath = resource.getPath() + “/jcr:content/metadata/”;

    Resource metadataRes = resourceResolver.getResource(metadataPath);

      String brandName = ResourceUtil.getValueMap(metadataRes).get(“prod:brandName”, “”);

%>

<coral-card-propertylist>

    <coral-card-property title=”Brand”><%= xssAPI.encodeForHTML(brandName) %></coral-card-property>

</coral-card-propertylist> 13

  1. From the Assets console, and select the Card View The custom metadata field Brand is displayed on the asset’s card.14

Note: The option Overlay Node is available on the toolbar at CRX DE Lite to overlay the node structure under /apps. It is enabled when the node is selected. Ensure you choose /apps as an Overlay Location and enable the Match Node Types option.

The post Render custom metadata for Assets in AEM appeared first on Experience Delivers.

Microservices with OSGi and Adobe Experience Manager

$
0
0

Microservices are getting more and more attention and companies often consider them as the solution to reach agility and faster time to market. However, in many of the discussions there is a lot of confusion and lack of understanding the basic principles of microservices. Most importantly, one  must distinguish between the style of deploying an application with the architectural style of the application.

The definition of microservices the industry has agreed on goes back to James Lewis and Martin Fowler: “[] the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.” Or in other words you decompose your application into isolated services basically creating a service oriented architecture. In this sense a microservice is a unit offering services and potentially using other services. Leaving the deployment and communication aside, a microservice is an isolated module that communicates with other modules/microservices through service APIs.

The essence of microservices is modularity. But developing microservices is not the only way to use modules for building applications. While microservices give you isolation through isolated deployments, other technologies exist allowing you to assemble an application out of isolated modules running inside a single process. The most famous technology for this is OSGi, the Dynamic Module System for Java. It allows to develop independent modules declaring their requirements and capabilities. The capabilities are usually services used by other modules and the requirements are exactly the services a module uses from other modules. OSGi provides you an in-process service oriented approach with clear isolation between the modules. Such an approach is usually referred to as a modular application. This is in contrast to a monolithic application where there are no clear boundaries between the different code parts running within the same application.

The challenge is to create an application assembled out of independent modules, this is true for a modular application as well as for a microservices based solution. Only by creating cohesive modules, you will succeed in developing a microservice based solution. Interestingly, the field is reporting that very often approaches to create a microservice based solution on a green field fails. In contrast approaches where a modular application is used as a starting point and afterwards eventually transformed into microservices has a much higher chance of success. The advantage of starting with a modular application is reduced complexity in contrast to starting with microservices directly.

It seems that often people who advocate microservices claim that everything else which is not using microservices is monolithic by nature. However, this is confusing the architectural style of an application (modular vs monolith) with the style of deployment. With technologies like OSGi you have a modular application which is deployed as a single unit. But clearly the application is not monolithic. With microservices you deploy the parts individually but apart from that there is no difference to an OSGi application when it comes to modularity.

An application deployed as a single unit can of course be modular in its nature. By using OSGi and leveraging modules and services as defined by the industry standard allows you to build your application in an architectural style that is very close to microservices. The modules can be developed separately by different teams, each team focusing on a specific business capability. The modules are loosely coupled and only communicate through OSGi services. As OSGi is a dynamic system, the modules are designed for failure from the start and must handle situations like a service being not available or unreachable. The modules can have completely different development lifecycles and can be updated and enhanced independently. As explained above an application deployed as a single unit can in fact be modular. By using OSGi and leveraging modules and services as defined by this industry standard allows you to build your application in an architectural style that is very close to microservices. The modules can be developed separately by different teams, each team focusing on a specific business capability. The modules are loosely coupled and only communicate through OSGi services. As OSGi is a dynamic system, the modules are designed for failure from the start and must handle situations like a service being not available or unreachable. The modules can have completely different development lifecycles and can be updated and enhanced independently.

In fact, the only differences between an OSGi application and a microservice architecture are service communication and deployment. Within an OSGi supplication the communication between the modules is in process and not remote avoiding all the additional challenges of network communication. The automation and orchestration is way simpler and less error prone. Thanks to OSGi you can reduce time to market, develop new features as new modules and simply deploy them to an existing application.

That’s why we sometimes refer to an OSGi application as “microservices in a box”. You get all the benefits like strong module boundaries and independent deployments but avoid the additional costs of distribution and especially operational complexity. On the other hand, an often heard argument for microservices is better scalability of individual modules in combination with improved resource utilization. The advantage here is that you can independently and dynamically scale up and down the individual microservices based on load. While this is true if you only consider the microservice in isolation, however the operational infrastructure and know-how you need to have a successful microservice architecture scaling exactly as you need is often overlooked.

In addition, you need to know your bottlenecks in advance and design them as separate microscopes. By using OSGi one can defer this decision about deployment topologies until the need for scaling individual modules arises. By leveraging OSGi and services, you can easily move an OSGi service into a different process and utilize OSGi Remote Services. The application code itself does not need to be changed at all, you simple change the way of deploying your application from a single deployment to several based on your needs. And you can do this split up at any time, even dynamic at run-time would be possible. With OSGi it is possible to defer the decision of your deployment time to a later point of time and you can easily adjust.

If you want to get into utilizing microservices the prerequisite is modularity – there is no short cut here. The best approach of developing a modular application is OSGi. We picked OSGi as the base for  Experience Manager exactly for that reason: modularity. We can independently develop the various features, create well defined contracts between the various parts and can postpone the decision about deployment style and service communication at a later time. This allowed us to scale up development to hundreds of developers while keeping teams independent of others. Well defined APIs and service interface build the foundation of Experience Manager. Thanks to OSGi it is already possible to check the consistency of the modules and inspect its dependencies. This way you can control the cohesion of your modules. Semantic versioning defines rules on how to adjust the version of your Java API based on the change you make. With the OSGi tooling you can already check at build time whether you made an incompatible change and which clients of your module are affected by the change. In summary modularity, OSGi and the available tooling gives us a development style which is equal if not superior to the microservices development style.

On the other hand, if you want to develop a new microservice to be used by Experience Manager or any other OSGi application, start by defining your Java service API. Implement the functionality and deploy this as a separate OSGi based application including the required modules. Simply use OSGi remote services to publish these services remotely. In Experience Manager or your OSGi application import the module containing the service API and use remote services to make your new service available. Your code running in Experience Manager just uses plain Java interfaces and method calls, but runs as a separate process which can be scaled independently. At any point in time you can change your deployment setup and simply add the implementation modules directly to Experience Manager if that provides benefits.

To recap, microservices is about modularity. OSGi is the best technology for modularity. Experience Manager is built using OSGi in a modular way. This gives you all the flexibility and prerequisites for using and providing microservices with Experience Manager.

 

Feature Image: Fro: mtomatito26 via Adobe Stock

The post Microservices with OSGi and Adobe Experience Manager appeared first on Experience Delivers.

A primer for Experience Manager and hybris integration

$
0
0

Core Adobe Experience Manager Configurations for hybris integration

The AEM Commerce framework is the backbone for experience-driven commerce in Experience Manager. The system is easy to access via APIs and can be extended for many PIM engines including hybris. The framework supports the following Content functions that can be owned by Experience Manager and powered by PIM engines via APIs:

  1. Catalog Management
    1. Product Importer
      1. Partial, Express and Full Imports
      2. Taxonomy creation
    2. Catalog Blueprinting
      1. Catalog Template
      2. Section Template
      3. Product Template
    3. Catalog Pages
      1. Concrete English Catalog
    4. Product Editor
    5. Product Change event across systems
    6. Product Search
  2. Shopping Experience
    1. Catalog pages
    2. Category / Section pages
    3. Add to Cart
    4. Checkout process
  3. Site Experience
    1. Header
    2. Footer
    3. Miscellaneous Site Components
  4. Personalization
    1. Promotions & Vouchers
    2. Order History trait
    3. Cart restoration
  5. Marketing Cloud Integration
    1. DAM
    2. Target recommendations
    3. Search & Promote feeds

 

Adobe Experience Manager and hybris integration diagram

AEM hybris integration

Experience Manager Configurations

The following configurations should be accessible from the Felix Console on your Experience Manager instance:

Hybris OAuth Handler

  • Update Client ID from mobile_android to <project_specific_value>
  • Update Client Secret from secret to <project_specific_value>
  • Update Trusted Client ID from trusted_client to <project_specific_value>
  • Update Trusted Client Secret
  • Update REST endpoint. e.g. /rest/v1/ to /b2bocc/v2/

Day CQ Commerce factory for Hybris

  • Update Commerce provider from hybris to <project_specific_value>

Day CQ Commerce Hybris Catalog Importer

Day CQ Commerce Hybris Configuration

  • Switch between Staging or Online values as appropriate.

Day CQ Commerce Hybris Connection Handler

  • Update Base URL value
  • Update username
  • Update password
  • Update REST endpoint value if hybris OCC v2 API is being used. e.g. /b2bocc/v2/

Day CQ Commerce Hybris Default Import Handler

  • Update DAM path from /content/dam/geometrixx-outdoors/products/import to /content/dam/<org>/products/import
  • Update Tag namespace from geometrixx-outdoors to <org>
  • Update Category page template from /apps/geometrixx-outdoors/templates/page_category to /apps/<org>/templates/page_category
  • Update Product page template from /apps/geometrixx-outdoors/templates/page_product to /apps/<org>/templates/page_product

Day CQ Commerce Hybris Default Response Parser

Day CQ Commerce Hybris Polling Customer Groups Updater

The above configurations can not be substituted for a well defined Project Plan, Product RoadMap or Project Pre-discovery items.

The lead Business Practitioner, Analyst or Architect for the project should cover the following areas in-depth before starting an Experience Manager and hybris implementation.

  1. Project Taxonomy must be defined.
  2. The Product page should be defined including possible variants
  3. A sandbox environment for hybris should be setup. This should be different from the QA hybris instance.
  4. The development machine should be (at the least) Mac with 8GB RAM and SSD.
  5. Define the URL mapping strategy, if product categories and catalog creation is dynamic.
  6. Define the candidate web sites to use the integration, including any regional and multi-lingual web portals.
  7. Identify other Adobe Products integration with Experience Manager & hybris.
  8. Define Product Launches in hybris and Experience Manager.
  9. Identify the usage of proxy pages, if needed, in Experience Manager for product pages.
  10. Review existing Experience Manager infrastructure to make sure AEM Commerce can be supported.
  11. Redefine Experience Manager Content model, as we have now catalogs along with AEM Sites and AEM Assets.
  12. Identify workflows to support custom hybris integration.

Additional documentation (docs.adobe.com) and articles can be found in the AEM Help Forum (https://helpx.adobe.com/marketing-cloud/experience-manager.html)

The post A primer for Experience Manager and hybris integration appeared first on Experience Delivers.

Viewing all 32 articles
Browse latest View live




Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>
<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596344.js" async> </script>