Join the SDL Web Community Slack

Tom Simm recently posted on the SDL Community about the possibility of an SDL Slack and it turns out there isn’t one out there yet (other than the MVP Slack). I thought this was a great idea as I know a lot of useful conversations go on in the MVP Slack (it’s not just about secret MVP things).

I also know that there are a lot of knowledgeable people out there in the SDL Web community that aren’t MVP’s and it would be great to gather all these like minded people together. So after a quick discussion with RobChris and Tom we are pleased to announce the grand opening of the SDL Web Slack team!

We’ve added channels for all the different products (#tridion, #smarttarget, #dxa) as well as #tds2017 which is for chatting about the up and coming Tridion Developer Summit.

In order to join we just need you to fill in this quick Google form which explains the guidelines of the community and then one of us will send you the link.

If you have any questions or comments then feel free to reach out to myself, RobChris or Tom.

Join the SDL Web Community Slack

SDL Web UK Meetup April 2017

This April saw the return of the UK SDL Web Meetup in Manchester which seems to be a hotbed of Tridion talent. It had only been 3 years since the last one…

First up to speak was Rob Stevenson-Legget from Building Blocks who spoke about how to set up your DD4T or DXA web application in docker containers.

Rob Stevenson-Legget from Building Blocks

It was a really interesting talk especially as using docker containers seem to be the in thing at the moment. Using it for 2013 SP1 seems to be working well and I look forward to his next talk where he has it working perfectly for SDL Web 8.5.

Second up was Jonathan Williams from Stage Two who spoke about his experience scaling SDL Web 8 in Production. It was great to hear some real world issues and see some people watching nod along as they had the same issues.

Last up was Bart Koopman, one of the Product Managers for SDL Web, and he presented a roadmap of DXA.

Bart Koopman from SDL

This talk was the one with the most audience participation which was great to see. The roadmap looks good but the key to the success has to be it’s community involvement, taking feedback from those people who have implemented DD4T and DXA many times before.

You can watch at listen to the whole meetup here (including the beer and pizza breaks): https://recordings.join.me/TPTrIZjwZUmKhfvq7nEtBg

Thanks to Stage Two for providing the refreshments and to SpaceportX for providing the free space to us.

If you would like to attend the next Meetup then make sure you get signed up. If you would like to talk then please connect with me on LinkedIn.

SDL Web UK Meetup April 2017

Getting the YouTube ECL Connector to work with DXA

I successfully hooked up the YouTube ECL Connector into Tridion 2013 SP1 a while ago without any problems but it’s taken up until now for me to build the functionality to render out the YouTube videos in DXA.

I thought this was going to be easy but once again I couldn’t find any steps in the documentation on how to do this so I thought I would show you how I did it.

My first thought was to temporarily extend the Item List schema to add in a Multimedia field called eclTest that allowed my ExternalContentLibraryStubSchema-youtube Multimedia Schema.

I then extended the ItemList Model with a new property mapping to my new field and used created as a type of EclItem (which is built in to DXA 1.2)

[SemanticProperty("s:eclTest")]
 public EclItem EclTest { get; set; }

I opened the Component and updated the Ecl Test field to point towards a YouTube ECL video.

I then published the Publish Settings Page which contains the schema field definitions as well as publishing the Home Page which contains this updated Component.

I then updated my view to render out the new field: @Model.EclTest.Url

I then ran my local DXA web application but it unfortunately blew up:

ERROR - Unable to map field 'eclTest' to property of type 'Sdl.Web.Common.Models.EclItem'.
 Sdl.Web.Common.DxaException: Unable to map field 'eclTest' to property of type 'Sdl.Web.Common.Models.EclItem'. ---> System.MissingMethodException: Cannot create an abstract class.

What I didn’t realise is that the EclItem class is an abstract class and what I needed to do is to create a new class that Inherited from ECLItem and update my ItemList Model to use that type. Rick explained this over on Stack Exchange.

So I created a public class called YouTubeEclItem and then mapped the entity to the stub schema that is created in the CME

[SemanticEntity(CoreVocabulary, "ExternalContentLibraryStubSchema-youtube")]
 public class YouTubeEclItem : EclItem
 {
 }

I can then update the field in the ItemList Model to be a YouTubeEclItem instead:

[SemanticProperty("s:eclTest")]
 public YouTubeEclItem EclTest { get; set; }

I then ran the application and it worked! I had a YouTube URL rendered out!

I hope this helps anyone else out that go stuck with this too.

Getting the YouTube ECL Connector to work with DXA

SDL DXA Component Links In Page Metadata

In my DXA solution I was trying to change the Page Metadata to come from a Component rather but unfortunately it didn’t work out of the box.

tridion-page-metadata

Taking a look inside the ProcessMetadataField method in the DefaultModelBuilder class the code is written to work with an Embedded Schema:

if (field.FieldType==FieldType.Embedded)

But when it drops into the else statement to resolve the Component Link then it doesn’t get any content back as that Page Metadata Component is not published.

With a quick tweak to the method you can add an extra else if for a Component Link type and this is now working:

else if (field.FieldType == FieldType.ComponentLink)
{
    foreach (IComponent component in field.LinkedComponentValues)
    {
       foreach (IField subfield in component.Fields.Values)
       {
         ProcessMetadataField(subfield, meta, localization);
       }
    }
}

I also needed to change the link level value to 2 in the Generate dynamic page TBB on the Render Page Content Modular Template in order to get the Metadata Component values in the published JSON:

link-level-getpagecontent

SDL DXA Component Links In Page Metadata

Scaling SDL Tridion 2013 – Installing the Publisher on a dedicated machine

SDL Tridion is a hugely scalable product and so when I wanted to scale out the Publisher onto it’s own dedicated machine I thought the steps to do this would be easy to find so I searched the online manual for the steps but all I found was one single paragraph:

You can install the Publisher on one or more dedicated machines. On a dedicated machine, you can configure the Publisher for a multiprocessor machine, or increase the number of Publisher threads. You can also create Publishers that only accept content from certain Publications or Publication Targets, or with a certain Publish Priority.

Woo hoo! That’s exactly what I need! But that was it…. nothing else on that page?

So if anyone else is looking for the steps to install the Publisher on a dedicated machine, here are the steps I followed:

  1. Transfer the Content Manager install files to your new server
  2. Double Click and Run the Installer
  3. Select only the Content Delivery Windows Services, Content Manager and Context Expressions features
  4. Complete all your user account and database details that you completed when you initially installed your Content Manager
  5. Complete the details for the Content Manager website
  6. Transfer your license files into the correct locations just like you did with your Content Manager installation
  7. Restart the server

The core Content Manager components have now been installed on your new server but you only need a few of the Windows Services. To complete the setup you need to:

  1. Stop and Disable the Tridion Content Manager Workflow Agent Service, the Tridion Content Manager Service Host Service, the Tridion Content Manager Search Indexer and the Tridion Content Manager Batch Processor Service
  2. Transfer your cd_transport_conf.xml file from your Content Manager Server to the same location on the new Publisher Server. Restart the Tridion Content Distributor Transport Service.

The new Publishing server is now ready to publish but you need to log on to the Content Manager server to stop it doing the Publishing. On the Content Manager Server:

  1. Stop and Disable the Tridion Content Manager Publisher Service and the Tridion Content Distributor Transport Service

You should now be able to publish an item from the CME and the new Publishing Server will pick it up and transport it to your Deployer.

Scaling SDL Tridion 2013 – Installing the Publisher on a dedicated machine

SDL Web 8 Technical Deep Dive and Future Direction Video

If you haven’t managed to get your hands on SDL Web 8 or have missed all the presentations and webinars (like myself) then I’ve just found that there is a great webinar that Nuno Linhares recorded that you can find here: https://community.sdl.com/products-solutions/solutions/customer_experience_cloud/digital-experience/tridion/w/wiki/818.future-direction-roadmap

He explains all the new features as well as diving deeper into the changes in the Content Manager and Content Delivery API as well as explaining the infamous Topology Manager.

SDL Web 8 Technical Deep Dive and Future Direction Video

SDL Tridion 2013 64 Bit Oracle Data Access Components (ODAC)

Whilst setting up the Content Manager for SDL Tridion 2013 SP1 the installation steps in the online manual aren’t very clear for where to get your ODAC components from.

The steps in the manual say:

Download the Oracle client software from the following location: http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html. Download and unpack it to a location of your choice, then start the 64-bit Oracle client installer.

But that took me to a section on the Oracle website to do with Visual Studio which completely confused me.

The ODAC Components that worked great for me were these ones: http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

I downloaded the 64-bit ODAC 12c Release 4 (12.1.0.2.4) for Windows x64

The downloaded file name is: ODAC121024_x64.zip

You can then install the required items which are Oracle Services for Microsoft Transaction Server and Oracle Data Provider for .NET

This installer also creates your TNSNAMES.ORA file too which is useful. The other installers I used didn’t do this.

Once the installer is finished then restart your server and then you will be able to run the SDL Tridion installer or the Powershell scripts.

These same ODAC components work if you are developing a DD4T or DXA solution locally too.

SDL Tridion 2013 64 Bit Oracle Data Access Components (ODAC)