指定新員工的聯絡人和地址資訊

要指定 Employee 的聯絡人和地址資訊,你應始終在分配任何欄位值之前在 ContactAddress 資料檢視上呼叫 Select() 方法。還建議將 Select() 方法的結果分配給 ContactAddress 資料檢視的 Current 屬性,以保證你的程式碼分別修改 ContactAddress PXCache 中的當前記錄。

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();

當插入新的 Employee 時,employeeMaintGraph.Contact.Current 將始終返回主聯絡人記錄,因為聯絡人記錄會自動插入到快取中,因此可通過 PXCache / Data View 的 Current 屬性獲得。Select() 方法的使用更加通用,因為它可以在所有可能的場景中工作,無論你是需要插入新的 Employee 還是更新現有的 Employee。