0

Using Sitecore DEF 2.01 in Sitecore 9, I'm following the tutorial for the File based provider, with minor modifications to read that the file contains json, and so my value accessor contains a property name rather than an index.

Run I run the tenant, Im getting the error

ERROR [Data Exchange] Pipeline context is missing at least one required plugin. (pipeline: Experience from File to Item Sync Pipeline, pipeline step: Resolve Experience Info Item, pipeline step identifier: XXX-XXX-XXX-XXX, missing plugins: Sitecore.DataExchange.Plugins.SynchronizationSettings)

Any ideas why based on the tutorial code?

My endpoint provider looks like:

   [SupportedIds(TextFileEndpointTemplateId)]
public class MulesoftEndpointConverter : BaseEndpointConverter
{
    public const string TextFileEndpointTemplateId = "{XXX-XXX}";
    public const string TemplateFieldPath = "Path";
    public MulesoftEndpointConverter(IItemModelRepository repository) : base(repository)
    {
    }
    protected override void AddPlugins(ItemModel source, Endpoint endpoint)
    {
        //create the plugin
        var settings = new MulesoftSettings
        {
            //
            //populate the plugin using values from the item
            Path = this.GetStringValue(source, TemplateFieldPath)
        };
        //
        //add the plugin to the endpoint
        endpoint.AddPlugin(settings);
    }
}

And the ReadConverter lile

    [SupportedIds(ReadTextFileStepTemplateId)]
public class ReadMulesoftConverter : BasePipelineStepConverter
{
    public const string ReadTextFileStepTemplateId = "{XXX-XXX}";
    public const string TemplateFieldEndpointFrom = "EndpointFrom";
    public ReadMulesoftConverter(IItemModelRepository repository) : base(repository)
    {
    }
    protected override void AddPlugins(ItemModel source, PipelineStep pipelineStep)
    {
        //
        //create the plugin
        var settings = new EndpointSettings
        {
            //populate the plugin using values from the item
            EndpointFrom = this.ConvertReferenceToModel<Endpoint>(source, TemplateFieldEndpointFrom)
        };
        //
        //add the plugin to the pipeline step
        pipelineStep.AddPlugin(settings);
    }
}
  • I see the problem is not here. It is in the "Resolve Experience Info Item" pipeline step and assigned pipeline step processor into it. Pipeline step processor requires "SynchronizationSettings" and it cannot find it. It means, no one from previous pipeline steps add "SynchronizationSettings" to a pipeline context. – Vlad Shpak May 3 '18 at 10:25
1

Resolve Experience Info Item pipeline step requires SynchronizationSettings context plugin. But no one from previous pipeline steps add this plugin to the context.

It may happen if assigned pipeline step processor on Resolve Experience Info Item uses attribute or one of the base classes use:

[RequiredPipelineContextPlugins(typeof(SynchronizationSettings))]
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.