Creating Sales Order with address in AX 2012 R2 via AIF through .Net

Posted On May 28, 2015 by Posted in 

Creating Sales Order with address information in AX 2012R2CU7 via AIF through .Net Code

Please see the below .net code

static void Main(string[] args)
        {
            // Instantiate an instance of the service client class.
            SalesOrderServiceClient proxy = new SalesOrderServiceClient();
 
            // Create an instance of the document class.
            AxdSalesOrder salesOrder = new AxdSalesOrder();
 
            // Create instances of the entities that are used in the service and
            // set the needed fields on those entities.
            AxdEntity_SalesTable salesTable = new AxdEntity_SalesTable();
            salesTable.CurrencyCode = "USD";
            salesTable.CustAccount = "C846456";
            salesTable.ReceiptDateRequested = Convert.ToDateTime("4/21/2015");
            salesTable.Payment = "PP";
            AxdEntityKey_LogisticsPostalAddress LPA = new AxdEntityKey_LogisticsPostalAddress();
            LPA.Location_LocationId = "5637282089";
 
            AxdExtType_EffectiveDateTime date = new AxdExtType_EffectiveDateTime();
            date.timezone = AxdEnum_Timezone.GMT_COORDINATEDUNIVERSALTIME;
            DateTime dateValue = new DateTime(2015, 4, 29, 14, 10, 53, 001, DateTimeKind.Utc);
 
            date.timezoneSpecified = false;
            date.localDateTimeSpecified = false;
            date.Value = dateValue; 
            LPA.ValidFrom = date; 
            salesTable.DeliveryPostalAddress = LPA;
 
            AxdEntity_SalesLine salesLine = new AxdEntity_SalesLine();
            salesLine.ItemId = "10-009";
            salesLine.SalesQty = 9;
            salesLine.SalesUnit = "ea";
 
            CallContext callContext = new CallContext();
            callContext.Language = "en-us";
            callContext.Company = "KTEC";
            salesTable.SalesLine = new AxdEntity_SalesLine[1] { salesLine };
            salesOrder.SalesTable = new AxdEntity_SalesTable[1] { salesTable };
 
            try
            {
                // Call the create method on the service passing in the document.
                EntityKey[] returnedSalesOrderEntityKey = proxy.create(callContext,salesOrder);
 
                // The create method returns an EntityKey which contains the ID of the sales order.
                EntityKey returnedSalesOrder = (EntityKey)returnedSalesOrderEntityKey.GetValue(0);
                Console.WriteLine("The sales order created has a Sales ID of " + returnedSalesOrder.KeyData[0].Value);
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                Console.ReadLine();
            }
        }

Error Details in AX exceptionlog :

“The value in field DeliveryPostalAddress is invalid.”


Share Story :