Ошибка Acumatica API при создании вызовов API инвентаризации - PullRequest
0 голосов
/ 06 апреля 2020

Добрый день

Я создаю SOAP контрактное базовое соединение с Acumatica. Я получаю сообщение об ошибке: «System.ArgumentNullException: значение не может быть пустым.»

Я не уверен, почему я получаю ошибку. Вот мой код

        using (var soapClient = new DefaultSoapClient())
        {
            try
            {
                soapClient.Login();
                InventoryReceipt NewinventoryReceipt = new InventoryReceipt
                {
                    ReferenceNbr = new StringValue { Value = "<NEW>" },
                    Hold = new BooleanValue { Value = true },
                    Date = new DateTimeValue { Value = DateTime.Now },
                    PostPeriod = new StringValue { Value =  DateTime.Now.ToString("DD-yyyy") },
                    TransferNbr = new StringValue { Value = "" },
                    //External Ref
                    Description = new StringValue { Value = "" },

                    Details = new InventoryReceiptDetail[]
                    {
                        new InventoryReceiptDetail
                        {
                            //branch
                            InventoryID = new StringValue{Value = "NIS777"},
                            WarehouseID = new StringValue{Value = "FBTZEST"},
                            Location = new StringValue {Value = "BULK"},
                            Qty = new DecimalValue{Value = 1},
                            UOM = new StringValue{Value = "PALLET"},
                            UnitCost = new DecimalValue{Value = 91},
                            ExtCost = new DecimalValue{Value = 91},
                            LotSerialNbr = new StringValue{Value = "PLN12345"},
                            ExpirationDate = new DateTimeValue{Value = DateTime.Now},
                            // ReasonCode
                            Description = new StringValue{Value = ""}
                          }
                    },                        
                };


                InventoryReceipt putInventoryReceipt = (InventoryReceipt)soapClient.Put(NewinventoryReceipt);
            }
            catch (Exception ex)
            {
                soapClient.Logout();
                throw;
            }
            finally
            {
                soapClient.Logout();
            }
            soapClient.Logout();
        }

        Console.ReadLine();
    }

Есть ли способ узнать, что является нулевым или что мне не хватает, чтобы опубликовать эти данные?

1 Ответ

0 голосов
/ 06 апреля 2020

Вы пытались вручную вводить данные в пользовательский интерфейс? Проверка в веб-службе должна быть такой же, как и в пользовательском интерфейсе, поэтому вы можете получить больше информации из пользовательского интерфейса. Здесь у вас много зависимых значений, так как вы ссылаетесь на указанный c Лот, возможно, значение отсутствует. Кроме этого, вы можете попробовать добавить Project = X.

...