CRM2011 - Почему удаляются существующие значения, когда я добавляю новое значение набора параметров с помощью InsertOptionValueRequest - PullRequest
1 голос
/ 11 января 2012

Я пытаюсь добавить новые значения в параметр MS Dynamics CRM, установленный в C #, с помощью InsertOptionValueRequest, и при этом некоторые из существующих значений набора параметров удаляются.

Используемый мной кодследующим образом:

    ovRequest = new InsertOptionValueRequest
    {
        AttributeLogicalName = strOptionsetName,
        EntityLogicalName = strEntityName,
        Label = new Label(strLabel, LanguageCode)
    };
    _service.Execute(ovRequest);

Затем я публикую сущность с:

    pxReq1 = new PublishXmlRequest { ParameterXml = String.Format("<importexportxml><entities><entity>{0}</entity></entities></importexportxml>", strEntityName) };
    ospService.Execute(pxReq1);

Я обнаружил, что это происходит как с локальными наборами параметров, так и с глобальными наборами параметров, и не вижу никакого шаблона взначение удаляется.Я делаю что-то не так или это ошибка в SDK?

PS, кто-то может добавить к этому тег вставки значения, потому что я думаю, что этот тег будет наиболее релевантным для этого поста.

1 Ответ

1 голос
/ 07 марта 2012

Я нашел ответ на свой вопрос.MS Dynamics не удаляет существующие значения, а перезаписывает метку существующих значений набора параметров.Это определенно ошибка, так как выполняемая команда является InsertOptionValueRequest и существует отдельный UpdateOptionValueReqequest для обновления значений.

Чтобы обойти это, вручную установите значение при вставке записи вместо того, чтобы полагаться на систему для ее создания.для вас:

ovRequest = new InsertOptionValueRequest
{
    AttributeLogicalName = strOptionsetName,
    EntityLogicalName = strEntityName,
    Label = new Label(strLabel, LanguageCode),
    Value = MyNewValue
};
_service.Execute(ovRequest);
...