PXSelect returns 插入记录后为空

PXSelect returns null after record inserted

我正在用代码创建客户。在创建客户后,我立即执行 PXSelect 以通过 acctCd 检索客户。但它 returns 每次都是空的。即使我已经检查过数据库并验证它存在?

我猜这与缓存有关如何刷新它。

这是我的 PXSelect

  PXSelect<PX.Objects.AR.Customer, Where<PX.Objects.AR.Customer.acctCD, Equal<Required<PX.Objects.AR.Customer.acctCD>>>>.Select(this, id);

这是我添加客户的代码

          private PX.Objects.AR.Customer UpdateContact(ContactRead rexContact, PX.Objects.AR.Customer m, string customerClassID, bool insert = true)
    {

        PX.Objects.CR.Contact defContact = null;

        PX.Objects.AR.CustomerMaintInherit graph = PXGraph.CreateInstance<PX.Objects.AR.CustomerMaintInherit>();

        graph.Clear(PXClearOption.ClearAll);

        //Add Customer and BAccount Records
        graph.BAccount.Current = m;
        m.AcctCD = "V" + rexContact._id;
        m.AcctName = rexContact.system_search_key;
        m.Type = "CU";

        if (insert) {
            m = graph.BAccount.Insert(m);

            defContact = graph.DefContact.Current;
        }  
        else {
            defContact = PXSelect<PX.Objects.CR.Contact, Where<PX.Objects.CR.Contact.contactID, Equal<Required<PX.Objects.CR.Contact.contactID>>>>.Select(this, m.DefContactID);
            graph.DefContact.Current = defContact;
        }

        //Update Default Contact Record
        defContact.ContactType = "AP";
        defContact.FullName = rexContact.system_search_key;

        if (rexContact._related.contact_emails != null)
        {
            if (rexContact._related.contact_emails.Length > 0)
            {                   
                defContact.EMail = (from e in rexContact._related.contact_emails where e.email_primary == true select e.email_address).FirstOrDefault();
            }
        }

        if (rexContact._related.contact_phones != null)
        {
            if (rexContact._related.contact_phones.Length > 0)
            {
                defContact.Phone1 =  (from e in rexContact._related.contact_phones where e.phone_primary == true select e.phone_number).FirstOrDefault();
            } 
        }

        defContact = graph.DefContact.Update(defContact);

        //Change customer class to vendor
        m.CustomerClassID = customerClassID;
        m = (PX.Objects.AR.Customer)graph.BAccount.Update(m);
        graph.Actions.PressSave();

        return m;

    }

考虑使用 PXSelectReadonly。它将尝试直接从数据库中检索值而不使用缓存。另一种选择是创建具有所需视图的图形实例,并通过该图形使用 PXSelect

询问数据库