Получение ошибки в CreateShipment из формы заказа на продажу - PullRequest
0 голосов
/ 10 июля 2020

Я получаю сообщение об ошибке при создании отгрузки из формы SalesOrder. SO Ошибка: заказ SO 00012 не может быть отправлен полностью. Для получения более подробной информации проверьте Trace «На складе« AB C »нет в наличии товара« Aloy wh ».». Произошла ошибка Шаги.

  1. Создать заказ на продажу.

  2. Добавить отдельный элемент SOLine с некоторыми элементами конфигурации (конфигурация включена).

  3. Сохранить.

  4. Распределение уже выполнено для добавленного элемента.

  5. У меня есть настраиваемая кнопка, при нажатии кнопка "Я перемещаю инвентарь на другой склад и место" код, который я использую для переноса инвентаря

             protected virtual void InventoryTransfer(SOOrder soOrder, SOLine line) {
             List<INRegister> regList = new List<INRegister>();
    
             SOLineExt lineExt = line.GetExtension<SOLineExt>();
             INTransferEntry transferGraph = PXGraph.CreateInstance<INTransferEntry>();
             INRegister reg = new INRegister();
             reg.SiteID = line.SiteID; //From WhereHouse
             reg.ToSiteID = lineExt.UsrAnotnerSiteID;  //To Warehouse
             reg.TransferType = INTransferType.OneStep;
             reg.DocType = INDocType.Transfer;
             reg.TranDate = DateTime.Now; 
    
             reg.SOOrderNbr = soOrder.OrderNbr;
             reg.SOOrderType = soOrder.OrderType;
    
    
             reg = transferGraph.transfer.Insert(reg);
             // Getting splitline query OrderNbr, LineNbr and OrderType.
             foreach(SOLineSplit splitLine in SOSplitLine.Select(line.OrderNbr, line.LineNbr, line.OrderType)) {
    
                 INTran tran = new INTran();
    
                 tran.INTransitQty = splitLine.Qty;
                 tran.InventoryID = line.InventoryID;
                 tran.ToLocationID = lineExt.UsrAnotnerLocationID;
                 tran.ToSiteID = lineExt.UsrAnotnerSiteID;
                 tran.TranType = INTranType.Transfer;
                 tran.InvtMult = INTranType.InvtMult(tran.TranType);
    
                 tran.Qty = splitLine.Qty;
                 tran.SiteID = line.SiteID;
                 tran.LocationID = splitLine.LocationID;
                 tran.TranDesc = "InternalTransfer";
                 tran.LotSerialNbr = splitLine.LotSerialNbr;
                 tran = transferGraph.transactions.Insert(tran);
    
             }
             transferGraph.Persist();
             //Change status of the Transfer
             reg.Hold = false;
             reg.Status = INDocStatus.Balanced;
             reg = transferGraph.transfer.Update(reg);
             transferGraph.Save.Press();
    
             regList.Add(reg);
    
             INDocumentRelease.ReleaseDoc(regList, false);
    
         }
    
  6. После выполнения некоторой специальной операции я перевожу инвентарь обратно в SOLine «Склад» и «Местоположение». (Склад и местоположение совпадают с тем, что отображается в SOLine, местоположение обычно пусто в SOLine)

  7. Теперь я нажимаю «Создать отгрузку», теперь я получил ошибку в окне трассировки. «На складе« AB C »нет в наличии товара« Aloy wh ».».

В чем причина ошибки? Следует ли мне управлять чем-то еще при передаче настраиваемого инвентаря, потому что то же самое работает, когда SOLine не настраивается. Ошибка возникает с « serial Line Item ».

Важно то, что внизу отображается «Выделено 1.

»
...