2017-02-06 2 views
0

Я использую API на основе контрактов Acumaticas и мне нужно создать новый заказ на продажу. Я использую C# и импортировал ссылку на службу AcumaticaAPI. До сих пор я мог запросить некоторые данные, например, получить список всех заказов на продажу. Но я не знаю, как создать заказ на продажу через API, и не могу найти, как это сделать в developer guide. Вот мой код для получения списка заказов на продажу:Acumatica создает заказ на продажу с .net API

public HttpResponseMessage AddSalesOrder(int id) 
{ 

    var binding = new System.ServiceModel.BasicHttpBinding() 
    { 
     AllowCookies = true, 
     MaxReceivedMessageSize = 655360000, 
     MaxBufferSize = 655360000 
    }; 

    var address = new System.ServiceModel.EndpointAddress("http://acumaticasandbox.mydomain.com/TestCompany/entity/Default/5.30.001"); 



    using (DefaultSoapClient client = new DefaultSoapClient(binding, address)) 
    { 
     client.Login("myuser", "mypass", "Test Company", null, null); 

     Entity[] items = client.GetList(new SalesOrder(), false); 


     client.Logout(); 

     return Request.CreateResponse(HttpStatusCode.OK, items); 
    } 
} 

-Как бы я изменить этот код для того, чтобы создать новый заказ на продажу?

-Также существует ли способ создания партии новых заказов на продажу через массив объектов заказа клиента или импорт файла (csv) через API?

+1

Как упоминалось в samol518, в курсе T210 есть много примеров, в том числе чтение и письмо по заказам на продажу – Brendan

+0

@Brendan, сейчас я это переживаю. Спасибо за ваши ответы! –

ответ

1

Сначала вам нужно создать объект заказа клиента, который вы хотите вставить в систему.

SalesOrder so = new SalesOrder 
{ 
    OrderType = new StringValue { Value = "SO" }, 
    CustomerID = new StringValue { Value = "ABARTENDE" }, 
    Details = new SalesOrderDetail[] 
    { 
     new SalesOrderDetail 
     { 
      InventoryID = new StringValue {Value = "AACOMPUT01" }, 
      Quantity = new DecimalValue {Value = 2m } 
     }, 
     new SalesOrderDetail 
     { 
      InventoryID = new StringValue {Value = "AALEGO500" }, 
      Quantity = new DecimalValue {Value = 4m } 
     } 
    } 
}; 

Данные инвентаризации взяты из демонстрационных данных.

Затем вам необходимо использовать вызов «Положить», чтобы вставить новый заказ клиента в систему.

SalesOrder result = (SalesOrder)client.Put(so); 

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

Если у вас есть доступ к Университету Acumatica, то курс, связанный с API на основе контракта, - I210. http://acumaticaopenuniversity.com/courses/i210-contract-based-web-services/

+0

Спасибо за код и ссылку на этот ресурс. Сейчас я пройду курс. Я уверен, что это будет большой помощью. Я приму ответ, как только подтвержу, что он работает. –

Смежные вопросы