Experimenting with SalesOrder UpdateExt

I’ve been meaning to play around with UpdateExt ever since reading Tim Shoemaker’s comment about it, and I finally found the time. I’ve almost got it working, but I have a couple questions.

  1. Is there a way to create an order head and its lines in one call? It doesn’t accept the lines unless I specify the order number, which I don’t have until I’ve created the head. I’m hoping there’s another field that can be used to associate lines with orders before they have an order number.

  2. It seems that UpdateExt does not call ChangePartNum, so nothing gets copied from Part to OrderDtl. It also doesn’t seem to call ChangeSellingQuantity. Is there some magical combination of RowMods or something that can make it do this? Looking up parts and calling these methods for every line negates the hoped-for performance gain of UpdateExt.

We use SalesOrder.UpdateExt in a Service Connect workflow as an all-in-one operation, and while it has been a bit finicky getting everything behaving correctly it does work for us very reliably.

We only load a single order at a time in a call, which means we can put header and lines in all at once with OrderNum zero and UpdateExt will replace that with the next number during processing.

It certainly does seem like some check methods don’t get called by UpdateExt. For us, it was enough to work through an elimination process to find which fields and values mattered, then sort out those values by means of a database call (essentially a BAQ), which is about as efficient as we can hope for.