Web API による選択肢 (オプション セット) の作成と更新

一般的に、テーブルの列を設定する際には、グローバルオプション セットを使用して、異なる列が同じオプション セットを共有できるようにします。 特定の列に対してのみ定義されるローカル オプション セットとは異なり、グローバル オプション セットは再利用することができます。 これらの値は、要求パラメーターの中で列挙体のときと同じように使われます。

注意

発行者である場合は、既存のマネージド オプション セット のみを変更できます。 これらのオプション セットで名前の変更や削除などの変更を行うには、そのオプションセットを追加したソリューションにアップグレードする必要があります。 詳細: ソリューションのアップグレードまたは更新

自社組織の URI /api/data/v9.2/GlobalOptionSetDefinitions への POST 要求を使用してグローバル オプション セットを設定するときは、値の設定をシステムに委任することを推奨します。 値の設定をシステムに委任する場合、新規の OptionMetadata インスタンスを作成するとき、引数として null 値を渡します。 オプションを定義すると、そのオプション セットが作成されたソリューションに設定されている発行者のコンテキストに固有の接頭辞がオプション値に含められます。 この接頭辞により、マネージド ソリューションのオプション セットや、マネージド ソリューションがインストールされている環境で定義されているオプション セットに、重複したオプション セットが作成される可能性を削減できます。 詳細については、オプション セット オプションのマージ を参照してください。

メッセージ

次の表に、グローバル オプション セットで使用できるメッセージを示します。

Message Web API 操作
CreateOptionSet 自社組織のURI/api/data/v9.2/GlobalOptionSetDefinitions への POST リクエストを使用します。
DeleteOptionSet 自社組織のURI/api/data/v9.2/GlobalOptionSetDefinitions(Name='<name>') への DELETE リクエストを使用します。
RetrieveAllOptionSets 自社組織のURI/api/data/v9.2/GlobalOptionSetDefinitions への GET リクエストを使用します。
RetrieveOptionSet 自社組織のURI/api/data/v9.2/GlobalOptionSetDefinitions(Name='<name>') への GET リクエストを使用します。

次の表に、ローカルおよびグローバル オプション セットで使用できるメッセージを示します。

Message Web API 操作
DeleteOptionValue
グローバル オプション セットから値の 1 つを削除します。
DeleteOptionValue アクション
例: 削除オプション
InsertOptionValue
新しいオプションをグローバル オプション セットに挿入します。
InsertOptionValue アクション
例: オプションの挿入
InsertStatusValue
Status 列で使用しているグローバル オプション セットに新しいオプションを挿入します。
InsertStatusValue アクション
例: ステータス値の挿入
OrderOption
オプション セット内のオプションの相対順序を変更します。
OrderOption アクション
例: オプションの並べ替え
UpdateOptionSet 自社組織の URI /api/data/v9.2/GlobalOptionSetDefinitions(metadataid) への OptionSetMetadataBase EntityType と共に PUT 要求を使用します
OptionSetMetadataBase で定義されたプロパティのみを更新することができます。 これらのプロパティにオプションは含まれていません。 他のアクションを使用して、オプションを変更します。
UpdateOptionValue
オプション セットのオプションを更新します。
UpdateOptionValue アクション
例: オプションを更新する
UpdateStateValue
Status 列で使用しているオプション セットに新しいオプションを挿入します。
UpdateStateValue アクション

使用例

グローバル オプション セットの作成

次の例では、グローバル選択肢の作成に次のプロパティを使用します。

OptionSetMetadata プロパティ Values
Name sample_colors
DisplayName
Description 色の選択肢
OptionSetType Picklist
Options 値: 727000000、ラベル:
値: 727000001、ラベル: 黄色
値: 727000002、ラベル:

次の例では、プロパティを使用してグローバル選択肢を作成します。

グローバル選択肢の URI が応答で返されます。 GlobalOptionSetDefinitions(Name='sample_colors') という名前を使用して、このグローバル選択肢を参照することもできます。

要求:

POST [Organization Uri]/api/data/v9.2/GlobalOptionSetDefinitions
MSCRM.SolutionUniqueName: examplesolution
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 2769

{
  "@odata.type": "Microsoft.Dynamics.CRM.OptionSetMetadata",
  "Options": [
    {
      "Value": 727000000,
      "Label": {
        "@odata.type": "Microsoft.Dynamics.CRM.Label",
        "LocalizedLabels": [
          {
            "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
            "Label": "Red",
            "LanguageCode": 1033,
            "IsManaged": false
          }
        ],
        "UserLocalizedLabel": {
          "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
          "Label": "Red",
          "LanguageCode": 1033,
          "IsManaged": false
        }
      }
    },
    {
      "Value": 727000001,
      "Label": {
        "@odata.type": "Microsoft.Dynamics.CRM.Label",
        "LocalizedLabels": [
          {
            "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
            "Label": "Yellow",
            "LanguageCode": 1033,
            "IsManaged": false
          }
        ],
        "UserLocalizedLabel": {
          "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
          "Label": "Yellow",
          "LanguageCode": 1033,
          "IsManaged": false
        }
      }
    },
    {
      "Value": 727000002,
      "Label": {
        "@odata.type": "Microsoft.Dynamics.CRM.Label",
        "LocalizedLabels": [
          {
            "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
            "Label": "Green",
            "LanguageCode": 1033,
            "IsManaged": false
          }
        ],
        "UserLocalizedLabel": {
          "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
          "Label": "Green",
          "LanguageCode": 1033,
          "IsManaged": false
        }
      }
    }
  ],
  "Description": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Color Choice",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Color Choice",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "DisplayName": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Colors",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Colors",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "Name": "sample_colors",
  "OptionSetType": "Picklist"
}

応答:

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/GlobalOptionSetDefinitions(1d733907-4d05-ee11-8f6e-000d3a993550)

グローバル オプション セット を使用して選択肢列を作成する

次の例は、これらのプロパティを使用してグローバル選択を使用する選択肢列を作成する方法を示しています。

候補リスト属性のプロパティ Values
SchemaName sample_Colors
DisplayName サンプル カラー
Description 色のグローバル候補リスト属性
RequiredLevel None
GlobalOptionSet この単一値のナビゲーション プロパティは、グローバル選択肢への参照のある @odata.bind 構文を使用するように設定されている必要があります。 この例では、キーとして MetadataId を使用していますが、Name のある代替キーを使用することもできます: GlobalOptionSetDefinitions(Name='sample_colors')

次の例では、プロパティを使用してローカル列を作成し、それを sample_bankaccount テーブルに追加します。

この属性の URI が応答で返されます。

要求:

POST [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes
MSCRM.SolutionUniqueName: examplesolution
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 1465

{
  "@odata.type": "Microsoft.Dynamics.CRM.PicklistAttributeMetadata",
  "AttributeType": "Picklist",
  "AttributeTypeName": {
    "Value": "PicklistType"
  },
  "SourceTypeMask": 0,
  "GlobalOptionSet@odata.bind": "/GlobalOptionSetDefinitions(1d733907-4d05-ee11-8f6e-000d3a993550)",
  "Description": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Colors Global Picklist Attribute",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Colors Global Picklist Attribute",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "DisplayName": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Sample Colors",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Sample Colors",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "RequiredLevel": {
    "Value": "None",
    "CanBeChanged": false,
    "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
  },
  "SchemaName": "sample_Colors"
}

応答:

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(25733907-4d05-ee11-8f6e-000d3a993550)

オプションを挿入する

次の例は、InsertOptionValue アクションを使用して、値が 727000005 の新しいオプションとラベル エコー選択肢列を作成するが作成したローカル選択肢列に追加します。

要求:

POST [Organization Uri]/api/data/v9.2/InsertOptionValue
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 612

{
  "AttributeLogicalName": "sample_choice",
  "EntityLogicalName": "sample_bankaccount",
  "Value": 727000005,
  "Label": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Echo",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Echo",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "SolutionUniqueName": "examplesolution"
}

応答:

HTTP/1.1 200 OK
OData-Version: 4.0

{
  "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.InsertOptionValueResponse",
  "NewOptionValue": 727000005
}

更新オプション

個別のオプションを更新するには、UpdateOptionValue アクションを使用する必要があります。 次の例では、ブール値列を作成するのブール値列の例から TrueOption を更新し、True ではなく Up になるようにラベルを変更します。 これは 'ローカル' オプション セット であるため、AttributeLogicalNameEntityLogicalName を使用します。 グローバル オプション セットについては、代わりに OptionSetName パラメーターを使用します。

要求:

POST [Organization Uri]/api/data/v9.2/UpdateOptionValue HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "AttributeLogicalName": "new_boolean",
  "EntityLogicalName": "new_bankaccount",
  "Value": 1,
  "Label": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Up",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Up",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "MergeLabels": true
}

応答:

HTTP/1.1 204 NoContent
OData-Version: 4.0

オプションの並べ替え

次の例に、OrderOption アクションを使用してローカル オプションセットのオプションを並べ替える方法を示します。 Value プロパティには、オプションの値が希望する順番で含まれています。

これをグローバル オプション セットと共に使用するには、EntityLogicalNameAttributeLogicalName ではなく OptionSetName パラメーターを指定します。

SolutionUniqueName パラメーターは、指定されたソリューションの一部として変更を適用します。

要求:

POST [Organization Uri]/api/data/v9.2/OrderOption
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 253

{
  "EntityLogicalName": "sample_bankaccount",
  "AttributeLogicalName": "sample_choice",
  "Values": [
    727000002,
    727000000,
    727000003,
    727000001,
    727000005,
    727000004
  ],
  "SolutionUniqueName": "examplesolution"
}

応答:

HTTP/1.1 204 NoContent
OData-Version: 4.0

オプションを削除する

次の例は、DeleteOptionValue アクションを使用してローカル選択肢列のオプションを削除する方法を示しています。

これをグローバル オプション セットと共に使用するには、EntityLogicalNameAttributeLogicalName ではなく OptionSetName パラメーターを指定します。

SolutionUniqueName パラメーターは、指定されたソリューションの一部として変更を適用します。

要求:

POST [Organization Uri]/api/data/v9.2/DeleteOptionValue
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 116

{
  "AttributeLogicalName": "sample_choice",
  "EntityLogicalName": "sample_bankaccount",
  "Value": 727000004
}

応答:

HTTP/1.1 204 NoContent
OData-Version: 4.0

ステータス値を挿入する

次の例は、InsertStatusValue アクションを使用してステータス列にオプションを追加する方法を示しています。

StateCode パラメーターを使用して、ステータス値がどの statecode オプションに適用されるかを指定します。 SolutionUniqueName パラメーターは、指定されたソリューションの一部として変更を適用します。

InsertStatusValueResponse ComplexType により返される NewOptionValue プロパティには、オプションに割り当てられた値が含まれています。

要求:

POST [Organization Uri]/api/data/v9.2/InsertStatusValue
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 609

{
  "AttributeLogicalName": "statuscode",
  "EntityLogicalName": "sample_bankaccount",
  "Label": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Frozen",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Frozen",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "StateCode": 1,
  "SolutionUniqueName": "examplesolution"
}

応答:

HTTP/1.1 200 OK
OData-Version: 4.0

{
  "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.InsertStatusValueResponse",
  "NewOptionValue": 727000000
}

参照

選択肢のカスタマイズ
グローバルな選択肢の概要を作成および編集
選択肢の作成

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。