---
title: "事前定義商務エンジンのミニオン"
slug: "predefined-commerce-engine-minions"
abstract: "インデックス作成や注文フロー処理など、さまざまな処理で重要な役割を果たすデフォルトのミニオンを一覧・記述します。"
---
# 事前定義商務エンジンのミニオン

Commerce Engineプラグインは、インデックス作成や注文フロー処理など、さまざまな処理で重要な役割を果たすデフォルトのミニオンを提供します。このトピックでは、デフォルトで定義されているミニオンについて説明します。

## Sitecoreのウェブおよびマスターインデックスのミニオンインデックス作成

[Catalogプラグイン](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/catalog-minions.html "Catalog minions")は、カタログ、カテゴリ、販売可能なアイテムを含むカタログエンティティの完全または増分的なインデックス化を担当するミニオンを定義します。Sitecoreで使用されている検索プロバイダー(例えばSolr)は、Commerce Engineでインデックス化されたカタログエンティティをSitecoreのウェブやマスターインデックスの再構築時に使用し、Sitecore Content Editorやストアフロントユーザーに最新の検索結果を提供できます。

### アイテムフルインデックスミニオン

ItemFullIndexMinionミニオンは、Commerce Engine内のすべてのカタログエンティティを再インデックスし、Sitecoreマスターインデックスやウェブインデックスへの組み込みを可能にします。ユーザーがSitecoreマスターやウェブインデックスの完全な再構築をリクエストした際に、[Sitecoreコントロールパネル](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/manually-rebuild-sitecore-xp-indexes.html "Manually rebuild Sitecore XP indexes")または[Postmanサンプルリクエスト](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/rebuild-a-commerce-search-index-using-postman.html "Rebuild a Commerce search index using Postman")を使って手動でミニオンを呼び出します。

### アイテム増分インデックスミニオン

ItemIncrementalIndexMinionミニオンはデフォルトの[インデックス更新戦略](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/incremental-index-updates.html "Incremental index updates")で定義された10分ごとに実行され、マスターインデックスやウェブインデックスSitecore最新に保つ責任を負い、Sitecoreアイテム検索結果に新規、更新、削除されたカタログエンティティを含めることができます。Postmanで*「Run IncrementalIndex Minion - Storefront(Master)*[」リクエスト](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/rebuild-a-commerce-search-index-using-postman.html "Rebuild a Commerce search index using Postman")を呼び出して、手動でインクリメンタルインデックスの再構築をトリガーできます。

## Business Tools検索のためのミニオンのインデックス作成

[Searchプラグイン](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/indexing-minions.html "Indexing minions")は、注文、顧客、カタログ項目などのCommerceエンティティのインデックス作成タスクを行うミニオンを提供します。Business Toolsをサービスしている検索プロバイダー(例えばSolr)は、Commerceのインデックスを使って検索結果をBusiness Toolsユーザーに返すことができます。

### フルインデックスミニオン

FullIndexMinionミニオンはリスト内のすべてのアイテムをインデックス化します。オンデマンドで動作し、IPrepareFullIndexMinionPipelineとIFullIndexMinionPipelineを呼び出してインデックス機能を実行します。

FullIndexMinionミニオンは3つのリストを監視します:Catalogs、Categories、SellableItems。以下はPlugIn.Minions.PolicySet-1.0.0.jsonファイル内のFullIndexMinion定義の例です。

{
 "$type": "Sitecore.Commerce.Core.MinionPolicy, Sitecore.Commerce.Core",
 "ListsToWatch": 
 "Catalogs",
 "Categories",
 "SellableItems"
 ,
 "FullyQualifiedName": "Sitecore.Commerce.Plugin.Search.FullIndexMinion, Sitecore.Commerce.Plugin.Search",
 "ItemsPerBatch": 1000,
 "Entities":
 { "$type":
 "System.Collections.Generic.List\`1System.String, mscorlib, mscorlib",
 "$values": 
 "Sitecore.Commerce.Plugin.Catalog.Catalogs, Sitecore.Commerce.Plugin.Catalog",
 "Sitecore.Commerce.Plugin.Catalog.Category,
 Sitecore.Commerce.Plugin.Catalog",
 "Sitecore.Commerce.Plugin.Catalog.SellableItem, Sitecore.Commerce.Plugin.Catalog"
 
 }
},

### インクリメンタルインデックスミニオン

IncrementalIndexMinionミニオンはインデックスで更新が必要な新しいアイテムを監視します。3分ごとに実行し、IPrepareIncrementalIndexMinionPipelineとIncrementalIndexMinionPipelineを呼び出します。

### DeleteIndexMinion

DeleteIndexDocumentsMinionのミニオンはリストを見ている。3分ごとに実行され、IPrepareDeleteIndexDocumentsMinionPipelineとIDeleteIndexDocumentsMinionPipelineパイプラインを呼び出す。

例えば、DeletedCustomersIndexやDeletedCatalogItemsIndexなど、箱から利用可能な他のミニオンは、検索インデックスから異なるエンティティのリストを削除します。

## 商取引命令の手下たち

[注文プロセスのミニオン](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/orders-minions.html "Orders minions") は、注文が最初の *保留* 状態から *最終注文完了* 状態へと移行する過程で、注文をリストからリストへと移動させる重要な役割を果たします。

## パージカーツの手下

PurgeCartsMinionミニオンは、あらかじめ設定された閾値に基づいて削除可能になった放置または空のカートをデータベースから削除するメンテナンスプロセスとして動作します。

PurgeCartsMinionミニオンはカートのリスト("ListsToWatch": "Carts")を監視し、24時間ごとに("WakeupInterval": "01.0:00:00")運行します。

PurgeCartsPolicy構成は閾値(日数)を決定し、その後ミニオンは空または放棄されたカートをカートリストから削除します。以下の例は、サンプルPlugin.AdventureWorks.CommerceMinions.jsonファイル(Sitecoreの一部としてパッケージ化されている)で定義されたポリシー設定を示しています。Commerce.Engine。SDK)。

{
 "$type":"Sitecore.Commerce.Plugin.Carts.PurgeCartsPolicy, Sitecore.Commerce.Plugin.Carts",
 "AbandonedCartsThreshold": 14,
 "EmptyCartsThreshold": 2
},

前述の方針定義に基づく:

-   放置されたカートは14日間の非活動で削除対象となります。
-   空のカートは2日間の非活動で削除対象となります。

PurgeCartsMinionの手下がIPurgeCartsMinionPipelineパイプラインを呼びます。

## パージカタログの手下

PurgeCatalogsMinionミニオンは、データベースから削除されたカタログを一掃するメンテナンスプロセスとして動作します。カタログが削除される際、例えばBusiness ToolsユーザーインターフェースやPostmanのサンプルDelete Catalogリクエストを使って行うと、削除済みカタログのリストに載せられます。パージカタログのミニオンはそのリスト("ListsToWatch": "PurgeCatalogs")を監視し、一定の間隔でリストから削除されたカタログをデータベースから一掃します。デフォルトでは、ミニオンは5分ごとに実行されます。

> !注Sitecore XC Business Toolsでは、削除されたカタログはパージカタログのミニオンが実行して事実上データベースから削除されるまで検索結果に現れ続けます。

削除されたカタログがデータベースから削除される場合:

-   削除されたカタログにのみ関連付けられる販売可能な商品はデータベースから削除されます。
-   削除されたカタログに関連するカテゴリもデータベースから削除されます。

以下の例は、Plugin.Minions.PolicySet-1.\*.\*.jsonファイルで定義されたデフォルトのPurgeCatalogsMinionsポリシーを示しています。

{
 "$type": "Sitecore.Commerce.Core.MinionPolicy, Sitecore.Commerce.Core",
 "WakeupInterval": "\`00:05\`:00",
 "ListsToWatch": 
 "PurgeCatalogs"
 ,
 "FullyQualifiedName": "Sitecore.Commerce.Plugin.Catalog.PurgeCatalogsMinion, Sitecore.Commerce.Plugin.Catalog",
 "ItemsPerBatch": 10,
 "SleepBetweenBatches": 500
},

> !注[PostmanでRun Purge Catalogs Minionリクエスト](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/purge-deleted-catalogs-from-the-database.html "Purge deleted catalogs from the database")を実行して、データベースから削除されたカタログを強制的に削除できます。

## 大規模なカタログを整理する際の考慮事項

PurgeCatalogsMinionおよびPurgeCategoriesMinionミニオンはトランザクションプロセスとして動作します。これらはSystem.Transactions.TransactionScopeクラスに基づいており、カタログやカテゴリをデータベースから削除するためにSitecore.Commerce.Core.Commands.CommerceCommand.PerformTransaction()メソッドを使用します。

[MachineSettingsSection.MaxTimeout](https://docs.microsoft.com/en-us/dotnet/api/system.transactions.configuration.machinesettingssection.maxtimeout?view=netframework-4.8)プロパティは、トランザクションがタイムアウトされるまでの最大許容時間を設定します。タイムアウトのデフォルト値は10分です。データベースから非常に多くのエンティティをパージすると、トランザクションはパージ操作が完了する前にタイムアウトする可能性があります。タイムアウトエラーを避けるために、MachineSettingsSection.MaxTimeoutプロパティの値を変更することを検討してください。パージ操作を実行する前にカタログからカテゴリを削除することもタイムアウトエラーの回避に役立ちます。

> !注*置き換え*モードでカタログ[インポートリクエストを](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/walkthrough--importing-catalog-data.html "Walkthrough: Importing catalog data")呼び出すと、バックグラウンドでPurgeCatalogsMinionミニオンもトリガーされます。これは置換される既存のカタログを削除するために必要です。大規模なカタログインポート操作中にMachineSettingsSection.MaxTimeoutプロパティの値を変更することで、タイムアウトエラーを避けることができます。

## パージカテゴリーのミニオン

このPurgeCategoriesMinionは、データベースから削除されたカタログカテゴリを一掃するメンテナンスプロセスとして動作します。カテゴリがカタログから削除された場合、例えばBusiness ToolsユーザーインターフェースやPostmanのサンプルDelete Categoryリクエストを使って、それらは削除済みカテゴリのリストに載せられます。パージカテゴリミニオンはそのリスト("ListsToWatch": "PurgeCategories")を監視し、一定の間隔でリストされた削除済みカテゴリをデータベースから削除します。デフォルトではミニオンは5分ごとに実行されます。

> !注Sitecore XC Business Toolsでは、削除されたカテゴリはPurge Categoriesのミニオンが実行して実質的にデータベースから削除されるまで検索結果に現れ続けます。

以下はPlugin.Minions.PolicySet-1.\*.\*.jsonファイルで定義されたデフォルトのPurgeCategoriesMinionポリシーの例です。

{
 "$type": "Sitecore.Commerce.Core.MinionPolicy, Sitecore.Commerce.Core",
 "WakeupInterval": "\`00:05\`:00",
 "ListsToWatch": 
 "PurgeCategories"
 ,
 "FullyQualifiedName": "Sitecore.Commerce.Plugin.Catalog.PurgeCategoriesMinion, Sitecore.Commerce.Plugin.Catalog",
 "ItemsPerBatch": 10,
 "SleepBetweenBatches": 500
 },

> !注[PostmanでRun Purge Categories Minionリクエスト](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/purge-deleted-categories-from-the-database.html "Purge deleted categories from the database")を実行して、削除されたカテゴリを強制的にデータベースから削除できます。

## アーカイブエンティティのミニオン

このArchiveEntitiesMinionは、キャンセル済みまたは完了した注文、または遅延した注文仕訳記入など、適格性に基づいて [商務関連のエンティティをアーカイブ](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/entity-archiving.html "Entity archiving") するメンテナンスプロセスとして動作します。

PlugIn.Minions.PolicySet-1.0.0.jsonファイルは、ArchiveEntitiesMinionミニオンの2つのインスタンスを定義しており、それぞれがCommerceエンティティタイプ(注文エンティティとジャーナルエントリエンティティ)のアーカイブを担当します。

サンプルミニオンポリシーセットファイルへのパスはwwwroot/data/Environments/PlugIn.Minions.PolicySet-1.0.0.jsonです。

> !注エンティティアーカイブはデフォルトで無効化されており、エンティティの種類や環境ごとにエンティティの [アーカイブポリシー](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/entity-archiving.html#UUID-b9c6c73a-ec1f-9e10-9714-efb3185dc3ac_section-idm232043277625368 "Entity archiving policies")を更新することで設定可能です。

> !重要デフォルトでは、エンティティアーカイブミニオンは24時間ごとに実行されるように設定されています。このデフォルトの動作を変更する前に、[以下の推奨事項とベストプラクティス](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/predefined-commerce-engine-minions.html#UUID-e90ccfe0-6f43-9708-1b84-1ff566badcdf_section-idm232159373591707 "Recommendations for archiving minions configuration")を考慮してください。

### ジャーナルエントリーのアーカイブエンティティミニオン

ArchiveEntitiesMinionListsToWatch":"JournalEntries""WakeupInterval": "01.:00"[)、設定可能な日数後にオーダージャーナルエントリーをアーカイブします。](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/entity-archiving.html#UUID-b9c6c73a-ec1f-9e10-9714-efb3185dc3ac_section-idm232033206612606 "ArchiveEntityPolicy")

以下は、ArchiveEntitiesMinionのミニオンインスタンスがタイプ "Sitecore.Commerce.Plugin.Journaling.JournalEntry, Sitecore.Commerce.Plugin.Journaling"のエンティティをアーカイブするように設定された例を示しています:

{
 "$type": "Sitecore.Commerce.Core.MinionPolicy, Sitecore.Commerce.Core",
 "WakeupInterval": "01.\`00:00\`:00",
 "ListsToWatch": 
    "JournalEntries"
    ,
 "FullyQualifiedName": "Sitecore.Commerce.Plugin.Archive.ArchiveEntitiesMinion, Sitecore.Commerce.Plugin.Archive",
 "ItemsPerBatch": 10, //NOT USED//
 "SleepBetweenBatches": 500,
 "Entities": {
   "$type": "System.Collections.Generic.List\`1System.String, mscorlib, mscorlib",
   "$values": 
    "Sitecore.Commerce.Plugin.Journaling.JournalEntry, Sitecore.Commerce.Plugin.Journaling"
 
  }
},

> !注古いジャーナルエントリをアーカイブするアーカイブエンティティミニオンは"ItemsPerBatch"プロパティを使用しません。代わりに、ArchiveOrderPolicyポリシーで定義された"BatchCount"プロパティを使用し、これはミニオン環境ファイル(PlugIn.Habitat.CommerceMinions-1.\*.\*.json)で設定可能です。

### 非アクティブ注文のためのアーカイブエンティティのミニオン

非アクティブな注文をアーカイブする責任者のミニオンArchiveEntitiesMinionインスタンスは、注文リスト("ListsToWatch":"Orders")を監視します。24時間ごとに実行され("WakeupInterval": "01.00:00:00")、完了またはキャンセルされた注文を設定可能な日数にわたりアーカイブします。

以下は、タイプ "Sitecore.Commerce.Plugin.Orders.Order, Sitecore.Commerce.Plugin.Orders"エンティティをアーカイブするように設定されたミニオンインスタンスのArchiveEntitiesMinion例を示しています:

{
 "$type": "Sitecore.Commerce.Core.MinionPolicy, Sitecore.Commerce.Core",
   "WakeupInterval": "01.\`00:00\`:00",
   "ListsToWatch": 
      "Orders"
      ,
   "FullyQualifiedName": "Sitecore.Commerce.Plugin.Archive.ArchiveEntitiesMinion, Sitecore.Commerce.Plugin.Archive",
   "ItemsPerBatch": 10, //NOT USED//
   "SleepBetweenBatches": 500,
   "Entities": {
   "$type": "System.Collections.Generic.List\`1System.String, mscorlib, mscorlib",
     "$values": 
 "Sitecore.Commerce.Plugin.Orders.Order, Sitecore.Commerce.Plugin.Orders" 
     
   }
},

> !注非アクティブな命令をアーカイブするアーカイブエンティティミニオンは"ItemsPerBatch"プロパティを使用しません。代わりに、ArchiveOrderPolicyポリシーで定義された"BatchCount"プロパティを使用し、例えばミニオン環境ファイル(PlugIn.Habitat.CommerceMinions-1.\*.\*.json)で設定可能です。
> 
> [エンティティ](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/entity-archiving.html "Entity archiving")アーカイブの適格基準を定義するポリシーは、例えばミニオン環境ファイル(PlugIn.Habitat.CommerceMinions-1.\*.\*.json)でも設定可能です。

### ミニオン構成のアーカイブに関する推奨事項

エンティティアーカイブを有効にすると、大量のデータをアーカイブデータベースに移すプロセスがSQLサービスのパフォーマンスに影響を与えることがあります。アーカイブするデータ量を最小限に抑えるのが良い習慣です。

SQLサービスに管理不能なデータ量を抱かせないため、Sitecoreはアーカイブミニオンを毎日実行することを推奨しています。デフォルトのミニオン構成はこの推奨を反映しており、ミニオンは24時間ごと("WakeupInterval: "01.00:00:00")に実行されるように設定されています。