管理操作のクエリ例
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
オーサリング&マネジメントGraphQL APIは、カスタムダイアログやユーザーインターフェースでExperience Managerを拡張することを可能にします。APIを使って、以前はSitecoreユーザーインターフェースを通じてしか可能でなかったタスクを実行できます。
以下のGraphQLタイプに対してクエリやミューテーションを用いて管理操作を行うことができます:
- アーカイブ
- データベース
- インデックス作成
- 職務
- 言語
- 出版
- セキュリティ
- ワークフロー
- ルール
利用可能な種類や操作の完全なリストについては、GraphQL IDEの組み込みドキュメントを参照してください。
インデックスの再構築をトリガーします
rebuildIndexes変異を使ってインデックス再構築操作を実行することができます。
クエリ
mutation { # Rebuild all indexes if indexName input is not specified. rebuildIndexes( input: { indexNames: "sitecore_master_index", "sitecore_core_index" } ) { jobs { name handle status { total messages processed jobState } done } } }
結果
{ "data": { "rebuildIndexes": { "jobs": { "name": "Index_Update_IndexName=sitecore_master_index", "handle": "3224a43a-0bb1-4be5-ac2f-91e781415be0;2AD160A8BF9F-Default Web Site", "status": { "total": -1, "messages": "Job started: Index_Update_IndexName=sitecore_master_index" , "processed": 0, "jobState": "RUNNING" }, "done": false }, { "name": "Index_Update_IndexName=sitecore_core_index", "handle": "e06da2e4-c129-4273-86be-945c5fbb5078;2AD160A8BF9F-Default Web Site", "status": { "total": -1, "messages": , "processed": 0, "jobState": "RUNNING" }, "done": false } } } }
求人名で求人ステータスを確認する
ジョブ詳細は、ジョブ名やジョブハンドルで結果から返ってくるもので、Job APIを使ってクエリできます。
クエリ
query { # If both jobName and handle parameters are specified, the jobName parameter is ignored job(input: { jobName: "Index_Update_IndexName=sitecore_master_index" }) { name handle status { messages processed jobState } done } }
結果
{ "data": { "job": { "name": "Index_Update_IndexName=sitecore_master_index", "handle": "61519bfb-ff49-44bd-8957-9ef4ba4404a2;2AD160A8BF9F-Default Web Site", "status": { "messages": "Job started: Index_Update_IndexName=sitecore_master_index" , "processed": 4630, "jobState": "RUNNING" }, "done": false } } }
ワイルドカードを使ってジョブステータスを確認する
ワイルドカードを使って利用可能な求人の詳細を入手できます。
ワイルドカードだけでクエリすることも、ジョブ名の断片の前後にワイルドカードを使うこともできます。具体的には:
- * - すべてのジョブのステータスを返します。
- *myjob - 名前が myjobで終わるジョブのステータスを返します。
- myjob* - 名前が myjobで始まるジョブのステータスを返します。
- *myjob* - 名前に myjobを含むジョブのステータスを返します。
クエリ
query{ jobs(input: { jobName: "\*index" } ){ nodes { name handle status { messages processed jobState } done } } }
結果
{ "data": { "jobs": { "nodes": { "name": "Index_Update_IndexName=sitecore_master_index", "handle": "970372d7-df5a-418f-a603-d6c0b40ed52c;2AD160A8BF9F-Default Web Site", "status": { "messages": "Job started: Index_Update_IndexName=sitecore_master_index" , "processed": 1578, "jobState": "RUNNING" }, "done": false }, { "name": "Index_Update_IndexName=sitecore_core_index", "handle": "b009bb91-aeae-4d86-86b5-fac785f1861d;2AD160A8BF9F-Default Web Site", "status": { "messages": "Job started: Index_Update_IndexName=sitecore_core_index" , "processed": 307, "jobState": "RUNNING" }, "done": false } } } }
アイテムを端に公開する
publishItemミューテーションを使ってアイテムをエッジに公開できます。操作の状態を確認したい場合は、publish操作のoperationIdプロパティを返してください。
クエリ
mutation { publishItem(input: { sourceDatabase: "master" targetDatabases: "experienceedge" rootItemIds: "{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}" publishSubItems: true publishRelatedItems: false publishItemMode: FULL languages: "en", "da" displayName: "Publish home item and descendants" }) { operationId } }
結果
{ "data": { "publishItem": { "operationId": "4e8ed033-cb59-4484-aa86-a6a165711710;xmc" } } }
入力フィールド
フィールド
種類
必須
概要
ソースデータベース
ストリング
はい
項目が公開されるソースデータベース、通常は「マスター」です。
ターゲットデータベース
[ストリング!]!
はい
例えば、["experienceedge"]のように、1つ以上のターゲットデータベースにアイテムが公開されます。
rootItemId
ID
いいえ
公開するルートアイテムのGUID。
rootItemIds
[ID]
いいえ
公開するルートアイテムのGUIDのリスト。提供されている場合、rootItemPathsを上書きします。
rootItemPath
ストリング
いいえ
例えば、公開するアイテムの「/sitecore/content/Home」などのSitecoreパスです。IDが提示されていれば無視されます。
rootItemPaths
[弦]
いいえ
複数のルートアイテムパスを公開できます。rootItemIdやrootItemIdsが提供されている場合は無視します。
publishSubItems
ブール
いいえ
子項目を公開操作に含めるかどうか。デフォルト
。publishRelatedItems(関連項目)
ブール
いいえ
関連項目を含めるかどうか、例えば参照メディアやリンクされた項目。デフォルト
。publishItemMode
PublishItemMode
はい
出版モード。共通の価値観
、スマート。言語
[ストリング!]!
はい
例えば、["en"]のように公開する言語です。
displayName
ストリング
いいえ
この投稿依頼に親しみやすい名前を付けています。
典型的なシナリオ
シナリオ
例の入力
IDで単一のアイテムを公開する
rootItemId: "GUID"
複数の項目を公開ID
rootItemIds: ["GUID1", "GUID2"]
パスでアイテムを公開する
rootItemPath: "/sitecore/content/Home"
出版状況を確認してください
publishItemミューテーションによって返されるオペレーション識別子を使って、公開操作のステータスを照会できます。
クエリ
query { publishingStatus( publishingOperationId: "cbbcaf09-ec02-42c8-bad6-df60ef05cc42;F497611F492C-Default Web Site" ) { state isDone isFailed languages { name } processed targetDatabase { name } } }
結果
{ "data": { "publishingStatus": { "state": "RUNNING", "isDone": false, "isFailed": false, "languages": { "name": "en" } , "processed": 1, "targetDatabase": { "name": "experienceedge" } } } }
クエリロックされたアイテム
どのアイテムがロックされているか、誰がロックしているかを確認できます。コンテンツ作成者がコンテンツエディターで編集すると、アイテムはロックされます。
クエリ
lock{
isLocked
lockedBy
user(username:
結果
{ "data": { "item": { "lock": { "isLocked": true, "lockedBy": "sitecore\\[email protected]", "user": { "canLock": false, "hasLock": true, "canUnlock": true } } } }, "extensions": {} }
アイテムの公開許可を確認してください
itemクエリのcanPublishフィールドを使って、アイテムの公開権限を取得することができます。アイテムのすべての公開権限を確認するか、個別のユーザーにクエリしてそのアイテムの権限を確認することができます。
クエリ
アイテムのすべての公開権限を問い合わせる:
query{
item(where: {path: "
クエリ
特定のユーザーの公開許可をクエリしてください:
query{
item(where: {path: "
結果
{ "data": { "item": { "access": { "canPublish": false } } }, "extensions": {} }