如何在Dynamics 365数据库中搜索Power BI

时间:2017-04-28 21:09:01

标签: dynamics-crm microsoft-dynamics powerbi dynamics-crm-online powerbi-datasource

我无法在使用Power BI的Dynamics 365数据库中查找内容时,当您连接到OrganizationData.svc时,会有很多表和子表。

例如,我正在使用表格" OpportunitySet",有人添加了自定义组合框,我能够获得价值" 176000004",但是我无法找到从中获取文本值的方法。

我在" PickListMappingSet"中搜索,但是有太多东西。

此外,我所有的机会都有团队和团队成员,我认为他们与" Connections"有联系,但我不知道如何在Power BI中获取它们,我需要他们找到一些在团队中失踪人员的机会。

有没有办法搜索DataBase中的任何位置,或找到每个值存储在其中的位置。

由于

2 个答案:

答案 0 :(得分:0)

基本上对于onpremise,你可以从StringMap实体&查看Database中的所有optionset(= picklist = combobox)值。对于在线而言,这是一个问题。

这是PowerBI查询以及oData端点的已知问题,您无法获取自定义或用户创建的选项列表值。

您可以要求某些CRM开发人员从CRM自定义设置中获取所有选项列表值/文本。在PowerBI数据集中存储为Source,以便在与主数据集合并后获得所需的结果。

编辑:Xrmtoolbox PowerBI选项集助手会很有帮助。

答案 1 :(得分:0)

在API的元数据中,

stringmaps未作为实体列出。尽管您收到分页的响应,但是https://<your_dynamics_url>/api/data/v9.1/stringmaps在Chrome浏览器中对我来说仍然有效,这意味着您可以构建参考查询以在查找选项集甚至状态和状态代码时使用:

let

    DataList = List.Generate(
            () => [
                SourceURI="https://<your_dynamics_url>/api/data/v9.1/stringmaps"
                ,Pagecount=0
                ,Stringmaps = {}
                ,Source = []
                ,ErrorTest = try Source = []
            ]
            ,each if [ErrorTest][HasError] then false else true

            ,each [
                ErrorTest = try Source = Json.Document(Web.Contents([SourceURI]))
                ,Source = Json.Document(Web.Contents([SourceURI]))
                ,SourceURI = Record.Field(Source,"@odata.nextLink")
                ,Stringmaps = Source[value]
                ,Pagecount = [Pagecount] + 1
            ]
        ),
    #"Converted to Table" = Table.FromList(DataList, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"Stringmaps"}, {"Column1.Stringmaps"}),
    #"Removed Errors" = Table.RemoveRowsWithErrors(#"Expanded Column1", {"Column1.Stringmaps"}),
    #"Expanded Column1.Stringmaps" = Table.ExpandListColumn(#"Removed Errors", "Column1.Stringmaps"),
    #"Removed Blank Rows" = Table.SelectRows(#"Expanded Column1.Stringmaps", each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
    #"Expanded Column1.Stringmaps1" = Table.ExpandRecordColumn(#"Removed Blank Rows", "Column1.Stringmaps", {"value", "attributename", "objecttypecode", "attributevalue"}, {"value", "attributename", "objecttypecode", "attributevalue"}),
    #"Sorted Rows" = Table.Sort(#"Expanded Column1.Stringmaps1",{{"objecttypecode", Order.Ascending},{"attributename", Order.Ascending}}),
    #"Grouped Rows" = Table.Group(#"Sorted Rows", {"attributename", "objecttypecode"}, {{"Count", each _, type table [value=text, attributename=text, objecttypecode=text, attributevalue=number]}}),
    #"Grouped Rows1" = Table.Group(#"Grouped Rows", {"objecttypecode"}, {{"Count", each _, type table [attributename=text, objecttypecode=text, Count=table]}})
in
    #"Grouped Rows1"