3

I am sure I am missing something. I am getting a "Processing will abort because there are no processor definitions are assigned to the pipeline" error when running the pipeline batch. I have my converter type and processor type defined correctly on my pipeline step. The converter step gets called. I have the pipeline selected on the pipeline batch. Any ideas? Thanks in advance.

public class CheckforContacts : BasePipelineStepConverter<ItemModel>

{ private static readonly Guid TemplateId = Guid.Parse("{F9F53BC3-093F-4ABB-A2AA-097FB0A03D16}");

public CheckforContacts(IItemModelRepository repository) : base(repository)
{
  this.SupportedTemplateIds.Add(TemplateId);
}

protected override void AddPlugins(ItemModel source, PipelineStep pipelineStep)
{
  AddEndpointSettings(source, pipelineStep);
}
private void AddEndpointSettings(ItemModel source, PipelineStep pipelineStep)
{
  var settings = new EndpointSettings();

  pipelineStep.Plugins.Add(settings);
}

}

public class ReadContactsStepProcessor : BaseReadDataStepProcessor { public override bool CanProcess(PipelineStep pipelineStep, PipelineContext pipelineContext) { return base.CanProcess(pipelineStep, pipelineContext); } public override void Process(PipelineStep pipelineStep, PipelineContext pipelineContext) { base.Process(pipelineStep, pipelineContext); } protected override void ReadData(Endpoint endpoint, PipelineStep pipelineStep, PipelineContext pipelineContext) { throw new NotImplementedException(); } }

  • Can you add a pipeline step code? – Vlad Shpak Apr 8 '17 at 15:26
  • Added, but I could not get the formatting to work. – RReilley Apr 8 '17 at 15:36
  • BaseDataReaderStepProcessor is expecting EndpointSettings plugin where EndpointFrom property is not null. In your example it's null. – Vlad Shpak Apr 10 '17 at 10:16
2

It may happen if pipeline steps are not enabled. Select pipeline step and look at under Administration section.

enter image description here

Set as enabled and run it again. Hope that was a single problem.

  • I checked it is Enabled. The converter gets hit. – RReilley Apr 8 '17 at 12:57
  • Tenant is enabled too? – Vlad Shpak Apr 8 '17 at 14:26
  • Yep that is enabled. – RReilley Apr 8 '17 at 14:54
2

There are 3 ways this error can happen:

  1. There are no pipeline steps assigned to the pipeline (which you write is not the case).
  2. None of the pipeline steps assigned to the pipeline is enabled (as Vlad mentioned).
  3. The pipeline step converter is returning null, or is not returning an instance of Sitecore.DataExchange.Models.PipelineStep.

You write that your converter is being called. Are you sure that it is returning a PipelineStep object?

  • Thanks. It could be number 3. I added the converter code in my post. The breakpoint hits CheckforContacts and nothing else. – RReilley Apr 8 '17 at 14:59
  • Double-check the guid you specified for SupportedTemplateIds. If your pipeline step item is not based a guid in SupportedTemplateIds, the converter will not convert the item into a PipelineStep object. – Adam Conn Apr 8 '17 at 20:11
  • My GUID {F9F53BC3-093F-4ABB-A2AA-097FB0A03D16} in the converter is the template id for my pipeline step. That template inherits from the base pipeline step. I think that is correct. – RReilley Apr 9 '17 at 0:21
  • 1
    Everything seems to be configured properly. Maybe try changing the converter on the pipeline itself. You can create a custom pipeline converter and put a breakpoint in it. That will let you see if the pipeline step is being converted properly. – Adam Conn Apr 9 '17 at 0:36
  • I was finally able to hit the code. I added [Sitecore.DataExchange.Attributes.RequiredEndpointPlugins(typeof(ContactSettings))] to the processor. I ran it and the breakpoint is being hit. I get a "Pipeline step processing will abort because the pipeline step is missing an endpoint to read from" error, but I am not completely done. I know what is causing that. Thanks for your help. I am hopeful I can get through this last error. – RReilley Apr 9 '17 at 3:15
2

Ran into this exact same issue, but by adding the SupportedTemplates to both the Converter and the Endpoint, that seemed to resolve the issue:

    //For the Converter:
    private static readonly Guid TemplateId = Guid.Parse("{89E0E664-0F1F-471E-A382-D73D22C51C65}");
    public YourStepConverter(IItemModelRepository repository) : base(repository)
    {
        this.SupportedTemplateIds.Add(TemplateId);
    }

    //For the Endpoint: 
    private static readonly Guid TemplateId = Guid.Parse("{5E7AD77B-6968-4DAA-A516-0762C6FCDD07}");
    public YourEndpointConverter(IItemModelRepository repository) : base(repository) {
        this.SupportedTemplateIds.Add(TemplateId);
    }

To be honest, I originally thought adding the SupportedTemplates was a security restricting measure but I am starting to think its quite the opposite and is intended to add to the supported templates (deny all, add explicity) rather than restrict to the specific templates only (allow all until explicitly defined).

0

I ran into this issue as well. In my case I didn't have a default constructor on my processor and only had a value constructor so the thing that creates an instance of the pipeline step to check its type was not able to do so properly and the processor type was coming back as null. Originally I had just this:

    public ResolveRelativeItemPiplineStep(SitecoreItemUtilities sitecoreItemUtilities)
    {
        if (sitecoreItemUtilities == null)
        {
            throw new ArgumentNullException();
        }
        this.SitecoreItemUtilities = sitecoreItemUtilities;
    }

Then I added this which fixed the issue up:

    public ResolveRelativeItemPiplineStep() : this(Context.GetPlugin<SitecoreItemUtilities>())
    {
    }

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.