Задача очень простая — отображать только активные записи (в этом примере — продукты) в лукапе при работе с расширенным поиском.
Сначала я попробовал изменить вручную экспортированный файл кастомизации сущности product, добавив условие фильтра

<filter type="and">
                    <condition attribute="statecode" operator="eq" value="0" />
                  </filter>

и импортировав его обратно не получил требуемого результата. После чего я решил написать плагин, который бы перехватывал сгенерированный fetch xml и заменял его на нужный мне. Вот, что получилось:

Код плагина:

public void Execute(IPluginExecutionContext context)
		{
			if (context.InputParameters.Contains("FetchXml"))
			{
				string FetchXml = (String)context.InputParameters["FetchXml"];
				//проверяю, что работаю с product
                                if (FetchXml.Contains("<entity name=\"product\">"))
				{
//заменяю на нужный мне fetch xml
                                 context.InputParameters["FetchXml"] = "<fetch version=\"1.0\" page=\"1\" count=\"100\" output-format=\"xml-platform\" mapping=\"logical\"><entity name=\"product\"><attribute name=\"productid\" /><attribute name=\"name\" /><order attribute=\"name\" /><filter type=\"and\"><condition attribute=\"statecode\" operator=\"eq\" value=\"0\" /><condition attribute=\"name\" operator=\"like\" value=\"%\" /></filter></entity></fetch>";

				}
			}

Регистрирую плагин с таким шагом:

plugin step only active products lookup

plugin step only active products lookup