2017-02-03 122 views
1

業務部門有一個審計請求,要求在一段時期內爲NAV 2016中的所有新創建的供應商提供一份清單。我無法找到供應商表的條目創建日期或添加日期。這可能嗎?我目前正在向[商家]提供[上次修改日期],其中包括何時添加或更新了供應商,但他們只希望新添加。有沒有辦法在Dynamics NAV 2016中提供供應商創建日期?

我當前的代碼:

SELECT CAST([Last Date Modified] AS DATE) AS 'Last Date Modified' 
     ,[No_] 
     ,[Name] 
     ,[Search Name] 
     ,[Address] 
     ,[Address 2] 
     ,[City] 
     ,[Vendor Posting Group] 
     ,[Country_Region Code] 
     ,[Post Code] 
     ,[County] 
     ,[Vendor Type Code] 
    FROM [Company].[dbo].[Company$Vendor] 
    WHERE YEAR([Last Date Modified]) = '2016' 
    and MONTH([Last Date Modified]) IN ('10','11','12') 
ORDER BY [Last Date Modified] 
,[No_] 
+0

如果沒有字段,那麼顯然沒有。但是,您可能已爲此表啓用更改日誌。在那裏您可以找到關於供應商創建的條目。表是「更改日誌條目」。 –

+0

除了在時間段之前恢復數據庫的備份並查詢兩個表之間的差異之外,Mak建議,唯一能夠在不涉及開發人員的情況下完成這項工作的另一種方式就是如此。啓用供應商表的插入觸發器的更改日誌。當然,如果有信息他們可能想跟蹤更改或刪除,您可能需要考慮啓用這些觸發器。不幸的是,在當前情況下唯一可以確定的方法是恢復備份。 – user3289372

回答

1

如果您有更改日誌活躍,以下是,將讓你的所有插入到供應商表中的基本查詢:

SELECT 
cle.[Primary Key]AS Vendor 
, cle.[New Value] 
, ven.Name 
, CAST(cle.[Date and Time] AS DATE) AS LogDate 
, CAST(cle.Time AS TIME(0)) AS LogTime 
, cle.[Field No_] 
, cle.[Type of Change] 
, cle.[User ID] 
FROM dbo.[YourCompany$Change Log Entry] cle 
    left outer JOIN dbo.YourCompany$Vendor ven 
    ON cle.[Primary Key] = ven.No_ 
    WHERE 
    cle.[Table No_] = 23 
    and cle.[Field No_] = 1 
AND cle.[Type of Change] = 0 
ORDER BY LogDate, LogTime, Vendor 

我米還準備在下週發佈的更改日誌的博客文章。

+0

是的,沒錯。唯一的辦法是找到變更日誌 – azatoth

0

如果沒有更改日誌有效,則選項

A.拉舊的備份和比較。

B.使用別的方法推斷它。爲每個供應商查找第一個供應商分類帳條目;如果您對他們的請求和交付「所有供應商在2016年10月首次使用」進行了重新說明,您會得到一些誤報,但可能足以滿足審計師的要求。
或使用您帳戶部門的一些信息。 (他們必須在NAV之外有記錄嗎?)如果您使用連續編號系列,那麼您只需確定日期範圍中的第一個記錄。

長期來說,您可以與您的Dynamics NAV合作伙伴交談,並要求他們修改供應商表以標記創建日期/時間。儘管我通常會推薦在供應商表上運行變更日誌,因爲這是審計人員經常想看到的。出於同樣的原因,我也總是包含銀行賬戶表。