この記事では、SPEAKアイテムをSitecoreインスタンスにプッシュするときに、Sitecoreコンテンツのシリアル化の失敗を回避する方法について説明します。
Sitecoreコンテンツのシリアル化(SCS)では、シリアライズされたSPEAKアイテムをSitecoreインスタンスにインポートするときに、最初にテンプレートをプッシュする必要があります。
SPEAKのルート アイテムとその子孫およびSPEAKテンプレートが削除された後で、SPEAKアイテムを最初から復元する場合は注意が必要です。これらのアイテムが過去にすでにシリアル化されている場合、この時点での復元は失敗します。
SPEAKテンプレートに依存しているどのアイテムよりも先に、そのテンプレートを確実にプッシュするには、以下の手順を実行してください。
{
"namespace": "Project",
"resources": ["*/*.json"],
"items": {
"includes": [
{
"name": "SPEAK_Templates",
"path": "/sitecore/client/Speak/Templates"
},
{
"name": "SPEAK_Layouts",
"path": "/sitecore/client/Speak/Layouts"
},
{
"name": "SPEAK_System",
"path": "/sitecore/client/Speak/System"
}
]
}
}
SPEAKアプリケーションとそのアイテムにも同じ問題が存在しますが、同じ解決策で解決できます。 Project.module.jsonファイルで、SPEAK_APP_TemplatesノードをプッシュするSPEAKアプリケーションのアイテムのリストの一番上に移動します。
{
"namespace": "Project",
"resources": ["*/*.json"],
"items": {
"includes": [
{
"name": "SPEAK_APP_Templates",
"path": "/sitecore/client/Sitecore/Applications/Examples/OM/Templates",
"database": "core"
},
{
"name": "SPEAK_APP_ExistingOrders",
"path": "/sitecore/client/Sitecore/Applications/Examples/OM/Fake Data",
"database": "core"
},
{
"name": "SPEAK_APP_Pages",
"path": "/sitecore/client/Sitecore/Applications/Examples/OM/Pages",
"database": "core"
}
]
}
}