Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dynamics crm 如何在Dynamics 365数据库中搜索Power BI_Dynamics Crm_Microsoft Dynamics_Powerbi_Dynamics Crm Online_Powerbi Datasource - Fatal编程技术网

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

Dynamics crm 如何在Dynamics 365数据库中搜索Power BI,dynamics-crm,microsoft-dynamics,powerbi,dynamics-crm-online,powerbi-datasource,Dynamics Crm,Microsoft Dynamics,Powerbi,Dynamics Crm Online,Powerbi Datasource,我在使用Power BI的Dynamics 365数据库中查找内容时遇到问题,当您连接到OrganizationData.svc时,有很多表和子表 例如,我正在使用表“OpportunitySet”,有人添加了一个自定义组合框,我可以得到值“176000004”,但我找不到从中得到文本值的方法 我在“PickListMappingSet”中搜索,但是内容太多了 此外,我所有的机会都有一个团队和团队中的人员,我认为他们与“关系”有关,但我不知道如何在Power BI中获得他们,我需要他们找到一些团

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

例如,我正在使用表“OpportunitySet”,有人添加了一个自定义组合框,我可以得到值“176000004”,但我找不到从中得到文本值的方法

我在“PickListMappingSet”中搜索,但是内容太多了

此外,我所有的机会都有一个团队和团队中的人员,我认为他们与“关系”有关,但我不知道如何在Power BI中获得他们,我需要他们找到一些团队中缺少人员的机会

有没有办法搜索数据库中的任何地方,或者找到每个值存储在其中的位置


基本上,您可以从StringMap实体中提取并查看数据库中的所有optionset(=picklist=combobox)值,这要感谢您的支持。对于在线,这是一个问题

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

您可以要求一些CRM开发人员从CRM customizations获取所有选择列表值/文本,并将其作为源存储在PowerBI数据集中,以便在与主数据集合并后获得所需的结果


编辑:Xrmtoolbox PowerBI optionset assistant将很有帮助。

基本上,您可以从StringMap实体中提取并查看数据库中的所有optionset(=picklist=combobox)值。对于在线,这是一个问题

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

您可以要求一些CRM开发人员从CRM customizations获取所有选择列表值/文本,并将其作为源存储在PowerBI数据集中,以便在与主数据集合并后获得所需的结果


编辑:Xrmtoolbox PowerBI optionset assistant将非常有用。

stringmaps
在api元数据中未作为实体列出。然而
https:///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"
let
DataList=List.Generate(
() => [
SourceURI=”https:///api/data/v9.1/stringmaps"
,Pagecount=0
,Stringmaps={}
,Source=[]
,ErrorTest=try Source=[]
]
,如果[ErrorTest][HasError],则为false,否则为true
,各[
ErrorTest=try Source=Json.Document(Web.Contents([SourceURI]))
,Source=Json.Document(Web.Contents([SourceURI]))
,SourceURI=Record.Field(源“@odata.nextLink”)
,Stringmaps=源[值]
,Pagecount=[Pagecount]+1
]
),
#“转换为表”=表.FromList(DataList,Splitter.SplitByNothing(),null,null,ExtraValues.Error),
#“Expanded Column1”=Table.ExpandRecordColumn(#“已转换为Table”、“Column1”、{“Stringmaps”}、{“Column1.Stringmaps”}),
#“删除的错误”=表.RemoveRors(#“Expanded Column1”,{“Column1.Stringmaps”}),
#“Expanded Column1.Stringmaps”=Table.ExpandListColumn(#“已删除错误”,“Column1.Stringmaps”),
#“删除的空行”=Table.SelectRows(#“Expanded Column1.Stringmaps”,每个都不是List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(#),{“”,null})),
#“Expanded Column1.Stringmaps1”=Table.ExpandRecordColumn(#“删除的空行”、“Column1.Stringmaps”、{“值”、“attributename”、“objecttypecode”、“attributevalue”}、{“值”、“attributename”、“objecttypecode”、“attributevalue”}),
#“排序行”=表.Sort(#“扩展列1.Stringmaps1”、{{“objecttypecode”、Order.升序}、{“attributename”、Order.升序}),
#“分组行”=表.Group(#“排序行”、{“attributename”、“objecttypecode”}、{{“Count”、每个#,类型表[value=text,attributename=text,objecttypecode=text,attributevalue=number]}),
#“分组行1”=表.Group(#“分组行”,{“objecttypecode”},{{“计数”,每个#,类型表[attributename=text,objecttypecode=text,计数=Table]})
在里面
#“分组行1”

stringmaps
未作为实体列在api元数据中。然而
https:///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"
let
DataList=List.Generate(
() => [
SourceURI=”https:///api/data/v9.1/stringmaps"
,Pagecount=0
,Stringmaps={}
,Source=[]
,ErrorTest=try Source=[]
]
,如果[ErrorTest][HasError],则为false,否则为true
,各[
ErrorTest=try Source=Json.Document(Web.Contents([SourceURI]))
,Source=Json.Document(Web.Contents([SourceURI]))
,SourceURI=Record.Field(源“@odata.nextLink”)
,Stringmaps=源[值]
,Pagecount=[Pagecount]+1
]
),
#“转换为表”=表.FromList(DataList,Splitter.SplitByNothing(),null,null,ExtraValues.Error),
#“Expanded Column1”=Table.ExpandRecordColumn(#“已转换为Table”、“Column1”、{“Stringmaps”}、{“Column1.Stringmaps”}),
#“删除的错误”=表.RemoveRors(#“Expanded Column1”,{“Column1.Stringmaps”}),
#“Expanded Column1.Stringmaps”=Table.ExpandListColumn(#“已删除错误”,“Column1.Stringmaps”),
#“删除的空行”=Table.SelectRows(#“Expanded Column1.Stringmaps”,每个都不是List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(#),{“”,null})),
#“Expanded Column1.Stringmaps1”=Table.ExpandRecor