乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Dynamics 365-如何利用Audit History還原被刪除的數(shù)據(jù)

       新進(jìn)小設(shè)計 2020-09-16

       

        Audit History,常被用來記錄record的日常操作信息,包括創(chuàng)建,更新,刪除。這是一個非常實用的功能,想想看,如果數(shù)據(jù)被誤修改了,通過Audit History,可以很容易地找到修改前的數(shù)據(jù)值,然后還原回來;不僅如此,如果數(shù)據(jù)有異常,也可以通過Audit History,看看數(shù)據(jù)是由誰在什么時候給修改了。

        關(guān)于如何開啟Audit,以及如何自定義配置Auditing,這里不再多贅述,這些基礎(chǔ)操作都在Settings -> Auditing 里,網(wǎng)上也有不少這方面的介紹

        這里著重想說的,是在誤刪了數(shù)據(jù)之后,如何借用Audit功能,還原數(shù)據(jù)。

        一般情況下,我們查看數(shù)據(jù)的Audit信息,是通過具體record的Audit History。

        但是如果這條record已經(jīng)被刪除了呢,上面的操作就行不通了。

        這個時候,可以看第一張截圖,里面有個Audit Summary View。在這里,我們將會有所發(fā)現(xiàn)。

        這里是其中的一條刪除的相關(guān)記錄,可以看到,最后的操作是Delete。

        如果你打開這條操作記錄,里面會顯示這條記錄在刪除前的字段信息,以及是誰在什么時候,執(zhí)行了刪除操作。

        現(xiàn)在,我們已經(jīng)有了這條刪除操作的記錄,那么如何還原這條記錄,大致的思路也就很清晰了:

        1. 獲取Audit操作記錄

        2. 根據(jù)Audit中待還原記錄的字段信息,還原數(shù)據(jù)

        下面是具體的代碼實現(xiàn):

      //獲取所有的相關(guān)的Audit記錄
      var auditrecords = service.RetrieveMultiple(new FetchExpression(fetchXML));
       foreach (Entityaudit in auditrecords.Entities)
      {
                //根據(jù)Audit Id查詢Audit Details
                RetrieveAuditDetailsRequest auditDetailsRequest = new RetrieveAuditDetailsRequest();
                auditDetailsRequest.AuditId = audit.Id;
                RetrieveAuditDetailsResponseauditDetailsResponse =
                (RetrieveAuditDetailsResponse)service.Execute(auditDetailsRequest);
                //待還原對象是Audit Detail的OldValue
                AuditDetail auditDetail = auditDetailsResponse.AuditDetail;
                AttributeAuditDetail attributeAuditDetail = auditDetail as AttributeAuditDetail;
                //還原對象
                service.Create(attributeAuditDetail.OldValue);
       }

        需要注意的是,在過濾Audit記錄的時候,以上面的例子來看,我們想找的是對某個Entity的delete操作,那么條件包含如下:

        1. Delete操作。在Audit Summary View中對Operation Filter的時候,可以看到有4個選項

        其實Operation是一個OptionSet:Create -> 1; Update -> 2; Delete -> 3; Access -> 4

        logicalName: operation

        2. 某個Entity。這里需要的是Entity的OTC值

        logicalName:objecttypecode

        當(dāng)然,根據(jù)不同的場景,會用到不同的過濾條件,但是不管如何過濾,需要提醒一點的是,對待還原的數(shù)據(jù)多做一次確認(rèn),以免誤還原,帶來更多的問題。

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多