on 01-13-2019 5:01 PM
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";
}
}
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
107 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.