We are trying to copy a BO Query Service from one Universe to another. If you use the BO Query As A Service(QAAS) tool you can do this, but end up basically recreating the query service.
我们正在尝试将BO查询服务从一个Universe复制到另一个Universe。如果您使用BO Query As A Service(QAAS)工具,您可以执行此操作,但最终基本上重新创建查询服务。
It seems like the BusinessObjects.DSWS.* libraries allow you to read and write query services, but those don't appear in the QAAS tool. I think that those queries go into a different Universe than the QAAS tool pings. Perhaps there is a Universe for data and another for Web Service Queries. Monitoring the QAAS tool for HTTP traffic revealed that the BO Web Service used to run queries for the data they contain is also used to manage the Web Service queries.
似乎BusinessObjects.DSWS。*库允许您读取和写入查询服务,但这些不会出现在QAAS工具中。我认为这些查询会进入与QAAS工具ping不同的Universe。也许有一个Universe用于数据,另一个用于Web Service Queries。监视HTTP流量的QAAS工具显示,用于运行查询的BO Web服务也用于管理Web服务查询。
I was able to copy one Query Service into a new one in a new Universe using a Replace() on the XML string in QuerySpec to change the UniverseID. We can basically copy one Query Service to another Universe without manually rebuilding it except for one little thing.
我能够使用QuerySpec中的XML字符串上的Replace()将一个查询服务复制到新Universe中的新服务中以更改UniverseID。我们基本上可以将一个查询服务复制到另一个Universe而无需手动重建它,除了一件小事。
The QAAS tool includes a Publish button. This does something unknown, but important. Perhaps it makes some SOAP, WSDL or config files so that the copied Query Service is public. There doesn't seem to be any HTTP traffic to snoop on when it's doing this. The BusinessObjects.DSWS.* libraries include a Publish feature, but it's not for Query Services. It's for general files like Excel and PDF.
QAAS工具包括“发布”按钮。这有点不为人知,但很重要。也许它会生成一些SOAP,WSDL或配置文件,以便复制的查询服务是公共的。在执行此操作时,似乎没有任何HTTP流量可供窥探。 BusinessObjects.DSWS。*库包含“发布”功能,但不适用于“查询服务”。它适用于Excel和PDF等常规文件。
Right now, we are relegated to using two tools. Does anyone know about how to Publish a BO Query Service programmatically just like the QAAS Tool?
现在,我们被降级为使用两种工具。有没有人知道如何像QAAS工具一样以编程方式发布BO查询服务?
1 个解决方案
#1
0
It's been a while, but there was a hackish way of doing this.
已经有一段时间了,但有一种做法的黑客方式。
You can use a VS tool to generate a csharp class that can call the BO web service. That object can pull the relevant settings in a text format. Then you replace the existing portion of the object IDs in the query service that is the Universe ID with a new Universe ID. That object can then add the new query service.
您可以使用VS工具生成可以调用BO Web服务的csharp类。该对象可以以文本格式提取相关设置。然后,使用新的Universe ID替换作为Universe ID的查询服务中的对象ID的现有部分。然后,该对象可以添加新的查询服务。
This process is extremely quick and afterwords you need to use the QAAS tool to publish the new, copied query service. All the Publish actions available from code seem to publish something else and not query services.
此过程非常快速,您需要使用QAAS工具发布新的复制查询服务。代码中提供的所有发布操作似乎都发布了其他内容,而不是查询服务。
#1
0
It's been a while, but there was a hackish way of doing this.
已经有一段时间了,但有一种做法的黑客方式。
You can use a VS tool to generate a csharp class that can call the BO web service. That object can pull the relevant settings in a text format. Then you replace the existing portion of the object IDs in the query service that is the Universe ID with a new Universe ID. That object can then add the new query service.
您可以使用VS工具生成可以调用BO Web服务的csharp类。该对象可以以文本格式提取相关设置。然后,使用新的Universe ID替换作为Universe ID的查询服务中的对象ID的现有部分。然后,该对象可以添加新的查询服务。
This process is extremely quick and afterwords you need to use the QAAS tool to publish the new, copied query service. All the Publish actions available from code seem to publish something else and not query services.
此过程非常快速,您需要使用QAAS工具发布新的复制查询服务。代码中提供的所有发布操作似乎都发布了其他内容,而不是查询服务。