管理操作のクエリ例

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

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Authoring and Management 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"
        }
    }
}

入力フィールド

フィールド

種類

必須

概要

sourceDatabase

String

はい

通常、アイテムが公開されるソースデータベースは "master"

targetDatabases

String!!

はい

例えば、"experienceedge"のように、1つ以上の対象データベースにアイテムが公開されます。

rootItemId

ID

いいえ

公開するルートアイテムのGUIDです。

rootItemIds

ID

いいえ

公開するルートアイテムのGUIDのリスト。提供されれば、rootItemPaths

rootItemPath

String

いいえ

例えば、Sitecoreパスは公開する項目の情報を決め "/sitecore/content/Home" します。IDが提示されていれば無視されます。

rootItemPaths

String

いいえ

複数のルートアイテムパスを公開できます。 rootItemIdrootItemIdsが提供されていれば無視されます。

publishSubItems

Boolean

いいえ

子項目を公開操作に含めるかどうか。デフォルト: false

publishRelatedItems

Boolean

いいえ

関連項目を含めるかどうか、例えば参照メディアやリンクされた項目。デフォルト: false

publishItemMode

PublishItemMode

はい

出版モード。一般的な値: FULLSMART

languages

String!!

はい

例えば、出版する言語は"en")。

displayName

String

いいえ

この投稿依頼に親しみやすい名前を付けています。

典型的なシナリオ

シナリオ

例の入力

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"
      }
    }
  }
}

クエリロックされたアイテム

どのアイテムがロックされているか、誰がロックしているかを確認できます。コンテンツ作成者がContent Editorで編集すると、アイテムはロックされます。

クエリ

lock{
      isLocked
      lockedBy
      user(username: <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: "<item path>"}) {
      canPublish
  }
}

クエリ

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

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

結果

{
  "data": {
    "item": {
      "access": {
        "canPublish": false
      }
    }
  },
  "extensions": {}
}
この記事を改善するための提案がある場合は、 お知らせください!