【问题标题】:How to get Option Set Description field in MSCRM如何在 MSCRM 中获取选项集描述字段
【发布时间】:2017-08-14 09:24:10
【问题描述】:

我试图找出选项集描述在 CRM 数据库中的存储位置。上网查了一下,发现选项集数据是存储在StringMapSQL表中的,但是这个表中没有我想要的描述字段。

有谁知道选项集描述存储在 CRM 的 SQL 数据库中的什么位置?下面是突出显示我正在寻找的字段值的屏幕截图:

【问题讨论】:

    标签: sql-server dynamics-crm-2011 dynamics-crm


    【解决方案1】:

    试试这个:

    SELECT Label FROM [LocalizedLabelView] llv
    join [AttributePicklistValueView] apvv on llv.ObjectId = apvv.AttributePicklistValueId
    join [OptionSetView] osw on apvv.OptionSetId = osw.OptionSetId
    join [AttributeView] aw on osw.OptionSetId = aw.OptionSetId
    where aw.Name = 'fieldname' and llv.ObjectColumnName = 'Description'
    

    这适用于全局和非全局选项集,您只需将实体上的属性名称作为字段名(不是全局选项集的名称)。当然,如果只处理全局选项集,您不需要最后一次连接,只需执行 osw.Name = 'globaloptionsetname'

    【讨论】:

    • 谢谢,这是我想要的查询
    【解决方案2】:

    这似乎有效:

     SELECT DISTINCT l.Label
     FROM MetadataSchema.LocalizedLabel l
     LEFT JOIN MetadataSchema.AttributePicklistValue ap ON l.ObjectId = ap.AttributePicklistValueId
     LEFT JOIN MetadataSchema.OptionSet os ON os.OptionSetId = ap.OptionSetId
     WHERE l.ObjectColumnName = 'Description' AND os.Name = '<OPTIONSET_NAME>' AND ap.Value = <OPTIONSET_VALUE>
    

    上述脚本中有两个参数需要修改:

    • &lt;OPTIONSET_NAME&gt; 必须替换为您的选项集的架构名称,并以实体的架构名称为前缀。例如,如果您的选项集名为 new_businessTypes 并且位于 account 实体上,则 &lt;OPTIONSET_NAME&gt; 将替换为 'account_new_businesstypes'
    • &lt;OPTIONSET_VALUE&gt; 必须替换为您要查找的选项的整数值。在您的示例屏幕截图中,该值为 2。

    【讨论】:

    • 这适用于全局和非全局选项集吗?
    • 感谢您的回答,但我已经尝试过您的查询,但我没有 ObjectColumnName = 'Description' 然后我使用我的 OptionSet_Name 进行过滤,但我认为它不存在,因为您的查询仅有效使用全局选项设置对吗?
    猜你喜欢
    • 2021-11-02
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    相关资源
    最近更新 更多