对本地选项集的InsertOptionValue操作

问题描述 投票:0回答:1

上下文

使用Dynamics 365 REST API InsertOptionValue Action 我无法在本地选项集上调用相同的操作,即使本文撰写时文档的版本说“为全局或本地选项集插入新选项值”。我如何格式化我的REST调用语法以使用本地选项集?我的最终目标是在我的Java App中实现这一点。

REST呼叫

POST https://myorg.api.crm.dynamics.com/api/data/v9.0/InsertOptionValue HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json

{
    "OptionSetName": "new_cr965_testcdsentity_new_localoptionsettoform",
    "Value": "100000001",
    "Label": {
        "LocalizedLabels": [
            {
                "Label": "nerd",
                "LanguageCode": 1033,
                "IsManaged": false,
                "MetadataId": "881daca2-5c68-e911-a825-000d3a1d501d",
                "HasChanged": null
            }
        ],
        "UserLocalizedLabel": {
            "Label": "nerd",
            "LanguageCode": 1033,
            "IsManaged": false,
            "MetadataId": "881daca2-5c68-e911-a825-000d3a1d501d",
            "HasChanged": null
        }
    },
    "Description": {
        "LocalizedLabels": [
            {
                "Label": "",
                "LanguageCode": 1033,
                "IsManaged": false,
                "MetadataId": "881daca2-5c68-e911-a825-000d3a1d501d",
                "HasChanged": null
            }
        ],
        "UserLocalizedLabel": {
            "Label": "",
            "LanguageCode": 1033,
            "IsManaged": false,
            "MetadataId": "881daca2-5c68-e911-a825-000d3a1d501d",
            "HasChanged": null
        }
    }
}

错误

{
    "error": {
        "code": "0x80048403",
        "message": "For OptionSet new_cr965_testcdsentity_new_localoptionsettoform: Cannot access directly the option set and option values using option set name because the option set is not Global",
        "innererror": {
            "message": "For OptionSet new_cr965_testcdsentity_new_localoptionsettoform: Cannot access directly the option set and option values using option set name because the option set is not Global",
            "type": "System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]",
            "stacktrace": "   at Microsoft.Crm.Extensibility.OrganizationSdkServiceInternal.Execute(OrganizationRequest request, InvocationContext invocationContext, CallerOriginToken callerOriginToken, WebServiceType serviceType, Boolean checkAdminMode, ExecutionContext executionContext, Dictionary`2 optionalParameters)\r\n   at Microsoft.Crm.Extensibility.OData.CrmODataExecutionContext.Execute(OrganizationRequest request, ExecutionContext executionContext)\r\n   at Microsoft.Crm.Extensibility.OData.CrmODataServiceDataProvider.ExecuteOperation(CrmODataExecutionContext context, EdmOperation edmOperation, Dictionary`2 parameters, Dictionary`2 boundParameters)\r\n   at Microsoft.Crm.Extensibility.OData.ActionController.ProcessOperationRequest(String operationName, Dictionary`2 operationParameters, EntityReference entityReference, String boundEntityName, String boundEntityType)\r\n   at Microsoft.Crm.Extensibility.OData.ActionController.<>c__DisplayClass9_0.<PostUnboundAction>b__0()\r\n   at Microsoft.PowerApps.CoreFramework.ActivityLoggerExtensions.Execute[TResult](ILogger logger, EventId eventId, ActivityType activityType, Func`1 func, IEnumerable`1 additionalCustomProperties)\r\n   at Microsoft.Xrm.Telemetry.XrmTelemetryExtensions.Execute[TResult](ILogger logger, XrmTelemetryActivityType activityType, Func`1 func)\r\n   at lambda_method(Closure , Object , Object[] )\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()"
        }
    }
}
java rest dynamics-crm microsoft-dynamics
1个回答
0
投票

知道了,问题是请求正文中的不正确字段。这个有效。

POST https://myorg.api.crm.dynamics.com/api/data/v9.0/InsertOptionValue HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json

{
    "AttributeLogicalName": "new_localoptionsettoform",
    "EntityLogicalName": "cr965_testcdsentity",
    "Value": "100000002",
    "Label": {
        "LocalizedLabels": [
            {
                "Label": "nerd",
                "LanguageCode": 1033,
                "IsManaged": false,
                "MetadataId": "881daca2-5c68-e911-a825-000d3a1d501d",
                "HasChanged": null
            }
        ],
        "UserLocalizedLabel": {
            "Label": "nerd",
            "LanguageCode": 1033,
            "IsManaged": false,
            "MetadataId": "881daca2-5c68-e911-a825-000d3a1d501d",
            "HasChanged": null
        }
    },
    "Description": {
        "LocalizedLabels": [
            {
                "Label": "",
                "LanguageCode": 1033,
                "IsManaged": false,
                "MetadataId": "881daca2-5c68-e911-a825-000d3a1d501d",
                "HasChanged": null
            }
        ],
        "UserLocalizedLabel": {
            "Label": "",
            "LanguageCode": 1033,
            "IsManaged": false,
            "MetadataId": "881daca2-5c68-e911-a825-000d3a1d501d",
            "HasChanged": null
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.