削除されたレコードをコードで復元する (プレビュー)

[この記事はプレリリース ドキュメントであり、変更されることがあります。]

削除すべきでないレコードを削除してしまうことがあります。 管理者は、テーブルのゴミ箱を有効にして、指定された期間内に削除されたレコードを復元できます。 管理者が削除されたレコードを復元する方法

ごみ箱が有効になっている場合、開発者は Restore メッセージを使用して、指定された期間内に削除されたレコードを復元できます。 期間は最大 30 日です。

復元可能な削除されたレコードを取得する

復元可能な削除済みレコードを取得するには、クエリのデータ ソースを 'bin' に設定します。 次の例では、最大 3 つの削除された取引先企業レコードを返します。

SDK を使用する場合、FetchXml または QueryExpression を使用してデータを取得できます。

FetchXml を使用してデータを取得する場合は、レコードを取得するときに、fetch 要素 datasource 属性を 'bin' に設定します。

static EntityCollection GetDeletedAccountRecordsFetchXml(IOrganizationService service) {

   string queryString = @"<fetch top='3' datasource='bin'>
                     <entity name='account'>
                        <attribute name='name' />
                     </entity>
                     </fetch>";
   
   FetchExpression query = new(queryString);

   return service.RetrieveMultiple(query);
}

QueryExpression を使用してデータを取得する場合は、レコードを取得するときに、QueryExpression.DataSource プロパティを 'bin' に設定します。

static EntityCollection GetDeletedAccountRecordsQueryExpression(IOrganizationService service) {

   QueryExpression query = new("account") { 
         ColumnSet = new ColumnSet("name"),
         DataSource = "bin",
         TopCount = 3
   };

   return service.RetrieveMultiple(query);
}

削除されたレコードを復元する

削除されたレコードを復元するには、Restore メッセージを使用します。 Target パラメーターは削除されたレコードへの参照ではなく完全なレコードなので、レコードを復元するときに列の値を設定できます。 Restore を実行中に値を設定することで、上書きしない限り、すべての元の列の値は復元されます。

注意

現時点では、主キー値を使用してのみレコードを復元できます。 代替キーを使用してレコードを復元することはできません。

削除されたレコードを復元する方法は、.NET 用 SDK を使用しているか、Web API を使用しているかによって異なります。

.NET 用 SDK を使用してレコードを復元する方法は、pac modelbuilderを使用しているか、遅延バインド スタイル使用して早期バインド型を生成しているかによって異なります。

.NET 用 SDK を使用した遅延バインド プログラミングと早期バインド プログラミングについて

早期バインドの例

静的 RestoreAccountRecordEarlyBound メソッドは、pac modelbuilderを使用して、RestoreRequest<T> と生成された Account クラスを使用します。

/// <summary>
/// Restores an account record
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance</param>
/// <param name="accountId">The ID of the deleted account record.</param>
/// <param name="originalName">The original name value for the account record.</param>
/// <returns>The ID of the restored account</returns>
static Guid RestoreAccountRecordEarlyBound(
    IOrganizationService service, 
    Guid accountId,
    string originalName)
{
    Account accountToRestore = new()
    {
        Id = accountId,
        // Appending '(Restored)' to the original name
        // to demonstrate overwriting a value.
        Name = originalName + " (Restored)"
    };

    RestoreRequest<Account> request = new()
    {
        Target = accountToRestore
    };

    var response = (RestoreResponse)service.Execute(request);
    return response.id;
}

遅延バインドの例

静的 RestoreAccountRecordLateBound メソッドは、OrganizationRequest クラスを使用して Restore メッセージを呼び出し、Target パラメーターを設定します。

/// <summary>
/// Restores an account record
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance</param>
/// <param name="accountId">The ID of the deleted account record.</param>
/// <param name="originalName">The original name value for the account record.</param>
/// <returns>The ID of the restored account</returns>
static Guid RestoreAccountRecordLateBound(
   IOrganizationService service,
   Guid accountId,
   string originalName)
{
   Entity accountToRestore = new("account", accountId)
   {
         Attributes = {
            // Appending '(Restored)' to the original name
            // to demonstrate overwriting a value.
            {"name", originalName + " (Restored)"}
         }
   };

   OrganizationRequest request = new("Restore")
   {
         Parameters = {
            { "Target", accountToRestore }
         }
   };

   OrganizationResponse response = service.Execute(request);

   return (Guid)response.Results["id"];
}

.NET 用 SDK でメッセージを使用する

レコードを復元する際のベスト プラクティス

レコードを復元するときに回避できる問題は次のとおりです。

カスケード関係の一部として参照が削除された関連レコードが存在しなくなった場合、復元操作は失敗します。 この問題を回避するには、プライマリ レコードを復元する前に、現在のレコードの一部として削除されていない関連レコードを常に復元します。

名前: RefCannotBeRestoredRecycleBinNotFound
コード: 0x80049959
番号: -2147182247
メッセージ: Entity with id '<Guid Value>' and logical name '<Entity.LogicalName>' does not exist. We cannot restore the reference '<Referred Primary Key Name>' that must be restored as part of this Restore call. ValueToBeRestored: <Guid Value>, ReferencedEntityName: <Referenced Entity Name>, AttributeName: <Referred Attribute Name>

レコードを作成するときに主キーの値を指定しない

一般的に、レコードを作成するときには常に Dataverse 主キーを設定します。 削除されたレコードと同じ主キー値を持つ新しいレコードを作成した場合、削除されたレコードを復元することはできません。 その場合は、削除したレコードを復元する前に、新しいレコードを削除する必要があります。

名前: DuplicateExceptionRestoreRecycleBin
コード: 0x80044a02
番号: -2147182279
メッセージ: Please delete the existing conflicting record '<Entity Platform Name>' with primary key '<Primary Key Name>' and primary key value '<Primary Key Value>' before attempting restore.

代替キー値が一致するレコードは復元をブロックする

削除されたレコードと同じ代替キー列の値を持つレコードを作成した場合、そのレコードを復元することはできません。 その場合は、削除したレコードを復元する前に、新しいレコードを削除する必要があります。

名前: DuplicateExceptionEntityKeyRestoreRecycleBin
コード: 0x80049929
番号: -2147182295
メッセージ: Duplicate entity key preventing restore of record '<Entity Platform Name>' with primary key '<Primary Key Name>' and primary key value '<Primary Key Value>'. See inner exception for entity key details.

削除された選択肢を使用したレコードは復元されない

オプションセット オプションを削除し、削除されたレコードでそのオプションが使用されていた場合、オプションは無効になるため復元できません。 オプション セット オプションを削除する前に、削除されたレコードを含め、そのオプションを使用しているレコードがないことを確認してください。

名前: PicklistValueOutOfRangeRecycleBin
コード: 0x80049949
番号: -2147182263
メッセージ: Picklist value not valid, please add the invalid value back to the picklist before restoring record

削除時の主キー違反

同じ主キーを持つレコードがすでに削除されている場合、そのレコードのごみ箱へのコピーは無視されます。 削除されたすべての項目をごみ箱に保存するように強制するには、Microsoft Dynamics CRM 用 OrgDBOrgSettings ツール を使用して DoNotEnforcePrimaryKeyOrgSettingRecycleBin を設定します。

この設定を有効にすると、次のエラーが表示される場合があります。

名前: DuplicateExceptionRestoreRecycleBin
コード: 0x80049939
番号: -2147182279
メッセージ: A record that has the attribute values Deleted Object already exists on Delete.

ゴミ箱が有効になっているテーブルを検出

ごみ箱機能を有効にする前に、ごみ箱設定 (RecycleBinConfig) テーブル 行がありません。

最終的には、ほとんどのテーブルでごみ箱機能が使用できるようになると予想されます。 ソリューション コンポーネント仮想テーブル、および エラスティック テーブル は、ごみ箱ではサポートされていません。 この プレビュー 中に、現在有効になっていない一部のテーブルが後で有効になる可能性があります (たとえば、400を超える列を持つテーブル)。 ごみ箱をサポートしていないテーブルのリストについては、現在、ごみ箱でテーブルはサポートされていませんをご覧ください。

特定のテーブルのごみ箱を無効にする および 環境のごみ箱を無効にするも合わせて参照してください。 テーブルでごみ箱が有効になっていない場合、復元可能なレコードを見つけることはできません。 Dataverse にクエリを実行して、テーブルに対してごみ箱が有効になっているかどうかを確認します。

ごみ箱が有効になっているテーブルには、statecode がアクティブで isreadyforrecyclebin が true の RecycleBinConfig テーブルに行があります。 RecycleBinConfig テーブルにテーブル名は含まれませんが、logicalname 列にテーブルの LogicalName が含まれる エンティティ テーブル の行を参照します。

次の FetchXML クエリを使用して、ごみ箱が有効になっているテーブルを検出します。

<fetch>
  <entity name='recyclebinconfig'>
    <filter type='and'>
      <condition attribute='statecode'
        operator='eq'
        value='0' />
      <condition attribute='isreadyforrecyclebin'
        operator='eq'
        value='1' />
    </filter>
    <link-entity name='entity'
      from='entityid'
      to='extensionofrecordid'
      link-type='inner'
      alias='entity'>
      <attribute name='logicalname' />
      <order attribute='logicalname' />
    </link-entity>
  </entity>
</fetch>

FetchXML を使用してデータのクエリを実行する方法

ゴミ箱が有効になっていないテーブルを検出

どのテーブルのごみ箱が有効になっていないかを知るには、次の FetchXML クエリを使用します。これは、ごみ箱が有効になっているテーブルを検出するにあるものとは逆のものです。

<fetch>
  <entity name='entity'>
    <attribute name='logicalname' />
    <filter type='or'>
      <condition entityname='recyclebin'
        attribute='extensionofrecordid'
        operator='null' />
      <condition entityname='recyclebin'
        attribute='statecode'
        operator='ne'
        value='0' />
      <condition entityname='recyclebin'
        attribute='isreadyforrecyclebin'
        operator='ne'
        value='1' />
    </filter>
    <order attribute='logicalname' />
    <link-entity name='recyclebinconfig'
      from='extensionofrecordid'
      to='entityid'
      link-type='outer'
      alias='recyclebin' />
  </entity>
</fetch>

FetchXML を使用してデータのクエリを実行する方法

このプレビュー機能が始まった 2024 年 5 月時点でのクエリの結果は、現在、ごみ箱でサポートされていないテーブルで確認できます

ごみ箱の自動クリーンアップ期間の設定を取得して設定する

削除されたレコードを復元できる期間を決定する値は、名前 列の値が organizationRecycleBinConfig.CleanupIntervalInDays 列で設定されてます。 RecycleBinConfig テーブルの 1 行おきに、CleanupIntervalInDays 列の値 -1 が含まれます。 この値は、organization テーブルに設定された同じ値を使用していることを示します。

別のテーブルに異なる値を指定するには、Name がテーブルの論理名と一致する CleanupIntervalInDays 列の値を設定します。 この列には最大 30 の値を設定できますが、組織の既定値と異なる場合を除き、設定しないことをお勧めします。

この静的 SetCleanupIntervalInDays メソッドを使用して、指定されたテーブルの CleanupIntervalInDays 列の値を設定します。

/// <summary>
/// Updates the CleanupIntervalInDays value for a specified table
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance</param>
/// <param name="entityId">The entityId of the table</param>
/// <param name="cleanupIntervalInDays">The new CleanupIntervalInDays value</param>
static void SetCleanupIntervalInDays(
    IOrganizationService service,
    Guid entityId,
    int cleanupIntervalInDays)
{

    QueryExpression query = new("recyclebinconfig")
    {
        ColumnSet = new ColumnSet("recyclebinconfigid"),
        Criteria = new FilterExpression(LogicalOperator.And)
        {
            Conditions = {
              {
                  new ConditionExpression(
                      attributeName: "extensionofrecordid",
                      conditionOperator: ConditionOperator.Equal,
                      value: entityId)
              }
          }
        }
    };

    EntityCollection records = service.RetrieveMultiple(query);

    if (records.Entities.Count.Equals(1))
    {
        Guid id = records.Entities[0].Id;

        Entity record = new(entityName: "recyclebinconfig", id: id)
        {
            Attributes = {
                { "cleanupintervalindays", cleanupIntervalInDays }
            }
        };

        service.Update(record);

    }
    else
    {
        throw new Exception($"Recycle bin configuration for table '{tableLogicalName}' not found.");
    }
}

.NET 用 SDK を使用する

テーブルのごみ箱を無効にする

テーブルのごみ箱を無効にするには、statecodestatuscode プロパティを 非アクティブな 値: 2 および 1 にそれぞれ設定することで、テーブルの recyclebinconfig レコードを無効にします。

注意

次のクエリは、EntityMetadata.MetadataId テーブルを格納する EntityId 値を Entity.EntityId 列の値と比較します。

この静的 DisableRecycleBinForTable メソッドを使用して、指定されたテーブルのごみ箱を無効にします。

/// <summary>
/// Disable the Recycle bin for a specified table
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance</param>
/// <param name="tableEntityId">The entityId of the table</param>
static void DisableRecycleBinForTable(
    IOrganizationService service,
    Guid tableEntityId)
{

    QueryExpression query = new("recyclebinconfig")
    {
        ColumnSet = new ColumnSet("recyclebinconfigid")
    };

    LinkEntity entityLink = query.AddLink(
      "entity", 
      "extensionofrecordid", 
      "entityid");

    entityLink.LinkCriteria.AddCondition(
      "extensionofrecordid", 
      ConditionOperator.Equal, 
      tableEntityId);

    EntityCollection recyclebinconfigs = service.RetrieveMultiple(query);

    if (recyclebinconfigs.Entities.Count.Equals(1))
    {

        var id = recyclebinconfigs.Entities[0].GetAttributeValue<Guid>("recyclebinconfigid");

        Entity recyclebinconfig = new("recyclebinconfig", id)
        {
            Attributes = {
                { "statecode", new OptionSetValue(1) },
                { "statuscode", new OptionSetValue(2) }
            }
        };

        service.Update(recyclebinconfig);
    }
    else
    {
        string message = $"Recycle bin configuration for table '{extensionofrecordid}' not found.";
        throw new Exception(message);
    }
}

.NET 用 SDK を使用する

環境のごみ箱を無効にする

注意

環境のごみ箱を無効にするには、Power Platform 管理センターでオフにします。 ここで説明する方法は、機能が一般公開される前に変更される可能性があります。

name 値が "organization" である RecycleBinConfig テーブルで行を削除します。 これにより、RecycleBinConfig テーブルですべてのレコードが削除され、環境のごみ箱が無効になります。

重要

他の個々のレコードを削除しないでください。 Dataverse が管理することが重要です。

カスタム ビジネス ロジックによって削除されたレコードの復元を管理する

Dataverse は、行が削除されたときに関連レコードに対して必要なアクションを管理するメカニズムを提供します。 この構成データは、関係の定義の一部です。 関連レコードが削除された場合、次の 4 つの動作を構成できます。

動作の削除 説明
すべてのレコードに伝播 関連するレコードが削除されます。
関連付けの解除 削除されたレコードの検索列は null 値に設定されます。
伝播しない 関連レコードに変更は適用されません。 (内部のみで使用)
制限 Dataverse は、データの整合性を維持するためにレコードの削除を防止します。 このリレーションシップに関連するレコードが存在しない限り、レコードを削除することはできません。

リレーションシップ動作の詳細

リレーションシップが すべてのレコードに伝播リンクを削除、および 制限 に設定されている場合、Dataverse がこれらの動作を管理するため、アクションは必要はありません。

リレーションシップが リンクを削除 動作を使用するよう設定されているのに、このリレーションシップが関連レコードを削除するようサポートされている場合、カスタム動作を適用するカスタム ロジックがある可能性があります。 たとえば、この動作に対して別の方法で対応し、定義したルールに基づいて、独自の '一部を伝播' 動作を実装したい場合があります。 たとえば、非アクティブなレコードや、一定期間更新されなかったレコードを削除する場合があります。 このロジックは通常、プラグインを使用して実装されますが、Microsoft Dataverse コネクタ: 行がトリガーを追加、変更、削除した場合 で Power Automate を使用しても実装できます。

このようなカスタム ビジネス ロジックがある場合、Dataverse はそれを認識せず、ロジックを自動的に "元に戻す" ことはできません。 ただし、Restore メッセージに別のプラグインを登録して、カスタム ロジックを逆にすることができます。 または、Power Automate および Microsoft Dataverse コネクタ: アクションがトリガーを実行するときを使用することもできます。

重要

Restore メッセージのプラグイン ステップを登録するときは、コンテキストに注意してください。 復元中のレコードは、PreOperation ステージでは使用できません。 関連レコードを作成する必要がある場合は、PostOperation ステージを使用します。 プラグインのステージについて.

Restore メッセージの InputParametersOutputParameters は、Create メッセージに似ているため、Create メッセージ用に登録されるように作成されたプラグインは、より少ない変更で Restore メッセージに再利用できます。

現在、ごみ箱ではテーブルはサポートされていません

次のテーブルは、この機能のプレビューが開始された 2024 年 5 月に、ごみ箱が有効になっていないテーブルを検出する でわかったクエリの結果です。 プライベート テーブル はこのリストに含まれません。

aaduser
aicopilot
aiplugin
aipluginconversationstartermapping
aipluginexternalschemaproperty
aipluginoperation
aipluginoperationresponsetemplate
annualfiscalcalendar
appaction_appactionrule_classicrules
appactionrule
appconfig
application
applicationuser
applicationuserrole
appmodulecomponent
appnotification
asyncoperation
attributeimageconfig
backgroundoperation
bot_botcomponent
bot_environmentvariabledefinition
botcomponent_aipluginoperation
botcomponent_connectionreference
botcomponent_environmentvariabledefinition
botcomponent_workflow
bulkdeletefailure
businessunit
callbackregistration
card
cardstateitem
catalogassignment
columnmapping
componentversion
componentversionnrddatasource
connectionreference
connectionroleassociation
copilotexamplequestion
copilotsynonyms
customapi
customapiresponseproperty
customcontroldefaultconfig
datalakefolder
datalakeworkspace
dataprocessingconfiguration
desktopflowbinary
displaystring
duplicaterulecondition
dvfilesearchattribute
dvtablesearch
dvtablesearchentity
entity
entitydataprovider
entityindex
entityrecordfilter
environmentvariabledefinition
eventexpanderbreadcrumb
expiredprocess
fabricaiskill
fieldpermission
fixedmonthlyfiscalcalendar
flowlog
flowmachinegroup
flowmachineimageversion
flowrun
goal
importentitymapping
importjob
importmap
interactionforemail
kbarticletemplate
lookupmapping
mainfewshot
managedproperty
metadataforarchival
mobileofflineprofileitem
mobileofflineprofileitemfilter
msdyn_aiconfiguration
msdyn_aitemplate
msdyn_componentlayer
msdyn_connectordatasource
msdyn_dataflow_datalakefolder
msdyn_dataflowtemplate
msdyn_dmsrequest
msdyn_entitylinkchatconfiguration
msdyn_insightsstorevirtualentity
msdyn_knowledgemanagementsetting
msdyn_mobileapp
msdyn_nonrelationalds
msdyn_pmanalysishistory
msdyn_pmcalendar
msdyn_pminferredtask
msdyn_pmprocesstemplate
msdyn_pmprocessversion
msdyn_pmtemplate
msdyn_salesforcestructuredobject
msdyn_schedule
msdyn_solutioncomponentcountdatasource
msdyn_solutioncomponentdatasource
msdyn_solutionhistory
msdyn_timelinepin
msdyn_workflowactionstatus
mspp_columnpermission
mspp_contentsnippet
mspp_entityformmetadata
mspp_entitypermission
mspp_pollplacement
mspp_publishingstate
mspp_redirect
mspp_sitemarker
mspp_webfile
mspp_webformmetadata
mspp_weblink
mspp_webpage
mspp_webrole
mspp_websiteaccess
mspp_webtemplate
newprocess
optionset
picklistmapping
pluginpackage
plugintype
powerbidataset
powerbireport
powerpagecomponent
powerpagesite
powerpageslog
principalentitymap
privilegesremovalsetting
processtrigger
publisheraddress
queue
recentlyused
recurringappointmentmaster
relationship
report
retaineddataexcel
ribbonmetadatatoprocess
roleeditorlayout
roletemplate
runtimedependency
savedqueryvisualization
sdkmessagefilter
sdkmessageprocessingstepimage
searchtelemetry
serviceendpoint
serviceplanappmodules
serviceplanmapping
sharedworkspaceaccesstoken
sharepointsite
sitemap
slaitem
solutioncomponent
solutioncomponentbatchconfiguration
solutioncomponentrelationshipconfiguration
subscriptionstatisticsoffline
synapsedatabase
synapselinkprofileentity
syncerror
systemuser
systemuserprofiles
teammobileofflineprofilemembership
teamroles
template
tracelog
transformationparametermapping
userform
userquery
virtualentitymetadata
webwizard
workflowbinary
workflowlog
workqueueitem

activityfileattachment
aicopilot_aiplugin
aipluginconversationstarter
aipluginexternalschema
aiplugininstance
aipluginoperationparameter
aiplugintitle
appaction
appactionmigration
appactionrule_webresource_scripts
appconfiginstance
applicationroles
applicationuserprofile
appmodule
appmoduleroles
appointment
attribute
attributemaskingrule
bot
bot_botcomponentcollection
botcomponent
botcomponent_botcomponent
botcomponent_dvtablesearch
botcomponent_msdyn_aimodel
botcomponentcollection
bulkdeleteoperation
calendar
canvasapp
cardentityconnections
catalog
channelaccessprofileentityaccesslevel
complexcontrol
componentversiondatasource
connectioninstance
connectionrole
connector
copilotglossaryterm
credential
customapirequestparameter
customcontrol
customcontrolresource
datalakefolderpermission
datalakeworkspacepermission
dependency
desktopflowmodule
duplicaterule
dvfilesearch
dvfilesearchentity
dvtablesearchattribute
elasticfileattachment
entityanalyticsconfig
entityimageconfig
entitykey
entityrelationship
environmentvariablevalue
exchangesyncidmapping
exportedexcel
featurecontrolsetting
fieldsecurityprofile
flowcredentialapplication
flowmachine
flowmachineimage
flowmachinenetwork
fxexpression
import
importfile
importlog
indexattributes
invaliddependency
keyvaultreference
mailmergetemplate
managedidentity
maskingrule
mobileofflineprofile
mobileofflineprofileitemassociation
monthlyfiscalcalendar
msdyn_aimodel
msdyn_appinsightsmetadata
msdyn_componentlayerdatasource
msdyn_dataflow
msdyn_dataflowconnectionreference
msdyn_datalakeds
msdyn_dmsrequeststatus
msdyn_helppage
msdyn_knowledgeassetconfiguration
msdyn_knowledgesearchfilter
msdyn_modulerundetail
msdyn_odatav4ds
msdyn_pmbusinessruleautomationconfig
msdyn_pmcalendarversion
msdyn_pmprocessextendedmetadataversion
msdyn_pmprocessusersettings
msdyn_pmrecording
msdyn_pmview
msdyn_salesforcestructuredqnaconfig
msdyn_slakpi
msdyn_solutioncomponentcountsummary
msdyn_solutioncomponentsummary
msdyn_solutionhistorydatasource
msdyn_tour
mspp_adplacement
mspp_columnpermissionprofile
mspp_entityform
mspp_entitylist
mspp_pagetemplate
mspp_powerpagescoreentityds
mspp_publishingstatetransitionrule
mspp_shortcut
mspp_sitesetting
mspp_webform
mspp_webformstep
mspp_weblinkset
mspp_webpageaccesscontrolrule
mspp_website
mspp_websitelanguage
navigationsetting
nlsqregistration
ownermapping
pluginassembly
plugintracelog
position
powerbimashupparameter
powerfxrule
powerpagecomponent_powerpagecomponent
powerpagesitelanguage
principalentitybusinessunitmap
privilege
processstage
publisher
quarterlyfiscalcalendar
queuemembership
recordfilter
recyclebinconfig
relationshipattribute
reportcategory
retentionconfig
role
roleprivileges
roletemplateprivileges
savedquery
sdkmessage
sdkmessageprocessingstep
searchresultscache
semiannualfiscalcalendar
serviceplan
serviceplancustomcontrol
sharedlinksetting
sharedworkspacenr
similarityrule
sla
solution
solutioncomponentattributeconfiguration
solutioncomponentconfiguration
solutionhistorydata
subscriptionsyncentryoffline
synapselinkprofile
synapselinkschedule
systemform
systemuserauthorizationchangetracker
systemuserroles
teamprofiles
teamtemplate
textanalyticsentitymapping
transformationmapping
translationprocess
usermobileofflineprofilemembership
userqueryvisualization
webresource
workflow
workflowcardconnections
workqueue

参照

削除された Microsoft Dataverse テーブル レコードを復元する (プレビュー)