Powerbi 在Power BI服务上使用自定义函数的刷新报告?
我正试图找到一种解决方法,通过Power BI服务使用自定义函数刷新数据集。我的查询如下所示: _op_kiekis的数据源 _eil_sk的数据源 逻辑文件 Q_Sybase_2_Op_Kiekis Q_Sybase_1_Eil_Sk_2 这在Power BI桌面上运行良好。但是,我在Power BI服务上遇到以下错误:Powerbi 在Power BI服务上使用自定义函数的刷新报告?,powerbi,powerquery,powerbi-desktop,m,powerbi-datasource,Powerbi,Powerquery,Powerbi Desktop,M,Powerbi Datasource,我正试图找到一种解决方法,通过Power BI服务使用自定义函数刷新数据集。我的查询如下所示: _op_kiekis的数据源 _eil_sk的数据源 逻辑文件 Q_Sybase_2_Op_Kiekis Q_Sybase_1_Eil_Sk_2 这在Power BI桌面上运行良好。但是,我在Power BI服务上遇到以下错误: 您需要一个SQL Server包装器:PowerBI不能很好地与Sybase配合使用,但您有一个可以完全支持刷新的解决方案,其中Sybase实际上是后端数据存储: 安装SQ
您需要一个SQL Server包装器:PowerBI不能很好地与Sybase配合使用,但您有一个可以完全支持刷新的解决方案,其中Sybase实际上是后端数据存储:
您是否使用网关连接到数据库?如果不是,这可能是为什么它在桌面上工作而不是在服务中的问题。当然,我使用gateway,它认为对数据库的身份验证有问题,就像在桌面版本中,我手动放置凭据一样,但PBI服务无法做到这两个有问题的函数都使用
Loginai_File
引用本地存储在您电脑上的文件。如果您将该步骤替换为静态值,它是否允许您刷新?您的Excel文件位于何处?你的网关有权访问它吗?要为您的网关提供凭据,您可以在pbi服务Stachu的“管理网关”部分输入它们-NO@Nikolaj Klitlund Børty,Localy,gateway有访问权限,auth有问题,因为访问了多个数据库,每个数据库都需要通过网关提供凭据,我无法管理网关,因为我在Loginai_文件中有>100个数据库,哪个数据库具有不同的凭据那么如何为每个数据库放置不同的凭据?@DmitrijHolkin您可以在将连接添加到数据网关时设置连接的凭据。在数据网关上,您只需添加到具有链接服务器的SQL Server的连接。在SQL Server上,无论您在哪里拥有Sybase Server+dbs,都会有几个不同的链接服务器连接。设置数据网关和链接服务器时,两者都是单独的任务,但在这两个任务中,您都需要设置凭据、用户名和密码。这太复杂了,我需要为每个sybase db创建链接服务器,我有100多个
let
Source = Loginai_File,
#"Invoked Custom Function" = Table.AddColumn(Source, "Q_Sybase_2_Op_Kiekis", each Q_Sybase_2_Op_Kiekis([Source], [IP], [PORT], [DB_name]))
in
#"Invoked Custom Function"
let
Source = Loginai_File,
#"Invoked Custom Function" = Table.AddColumn(Source, "Q_Sybase_1_Eil_Sk_2", each Q_Sybase_1_Eil_Sk_2([Source], [IP], [PORT], [DB_name]))
in
#"Invoked Custom Function"
let
Source = Excel.Workbook(File.Contents(PathToLoginai & Loginai_File_Name), null, true),
dbs = Source{[Name="Sheet1"]}[Data],
in
dbs
(Name, strSource, Ip , Port, dBase ) =>
let
Source = Sybase.Database(Ip & ":" & Number.ToText(Port), dBase, [Query="select [_].[Count] from [DBA].[dbs] [_] where [_].[DID_DAT] >= '" & sFilterDate & "' order by [DID_DAT]"])
in
Source
(Name, strSource, Ip , Port, dBase ) =>
let
Source = Sybase.Database(Ip & ":" & Number.ToText(Port), dBase, [Query="select [_].[Count] from [DBA].[dbs2] [_] where [_].[DID_DAT] >= '" & sFilterDate & "' order by [DID_DAT]"])
in
Source