0

我正在尝试将新地址添加到 BP 中。如果在 BP 中注册了地址,一切正常,但现在如果是新地址,则返回错误 -5002 - 更新 BP 时出错:[OCRD.State2],“链接值”SP“不存在”

我使用 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;
}
4

1 回答 1

0

SAP 帮助我解决了这个问题。答案如下。

我尝试在 DemoUK(GB 本地化)数据库中重现此问题,并且也能够重现。

经过调查,发现您无法链接特定国家不存在的状态。

在您的情况下,系统会引发错误,因为数据是基于以下查询验证的:

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

同样,如果我尝试将 State 设置为“Arizona”,将 Country 设置为“United Kingdom”,它会给我同样的错误,因为正确的“Country”值应该是“USA”。

因此,为了解决此问题,您需要选择退出以下选项之一:

  1. 在 DI 代码中也设置 Country 属性(State 应该属于您尝试设置的 Country):
oBP.Addresses.Country = "GB"
  1. 从 DI 代码中删除 State 属性:
oBP.Addresses.State = "SP"
于 2021-01-26T11:49:50.730 回答