2014-10-08 83 views
0

我試圖通過圖表插入銷售訂單 我的代碼正常,但無法插入數據庫 這是我創建銷售訂單的代碼。我正在使用Acumatica 4.0在Acumatica中插入銷售訂單圖表

void genSO(string outletCD,string salesmanCD) 
{ 
      Customer cus = 
       PXSelect<Customer, Where<Customer.acctCD, Equal<Required<Customer.acctCD>>>> 
        .Select(this, outletCD); 

      SalesPerson salesman= 
       PXSelect<SalesPerson, Where<SalesPerson.salesPersonCD, Equal<Required<SalesPerson.salesPersonCD>>>> 
        .Select(this, salesmanCD); 


      if (cus != null && cus.BAccountID != null) 
      { 

       SOOrderEntry graph = PXGraph.CreateInstance<SOOrderEntry>(); 
       SOOrder newOrder = graph.Document.Insert(); 
       newOrder.OrderType = "SO"; 
       newOrder.OrderDate=DateTime.Now; 
       newOrder.RequestDate = DateTime.Now; 
       newOrder.CustomerID = cus.BAccountID; 

       graph.Document.Cache.RaiseFieldUpdated<SOOrder.customerID>(newOrder, null); 
       newOrder.SalesPersonID = smNPP.SalesPersonID; 
       graph.Document.Cache.RaiseFieldUpdated<SOOrder.salesPersonID>(newOrder, null); 


       newOrder.Status = "N"; 
       graph.Document.Current = newOrder; 

       graph.Document.Cache.Update(newOrder); 
       graph.Actions.PressSave(); 
      } 
} 

感謝您的幫助。

+0

您是否收到任何錯誤?或者它什麼都不做? – Gabriel 2014-10-08 17:09:12

+0

不是。但是數據無法插入到數據庫中 – 2014-10-09 00:59:02

+0

我可以發現這個代碼的一些問題,但它在4.2中正常工作並且插入了一個訂單。首先,你應該用DateTime.Today替換DateTime.Now。 – Gabriel 2014-10-09 02:00:28

回答

0

嘗試這種情況:

SOOrderEntry graph = PXGraph.CreateInstance<SOOrderEntry>(); 
SOOrder newOrder = (SOOrder)graph.Document.Cache.CreateInstance(); 
//Fill only keys. 
newOrder.OrderType = "SO";  
newOrder = sograph.Document.Insert(newOrder); 
//Apply automation step. 
newOrder = PXCache<SOOrder>.CreateCopy(graph.Document.Search<SOOrder.orderNbr>(newOrder.OrderNbr)); 
newOrder.OrderDate=DateTime.Now; 
newOrder.RequestDate = DateTime.Now; 
newOrder.CustomerID = cus.BAccountID; 
newOrder.SalesPersonID = smNPP.SalesPersonID; 
graph.Document.Update(newOrder); 
graph.Actions.PressSave(); 
+0

我試過但仍然沒有任何反應。當我調試時,我發現OrderNbr爲新訂單,但在此之後,沒有任何內容插入到數據庫中。 – 2014-10-09 06:46:24

+0

您是否有銷售訂單的自定義功能? – Ken 2014-10-09 08:23:51

+0

是的,我在銷售訂單屏幕上通過爲SOLine – 2014-10-09 08:35:50

0

graph.Document.Insert(newOrder); graph.Persist();

+0

這是如何解決問題的?另外請注意Actions.PressSave()是推薦的方式來保存,而不是Psrsist() – Gabriel 2014-10-18 00:51:18

+0

我同意PressSave是更好的選擇。但是,似乎OP在這種方法上遇到了一些困難。在處理CRM案例活動時,我遇到了類似的問題。我被迫打電話給Persist方法。然後在活動主視圖上調用Refresh,以便我可以看到已保存的新活動。 – 2014-10-22 16:44:20

相關問題