Hi Jeroen,
finally I found a solution (D365FO) to save a SalesOrder including lines using the sales order number generated in Operations.
SalesOrderHeader salesOrder = new SalesOrderHeader();
DataServiceCollection<SalesOrderHeader> salesOrderCollection = new DataServiceCollection<SalesOrderHeader>(context);
salesOrderCollection.Add(salesOrder);
salesOrder.OrderingCustomerAccountNumber = "DE-010";
salesOrder.DataAreaId = "DEMF";
//Context default MergeOption is set to AppendOnly, causing no update on your already existing object in the context
context.MergeOption = MergeOption.OverwriteChanges;
//i didn't try to use SaceChanges() only at the end :-(, so it is base now on 2 save actions.
Context.SaveChanges(SaveChangesOptions.PostOnlySetProperties | SaveChangesOptions.BatchWithSingleChangeset);
SalesOrderLine salesOrderLine = new SalesOrderLine();
DataServiceCollection<SalesOrderLine> salesOrderLineCollection = new DataServiceCollection<SalesOrderLine>(context);
salesOrderLineCollection.Add(salesOrderLine);
//salesOrder is updated through save operation before, so i can assign the correct Operations generated SalesOrderNumber to the line
salesOrderLine.SalesOrderNumber = salesOrder.SalesOrderNumber;
SalesOrderLine.ItemNumber = "D0001";
salesOrderLine.OrderedSalesQuantity = 2;
salesOrderLine.DataAreaId = "DEMF";
context.SaveChanges(SaveChangesOptions.PostOnlySetProperties | SaveChangesOptions.BatchWithSingleChangeset);
Hope that could solve your problem.
Regards,
Ingo