Используя AlexaCRM/dynamics-webapi-toolkit, мне нужно добавить фильтр для даты и времени «modifiedon»

Как следует из названия, я использую пакет 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);

Любые предложения будут полезны.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
508
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Во-первых, 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. Вы можете выбрать столбцы и отфильтровать, а затем нажать кнопку ""

Как вы и предложили, я так и сделал. Работает достаточно хорошо. Хотя я не знал о теге «все атрибуты», поэтому попробую его. Ссылки, которые вы разместили, полезно знать. Спасибо за вашу помощь :)

Sky 22.08.2024 16:04

Другие вопросы по теме