I need to add SalesLine
to an existing SalesOrder
. SalesOrder
do not have any SalesLine
yet. I am using AIF
in CSharp (C#). I am using following code but I am getting following exceptions (checked through Dynamics AX Exceptions window) .
- Error found when validating record.
- Update has been canceled.
Here is my code.
protected void Page_Load(object sender, EventArgs e)
{
try
{
SalesOrderCreateReadFindUpdateDelete.KeyField keyField = new SalesOrderCreateReadFindUpdateDelete.KeyField() { Field = "SalesId", Value = "SO-015749" };
SalesOrderCreateReadFindUpdateDelete.EntityKey entityKey = new SalesOrderCreateReadFindUpdateDelete.EntityKey();
entityKey.KeyData = new SalesOrderCreateReadFindUpdateDelete.KeyField[1] { keyField };
SalesOrderCreateReadFindUpdateDelete.EntityKey[] entityKeys = new SalesOrderCreateReadFindUpdateDelete.EntityKey[1] { entityKey };
SalesOrderCreateReadFindUpdateDelete.SalesOrderServiceClient _Client;
using (_Client = new SalesOrderCreateReadFindUpdateDelete.SalesOrderServiceClient())
{
SalesOrderCreateReadFindUpdateDelete.CallContext _callContext = new SalesOrderCreateReadFindUpdateDelete.CallContext();
_callContext.Company = "ART";
SalesOrderCreateReadFindUpdateDelete.AxdSalesOrder _SalesOrderList = _Client.read(_callContext, entityKeys);
SalesOrderCreateReadFindUpdateDelete.AxdEntity_SalesTable _SalesOrderTable = _SalesOrderList.SalesTable.First();
SalesOrderCreateReadFindUpdateDelete.AxdEntity_SalesLine salesLine = new SalesOrderCreateReadFindUpdateDelete.AxdEntity_SalesLine();
salesLine.ItemId = "PF507028";
salesLine.SalesQty = 1;
salesLine.SalesUnit = "ea";
salesLine.SalesId = "SO-015749";
salesLine.RecId = _SalesOrderTable.RecId;
salesLine.RecVersion = _SalesOrderTable.RecVersion;
SalesOrderCreateReadFindUpdateDelete.AxdEntity_InventDim inventDim = new SalesOrderCreateReadFindUpdateDelete.AxdEntity_InventDim();
inventDim.InventSiteId = "1";
inventDim.InventLocationId = "13";
salesLine.InventDim = new SalesOrderCreateReadFindUpdateDelete.AxdEntity_InventDim[1] { inventDim };
_SalesOrderTable.SalesLine = new SalesOrderCreateReadFindUpdateDelete.AxdEntity_SalesLine[1] { salesLine };
_Client.update(_callContext, entityKeys, _SalesOrderList);
lblOutput.Text += "<br />Success";
}
}
catch (Exception ex)
{
lblOutput.Text += "<br />Exception: " + ex.Message;
}
}
Am I missing something or doing something wrong? If I have to provide more fields then where can check these required fields in MS Dynamics. I am new to MS Dynamics.
Please Help! Thank you.