2020-09-15 01:18发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,我正在尝试从查询生成器中获取Universe连接详细信息,例如服务名称,用户名,类型,但无法从查询生成器中获取,请让我知道从查询生成器中获取此信息的任何建议,或者 宁静的API
谢谢
使用RESTful,您只会获得连接列表和一些连接详细信息
...
连接列表:
http://<服务器>:6405/biprws/raylight/v1/连接
{"连接": {"连接":[ {" @type":" Olap", " id":8806, " cuid":" AbOVtAYfuAFDsprk3AuVAw8", " name":" ABAP_BW_NPL", " folderId":584 }, {...}, {...}, {" @type":"关系", " id":5644, " cuid":" AQoPFEYGN_hJucYDziTXhiI", " name":" fashion-webi", " folderId":584 }, {...}, {...}, {...} ], } }
.......
连接详细信息:(仅数据库和网络层,.....)
http://<服务器>:6405/biprws/raylight/v1/connections/5644
{"连接": {" @type":"关系", " id":5644, " cuid":" AQoPFEYGN_hJucYDziTXhiI", " name":" fashion-webi", " folderId":584, " path":"连接", "数据库":" MS Access 2007", " networkLayer":" ODBC" } }
......
出于安全原因,数据库服务名称和用户名不可读形式
您可以在" SI_CONNECTION_PARAMSTRING和SI_CONNECTION_CONNECTSTRING"中以加密形式查看它
其他信息的可读性如:"连接数据库"和"连接客户端参数",....... SI_CONNECTION_DATABASE,SI_CONNECTION_CLIENTPARAMS
.....
从CI_APPOBJECTS中选择*,其中SI_ID ='5644'
您还可以从QueryBuilder获取信息-但是,每个Universe都需要两个查询:一个获取连接信息,另一个获取每个Universe。 使用连接。 我不能完全确定RESTful Web服务中是否提供了连接信息,因为该信息仅提供基本信息,而没有获取所需信息所需的属性。
在要获取此信息的Java代码中,我首先获取有关连接的信息,然后获取有关使用该连接的Universe的信息。 这样,我不必多次查询特定的连接。 这是我用来获取连接信息的查询:
query://{从CI_APPOBJECTS中选择*,其中SI_KIND位于('CCIS.DataConnection','CommonConnection'}"
CCIS.DataConnections是常规Universe连接,而CommonConnections是OLAP连接。
连接具有您感兴趣的几个属性:
1。 " SI_CONNUNIVERSE"是一个属性包,其中包含使用该连接的Universe的SI_ID值。 使用此属性包的" SI_TOTAL"值来确定需要获取多少Universe的信息。
2。 " SI_CONNECTION_DATABASE"告诉您要连接的数据库类型。
3。 " SI_CONNECTION_NETWORKLAYER"会告诉您这是哪种连接类型,例如 ODBC,OLEDB等。
不幸的是,有关连接链接到哪个服务器和数据库的信息是加密的,我还没有找到一种对其进行解密的方法。
-Dell
语义层Java SDK将为您提供所需的信息。 您将无法使用QueryBulder或SL REST SDK获得该级别的详细信息。 https://help.sap.com/viewer/4359a0ef221e4a1098bae432bdd982c1/4.2.6/zh-CN/ec5218116fdb101497906a7cb0e91070.html
Dan
嗨,Dan,谢谢您的信息,我们能够设置SL Java SDK并尝试使用以下方法获取连接信息(数据源名称,用户名) 查询下方
SlContext context = SlContext.create();
IEnterpriseSession enterpriseSession = CrystalEnterprise.getSessionMgr()。logon(" USERID"," PW","服务器名称"," AUT MODE"); context.getService(CmsSessionService.class).setSession(enterpriseSession);
1st
CmsResourceService cmsService = context.getService(CmsResourceService.class);
List connections = cmsService.getUniverseConnections("/img/Universes/FOLDER NAME/UNIVERSE NAME.unx"); System.out.println(connections);
第二个
DatabaseConnection connx = cmsService.loadConnection("/img/Connections/FOLDER NAME/CONNECTION NAME"); System.out.println(connx.getParameter(" DATASOURCE")。getValue());
context.close();
enterpriseSession.logoff();
我们能够使用查询的第一部分来获取连接名称,同时运行查询的第二部分来获取数据源信息,我们会遇到错误。 任何建议都会有所帮助。
预先感谢
致谢
Vedeeswar
最多设置5个标签!
使用RESTful,您只会获得连接列表和一些连接详细信息
...
连接列表:
http://<服务器>:6405/biprws/raylight/v1/连接
.......
连接详细信息:(仅数据库和网络层,.....)
http://<服务器>:6405/biprws/raylight/v1/connections/5644
.......
......
出于安全原因,数据库服务名称和用户名不可读形式
您可以在" SI_CONNECTION_PARAMSTRING和SI_CONNECTION_CONNECTSTRING"中以加密形式查看它
其他信息的可读性如:"连接数据库"和"连接客户端参数",....... SI_CONNECTION_DATABASE,SI_CONNECTION_CLIENTPARAMS
.....
.....
从CI_APPOBJECTS中选择*,其中SI_ID ='5644'
.....
您还可以从QueryBuilder获取信息-但是,每个Universe都需要两个查询:一个获取连接信息,另一个获取每个Universe。 使用连接。 我不能完全确定RESTful Web服务中是否提供了连接信息,因为该信息仅提供基本信息,而没有获取所需信息所需的属性。
在要获取此信息的Java代码中,我首先获取有关连接的信息,然后获取有关使用该连接的Universe的信息。 这样,我不必多次查询特定的连接。 这是我用来获取连接信息的查询:
query://{从CI_APPOBJECTS中选择*,其中SI_KIND位于('CCIS.DataConnection','CommonConnection'}"
CCIS.DataConnections是常规Universe连接,而CommonConnections是OLAP连接。
连接具有您感兴趣的几个属性:
1。 " SI_CONNUNIVERSE"是一个属性包,其中包含使用该连接的Universe的SI_ID值。 使用此属性包的" SI_TOTAL"值来确定需要获取多少Universe的信息。
2。 " SI_CONNECTION_DATABASE"告诉您要连接的数据库类型。
3。 " SI_CONNECTION_NETWORKLAYER"会告诉您这是哪种连接类型,例如 ODBC,OLEDB等。
不幸的是,有关连接链接到哪个服务器和数据库的信息是加密的,我还没有找到一种对其进行解密的方法。
-Dell
语义层Java SDK将为您提供所需的信息。 您将无法使用QueryBulder或SL REST SDK获得该级别的详细信息。
https://help.sap.com/viewer/4359a0ef221e4a1098bae432bdd982c1/4.2.6/zh-CN/ec5218116fdb101497906a7cb0e91070.html
Dan
嗨,Dan,谢谢您的信息,我们能够设置SL Java SDK并尝试使用以下方法获取连接信息(数据源名称,用户名) 查询下方
SlContext context = SlContext.create();
IEnterpriseSession enterpriseSession = CrystalEnterprise.getSessionMgr()。logon(" USERID"," PW","服务器名称"," AUT MODE"); context.getService(CmsSessionService.class).setSession(enterpriseSession);
1st
CmsResourceService cmsService = context.getService(CmsResourceService.class);
List connections = cmsService.getUniverseConnections("/img/Universes/FOLDER NAME/UNIVERSE NAME.unx"); System.out.println(connections);
第二个
DatabaseConnection connx = cmsService.loadConnection("/img/Connections/FOLDER NAME/CONNECTION NAME"); System.out.println(connx.getParameter(" DATASOURCE")。getValue());
context.close();
enterpriseSession.logoff();
我们能够使用查询的第一部分来获取连接名称,同时运行查询的第二部分来获取数据源信息,我们会遇到错误。 任何建议都会有所帮助。
预先感谢
致谢
Vedeeswar
一周热门 更多>