Introduction to Message Queues

The basic architecture of a message queue is simple, there are client applications called producers that create messages and deliver them to the message queue. An application, called consumer, connects to the queue and retrieves the messages to be processed. Messages are stored in the queue until the consumer retrieves them for processing.queueIn this post I will share some the benefits you can gain from utilizing message queues in your application architecture and look at some of the queuing platforms available today.  In the following series of posts I will explore how message queues can be utilized with Sitecore:

Continue reading

Common Sitecore DEF Mistakes

So in this short post, I’ll cover a few common mistakes that you might make when starting out configuring your DEF project, I know I certainly did and a fellow colleague hit the same issues on a recent project he just started. Hopefully, it will prevent you from falling into the same trap and banging your head against the wall.

Error An Item with the same key has already been added.

Symptoms: You see the following error is logged when you run your pipeline batch and you have a Resolve Sitecore Item Pipeline Step. You will probably see something like this in your Sitecore logs:

[Date/Time] ERROR An item with the same key has already been added.

[Date/Time] ERROR Pipeline step processing will abort because a critical error occurred during processing.

Possible Cause: You see this occur during the Resolve Sitecore Item pipeline step processor. It usually means you have duplicate field name on the item you are trying to create in Sitecore. Check the template of the Sitecore item you are attempting to create including any inherited templates and resolve any duplicate fields names.

Item is created in Sitecore but the fields are not populated.

Symptoms: You have a pipeline batch with pipeline steps that read data from a source, iterates the items and create an item in Sitecore. The Item is created with the correct identifier, however, the fields on the Sitecore item are not populated.

Possible Cause: Most likely this is an issue with Data Location field has been set incorrectly on a pipeline step. Go through each step and check the location value.

Error: Pipeline step processing will abort because the pipeline context has no target assigned

Symptoms: You have a Resolve Sitecore Item Pipeline step followed by an Apply Mapping Pipeline step. Your new Item gets created however, all the fields are null. You see something similar to the following in the logs (Debug mode):

[Date/Time] DEBUG Value converted for search. (pipeline: Handle Single Row Pipeline, pipeline step: Resolve Sitecore Item Pipeline Step, field: UniqueId, original value: XXX-XXXX-XXXXX, converted value: XXX-XXXX-XXXXX)
[Date/Time] DEBUG Starting search for item. (pipeline: Handle Single Row Pipeline, pipeline step: Resolve Sitecore Item Pipeline Step, field: UniqueId, value: XXX-XXXX-XXXXX)
[Date/Time] DEBUG Item was not resolved. Will create it. (pipeline: Handle Single Row Pipeline, pipeline step: Resolve Sitecore Item Pipeline Step, identifier: XXX-XXXX-XXXXX)
2/27/2019 9:52:34 PM DEBUG New item was created. (pipeline: Handle Single Row Pipeline, pipeline step: Resolve Sitecore Item Pipeline Step, identifier: XXX-XXXX-XXXXX)
[Date/Time] ERROR Pipeline step processing will abort because the pipeline context has no target assigned. (pipeline: Handle Single Row Pipeline, pipeline step: Apply Mapping Pipeline Step, plugin: Sitecore.DataExchange.Plugins.SynchronizationSettings, property: Target)
[Date/Time] DEBUG Pipeline processor finished processing pipeline steps. (pipeline: Handle Single Row Pipeline, completed pipeline steps: 3)

Possible Cause:  Check the Resolve Sitecore Item Pipeline Step and look the Object Resolution section ensure the Resolved Object Location is set: Pipeline Context Target and not Pipeline Context Source. If that is set correctly then you might want to check you the Converter and Processor Types correctly:

DefTypes

If you are using a custom Processor & Converter ensure you have set the SupportIds attribute on your Converter class so that it matches your custom template.

Hope this helps!

Generate Sitecore Support Package via Admin Tools

So I’ve been happily running the standalone SSPG (Sitecore Support Package Generator) for some time now, that is until my good friend Bill Cacy pointed out – it can now be generated via the Sitecore Admin Tools in Sitecore 8.2 onwards!! Wow, how did I miss this?

SSPG is an awesome tool for grabbing a snapshot of useful juicy information about your Sitecore instance to help you diagnose issues when thing go wrong or if just want to simply grab all the log files for a specified period of time. If you’ve never used it then chances are you’ve never had to raise a Sitecore support ticket, as this is one of the first things they will almost always ask for if you don’t provide it to them beforehand.

By making it available in Admin Tools Sitecore have made the process of generating this package and uploading it to the Sitecore FTP support location much much simpler.

1. Select Support Package from the Sitecore Admin Tools Index page (sitecore/admin/default.aspx)

sspg1 Continue reading

GDPR! Personally Identifiable Information (PII) in Sitecore xConnect.

With the General Data Protection Regulation (GDPR) about to go into effect on May 25th, you should be aware of what Personally Identifiable Information (PII) could be stored in Sitecore 9 xConnect.

These fields are easily identifiable if you have installed Sitecore Data Exchange Framework 2.0+ and the xConnect Provider (provides the ability to read and write data to the collection and reference data services of Sitecore xConnect).

Continue reading

Transforming Data with Sitecore DEF

When transferring data between systems while some data will map directly you inevitably will come across data objects that need be transformed from the source format into a format that is compatible with the target object. Sitecore Data Exchange framework provides a mechanism and flexibility to reuse to Transform source data objects into the required format for the target data object.

A Value Reader allows you to read a value from a Source object. While it can read the value as is, they can also be used to transform the value. With each version of DEF Sitecore has provided a number Value Readers OOTB.

With DEF version 1.4.1 you have access to the following values readers:

DEF141_DataReaders

Continue reading

Troubleshooting Coveo for Sitecore

I ran into an indexing issue a while back with Coveo for Sitecore which involved a bit of troubleshooting. When you are working with a platform like Coveo its not always obvious where to start troubleshooting. In this post, I’ll provide some practical steps to help you troubleshoot issues you might run into and get you unstuck and back doing fun stuff with Coveo and Sitecore. Continue reading