列出属于BO服务器的服务

2020-09-19 08:01发布

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

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


我想列出属于BO Server的服务,与从CMC中的"编辑公共服务"中看到的列表相同。

例如,属于node.Analysis服务器的服务是:
BEx Web应用程序服务
多维分析服务
TraceLog服务

我使用SELECT列出了服务器,但是我还需要每个服务器托管的服务列表:

从CI_SYSTEMOBJECTS的SI_KIND ='SERVER'处选择SI_NAME,SI_KIND,SI_SERVER_IS_ALIVE,SI_DISABLED,SI_SERVER_KIND,SI_FRIENDLY_NAME,SI_EXPECTED_RUN_STATE,

我正在使用Java SDK和"查询"构建器。

提前谢谢。

Eusebio Martinez

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

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


我想列出属于BO Server的服务,与从CMC中的"编辑公共服务"中看到的列表相同。

例如,属于node.Analysis服务器的服务是:
BEx Web应用程序服务
多维分析服务
TraceLog服务

我使用SELECT列出了服务器,但是我还需要每个服务器托管的服务列表:

从CI_SYSTEMOBJECTS的SI_KIND ='SERVER'处选择SI_NAME,SI_KIND,SI_SERVER_IS_ALIVE,SI_DISABLED,SI_SERVER_KIND,SI_FRIENDLY_NAME,SI_EXPECTED_RUN_STATE,

我正在使用Java SDK和"查询"构建器。

提前谢谢。

Eusebio Martinez

付费偷看设置
发送
6条回答
宇峰Kouji
1楼 · 2020-09-19 08:59.采纳回答

以下示例检索CMS中每个服务的描述。

字符串getServices(IEnterpriseSession enterpriseSession)抛出SDKException
 {
   IInfoStore infostore =(IInfoStore)enterpriseSession.getService(" InfoStore");
   字符串servicesQuery ="从CI_SYSTEMOBJECTS中选择SI_ID,SI_NAME,SI_CUID,SI_ML_DESCRIPTION,其中SI_KIND ="服务"且SI_PARENT_FOLDER = 52";
   IInfoObjects服务=(IInfoObjects)infostore.query(servicesQuery);

   字符串resultString ="";
   迭代器= services.iterator();
   而(it.hasNext())
   {
     IService服务=(IService)it.next();
     resultString + =" 服务描述:" + service.getDescription(Locale.ENGLISH)+"-";
     resultString + ="  CUID:" + service.getCUID()+" 
"; } 返回resultString; }
亦是此间程序员
2楼-- · 2020-09-19 08:41

此方法将获取所有服务器列表,并循环该列表以获取每个服务器的Matrix并将所有矩阵附加到html。

请将返回的数据复制到.html文件并打开。

字符串getServersServices(IEnterpriseSession enterpriseSession)抛出SDKException

 {

 IInfoStore infostore =(IInfoStore)enterpriseSession.getService(" InfoStore");

 字符串serverQuery =" SELECT * FROM CI_SYSTEMOBJECTS WHERE SI_KIND ='SERVER'";

 IInfoObjects服务器=(IInfoObjects)infostore.query(serverQuery);

 迭代器= servers.iterator();

 String AllServices ="  ";

 而(it.hasNext())

 {

 IServer服务器=(IServer)it.next();

 int serverID = server.getID();

 AllServices + = getServerMetrics(enterpriseSession,serverID);

//对于服务,请使用getServices(enterpriseSession);

 }

 AllServices + ="  ";

 返回AllServices;

 }

 } 
jovirus
3楼-- · 2020-09-19 08:42

要获取特定服务器的服务器矩阵:

字符串getServerMetrics(IEnterpriseSession enterpriseSession,int serverID)抛出SDKException
 {
 IInfoStore infostore =(IInfoStore)enterpriseSession.getService(" InfoStore");

 字符串serverQuery ="从CI_SYSTEMOBJECTS中选择SI_METRICS,其中SI_ID =" + serverID;

 IServer服务器=(IServer)infostore.query(serverQuery).get(0);



 字符串metricDescriptionsQuery ="从CI_SYSTEMOBJECTS中选择SI_ID,SI_METRIC_DESCRIPTIONS,SI_KIND ='MetricDescriptions'";

 IMetricDescriptions metricDescriptions =(IMetricDescriptions)infostore.query(metricDescriptionsQuery).get(0);




 IServerMetrics serverMetrics = server.getMetrics();




 设置serviceNames = serverMetrics.getServiceInterfaceNames();

 迭代器serviceNamesIter = serviceNames.iterator();

 字符串resultString ="";




 while(serviceNamesIter.hasNext())

 {

 字符串serviceName =(String)serviceNamesIter.next();

 IMetrics serviceMetrics = serverMetrics.getMetrics(serviceName);




 resultString + =" 
" + serviceName +"指标
\ n " +" \ n"; 迭代器serviceMetricsIter = serviceMetrics.iterator(); while(serviceMetricsIter.hasNext()) { IMetric指标=(IMetric)serviceMetricsIter.next(); 字符串metricName = metric.getName(); IMLDescriptions说明= metricDescriptions.getMetricDescriptions(serviceName); IPropertyRenderTemplate propertyRenderTemplate = descriptions.getPropertyRenderTemplate(metricName); 字符串localizedMetricName = propertyRenderTemplate.getLabel(Locale.ENGLISH); resultString + =" \ n"; } resultString + ="
名称
" + localizedMetricName +" " + metric.getValue()+"
"; } 返回resultString; }
吹牛啤
5楼-- · 2020-09-19 09:02

嗨,

您需要查询BO服务器以获取所有属性。将IInfoObject作为IServer进行广播。

然后遍历IServer对象的getHostedServices()方法返回的托管服务列表。

您还可以使用专用的SAP BO管理插件,使其类似于

DafaDDDa
6楼-- · 2020-09-19 09:04
# p#

您是否找到了在查询生成器中执行此操作的解决方案?

一周热门 更多>