我们能否使用查询生成器或Restful API获取Universe连接的详细信息,例如数据库主机名,数据库类型

2020-09-15 01:18发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,我正在尝试从查询生成器中获取Universe连接详细信息,例如服务名称,用户名,类型,但无法从查询生成器中获取,请让我知道从查询生成器中获取此信息的任何建议,或者 宁静的API

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,我正在尝试从查询生成器中获取Universe连接详细信息,例如服务名称,用户名,类型,但无法从查询生成器中获取,请让我知道从查询生成器中获取此信息的任何建议,或者 宁静的API

谢谢

付费偷看设置
发送
10条回答
SKY徐
1楼-- · 2020-09-15 02:19

使用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'

.....

callcenter油条
2楼-- · 2020-09-15 02:20

您还可以从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

hongfeng1314
3楼-- · 2020-09-15 01:59

语义层Java SDK将为您提供所需的信息。 您将无法使用QueryBulder或SL REST SDK获得该级别的详细信息。
https://help.sap.com/viewer/4359a0ef221e4a1098bae432bdd982c1/4.2.6/zh-CN/ec5218116fdb101497906a7cb0e91070.html


Dan

骆驼绵羊
4楼-- · 2020-09-15 01:59

嗨,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

一周热门 更多>