次の方法で共有


アーカイブのカスタマイズ (プレビュー)

この記事では、カスタマイズをサポートするアーカイブ Microsoft Dynamics 365財務と運用アプリ説明します。 アーカイブ フレームワークは、サポートされる機能シナリオにカスタム テーブル フィールドおよびカスタム テーブルを含める拡張機能をサポートします。

履歴テーブルとビジネス インテリジェンス エンティティのカスタム フィールドの追加

標準テーブルに追加するカスタム フィールドは、対応する履歴テーブルとビジネス インテリジェンス (BI) エンティティに追加する必要があります。 カスタマイズされた BI エンティティは、Dataverse 長期保存データをアーカイブするために Dataverse で更新する必要があります。

履歴テーブル

トランザクション レコードは履歴テーブルに移動されます。 履歴テーブルのスキーマは、対応するライブ テーブルと一致している必要があります。 ライブ テーブルのすべての列は、ミラーリングされた履歴テーブルに存在している必要があります。

列の除外ルール :SysRowVersion および SysDataState 列は、プラットフォームによって追加され、テーブル メタデータ プロパティを使用して管理されます。 これらの列は、履歴テーブルに追加する必要がありません。

ビジネス エンティティ

Dataverse は財務と運用と連動します。 これらの仮想エンティティは、財務と運用データベースからデータを取得し、Dataverse 長期保有の対応するテーブルに保存するために使用されます。

重要

エンティティ間にリレーションシップを追加しないこと。

手順1: 拡張子を使用して履歴テーブルにフィールドを追加する

アーカイブ フレームワークでは、すべてのライブ テーブル列が対応する履歴テーブルにミラーリングされている必要があります。 テーブル拡張機能を使用して、履歴テーブルにカスタム フィールドを追加します。 財務と運用アプリで拡張機能を使って履歴テーブルにフィールドを追加する方法の詳細については、拡張機能を使ってテーブルにフィールドを追加するを参照してください。

手順2: 拡張子を使用して BI エンティティにフィールドを追加する

現在のテーブルに追加するフィールドは、対応する BI エンティティに追加する必要があります。

手順3: Dataverse で仮想エンティティを更新する

カスタマイズされた ビジネス エンティティは、Dataverse 長期保有ストアのデータをアーカイブするために Dataverse で更新する必要があります。

アーカイブ シナリオに新しいテーブルを追加する

メインのライブ テーブルと直接的または間接的な関係がある場合、追加のテーブルをアーカイブ シナリオに含めることができます。

アーカイブ スコープのライブ テーブルに対応する履歴テーブルを作成するには、以下の手順に従います。

  1. ライブ テーブルのすべてのメタデータ プロパティを含む、対応するライブ テーブルのすべてのフィールドをミラーする新しい履歴テーブルを作成します。 この記事の前の列の除外ルールを参照してください。
  2. ライブ テーブルのインデックスを履歴テーブルにミラーリングしないでください。 ほとんどの履歴テーブルでは、RecId 列のクラスター化されたインデックスで十分です。 必要に応じてクエリのパフォーマンスを改善し、外部のキー関係を維持するための追加のインデックスを作成します。
  3. 新しいテーブルをアーカイブ テーブル チャートに追加するために、シナリオ用の ArchiveAutomationJobRequestCreator クラスを拡張します。

コードの例

以下の例は、総勘定元帳アーカイブ ジョブ リクエスト作成クラスをカスタマイズして、新しいテーブルを追加する方法を示しています。

using Microsoft.Dynamics.Archive.Contracts; 
[ExtensionOf(classStr(LedgerArchiveAutomationJobRequestCreator] 
final class LedgerArchiveAutomationJobRequestCreator_GeneralLedger_Extension 
{
    public ArchiveJobPostRequest createPostJobRequestForArchiveTrans(LedgerArchiveTrans _archiveTrans 
    { 
        ArchiveJobPostRequest postRequest = next createPostJobRequestForArchiveTrans(_archiveTrans; 
        ArchiveServiceArchiveJobPostRequestBuilder builder = 
            ArchiveServiceArchiveJobPostRequestBuilder::createFromArchiveJobPostRequest(postRequest; 

        // Use builder to add more live tables, history tables, join conditions and where conditions (if needed 
        // Example: Adding my new general ledger table to archive table graph 
        var generalJournalAccountEntryTable = new DictTable(tableNum(GeneralJournalAccountEntry; 
        var generalJournalAccountEntryTableName = generalJournalAccountEntryTable.name(DbBackend::Sql; 
        var newMyNewGeneralLedgerTable = new DictTable(tableNum(MyNewGeneralLedgerTable; 
        var newMyNewGeneralLedgerTableName = newMyNewGeneralLedgerTable.name(DbBackend::Sql; 
        var newMyNewGeneralLedgerTableHistory = new DictTable(tableNum(MyNewGeneralLedgerTableHistory; 
        var newMyNewGeneralLedgerTableHistoryName = newMyNewGeneralLedgerTableHistory.name(DbBackend::Sql; 
        var myNewGeneralLedgerTableSourceTable = ArchiveServiceSourceTableConfiguration::newForSourceTable( 
            newMyNewGeneralLedgerTableName, 
            newMyNewGeneralLedgerTableHistoryName, 
            tableStr(MyNewGeneralLedgerTableBiEntity; 

        // Add parent table 
        myNewGeneralLedgerTableSourceTable.parmParentSourceTableName(generalJournalAccountEntryTableName; 
        builder.addSourceTableForLongTermRetention(myNewGeneralLedgerTableSourceTable 
            .addJoinCondition(newMyNewGeneralLedgerTableName, 
            newMyNewGeneralLedgerTable.fieldName(fieldNum(MyNewGeneralLedgerTable, GeneralJournalAccountEntry, DbBackend::Sql, 
            generalJournalAccountEntryTable.fieldName(fieldNum(GeneralJournalAccountEntry, RecId, DbBackend::Sql; 

        return builder.completeArchiveJobPostRequest(; 

ライブ テーブル、履歴テーブル、Dataverse マネージド データ レイク テーブルの財務と運用テーブル名

シナリオ ライブ テーブル 履歴テーブル BI エンティティ Dataverse-マネージド データ レイク テーブル
財務一般会計 GENERALJOURNALACCOUNTENTRY GENERALJOURNALACCOUNTENTRYHISTORY GeneraljournalaccountentryBiEntity mserp_GeneraljournalaccountentryBiEntity
GENERALJOURNALACCOUNTENTRY_W GENERALJOURNALACCOUNTENTRYHISTORY_W GeneraljournalaccountentrywBiEntity mserp_GeneraljournalaccountentrywBiEntity
GENERALJOURNALENTRY GENERALJOURNALENTRYHISTORY cus mserp_GeneraljournalentryBiEntity
GENERALJOURNALENTRY_W GENERALJOURNALENTRYHISTORY_W GeneraljournalentrywBiEntity mserp_GeneraljournalentrywBiEntity
LEDGERCONSOLIDATEHISTREF LEDGERCONSOLIDATEHISTREFHISTORY LedgerconsolidatehistrefBiEntity mserp_LedgerconsolidatehistrefBiEntity
LEDGERENTRY LEDGERENTRYHISTORY LedgerentryBiEntity mserp_LedgerentryBiEntity
LEDGERENTRYJOURNAL LEDGERENTRYJOURNALHISTORY LedgerentryjournalBiEntity mserp_LedgerentryjournalBiEntity
LEDGERENTRYJOURNALIZING LEDGERENTRYJOURNALIZINGHISTORY LedgerentryjournalizingBiEntity mserp_LedgerentryjournalizingBiEntity
LEDGERTRANSSETTLEMENT LEDGERTRANSSETTLEMENTHISTORY LedgertranssettlementBiEntity mserp_LedgertranssettlementBiEntity
SUBLEDGERVOUCHERGENERALJOURNALENTRY SUBLEDGERVOUCHERGENERALJOURNALENTRYHISTORY SubledgervouchergeneraljournalentryBiEntity mserp_SubledgervouchergeneraljournalentryBiEntity
Supply Chain Management 販売注文 MCRRETURNSALESTABLE MCRRETURNSALESTABLEHISTORY McrreturnsalestableBiEntity mserp_McrreturnsalestableBiEntity
MCRSALESLINE MCRSALESLINEHISTORY McrsaleslineBiEntity mserp_McrsaleslineBiEntity
MCRSALESTABLE MCRSALESTABLEHISTORY McrsalestableBiEntity mserp_McrsalestableBiEntity
RETAILSALESLINE RETAILSALESLINEHISTORY RetailsaleslineBiEntity mserp_RetailsaleslineBiEntity
RETAILSALESTABLE RETAILSALESTABLEHISTORY RetailsalestableBiEntity mserp_RetailsalestableBiEntity
SALESLINE SALESLINEHISTORY SaleslineBiEntity mserp_SaleslineBiEntity
SALESLINE_BR SALESLINEHISTORY_BR SaleslinebrBiEntity mserp_SaleslinebrBiEntity
SALESLINE_IN SALESLINEHISTORY_IN SaleslineinBiEntity mserp_SaleslineinBiEntity
SALESLINE_W SALESLINEHISTORY_W SaleslinewBiEntity mserp_SaleslinewBiEntity
SALESTABLE SALESTABLEHISTORY SalestableBiEntity mserp_SalestableBiEntity
SALESTABLE_BR SALESTABLEHISTORY_BR SalestablebrBiEntity mserp_SalestablebrBiEntity
SALESTABLE_RU SALESTABLEHISTORY_RU SalestableruBiEntity mserp_SalestableruBiEntity
SALESTABLE_W SALESTABLEHISTORY_W SalestablewBiEntity mserp_SalestablewBiEntity
Supply Chain Management 在庫トランザクション INVENTTRANSARCHIVE INVENTTRANSARCHIVEHISTORY InventtransarchiveBiEntity mserp_InventTransArchiveBiEntity
Supply Chain Management 在庫仕訳帳 INVENTJOURNALTABLE INVENTJOURNALTABLEHISTORY InventjournaltableBiEntity mserp_InventjournaltableBiEntity
INVENTJOURNALTABLE_IN INVENTJOURNALTABLE_INHISTORY InventjournaltableinBiEntity mserp_InventjournaltableinBiEntity
INVENTJOURNALTRANS INVENTJOURNALTRANSHISTORY InventjournaltransBiEntity mserp_InventjournaltransBiEntity
INVENTJOURNALTRANS_IN INVENTJOURNALTRANS_INHISTORY InventjournaltransinBiEntity mserp_InventjournaltransinBiEntity
Finance 税トランザクション TAXTRANS TAXTRANSHISTORY TaxtransBiEntity mserp_TaxtransBiEntity
TAXTRANS_BR TAXTRANSHISTORY_BR TaxtransbrBiEntity mserp_TaxtransbrBiEntity
TAXTRANSGENERALJOURNALACCOUNTENTRY TAXTRANSGENERALJOURNALACCOUNTENTRYHISTORY TaxtransgeneraljournalaccountentryBiEntity mserp_TaxtransgeneraljournalaccountentryBiEntity
TAXTRANS_IN TAXTRANSHISTORY_IN TaxtransinBiEntity mserp_TaxtransinBiEntity
TAXTRANS_IT TAXTRANSHISTORY_IT TaxtransitBiEntity mserp_TaxtransitBiEntity
TAXTRANS_REPORTING TAXTRANSHISTORY_REPORTING TaxtransreportingBiEntity mserp_TaxtransreportingBiEntity
TAXTRANS_RU TAXTRANSHISTORY_RU TaxtransruBiEntity mserp_TaxtransruBiEntity
TAXTRANSSUBLEDGERJOURNALACCOUNTENTRY TAXTRANSSUBLEDGERJOURNALACCOUNTENTRYHISTORY TaxtranssubledgerjournalaccountentryBiEntity mserp_TaxtranssubledgerjournalaccountentryBiEntity
TAXTRANS_TH TAXTRANSHISTORY_TH TaxtransthBiEntity mserp_TaxtransthBiEntity
TAXTRANS_W TAXTRANSHISTORY_W TaxtranswBiEntity mserp_TaxtranswBiEntity