管理操作のクエリ例

日本語翻訳に関する免責事項

このページの翻訳は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: ) { canLock hasLock canUnlock } }

結果

{ "data": { "item": { "lock": { "isLocked": true, "lockedBy": "sitecore\\[email protected]", "user": { "canLock": false, "hasLock": true, "canUnlock": true } } } }, "extensions": {} }

アイテムの公開許可を確認してください

itemクエリのcanPublishフィールドを使って、アイテムの公開権限を取得することができます。アイテムのすべての公開権限を確認するか、個別のユーザーにクエリしてそのアイテムの権限を確認することができます。

クエリ

アイテムのすべての公開権限を問い合わせる:

query{ item(where: {path: ""}) { canPublish } }

クエリ

特定のユーザーの公開許可をクエリしてください:

query{ item(where: {path: ""}) { access(username:""){ canPublish } } }

結果

{ "data": { "item": { "access": { "canPublish": false } } }, "extensions": {} }

この記事を改善するための提案がある場合は、 お知らせください!