THE PROBLEM
We are on Sitecore 10.1 and we use Sitecore Publishing Service for publishing. Recently, we encountered an issue where our items selected in a custom field (called as Multilist Dynamic Source with Search) were not published even when Related Items checkbox was checked in the Publish Dialog.
However, the items selected in the Multilist fields publish properly. Hence, we ruled out the possibility of Sitecore Publishing Service configurations not pointing to correct database that stores Link DB. We discussed that issue in a previous blog.
Multilist or any custom field based on Multilist stores the selected items as a pipe separated list of ItemIDs. You can verify this by looking at the Raw Values of the field.
When a user published a page and checked the checkbox for Related Items, then the expectation was that the items selected in Multilist or the custom field of a rendering datasource shall also get published. In our case where we used the custom field based on Multilist field, the items selected in the field did not publish. However, all the items selected in a normal Multilist field used to get published normally when the Related Items checkbox is checked.
THE SOLUTION
We looked at many things starting with the Sitecore Publishing Service configurations to ensure that it points to correct database for Links DB. We also ensured that items are not stuck due to workflow states. Since, the publishing worked correctly for other field types, we started looking at what we were missing in our custom field itself as all the other fields were working correctly and used to get published correctly without any issue. We came across following configuration - App_Config/FieldTypes.config
This config has entry for all the field types Sitecore supports. We realized that we missed to add an entry to this FieldTypes.config for our custom field type. So we added it as in snapshot below and then tried the publish and it worked. It seems this was the missing piece and this FieldTypes.config related to LinkDB somehow.
Since this config is located outside App_Config/Include folder, many developers in our team believed it can not be patched. I started looking at the configurations to find where we use this FieldTypes.config and found that Sitecore.config refers FieldTypes.config in below node -
So I developed the following patch to give it a shot to patch the FieldTypes.config and guess what, IT WORKED!!
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:environment="http://www.sitecore.net/xmlconfig/environment/">
<sitecore>
<fieldTypes>
<!-- Custom Types -->
<fieldType name="Multilist Dynamic Source with Search" type="Sitecore.Data.Fields.MultilistField,Sitecore.Kernel" resizable="true" />
</fieldTypes>
</sitecore>
</configuration>
So, this fixed the issue of why the items selected in the custom field were not getting published. I hope it helps you guys. Thanks for reading!!
Comments
Post a Comment