"What is new"

From PonyExpress API Wiki
Jump to: navigation, search

Запрос "What is new"

Запрос типа WhatIsNewRequest позволяет получить все новые статусы по заказу с момента последнего обращения.

<?xml version="1.0" encoding="utf-8"?>
<Request xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="WhatIsNewRequest">
  <Id>1</Id>
  <StatusesMode>ByKey</StatusesMode>  <!--  Режим запроса статусов: ByKey (по-умолчанию, можно опустить) – статусы по ключу, ByContract – по всем заказам договора ключа запроса ->
</Request>

</Request>

Ответ на запрос "What is new"

Ответ на такой тип запросов содержит минимум информации по заказу и только те статусы, которые не передавались в ответах на предыдущие запросы такого типа.

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <RequestId>1</RequestId>
  <OrderList>
    <Order>
      <ClientsNumber>kb48-12744</ClientsNumber>
      <PerformersNumber>MOW-123243</PerformersNumber>
      <ServiceList>
        <Service xsi:type="DeliveryService">
          <Waybill>
            <Number>11-1111-1111</Number>
          </Waybill>
          <StatusList>
            <ServiceStatus xsi:type="DeliveryStatus">
              <Description>Delivered</Description>
              <Date>2013-11-21T21:12:30.0887813+04:00</Date>
              <Code>Delivered</Code>
              <Id>6</Id>
           <Country>Russia</Country>
           <City>Moscow</City>
           <Consignee>Иванов А.С.</ Consignee > 
              <DateTZ>3</DateTZ>
            </ServiceStatus>
          </StatusList>
        </Service>
        <Service xsi:type="SalesMediationService">
          <StatusList>
            <ServiceStatus xsi:type="SalesMediationStatus">
              <Description>Commodities have been sold. Lots: 1</Description>
              <Date>2013-11-21T21:22:30.0887813+04:00</Date>
              <Code>Sold</Code>
              <LotList>
                <string>1</string>
              </LotList>
            </ServiceStatus>
            <ServiceStatus xsi:type="SalesMediationStatus">
              <Description>Commodities have been refused. Lots: 2</Description>
              <Date>2013-11-21T21:22:30.0887813+04:00</Date>
              <Code>Refused</Code>
              <LotList>
                <string>2</string>
              </LotList>
            </ServiceStatus>
          </StatusList>
        </Service>
        <Service xsi:type="SMSInfoService">
          <StatusList>
            <ServiceStatus xsi:type="SMSInfoStatus">
              <Description>SMS has been sent.</Description>
              <Date>2013-11-21T21:22:30.0887813+04:00</Date>
              <Code>Sent</Code>
            </ServiceStatus>
          </StatusList>
          <Mode>Delivered</Mode>
        </Service>
      </ServiceList>
      <StatusList>
      </StatusList>
    </Order>
  </OrderList>
  <MessageList>
    <ResponceMessage>
      <IsError>false</IsError>
      <Text>Request completed.</Text>
    </ResponceMessage>
  </MessageList>
</Response>


Ответ содержит ограниченное количество заказов со статусами за один раз (лимит задается для конкретного ключа доступа). Если ответ содержит сообщение с текстом "Request completed.", это означает, что выгружены все статусы.

    <ResponceMessage>
      <IsError>false</IsError>
      <Text>Request completed.</Text>
    </ResponceMessage>

Если в системе остались ещё не выгруженные статусы, то мы получим сообщение о том, что нужно повторить запрос.

    <ResponceMessage>
      <IsError>false</IsError>
      <Text>Responce has more than 20 orders! To get the rest (1) repeat history request.</Text>
    </ResponceMessage>

Когда новых статусов не останется веб-сервис вернёт следующий ответ.

    <ResponceMessage>
      <IsError>false</IsError>
      <Text>Responce has no more orders left! To complete repeat history request.</Text>
    </ResponceMessage>