Transaction API: Unexpected response window: Email Packing List

Need to update Shipping info of existing Orders
Using Transaction API since didn’t find anything related in Entity API.

Code is in F# but should be understandable for C# users

Transaction(
    DataElements = ResizeArray [
        DataElement(
            Name = "TABPAGE_1.tp_1_dw_1",
            Type = DataElementType.Form,
            Keys = ResizeArray ["pick_ticket_no"],
            Rows = ResizeArray [
                Row(
                    Edits = ResizeArray [
                        Edit("pick_ticket_no", ticket.number |> string)
                        Edit("carrier_id"    , ticket.carrier)
                        Edit("tracking_no"   , ticket.tracking)
                        Edit("instructions"  , ticket.instructions)
                        Edit("email_packinglist", "ON")
                        Edit("create_invoice", "ON")])])
        DataElement(
            Name = "TABPAGE_FREIGHT.tabpage_freight",
            Type = DataElementType.Form,
            Keys = ResizeArray [],
            Rows = ResizeArray [
                Row(
                    Edits = ResizeArray [
                        Edit("freight_out", ticket. Freight |> string)])])])

The problem is the line:

Edit("email_packinglist", "ON")

causes

Transaction 1:: General Exception: 
Unexpected response window: Email Packing List(s). 
Window class: w_email_response

The reason is the response window, visible if do the same in Web UI.
All data is already auto-filled, so the matter is just pressing OK button.

Questions
How to fix that?

Can Commands from Transaction API help?

Can properties of TransactionSet help? Dind’t find any documentation about: IgnoreDisabled, Query, FieldMap, TransactionSplitMethod, Parameters.

Found next. Looks hopefull.

transactionRestClient.ProcessCommands
    (new BatchRequest()
    {
        Requests = new List<InteractiveRequest>()
        {
            new InteractiveRequest()
            {
                Action = InteractiveAction.CloseWindow,
            }
        }
    });

Interactive API can handle response windows as stated on the bottom of:
https://partswerx-play-api.epicordistribution.com/docs/p21sdk/index.html#/iapi/reference-guide

But guess Interactive API is the slowest option.
Also tedious to update multiple Pick Tickets at the same time, unlike TransactionSet where each Transaction corresponds to a Pick Ticket.

1 Like