Как следует из названия, я использую пакет AlexaCRM/dynamics-webapi-toolkit в проекте PHP. У меня есть код, в котором я получаю несколько записей (эта часть работает). Однако мне нужно добавить своего рода фильтр, в котором я получаю только те, которые были «модифицированы» за последние X дней. Вот текущий рабочий код
$pagingInfo = new \AlexaCRM\Xrm\Query\PagingInfo();
$pagingInfo->Count = 10;
$client = ClientFactory::createOnlineClient(
'https://some-microsoft-crm.com',
'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
);
$query = new QueryByAttribute('contact');
$query->ColumnSet = new \AlexaCRM\Xrm\ColumnSet(columnSet(true));
$query->PageInfo = $pagingInfo;
$result = $client->RetrieveMultiple($query);
Формат «модифицированного»: «2024-07-22T10:57:01Z». (Это сработает, если я укажу точную дату $query->AddAttributeValue("modifiedon", $twoDaysAgoDateTimeFormat);
Я попытался добавить параметр, как предлагалось на другом форуме, но каждый раз, когда я делал запрос в этой строке, это не удавалось:
$query->AddAttributeValue("modifiedon", 'ge ' . $twoDaysAgoDateTimeFormat);
или
$query->AddAttributeValue("modifiedon ge", $twoDaysAgoDateTimeFormat);
Любые предложения будут полезны.
Во-первых, QueryByAttribute поддерживает только оператор " eq "
. Вы можете обратиться к строке исходного кода 400.
Вместо этого вам следует использовать FetchExpression
.
Код ниже извлекает контакты, которые были изменены за последние 3 дня:
$fetchXML = <<<FETCHXML
<fetch mapping = "logical">
<entity name = "contact">
<all-attributes />
<filter>
<condition attribute = "modifiedon" operator = "last-x-days" value = "3" />
</filter>
</entity>
</fetch>
FETCHXML;
$fetchExpression = new FetchExpression($fetchXML);
$collection = $client->RetrieveMultiple($fetchExpression);
Вот официальное руководство .
Кстати, FetchXml также можно создать с помощью Расширенный поиск (шаг 1–3) и FetchXML Builder. Вы можете выбрать столбцы и отфильтровать, а затем нажать кнопку ""
Как вы и предложили, я так и сделал. Работает достаточно хорошо. Хотя я не знал о теге «все атрибуты», поэтому попробую его. Ссылки, которые вы разместили, полезно знать. Спасибо за вашу помощь :)