Suche…


Einführung

In diesem Thema erfahren Sie, wie Sie Kontakt- und Adressinformationen durch Code auf verschiedenen Bildschirmen in Acumatica ändern.

Geben Sie Kontakt- und Adressinformationen für einen neuen Mitarbeiter an

Um Kontakt- und Adressinformationen für einen Mitarbeiter anzugeben, sollten Sie vor dem Zuweisen von Feldwerten immer die Select() Methode in den Kontakt- und Adressdatensichten aufrufen. Es ist auch das Ergebnis der empfohlenen zuweisen Select() Methode , um die Kontakt- und Adressdatenansichten Current - Eigenschaft zu gewährleisten , dass der Code den aktuellen Datensatz in Kontakt und Adresse PXCache modifiziert ist.

EmployeeMaint employeeMaintGraph = PXGraph.CreateInstance<EmployeeMaint>();
EPEmployee epEmployeeRow = new EPEmployee();
epEmployeeRow.AcctCD = "EMPLOYEE1";
epEmployeeRow = employeeMaintGraph.Employee.Insert(epEmployeeRow);

Contact contactRow = employeeMaintGraph.Contact.Current = employeeMaintGraph.Contact.Select();
contactRow.FirstName = "John";
contactRow.LastName = "Green";
employeeMaintGraph.Contact.Update(contactRow);

Address addressRow = employeeMaintGraph.Address.Current = employeeMaintGraph.Address.Select();
addressRow.CountryID = "US";
addressRow = employeeMaintGraph.Address.Update(addressRow);
addressRow.State = "DC";
employeeMaintGraph.Address.Update(addressRow);

epEmployeeRow.VendorClassID = "EMPSTAND";
epEmployeeRow.DepartmentID = "FINANCE";
employeeMaintGraph.Employee.Update(epEmployeeRow);

employeeMaintGraph.Actions.PressSave();

Beim Einfügen eines neuen Mitarbeiters gibt employeeMaintGraph.Contact.Current immer den Hauptkontaktdatensatz zurück, da der Kontaktdatensatz automatisch in den Cache eingefügt wird und daher über die Current- Eigenschaft von PXCache / Data View verfügbar ist. Die Verwendung der Select() Methode ist etwas generischer, da sie in allen möglichen Szenarien funktioniert, unabhängig davon, ob Sie einen neuen Mitarbeiter einfügen oder einen vorhandenen aktualisieren müssen.

Überschreiben Sie Rechnungskontakt- und Rechnungsadresseninformationen für einen Kunden

Wenn Sie die Informationen für Rechnungskontakt und Rechnungsadresse für einen Kunden überschreiben müssen, müssen Sie zunächst die korrekten Werte für die Eigenschaften IsBillContSameAsMain und IsBillSameAsMain des Customer- DAC festlegen . Vergessen Sie nicht, die Update() Methode direkt im Customer- Cache aufzurufen, nachdem Sie die IsBillContSameAsMain- oder IsBillSameAsMain- Eigenschaft aktualisiert haben , um den aktuellen Wert des Feldes Same as Main in den Cache zu übernehmen.

Im nächsten Schritt müssen Sie die Select() Methode in den Datensichten BillContact und BillAddress aufrufen , bevor Sie Feldwerte zuweisen . Es ist auch das Ergebnis der empfohlenen zuweisen Select() Methode , um die aktuellen Eigenschaft BillContact und BillAddress Datenansichten zu gewährleisten , dass der Code den aktuellen Datensatz in Kontakt und Adresse PXCache modifiziert ist.

public class CustomerMaintExt : PXGraphExtension<CustomerMaint>
{
    public PXAction<Customer> UpdateBillingAddress;
    [PXButton(CommitChanges = true)]
    [PXUIField(DisplayName = "Update Bill-To Info")]
    protected void updateBillingAddress()
    {
        Customer currentCustomer = Base.BAccount.Current;

        if (currentCustomer.IsBillContSameAsMain != true)
        {
            currentCustomer.IsBillContSameAsMain = true;
            Base.BAccount.Update(currentCustomer);
        }
        else
        {
            currentCustomer.IsBillContSameAsMain = false;
            Base.BAccount.Update(currentCustomer);

            Contact billContact = Base.BillContact.Current = Base.BillContact.Select();
            billContact.FullName = "ABC Holdings Inc";
            billContact.Phone1 = "+1 (212) 532-9574";
            Base.BillContact.Update(billContact);
        }

        if (currentCustomer.IsBillSameAsMain != true)
        {
            currentCustomer.IsBillSameAsMain = true;
            Base.CurrentCustomer.Update(currentCustomer);
        }
        else
        {
            currentCustomer.IsBillSameAsMain = false;
            Base.CurrentCustomer.Update(currentCustomer);

            Address billAddress = Base.BillAddress.Current = Base.BillAddress.Select();
            billAddress.AddressLine1 = "65 Broadway";
            billAddress.AddressLine2 = "Office Suite 187";
            billAddress.City = "New York";
            billAddress.CountryID = "US";
            billAddress = Base.BillAddress.Update(billAddress);
            billAddress.State = "NY";
            billAddress.PostalCode = "10004";
            Base.BillAddress.Update(billAddress);
        }

        Base.Actions.PressSave();
    }
}

Überschreiben von Rechnungskontakt- und Rechnungsadresseninformationen für einen Kundenauftrag

Um Informationen zu Rechnungskontakt und Rechnungsadresse für einen Kundenauftrag anzugeben , sollten Sie immer zuerst die Select() Methode in den Datenansichten "Billing_Contact" und " Billing_Address" aufrufen , bevor Sie Feldwerte zuweisen . Es ist auch das Ergebnis der empfohlenen zuweisen Select() Methode , um die aktuellen Eigenschaft Billing_Contact und Billing_Address Datenansichten zu gewährleisten , dass der Code den aktuellen Datensatz in SOBillingContact und SOBillingAddress PXCache modifiziert ist.

Wenn Sie Rechnungskontaktinformationen und Adressinformationen für einen Kundenauftrag überschreiben müssen , legen Sie korrekte Werte für die Eigenschaften OverrideContact und OverrideAddress auf der DAC SOBillingContact und der DAC SOBillingAddress fest . Vergessen Sie nicht, die Update() Methode für die SOBillingContact- und SOBillingAddress- Caches direkt nach der Aktualisierung der OverrideContact- und OverrideAddress- Eigenschaften aufzurufen , um die Änderungen zu übernehmen. Sobald dies erledigt ist, können Sie die Angaben für Rechnungskontakt und Adresse für einen Kundenauftrag angeben.

public class SOOrderEntryExt : PXGraphExtension<SOOrderEntry>
{
    public PXAction<SOOrder> UpdateBillingAddress;
    [PXButton(CommitChanges = true)]
    [PXUIField(DisplayName = "Update Bill-To Info")]
    protected void updateBillingAddress()
    {
        SOBillingContact contact = Base.Billing_Contact.Current = Base.Billing_Contact.Select();
        if (contact.OverrideContact == true)
        {
            contact.OverrideContact = false;
            Base.Billing_Contact.Update(contact);
        }
        else
        {
            contact.OverrideContact = true;
            contact = Base.Billing_Contact.Update(contact);
            if (contact == null)
            {
                contact = Base.Billing_Contact.Current;
            }

            contact.Phone1 = "+1 (908) 643-0281";
            contact.Email = "[email protected]";
            Base.Billing_Contact.Update(contact);
        }

        SOBillingAddress address = Base.Billing_Address.Current = Base.Billing_Address.Select();
        if (address.OverrideAddress == true)
        {
            address.OverrideAddress = false;
            Base.Billing_Address.Update(address);
        }
        else
        {
            address.OverrideAddress = true;
            address = Base.Billing_Address.Update(address);
            if (address == null)
            {
                address = Base.Billing_Address.Current;
            }

            address.AddressLine1 = "201 Lower Notch Rd";
            address.AddressLine2 = "Office Suite 1936";
            address.City = "Little Falls";
            address.CountryID = "US";
            address = Base.Billing_Address.Update(address);
            address.State = "NJ";
            address.PostalCode = "07425";
            Base.Billing_Address.Update(address);
        }

        Base.Actions.PressSave();
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow