Using Dynamic Embedded Sequence using-dynamic-embedded-sequence
Using Dynamic Embedded Sequences covers the following topics:
- Overview
- Using Dynamic Embedded Experience in AEM Screens
- Viewing the Results
- Restricting Users and Modifying the ACLs
Overview overview
Dynamic Embedded Sequences are created for large projects that follow parent-child hierarchy, where the child is referenced inside a location folder and not a channel folder. It allows the user to embed a sequence inside a channel by Channel Role. It lets the user define location-specific placeholders for different offices using an embedded sequence inside a main channel.
While assigning a channel to a display, you have the option of either specifying the path of the display or the role of the channel that resolves to an actual channel by context.
To use Dynamic Embedded Sequence, you assign a channel by Channel Role. Channel Role defines the context of the display. The role is targeted by various actions and is independent of the actual channel that fulfills the role. This section describes a use case that defines channels by role and how you can apply that content to a global channel. You can also think of the role as an identifier for the assignment, or an alias for the channel in the context of.
Benefits of Using Dynamic Embedded Sequences benefits-of-using-dynamic-embedded-sequences
The main benefit of placing a sequence channel inside a location instead of the channels folder is to allow local or regional authors to edit content relevant to them. All this, while being restricted from editing channels higher up in the hierarchy.
Referencing a Channel By Role, lets you create local version of a channel, to dynamically resolve location-specific content and also lets you create a global channel that uses the content for the location-specific channels.
The following example provides a solution by focusing on the following key terms:
- a main sequence channel for the global sequence.
- dynamic embedded sequence components for each locally customizable part of the sequence.
- individual sequence channels in the respective locations with a role in the display that matches the dynamic embedded sequence component’s role.
Using Dynamic Embedded Sequence using-dynamic-embedded-sequence-2
The following section explains the creation of a Dynamic Embedded Sequence in an AEM Screens channel.
Prerequisites prerequisites
Before you start implementing this functionality, make sure you have the following prerequisites ready to start implementing dynamic embedded sequences:
- Create an AEM Screens project (in this example, Demo).
- Create a channel as Global under Channels folder.
- Add content to your Global Channel (Check Resources.zip for relevant assets).
The following image shows the Demo project with Global channel in Channels folder.
Resources resources
You can download the following resources (images and add these to assets) and further use these as channel content for demonstration purpose.
Implementing Dynamic Embedded Sequence in an AEM Screens project involves three major tasks:
- Setting up Project taxonomy including Channels, Locations, and Displays
- Creating a Schedule
- Assigning Schedule to each display
Follow the steps below to implement the functionality:
-
Create two Locations Folder.
Navigate to your Locations folder in your AEM Screens project and create two location folders as Region A and Region B.
note note NOTE While creating the Region A location folder, make sure you enter the Title as Region A and you can leave the Name field empty, so automatically region-a name is picked up. Similar is the case for creating location folder Region B, as shown below: note note NOTE To learn how to create a location, see Creating and Managing Locations. -
Create two Locations and a Channel under each location folder.
- Navigate to Demo > Locations > Region A.
- Click Region A and click + Create from the action bar.
- Click Location from the wizard with Title as Store 1. Similarly, create another location from the wizard titled as Store 2 with Title as Store 2. You can leave the Name field empty while creating Store 1 and Store 2.
- Repeat step (b) and now click Sequence Channel from the wizard. Enter the Title as Region A and Name as region for this channel.
note caution CAUTION Make sure that while creating channel Region A, enter the Title as Region A and the Name as region. Similarly, create two locations under Region B titled as Store 3 and Store 4. Also, create a Sequence Channel with Title as Region B and Name as region.
note caution CAUTION Make sure that you can use the same name for the channels created in Region A and Region B as region. -
Create Display and Channel under each Location.
- Navigate to Demo > Locations > Region A > Store 1.
- Click Store 1 and click + Create from the action bar.
- Click Display from the wizard and create
Store1Display
. - Repeat step (b) and this time click Sequence Channel from the wizard. Enter the Title as
Store1Channel
and the Name as store.
note caution CAUTION It is important when you create a sequence channel, the Title of the channel can be as your requirement, but the Name should be the same in all the local channels.
In this example, the channels under Region A and Region B share Name as region and channels underStore 1
,Store 2
,Store 3
, andStore 4
share Name as store.Similarly, create a display as
Store2Display
and a channelStore2Channel
underStore
2 (with name as store).note note NOTE Make sure that you can use the same name for the channels created in Store 1
andStore 2
as store.Follow the preceding steps so you can create a channel and display in
Store 3
andStore 4
under Region B. Again, make sure that you use same Name as store while creating channelStore3Channel
andStore4Channel
respectively.The following image shows the display and channel in
Store 3
.The following image shows the display and channel in
Store 4
. -
Add Content to the Channels in their respective Locations.
Navigate to the Demo > Locations > Region A > Region A and click Edit from the action bar. Drag and drop the assets you would like to add to your channel.
note note NOTE You can use the Resources.zip file from the Resources section, above, to use the images as assets for your channel content. Similarly, navigate to the Demo > Locations > Region B > Region B and click Edit from the action bar to drag and drop the assets to your channel, as shown below:
Follow the preceding steps and the resources so you can add content to the following channels:
Store1Channel
Store2Channel
Store3Channel
Store4Channel
-
Create a Schedule
Navigate and click Schedules folder in your AEM Screens project. Then click Create from the action bar.
The following image shows the AdSchedule created in Demo project.
-
Assign Channels to a Schedule
- Navigate to Demo > Schedules > AdSchedule and click Dashboard from the action bar.
- Click + Assign Channel from ASSIGNED CHANNELS panel so you can open the Channel Assignment dialog box.
- Click Reference Channel by path.
- Click the Channel Path as Demo > Channels > Global.
- Enter the Channel Role as GlobalAdSegment.
- Click the Supported Events as Initial Load, Idle Screen, and User Interaction.
- Click Save.
Assign Channel by Role for Region:
- Click + Assign Channel from ASSIGNED CHANNELS panel.
- In the Channel Assignment dialog box, click Reference Channel by name.
- Enter the Channel Name as region*.
- Enter the Channel Role as RegionAdSegment.
- Click Save.
Assign Channel by Role for Store:
- Click + Assign Channel from ASSIGNED CHANNELS panel.
- In the Channel Assignment dialog box, click Reference Channel by name.
- Enter the Channel Name as store.
- Enter the Channel Role as StoreAdSegment.
- Click Save.
The following image shows the assigned channels by path and by role.
-
Configuring Dynamic Embedded Sequence to the Global Channel.
Navigate to the Global Channel you initially created in Demo project.
Click Edit from the action bar.
In the editor, drag and drop two Dynamic Embedded Sequence components in the channel editor.
Open the properties from one of the components and enter the Channel Assignment Role as RegionAdSegment.
Similarly, click the other components and open properties to enter the Channel Assignment Role as StoreAdSegment.
-
Assigning Schedule to each Display
- Navigate to each display, such as Demo > Locations > Region A >Store 1 >
Store1Display
. - Click Dashboard from the action bar.
- On the dashboard, click … from the ASSIGNED CHANNELS & SCHEDULES panel, and then click +Assign Schedule.
- Click the path to the Schedule (for example, here, Demo > Schedules > AdSchedule).
- Click Save.
- Navigate to each display, such as Demo > Locations > Region A >Store 1 >
Viewing the Results viewing-the-results
When you have the setup for channels and display complete, launch the AEM Screens player to view the content.
The following output confirms your channel content in AEM Screens player, depending on the display path.
Scenario 1:
If you assign the display path as Demo > Locations > Region A > Store 1 > Store1Display
, the following content displays on your AEM Screens player.
Scenario 1:
If you assign the display path as Demo > Locations > Region B > Store 3 > Store3Display
, the following content displays on your AEM Screens player.
Restricting Users and Modifying the ACLs restricting-users-and-modifying-the-acls
You can create global, regional, or local authors to edit content relevant to them while being restricted from editing channels higher up in the hierarchy.
Edit the ACLs so you can restrict the user’s access to the content based on their location.
Example Use Case example-use-case
The following example lets you create three users for the above Demo project.
The privileges are assigned to each group are as follows:
Groups:
-
Global-Author: Consists of users that have access to all the locations and channels in the Demo project and have all the read, write, and edit permissions.
-
Region-Author: Consists of users that have read, write, and edit permissions to Region A and Region B.
-
Store-Author: Consists of users that have read, write, and edit permissions only to Store 1, Store 2, Store 3, and Store 4.
Steps for creating User Groups, Users, and setting up ACLs steps-for-creating-user-groups-users-and-setting-up-acls
Follow the steps below to create groups, users, and modify the ACLs as per the permissions:
-
Create Groups
- Navigate to Adobe Experience Manager.
- Click Tools > Security > Groups.
- Click Create Group and enter Global-Author in ID.
- Click Save & Close.
Similarly, create two other groups such as Region-Author and Store-Author.
-
Create Users and add Users to Groups
- Navigate to Adobe Experience Manager.
- Click Tools > Security > Users.
- Click Create User and enter Global-User in ID.
- Enter Password and confirm password for this user.
- Click the Groups tab and enter the group name in Click Group, for example, enter Global-Author to add Global-User to that specific group.
- Click Save & Close.
Similarly, create two other users such as Region-User and Store-User and add those to Region-Author and Store-Author respectively.
note note NOTE It is a best practice to add users in a group and then assign permissions to each particular group of users. -
Add all the Groups to Contributors
- Navigate to Adobe Experience Manager.
- Click Tools > Security > Groups.
- Click Contributors from the list and click Members tab.
- Click the Group such as Global-Author, Region-Author, and Store-Author to contributors.
- Click Save & Close.
-
Accessing Permissions for Each Group
- Navigate to the Useradmin and use this UI to modify the permissions for different groups.
- Search for Global-Author and click Permissions tab, as shown in the figure below.
- Similarly, you can access the permissions for Region-Author and Store-Author.
-
Modifying Permissions for Each Group
For Global-Author:
- Navigate to the Permissions tab
- Navigate to /content/screens/demo and check all the permissions
- Navigate to /content/screens/demo/locations and check all the permissions
- Navigate to /content/screens/demo/locations/region-a and check all the permissions. Similarly, check the permissions for
region-b
.
See the following figure for understanding the steps:
The following shows that the Global-User has access to the Global Channel, and both Region A and Region B with all four stores namely Store 1, Store 2, Store 3, and Store 4.
For Region-Author:
- Navigate to the Permissions tab.
- Navigate to /content/screens/demo and check only the Read permissions.
- Navigate to /content/screens/demo/locations and check only the Read permissions.
- Navigate to /content/screens/demo/channels and uncheck the permissions for Global channel.
- Navigate to /content/screens/demo/locations/region-a and check all the permissions. Similarly, check the permissions for
region-b
.
See the following image so you can understand the steps:
The following shows that the Region-User has access to both Region A and Region B, with all four stores, namely Store 1, Store 2, Store 3, and Store 4, but does not access the Global Channel.
For Store-Author:
- Navigate to the Permissions tab.
- Navigate to /content/screens/demo and check only the Read permissions.
- Navigate to /content/screens/demo/locations and check only the Read permissions.
- Navigate to /content/screens/demo/channels and uncheck the permissions for Global channel.
- Navigate to /content/screens/demo/locations/region-a and check only the Read permissions. Similarly, check only the Read permissions for
region-b
. - Navigate to /content/screens/demo/locations/region-a /store-1 and check all the permissions. Similarly, check the permissions for store-2, store-3, and store-4.
See the following image so you can understand the steps:
The following shows that the Store-User has access only to Store 1, Store 2, Store 3, and Store 4, but does not have permissions to access the Global or region (Region A and Region B) channels.