Auto confirm shipment when create shipment from Sales Order by Automation Step

半世苍凉 提交于 2019-11-29 13:08:46
    SOShipmentEntry docgraph = PXGraph.CreateInstance<SOShipmentEntry>();
    docgraph.Document.Current = docgraph.Document.Search<SOShipment.shipmentNbr>(ShipmentNbr);
    foreach (var action in (docgraph.action.GetState(null) as PXButtonState).Menus)
                                        {
                                            if (action.Command == "Confirm Shipment")
                                            {
                                                PXAdapter adapter2 = new PXAdapter(new DummyView(docgraph, docgraph.Document.View.BqlSelect, new List<object> { docgraph.Document.Current }));
                                                adapter2.Menu = action.Command;
                                                docgraph.action.PressButton(adapter2);

                                                TimeSpan timespan;
                                                Exception ex;
                                                while (PXLongOperation.GetStatus(docgraph.UID, out timespan, out ex) == PXLongRunStatus.InProcess)
                                                { }
                                                break;
                                            }
                                        }



internal class DummyView : PXView
        {
            List<object> _Records;
            internal DummyView(PXGraph graph, BqlCommand command, List<object> records)
                : base(graph, true, command)
            {
                _Records = records;
            }
            public override List<object> Select(object[] currents, object[] parameters, object[] searches, string[] sortcolumns, bool[] descendings, PXFilterRow[] filters, ref int startRow, int maximumRows, ref int totalRows)
            {
                return _Records;
            }
        }

We had issues with 'confirm shipment' , the above code helped to do that. It loads the shipment document from the shipment number and finds the menu of the graph for 'confirm shipment' and clicks it.

Best option to schedule process Confirm Shipment instead of using Automation Steps functionality.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!