Monday, 4 June 2018

Create Content Service End point in AEM 6.4

Content Services & its use

Content Services enable the creation of Page-based HTTP end-points. This end points helps to render the content to a normalized JSON format.

How to configure & access the content services in AEM 6.4?
We need to configure content service end points when ever we need to export a Content Fragment data to external applications(Like Single Page Application or mobile app etc). Let us see how it can be done. The end point pages are not to be accessed as HTML pages, they just export the content in JSON Format.

We have created multi variation Content Fragments following our previous blog Create Content Fragments : Step By Step Tutorial.

Say we have master, mobile , tab variations as shown below.
[Click om images to see it big]


[Mobile & Tab Content Fragment]


Go to Sites> We-retail, click on 'Create' > 'Page'
Enter details as below and click on create. A new page will be created. (/content/we-retail/content-service-for-sample-fragment.html)




Open the page and author the content fragment in this page(Steps are explained in my previous post).




As you see, I have authored master, variation1(Mobile), Variation 2 (Tab) in the same page.

Now go to the page url and append '.model.json' to invoke JSON exporter. (In my case: content-service-for-sample-fragment.model.json). You can see the JSON with all variations included.



[JSON portion of Content Fragment for Mobile]



[JSON format for tablet]



From this JSON, we can iterate over the content fragments section and by checking for the variation, we can render items across various channels.

Remember I have authored the Content Fragment utilizing an existing we-retail template. So the JSON will have all related items like header , footer etc. In real projects, create a stand alone template and then create a page from this.

Related posts:
Create Content Fragments : Step By Step Tutorial
Content Fragment out put as JSON 

 

Saturday, 2 June 2018

Maintenance Releases Deployment Best Practices in AEM

Adobe releases maintenance fixes in duration of some months based on the issues raised by licensed vendors or internal clients etc. Previously it was known as hot fixes, but now it has changed to 'Cumulative Fix pack' & related 'Service Packs'.

Precautions & Best practices: Ensure you always follow below step;

  1. Test in Lower environments first and then move to prod for any maintenance pack deployments.
  2. Ensure you have done a proper back-up of content, DAM and code.
  3. Validate the new package before install


Curl Commands Vs Package Manager?
CURL is a command line version of package manager. Package manager provides the UI to deploy packages.

We recommend using CURL commands if the package size is big(They execute faster through CURL)

Analyzing the Activity Log on package installation:

We can see a BOLD highlighted letters while installing a package through package manager. Below are the notations.

A : Added new content/code to specified path.
D : Deleted content/code.
U : Updated
- : No action taken (remains as it is )
E : Error on path.

Sometimes admin face issues with new packages like unsatisfied package imports or Overlay issues.

How to validate a new package for issues before install?

On package right side, click on More> Validate and select the check boxes and click on 'validate'. The validation and and any issues which exits can be verified through 'Activity Log'. Contact Adobe if any issues are observed.

Once above precautions are followed(Including a lower environment successful deployment), deploy the maintenance pack in prod, then restart  AEM. Clear any cache, test and validate the package version then verify the project related checkpoints at PROD. This steps helps an admin to install a cumulative pack smoothly.

Read Latest AEM 6.4 Topics
Create Content Fragments : Step By Step Tutorial 
Content Fragment Output as JSON in AEM 6.4
 

Thursday, 31 May 2018

AEM 6.4 Content Fragment output as JSON

AEM Content Fragments can be accessed through JSON file URL's.

Create Content Fragments : Step By Step Tutorial

Why we need JSON Formats?
Content Fragments are not just for web pages. A Content Fragment is made available to external applications through JSON format delivery methods. These applications could be,
  • Single Page Applications
  • Native Mobile Applications
  • other channels and touch-points external to AEM
[Click on image to see it big]





AEM 6.4 core components having the capability to export its data to JSON format. This structured content can then be used to deliver to cross channels other than AEM pages. 

Difference between Content Fragment & Experience Fragment
Major difference between Content Fragment & Experience Fragment is that Content Fragment is pure content, without design and layout, but Experience Fragments are fully laid out content - a fragment/portion of a web page.

There are 2 types of content fragments

Simple fragments : Which does not have any predefined structure(only text, and images). Simple Fragment template is the supporting element for this.

Fragments that contain structured content: This is based on a content fragment model. This model will give defined structure.

How do we generate JSON format of a Content Fragment?

AEM 6.4 version also supports JSON Exporter with Content Fragment Core Components. Using this AEM JSON exporter, we can deliver the contents of an AEM page in JSON data model format. This can then be consumed by any third party applications other than AEM.

JSON Exporter is supported by suffixing a url with '.model.json'

Access JSON Format of a Content Fragment

Say we have created 'My Simple Fragment(my-simple-fragment)' Content Fragment,

We can see the complete content using url,
http://localhost:4502/content/dam/my-simple-fragment/_jcr_content/model.json


As you see the output

    {
        "jcr:primaryType": "nt:unstructured",
        "jcr:title": "Simple Fragment",
        "version": 2,
        "jcr:description": "A simple fragment, containing one single element and no predefined variations",
        "precreateElements": true
    }

   
Accessing the JSON output of a Content Fragment authored on a page.


Step1: Access the page JSON

Now I have authored my previously created 'My Simple Fragment(my-simple-fragment)' in We-retail site.(/content/we-retail/language-masters/en/men.html)

Its JSON output can be access through url,
http://localhost:4502/content/we-retail/language-masters/en/men.model.json

Step2: Access the Content Fragment JSON
We can see the content fragment in this page as shown.





To get the authored 'Content Fragment JSON', access the '.model.json' url of the content fragment as below,

http://localhost:4502/content/we-retail/language-masters/en/men/jcr:content/root/responsivegrid/contentfragment_1655772226.model.json

As you see the JSON will have all elements including variations created/authored.





Create Content Fragments : Step By Step Tutorial

Wednesday, 30 May 2018

How to create a Content Fragment in AEM 6.4? Step by step tutorial

Content Fragment helps to author content without creating a Page. The advantage with Content Fragment is that same content can be shared across various channels without worrying about the display part.

What type of data, a Content Fragment can hold?

Content Fragment has well defined content structure, which can hold text segments and references to assets likes images, videos etc.

Steps to create Content Fragments

To start with , go to Assets > Files > Click on Create , Content Fragment

[click on images to see it big]
Content Fragment


Select the template as shown(Default Simple Fragment Template). We can either have our new templates created based on the content requirement or use the default one. Click on Next





In 'Properties' section fill up the basic details of this fragment.




Advanced section will have an auto populated name. We can edit it in case we need our custom property/url here.




Click on 'Create' will show you the success message as shown below. On clicking 'Done' will show the new Content Fragment.



There are many options for a Content Fragment once created. The header bar will have options like download, checkout, edit, manage tags, adding collections copy, move, publish, un-publish delete etc.



Edit options for a content fragment is quiet flexible, through which we can update the textual content, create variations, add / edit metadata etc.



Through 'Create variation' we can create different version of content based on our requirement. These variations are used across different channels.



Now the variation created  will have below action items.



Clicking the 'folder' icon provides us the option to associate content with this content fragment.



On clicking 'metadata' section helps to update the metadata associate with the fragment.




Once all updates are done, save the content fragment to ensure all changes are submitted to crx. The new content fragment created can be found at path '/content/dam'.

YouTube demo videos for Content Fragments:

Download a Content Fragment

The created Content Fragment can be downloaded as shown below. The downloaded fragment can have all related information selected while creation. Unzipping the fragment displays the folder contents.




Unzipped file will have a metadata file with all information.



Deleting a Content Fragment

In the Assets console navigate to the location of the content fragment, Select the fragment and click on delete from tool bar menu.



In the upcoming posts I will be explaining authoring and utilization of Content Fragments.

Read about Content Services in AEM 6.4 and demo

Thursday, 17 May 2018

Test the configuration for AEM 6.4 Personalization

PREVIOUS: Create a Sample Personalization in AEM 6.4

In AEM 6.4 personalization works based on;
  • Experience, 
  • Activities and 
  • ContextHub. 
Let us see how can we test a basic Personalization in AEM 6.4 by creating a sample. AEM 6.4 configuration is almost same as in AEM 6.3.  

Below are the steps to create personalization in Latest AEM.
  
How to test personalization in AEM 6.4.
In this post we are explaining about the testing of personalization. Hope you have gone through the article for creating personalization in AEM 6.4  

Open the page where targeting is enabled and Experiences are authored.

  • Go to preview mode of the page. You can see the default image which was authored is displayed. In this case user persona is anonymous.



  • Click on persona so that other users appears.



  • Select a male user and see the image is updated as per the experience defined(Male)



  • Select a female user from persona and see the experience s updated.



 This ensures that our previously configured sample personalization is working fine in AEM 6.4

Demo Video:
 
Read More:

Personalization Basics & Steps to create Personalization in AEM 6.4

Create ContextHub in AEM 6.4

Create Brands in AEM 6.4  

Create Activity in AEM 6.4

Create Offers in AEM 6.4

Steps to configure personalization from brands, activity with a sample 

Test Configured personalization

Personalization in AEM 6.4 - Basic Configurations with example

Let us create a sample personalization component in 'We.Retail' site. We.Retail is a demo site pre-configured in AEM 6.4.

Ensure you have gone through Personalization Basics & Steps to create Personalization in AEM 6.4 before starting with this tutorial

We have authored the sample component in page : http://[host]:[port]/editor.html/content/we-retail/us/en/men.html


Once we open a We.Retail page we can see the  Edit option as below.




Selecting Targeting option as above image.
By default BRAND is selected with value 'We-Retail' as shown below.




All the Activities are listed for the selected brand as shown. We can also create a new activity by clicking on the (+) icon directly.




Since we have already created a brand and activity, I am going to select and proceed with it.

Now in Targeting mode, click on 'Start Targeting', A default experience will be always enabled. Now add new experience by clicking on  '+ Add Experience Targeting'




Next window allows to add an experience. We can either select default or click on 'Add Experience Targeting' to create new if its not already created. Since I have already created an activity(Male) for my brand, I will select that. Click Next.



I can see my already configured experience here. If required, we can edit the settings in this section.



To test personalization we need atleast two experiences. I have a male experience available already. Click on Add experience and select female audiences.



Now the target section looks as below.



Leave the next screen as it is.




On clicking save, we get a message, 'Your activity was saved'.

Now go back to edit mode , author an image component in empty area of the page.



Now go back to target mode



Click on 'Start Targeting',



Click on Target icon, we get a message that component is now targeted.



From next screen select Male and author a male image.



Now Select Female and author a female image.



Click Next and save the targeting.

We are done with our Personalization Targeting using ContextHub and experiences. Let us test it now.

NEXT: In my next post I will explain how to test it.

Demo Video:
 

Read More:

Personalization Basics & Steps to create Personalization in AEM 6.4

Create ContextHub in AEM 6.4

Create Brands in AEM 6.4  

Create Activity in AEM 6.4

Create Offers in AEM 6.4

Steps to configure personalization from brands, activity with a sample 

Test Configured personalization

Personalization in AEM 6.4 - Basic Understanding

PREVIOUS: Create Activity in AEM 6.4

Personalization in AEM 6.4 can be done through Targets or ContextHubs


In AEM 6.4 personalization works based on;
  • Experience, 
  • Activities and 
  • ContextHub. 
Let us see how can we test a basic Personalization in AEM 6.4 by creating a sample. AEM 6.4 configuration is almost same as in AEM 6.3.  

Below are the steps to create personalization in Latest AEM.
  
 Let us understand some basic terms of personalization.


Follow the 'Read More' section in order to understand the steps involved in AEM 6.4 personalization.

NEXT:Detailed steps of creating Personalization is given in this post with an example.


Watch the demo video:
 

Read More:

Personalization Basics & Steps to create Personalization in AEM 6.4

Create ContextHub in AEM 6.4

Create Brands in AEM 6.4  

Create Activity in AEM 6.4

Create Offers in AEM 6.4

Steps to configure personalization from brands, activity with a sample 

Test Configured personalization