Поделиться через


Вызов модуля оптимизации выполнения (DOM) Intelligent Order Management через API

Начиная с выпуска за апрель 2023 г. вы можете вызывать модуль оптимизации выполнения (DOM) Microsoft Dynamics 365 Intelligent Order Management из-за пределов оркестрации заказов на продажу с помощью интерфейса программирования (API). Любая платформа, например платформа электронной коммерции, торговая площадка или платформа планирования ресурсов предприятия (ERP), может отправить запрос API к Intelligent Order Management, чтобы получить оптимальный источник выполнения, а также параметры доставки, такие как тарифы перевозчика и предполагаемая дата доставки. Если вы хотите получить только план выполнения, запрос API должен содержать как минимум адрес доставки, продукты и количество. Если вы хотите получить тарифы перевозчика и предполагаемые даты доставки в дополнение к плану выполнения, вы должны передать информацию о перевозчике. В настоящее время API рассчитан на вызовы API тарифов FedEx для получения тарифов на доставку. Тем не менее полезные данные ответа являются универсальными для любого перевозчика.

Необходимые условия

Перед использованием модуля оптимизации выполнения (DOM) в Intelligent Order Management через API необходимо сделать следующее:

  • Установить последнюю версию Intelligent Order Management (версия 1.0.0.6035).
  • Настроить параметры выполнения, такие как стратегии, списки источников и ограничения. Дополнительные сведения см. в статье Обзор поставщика оптимизации выполнения и возвратов.
  • Настроить поставщика видимости запасов. Дополнительные сведения см. в разделе Видимость запасов.
  • Убедиться, что ИД склада сопоставлен с каждым источником выполнения в параметрах источников выполнения.

Если вы ожидаете результатов с вариантами доставки от перевозчика FedEx, убедитесь, что выполнена следующая настройка.

  1. Настройте поставщика FedEx. Дополнительные сведения см. в статье Настройка поставщика FedEx.
  2. Настройте календарь праздников, выбрав Параметры>Параметры выполнения>Календарь праздников.
  3. Настройте график вывоза перевозчика, выбрав Параметры>Параметры выполнения>Перевозчики. Выберите перевозчика, перейдите к графикам вывоза и добавьте новый график вывоза.
  4. Убедитесь, что хотя бы один календарь и график вывоза назначены параметрам источников выполнения.
  5. Убедитесь, что в общей таблице размеров продуктов указаны вес и размеры продукта.
  6. Убедитесь, что в таблицу коэффициентов стоимости доставки занесены коэффициент тарифа на доставку и информация о резервном тарифе. Чтобы получить доступ к таблицам коэффициентов стоимости доставки, выберите Параметры>Параметры выполнения>Перевозчики>Коэффициент стоимости доставки.

Описание функциональности

При отправке запроса API вызывается модуль оптимизации выполнения (DOM) в Intelligent Order Management, который возвращает оптимальный источник выполнения для каждой строки на основе предварительно настроенных стратегий оптимизации и ограничений. Если запрос содержит перевозчика, такого как FedEx, график вывоза перевозчика рассматривается в сочетании с календарем рабочего времени источника выполнения, и следующее доступное время вывоза отправляется API-интерфейсам перевозчика. Ответ API-интерфейсу DOM сочетает в себе как план выполнения, так и выходные данные перевозчика, и предоставляет их обратно вызывающему приложению.

Образец запроса API

Создайте несвязанное действие "поток Power Automate — Dataverse", чтобы протестировать запрос в вашей собственной среде.

{{Dataverse URL}}/api/data/v9.2/msdyn_IomDomAPI  
**apiVersion**: 1.0 
{ 
    "fnoCompanyId": "USMF", 
    "orderId": "b16bd573-ad9a-4188-bc08-e5ac5eca776e", 
    "strategyId": null, 
    "carrier": "fedex", 
    "salesOrderOrigin": null, 
    "customerInformation": { 
        "name": "Whole sales", 
        "customerNumber": "US-001", 
        "customerGroup": "10", 
        "customerEmail": "test@microsoft.com" 
    }, 
    "orderDestinationAddress": { 
        "addressType": "Residence", 
        "address1": "537 N St. Francis", 
        "address2": null, 
        "address3": null, 
        "city": "Wichita", 
        "stateOrProvince": "KS", 
        "postalCode": "67214", 
        "phoneNumber": null, 
        "country": "US" 
    }, 
    "lineItems": [ 
        { 
            "lineId": "d5670621-910d-486b-90ca-61d739e9a92e", 
            "itemId": "1000", 
            "quantity": 2, 
            "freeShipping": "No" 
        }, 
        { 
            "lineId": "5c8b423b-c9fe-4ff1-a16e-a75a35d7c424", 
            "itemId": "T0001", 
            "quantity": 2, 
            "freeShipping": "Yes", 
            "dimensions": { 
                "sizeId": "10" 
            } 
        }, 
        { 
            "lineId": "a359a0ec-cded-4eda-b7b0-d7478dff48b9", 
            "itemId": "T0004", 
            "quantity": 2, 
            "freeShipping": "Yes", 
            "dimensions": { 
                "colorId": "black" 
            } 
        } 
    ] 
}

Образец ответа

Fulfillment Successful 
{ 
    "fulfillmentPlan": { 
        "executionId": "616d8797-0654-4ca7-bae2-c4771521e5f4", 
        "planLines": [ 
            { 
                "orderId": "47c1c1c6-5cc7-4691-a0ae-b50b83b2bba1", 
                "lineId": "34d8209b-3a4b-4c54-a666-76fef99bef63", 
                "quantityToFulfill": 1.0, 
                "orderedQuantity": 1.0, 
                "fulfillmentCenter": "127", 
                "itemId": "1000" 
            } 
        ], 
        "notFulfilledLines": [] 
    } 
} 

Справочное руководство по API

В этом разделе описываются поля типов данных и заголовка в запросе API.

Имя Тип данных Описание
fnoCompanyId строка, необязательное Идентификатор компании в системе. Это поле является обязательным, если база данных Dataverse связана с приложением для управления финансами и операциями.
salesOrderOrigin строка, необязательное Идентификатор основания заказа в системе. Это поле является обязательным, если запасы должны потребляться из выделенных исходя из основания заказа.
orderId строка GUID, обязательное Определяемый пользователем номер заказа, который используется для идентификации идентификатора заказа или корзины в исходной системе.
strategyId строка GUID, необязательное Идентификатор стратегии выполнения заказов в Intelligent Order Management. Если этот идентификатор не указан, процесс использует стратегию по умолчанию, определенную в системе.
carrier строка, необязательное Это поле необходимо для получения тарифов на доставку и предполагаемых дат доставки. Поддерживаемое значение — FedEx.
orderDestinationAddress адрес, обязательное Адрес доставки получателя. Используйте модель "Адрес".
customerInformation CustomerInformation, необязательное Информация о клиенте в заказе. Используйте модель "Информация о клиенте".
lineItems OrderDetail, обязательное Массив объектов со сведениями о заказе. Используйте массив модели "Сведения о заказе".

Модель

В этом разделе описываются поля, которые используют модель данных, в запросе API.

Адрес

В этом разделе описываются поля в объекте адреса в запросе API.

Имя Тип данных Описание
addressType строка, необязательное, значения: Business, Residence, Any Значение, указывающее, является ли указанный адрес домашним.
имя строка, необязательное Имя человека.
address1 строка, необязательное Первая строка адреса.
address2 строка, необязательное Вторая строка адреса.
address3 строка, необязательное Третья строка адреса.
city строка, обязательное Город.
stateOrProvince строка, обязательное Штат или провинция. Требуется двухбуквенный код штата-источника по ISO.
postalCode строка, обязательное Почтовый индекс.
country строка, обязательное Код страны или региона. Требуется двухбуквенный код страны/региона-источника по ISO.
phoneNumber строка, необязательное Номер телефона.

Сведения о заказе

В этом разделе описываются поля в разделе сведений о заказе в запросе API.

Имя Тип данных Описание
lineId строка GUID, обязательное Идентификатор строки заказа в системе-источнике.
itemId строка, обязательное Название продукта, связанное с данной строкой. Значение не может быть равно NULL.
quantity число, обязательное Заказанное количество продуктов.
freeShipping строка, необязательное, значения: Yes, No Значение Yes означает, что вес продукта исключается из запроса тарифа на доставку.
dimensions ProductDimensions, необязательное Аналитики продукта — это характеристики, которые определяют вариант продукта. Для них используется модель "Аналитики продуктов". Это поле является обязательным, если база данных Dataverse связана с приложением для управления финансами и операциями. Выберите размеры продукта, чтобы определить вариант продукта.

Аналитики продуктов

В этом разделе описываются поля в таблице размеров продукта.

Имя Тип данных Описание
colorId строка, необязательное Значение цвета номенклатуры. Это поле является обязательным, если база данных Dataverse связана с приложением для управления финансами и операциями. Выберите аналитики продукта, чтобы определить вариант продукта, с которым вы хотите работать.
sizeId строка, необязательное Значение размера номенклатуры. Это поле является обязательным, если база данных Dataverse связана с приложением для управления финансами и операциями. Выберите аналитики продукта, чтобы определить вариант продукта, с которым вы хотите работать.
styleId строка, необязательное Значение стиля номенклатуры. Это поле является обязательным, если база данных Dataverse связана с приложением для управления финансами и операциями. Выберите аналитики продукта, чтобы определить вариант продукта, с которым вы хотите работать.
configId строка, необязательное Значение конфигурации номенклатуры. Это поле является обязательным, если база данных Dataverse связана с приложением для управления финансами и операциями. Выберите аналитики продукта, чтобы определить вариант продукта, с которым вы хотите работать.