SAP Business One — добавить BP (ошибка DI: (-5002)

Я пытаюсь добавить новые адреса в БП. Если в БП прописан адрес, то все работает, но теперь если это новые адреса возвращают ошибку -5002 - Ошибка обновления БП: [OCRD.State2], "связанное значение" ИП "не существует"

Я тестирую с SAP Business 10 (10.00.140) FP 2011

if (oBP.GetByKey(CardCode))
{
    oBP.Addresses.SetCurrentLine(oBP.Addresses.Count - 1);
    if (!string.IsNullOrEmpty(oBP.Addresses.AddressName))
    {
        oBP.Addresses.Add();
    }
    UF = json.data.endereco_uf;
    if (UF.Length > 2)
    {
        UF = "";
    }
    oBP.Addresses.SetCurrentLine(oBP.Addresses.Count - 1);
    oBP.Addresses.AddressName = "Novo 1";
    oBP.Addresses.AddressType = BoAddressType.bo_ShipTo;
    oBP.Addresses.Street = json.data.endereco_logradouro;
    oBP.Addresses.Block = json.data.endereco_bairro;
    oBP.Addresses.ZipCode = json.data.endereco_cep;
    oBP.Addresses.City = json.data.endereco_municipio;
    oBP.Addresses.State = UF;
    oBP.Addresses.County = county;
    oBP.Addresses.StreetNo = json.data.endereco_numero;
    oBP.Addresses.BuildingFloorRoom = json.data.endereco_complemento;
    oBP.Addresses.Add();


    oBP.Addresses.SetCurrentLine(oBP.Addresses.Count - 1);
    oBP.Addresses.AddressName = "Novo 2";
    oBP.Addresses.AddressType = BoAddressType.bo_BillTo;
    oBP.Addresses.Street = json.data.endereco_logradouro;
    oBP.Addresses.Block = json.data.endereco_bairro;
    oBP.Addresses.ZipCode = json.data.endereco_cep;
    oBP.Addresses.City = json.data.endereco_municipio;
    oBP.Addresses.State = UF;
    oBP.Addresses.County = county;
    oBP.Addresses.StreetNo = json.data.endereco_numero;
    oBP.Addresses.BuildingFloorRoom = json.data.endereco_complemento;
    oBP.Addresses.Add();
 
    int iRetVal = oBP.Update();
    if (iRetVal != 0)
    {
    Program.oApplication.StatusBar.SetText("Error updating BP: " + Program.oCompany.GetLastErrorDescription(), BoMessageTime.bmt_Short, BoStatusBarMessageType.smt_Error);
    return false;
}

person Paulo    schedule 22.01.2021    source источник


Ответы (1)


SAP помог мне решить эту проблему. Ответ следует.

Я попытался воспроизвести эту проблему в базе данных DemoUK (GB Localization), и мне также удалось ее воспроизвести.

После расследования выяснилось, что нельзя привязать государство, которого не существует для конкретной страны.

В вашем случае система выдает ошибку, потому что данные проверяются на основе следующего запроса:

SELECT* FROM OCST WHERE  "Code" = 'SP' and "Country" = ''

Точно так же, если я попытаюсь установить штат как «Аризона» и страну как «Соединенное Королевство», это даст мне ту же ошибку, потому что правильное значение «Страна» должно быть «США».

Поэтому, чтобы решить эту проблему, вам необходимо отказаться от одного из следующих действий:

  1. Установите свойство Country также в коде DI (штат должен принадлежать стране, которую вы пытаетесь установить):
oBP.Addresses.Country = "GB"
  1. Удалите свойство State из кода DI:
oBP.Addresses.State = "SP"
person Paulo    schedule 26.01.2021