2017-07-03 68 views
1

如何在Acumatica框架中創建DAC的副本(即克隆它)。我當然可以創建一個新的實例並單獨設置所有的值,但是有沒有一種方法可以爲您做到這一點?克隆DAC以插入新的DAC

我發現下面的方法

PXCache<...>.CreateCopy(sourceRule); 

然而,這似乎複製一切,包括ID,CreatedBy等 我需要一個新的DAC,與複製所有相關領域。 如何做到這一點?

+1

研究PXCache 下課後我可以說,Acumatica的PXCache.CreateCopy和PXCache.RestoreCopy被複制所有DAC擁有的領域。所以你可能必須自己寫複製功能。 –

+0

我想我通過使用CreateCopy來設法使其工作,然後將ID設置爲null –

回答

2

您可以使用PXCacheCreateCopy像您提到的那樣執行復制,然後在將新副本插入緩存之前將null/key更改。

這裏是將銷售管線複製爲一個銷售訂單延期新行的例子:

var soLine = PXCache<SOLine>.CreateCopy(Base.Transactions.Current); 
// Null the keys of SOLine 
soLine.OrderType = null; 
soLine.OrderNbr = null; 
soLine.LineNbr = null; 
Base.Transactions.Insert(soLine);