cancel
Showing results for 
Search instead for 
Did you mean: 

Get last added sales order Id created

0 Kudos

I am using the DI API To submit a sales order and its working.but I am wanting to return the Sales Order Number of the newley created order does anybody no how I go about that in c#

I just want to be able to use it to store it against a UDT for exporting again after.

  public void CreateSalesOrder(List<SalesOrderHeader> _salesOrders, List<SalesOrderHeader> _salesOrderLines)
        {
            foreach (var record in _salesOrders.GroupBy(g => g.WorksOrderNumber))
            {                // Init the Order object
                oOrder = (SAPbobsCOM.Documents)company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders);
                SAPbobsCOM.SBObob oBob;
                // set properties of the Order object
                oOrder.NumAtCard = record.First().PurchaseOrderNumber;
                oOrder.CardCode = record.First().CardCode;
                oOrder.DocDueDate =Convert.ToDateTime(record.First().DateRequired);
                oOrder.UserFields.Fields.Item("U_WorksOrderNumber").Value = record.First().WorksOrderNumber;
                oOrder.DocDate = Convert.ToDateTime(record.First().DateRequired);
                foreach (var recordItems in _salesOrderLines.Where(a => a.WorksOrderNumber == record.First().WorksOrderNumber))
                {
                    oOrder.Lines.ItemCode = recordItems.ItemCode;
                    oOrder.Lines.ItemDescription = recordItems.Description.Replace("\"", "");
                    oOrder.Lines.Quantity = Convert.ToDouble(recordItems.QtySent);
                    oOrder.Lines.UserFields.Fields.Item("U_Colour").Value = recordItems.Colour.Replace("\"", "");
                    oOrder.Lines.UserFields.Fields.Item("U_GlossLevel").Value = recordItems.GlossLevel.Replace("\"", ""); ;
                    oOrder.Lines.UserFields.Fields.Item("U_Weight").Value = recordItems.Weight;
                    oOrder.Lines.UserFields.Fields.Item("U_SurfaceArea").Value = recordItems.SurfaceArea;
                    oOrder.Lines.UserFields.Fields.Item("U_Finish").Value = recordItems.Finish.Replace("\"", "");
                    oOrder.Lines.UserFields.Fields.Item("U_PurchaseOrdersLineId").Value = recordItems.PurhcaseOrderLineId;
                    oOrder.Lines.UserFields.Fields.Item("U_Comments").Value = recordItems.Comments.Replace("\"", "");


                    oOrder.Lines.Add();
                    log.Debug(string.Format("Order Line added to sap Item Code={0}, Description={1},Qty={2} \n\r", recordItems.ItemCode, recordItems.Description, recordItems.QtySent));


                    Console.Write(string.Format("Order Line added to sap Item Code={0}, Description={1},Qty={2}\n\r", recordItems.ItemCode, recordItems.Description, recordItems.QtySent));


                }
                int lRetCode = oOrder.Add(); // Try to add the orer to the database




                if (lRetCode == 0)
                {
                    UpdateProcessedFlag(record.First().Code, 1);
                    string body = "Purchase Order Imported into SAP";
                    
                 }
}

Accepted Solutions (1)

Accepted Solutions (1)

ANKIT_CHAUHAN
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi David Buckley,

Use the GetNewObjectKey Method of Company Object which retrieves the key of the last added record.

GetNewObjectType method of Company Object will help you to get the last added object type.

For more information, refer to SDK Help File.

Hope it helps!

Kind regards,

ANKIT CHAUHAN

SAP Business One Support

Answers (0)