Hello all,
I will show you, How to create sales order from external using OData service.
Below is the snippet to just create and read the data.
I will show you, How to create sales order from external using OData service.
Below is the snippet to just create and read the data.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ODataUtility.Microsoft.Dynamics.DataEntities;
using Microsoft.OData.Client;
using Newtonsoft.Json;
namespace ODataConsoleApplication
{
class SalesOrderCRUD
{
{
try
{
//Header
SalesOrderHeader salesOrder = new SalesOrderHeader();
DataServiceCollection<SalesOrderHeader> salesOrderCollection =
new DataServiceCollection<SalesOrderHeader>(context);
salesOrderCollection.Add(salesOrder);
salesOrder.CurrencyCode = "USD";
salesOrder.InvoiceCustomerAccountNumber = "US-001";
salesOrder.OrderingCustomerAccountNumber = "US-001";
salesOrder.LanguageId = "en-us";
salesOrder.DataAreaId = "USMF";
context.MergeOption
= MergeOption.OverwriteChanges;
context.SaveChanges(SaveChangesOptions.PostOnlySetProperties | SaveChangesOptions.BatchWithSingleChangeset); // Auto generate number
sequence
//Lines
SalesOrderLine salesOrderLine = new SalesOrderLine();
DataServiceCollection<SalesOrderLine>
salesOrderLineCollection = new DataServiceCollection<SalesOrderLine>(context);
salesOrderLineCollection.Add(salesOrderLine);
salesOrderLine.SalesOrderNumber = salesOrder.SalesOrderNumber;
salesOrderLine.ItemNumber = "1000";
salesOrderLine.OrderedSalesQuantity = 1;
salesOrderLine.ShippingSiteId = "2";
salesOrderLine.ShippingWarehouseId = "24";
salesOrderLine.DataAreaId = "USMF";
context.SaveChanges(SaveChangesOptions.PostOnlySetProperties | SaveChangesOptions.BatchWithSingleChangeset); // Batch with Single
Changeset ensure the saved changed runs in all-or-nothing mode.
Console.WriteLine(string.Format("Sales order {0} is
created.", salesOrder.SalesOrderNumber));
}
catch (DataServiceRequestException e)
{
Console.WriteLine("Error {0}",
e.InnerException.Message);
}
}
{
string company = "USMF";
//var salesOrderRead =
context.SalesOrderHeadersV2.Where(x => x.DataAreaId == company).First();
//To read all fields
information in a record
//Console.WriteLine(JsonConvert.SerializeObject(salesOrderRead));
//To read field by field
information in a record
//Console.WriteLine("Sales
order {0} Customer {1}", salesOrderRead.SalesOrderNumber,
salesOrderRead.OrderingCustomerAccountNumber);
//To read all records
var salesOrderRead =
context.SalesOrderHeadersV2.Where(x => x.DataAreaId == company).ToList();
for (int i = 0; i <=
salesOrderRead.Count; i++)
{
Console.WriteLine("Sales order {0}
Customer {1}", salesOrderRead[i].SalesOrderNumber,
salesOrderRead[i].OrderingCustomerAccountNumber);
}
Console.ReadLine();
}
}
}
public static void updateSalesOrder(Resources context)
{
try
{
string salesId = "000812";
string company = "usmf";
// Read
var salesOrder = context.SalesOrderLines.Where(x => x.DataAreaId == company && x.SalesOrderNumber == salesId).First();
DataServiceCollection<SalesOrderLine> salesOrderCollection = new DataServiceCollection<SalesOrderLine>(context);
salesOrderCollection.Add(salesOrder);
// Update
salesOrder.SalesPrice = 169;
context.UpdateObject(salesOrder);
context.SaveChanges(SaveChangesOptions.PostOnlySetProperties | SaveChangesOptions.BatchWithSingleChangeset);
Console.WriteLine("Updated successfully for Sales order {0} Item id {1}", salesOrder.SalesOrderNumber, salesOrder.ItemNumber);
}
catch (DataServiceRequestException e)
{
Console.WriteLine("Error {0}", e.InnerException.Message);
}
}
public static void updateSalesOrder(Resources context)
{
try
{
string salesId = "000812";
string company = "usmf";
// Read
var salesOrder = context.SalesOrderLines.Where(x => x.DataAreaId == company && x.SalesOrderNumber == salesId).First();
DataServiceCollection<SalesOrderLine> salesOrderCollection = new DataServiceCollection<SalesOrderLine>(context);
salesOrderCollection.Add(salesOrder);
// Update
salesOrder.SalesPrice = 169;
context.UpdateObject(salesOrder);
context.SaveChanges(SaveChangesOptions.PostOnlySetProperties | SaveChangesOptions.BatchWithSingleChangeset);
Console.WriteLine("Updated successfully for Sales order {0} Item id {1}", salesOrder.SalesOrderNumber, salesOrder.ItemNumber);
}
catch (DataServiceRequestException e)
{
Console.WriteLine("Error {0}", e.InnerException.Message);
}
}
Informative blog. Thank you for sharing with us..
ReplyDeleteD365 Finance and Operations Online Training