Действие InsertOptionValue для локального набора параметров - PullRequest
0 голосов
/ 27 апреля 2019

Контекст

Использование API-интерфейса REST Dynamics 365 Действие InsertOptionValue Я не могу вызвать одно и то же действие в наборе локальных параметров, даже если версия документовна момент написания этой статьи произнесите «Вставка нового значения параметра для глобального или локального набора параметров».Как мне отформатировать синтаксис вызова REST для работы с локальными наборами опций?Моя конечная цель - реализовать это в моем Java-приложении .

REST Call

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

1 Ответ

0 голосов
/ 27 апреля 2019

Понял, проблема в неправильных полях в теле запроса.Этот работает.

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
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...