我正在尝试使用InsertOptionValueRequest向C#中的MS Dynamics CRM选项集添加新值,当我这样做时,某些现有选项集值将被删除。
我使用的代码如下:
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,有人可以为此添加insertoptionvaluerequest标记,因为我认为该标记与此帖子最相关。
答案 0 :(得分:1)
我找到了问题的答案。 MS Dynamics不会删除现有值,而是覆盖现有选项集值上的标签。这肯定是一个错误,因为正在运行的命令是InsertOptionValueRequest,并且有一个单独的UpdateOptionValueReqequest用于更新值。
要解决此问题,请在插入记录时手动设置值,而不是依赖系统为您生成一个:
ovRequest = new InsertOptionValueRequest
{
AttributeLogicalName = strOptionsetName,
EntityLogicalName = strEntityName,
Label = new Label(strLabel, LanguageCode),
Value = MyNewValue
};
_service.Execute(ovRequest);