1

I'm working on CustomComponentResolver for SDL Web 8.5. The resolver should include component links based on some schema in the publish transaction. In the publish dialog I can see all resolved Components that I need. enter image description here

However, in a Publish Transaction, the same behaviour is not seen. Not all additional Components are included. I guess that default resolver is still used. enter image description here

Here is my configuration

            <add itemType="Tridion.ContentManager.ContentManagement.Component">
            <resolvers>
                <!--add type="Tridion.ContentManager.Publishing.Resolving.ComponentResolver" assembly="Tridion.ContentManager.Publishing, Version=8.5.0.466, Culture=neutral, PublicKeyToken=360aac4d3354074b" /-->

                <!-- custom Company resolver -->
                <add type="Company.CustomResolvers.CapiComponentResolver" assembly="Company.CustomResolvers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3f5061235f7fa327" />

            </resolvers>
        </add>
2
  • Can you add the default component resolver followed by your custom resolver, basically uncomment the default resolver logic? You will have to restart the tridion services followed by the change.
    – Shiva
    Commented Jan 31, 2019 at 17:15
  • I tried with default resolver too. In 1st version, my custom resolver handled only component links. In the current version, custom resolver handles selected component + components links. Unfortunalely result is the same. Publish time only 1st element of resolvedItems colelction is sending for publishing. Commented Jan 31, 2019 at 21:58

2 Answers 2

3

In a scaled out deployment, the publisher service typically runs on a different server than the CME.

If you installed/configured your custom resolver on the CME server, but not on the publisher server, the resolver will only kick in when you press the “Show items to publish” button, but not when actually publishing.

0
2

Clicking the Show items to publish button in the publish dialog will trigger all the related resolvers and show you the list of resolved items. The same thing (triggering of all the resolvers) happens in the resolving state of a Publish Transaction, by default. Hypothetically, the only way this can behave differently is if you programmatically check whether the context is "the publish dialog" or a Publish Transaction, but I doubt that that's possible at all. The Resolver simply doesn't know/care about what triggered it.

The more probable explanation is the following:

The "subject" of a Publish Transaction is always a single item so that is why you don't see anything else listed as a Publish Transactions. The related items will be discovered in the resolving phase and will be processed within the same transaction. To verify this, open the Publish Transaction and you will have 2 checkboxes which control which items to show (show successful, and show failed). Click on the show successful and refresh the list. Your resolved items should appear. See here (bullet number 7).

And finally one thing. The default resolver should not be removed unless you're 100% sure what you're doing. You have the list of resolved items from the default resolver in your custom one, so if something is not up to your liking, you should modify it there.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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