首页 > 解决方案 > Acumatica - IN 错误:备用 ID 的值“TESTID”已用于另一个库存项目

问题描述

我有一个客户需要使用更新的 AlternateID 更新采购订单行的功能。我收到错误错误:备用 ID 的值“TESTID”已用于另一个库存项目。他们确实有具有相同alternateid 的项目。有没有解决的办法?

public PXAction<POOrder> UpdateImportChanges;
[PXButton(CommitChanges = true)]
[PXUIField(DisplayName = "Update Import Changes", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select, Visible = true)]
public virtual IEnumerable updateImportChanges(PXAdapter adapter)
{                
    string xRef = "0VPN";
    foreach (POLine tran in Transactions.Select())
    {
        if (tran.InventoryID != null)
        {
            INItemXRef itemXRef = PXSelect<INItemXRef,
            Where<INItemXRef.inventoryID, Equal<Required<INItemXRef.inventoryID>>,
            And<INItemXRef.subItemID, Equal<Required<INItemXRef.subItemID>>,
            And<INItemXRef.bAccountID, Equal<Required<INItemXRef.bAccountID>>,
            And<INItemXRef.alternateType, Equal<Required<INItemXRef.alternateType>>,
            And<INItemXRef.alternateID, NotEqual<Required<INItemXRef.alternateID>>>>>>>>
            .SelectWindowed(Base, 0, 1, tran.InventoryID, tran.SubItemID, tran.VendorID, xRef, tran.AlternateID ?? "NULL");

            if (itemXRef != null)
            {
                tran.AlternateID = itemXRef.AlternateID;
                Base.Transactions.Update(tran); //Cache is updated
            }
        }
    }
    return adapter.Get();

}

标签: acumatica

解决方案


推荐阅读