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
になるようにラベルを変更します。 これは 'ローカル' オプション セット であるため、AttributeLogicalName
と EntityLogicalName
を使用します。 グローバル オプション セットについては、代わりに 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
プロパティには、オプションの値が希望する順番で含まれています。
これをグローバル オプション セットと共に使用するには、EntityLogicalName
と AttributeLogicalName
ではなく 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 アクションを使用してローカル選択肢列のオプションを削除する方法を示しています。
これをグローバル オプション セットと共に使用するには、EntityLogicalName
と AttributeLogicalName
ではなく 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 分かかります。 個人データは収集されません (プライバシー ステートメント)。