Quantcast
Channel: Microsoft Dynamics GP Forum - Recent Threads
Viewing all articles
Browse latest Browse all 32807

Insert Sales Order Error

$
0
0

Hi,

I am using the API to insert sales orders. I receive these errors:

A validation exception has occurred.

Validation Errors:

- PriceListKey is blank. It must be passed in or a default must exist for the transaction.

- The U of M for the item is not specified in the item price list as the default selling U of M.

- U of M does not exist for the Unit of Measure Schedule being used.

Here is my code:

public void CreateOrder(JMAOrder ord, string batchK, string customerID)
{
SalesOrder salesOrder;
SalesDocumentTypeKey salesOrderType;
CustomerKey customerKey;
BatchKey batchKey;
SalesOrderLine salesOrderLine;
ItemKey orderedItem;
Quantity orderedAmount;

if (String.IsNullOrEmpty(customerID))
{
customerID = GPCustomers.MakeCustomerKey(ord.BillingAddress.FirstName, ord.BillingAddress.LastName).Id;
}

// Create a sales order object
salesOrder = new SalesOrder();

// Create a sales document type key for the sales order
salesOrderType = new SalesDocumentTypeKey();
salesOrderType.Type = SalesDocumentType.Order;

// Populate the document type key of the sales order object
salesOrder.DocumentTypeKey = salesOrderType;

// Create a customer key
//customerKey = new CustomerKey();
//customerKey.Id = "JONESJ008";


GPCustomers gp = new GPCustomers(wsDynamicsGP, context);
customerKey = gp.CreateGPCustomer(ord, customerID);


// Set the customer key property of the sales order object
salesOrder.CustomerKey = customerKey;

// Create a batch key
batchKey = new BatchKey();
//batchKey.Id = "SALES ORDERS";
batchKey.Id = batchK;

// Set the batch key property of the sales order object
salesOrder.BatchKey = batchKey;
salesOrder.PriceLevelKey = wsDynamicsGP.GetPriceLevelList(new PriceLevelCriteria(), context).FirstOrDefault().Key;
List<SalesOrderLine> soLines = new List<SalesOrderLine>();
foreach (JMAOrderDetail jd in ord.OrderDetails)
{
GPItems gpi = new GPItems(wsDynamicsGP, context);
ItemKey ik = gpi.CreateInventoryItem(jd.Product);

// Create a sales order line to specify the ordered item
salesOrderLine = new SalesOrderLine();

// Create an item key
//orderedItem = new ItemKey();
//orderedItem.Id = "32X IDE";
//orderedItem.Id = jd.Sku;

// Set the item key property of the sales order line object
salesOrderLine.ItemKey = ik;

// Create a sales order quantity object
orderedAmount = new Quantity();
orderedAmount.Value = jd.Quantity;

// Set the quantity of the sales order line object
salesOrderLine.Quantity = orderedAmount;
soLines.Add(salesOrderLine);
}

// Create an array of sales order lines
// Initialize the array with sales order line object
//SalesOrderLine[] orders = { salesOrderLine };


// Add the sales order line array to the sales order
salesOrder.Lines = soLines.ToArray();


// Create the sales order
wsDynamicsGP.CreateSalesOrder(salesOrder, context, salesOrderCreatePolicy);


}

I believe the real problem is in my inventory item code:

public ItemKey CreateInventoryItem(JMAProduct jmaProduct)
{
ItemKey itemKey;
UofMScheduleKey unitOfMeasureKey;
SalesItem salesItem;

try
{
//TO DO: investigate key issue. Should return it...
var s = wsDynamicsGP.GetInventoriedItemByKey(new ItemKey { Id = jmaProduct.Sku }, context);
return s.Key;
}
catch (Exception)
{
// Create a sales item object
salesItem = new SalesItem();

// Create a sales item key object to identify the sales item
itemKey = new ItemKey();
itemKey.Id = jmaProduct.Sku;

// Populate the sales item key property
salesItem.Key = itemKey;

// Populate the description property
salesItem.Description = jmaProduct.Description;
salesItem.ShortDescription = jmaProduct.Description;
// Create a unit of measure schedule key
unitOfMeasureKey = new UofMScheduleKey();
unitOfMeasureKey.Id = "EACH";
// Populate the unit of measure property
salesItem.UofMScheduleKey = unitOfMeasureKey;
salesItem.Type = ItemType.SalesItem;
// Get the create policy for sales item

// Create the sales item
wsDynamicsGP.CreateSalesItem(salesItem, context, salesItemCreatePolicy);

return salesItem.Key;
}
}


Viewing all articles
Browse latest Browse all 32807

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>