OBIEE:如何在已保存的过滤器

时间:2018-01-17 14:27:27

标签: web-services obiee

我的任务是自动测试OBIEE报告数据。主要步骤是获取报告的逻辑SQL。

我有报告的仪表板。每个报告都附有过滤器(不是内联的)。所以,我想找到一种方法来设置过滤器值并以编程方式运行报告SQL的生成(以便用我的值填充WHERE子句),播放它并检索数据。我尝试了以下方法:

  1. OBIEE WebServices。首先,我使用 generateReportSQL ,然后调用 executeSQLQuery 。这种方法适用于内联过滤器,我设法将它们设置为。但我无法使用已保存的过滤器。如何生成报告,其中为附加的已保存过滤器中的列设置了值?没有文档或互联网上的信息。
  2. 生成仪表板URL并设置所有提示,运行它然后读取使用情况跟踪表以检索SQL查询。但这似乎有点奇怪的方法,我相信必须有一个更简单的方法来完成任务。此外,使用情况跟踪不会立即将有关报告执行的信息放在其数据库中,它会有一些超时。有没有办法避免它?
  3. runcat.sh + nqcmd - 仍然没有找到为保存过滤器设置值的方法。
  4. 所以,我的问题是:如何生成报告的逻辑SQL,并为附加的已保存过滤器设置提示值?

    提前致谢, 约尔

    更新

    一些例子:

    1. 我的使用情况跟踪分析的XML包含以下内容:

        <saw:filter>
       <sawx:expr xsi:type="sawx:logical" op="and">
          <sawx:expr xsi:type="sawx:special" op="prompted">
             <sawx:expr xsi:type="sawx:sqlExpression">"S_NQ_ACCT"."START_DT"</sawx:expr>
          </sawx:expr>
          <sawx:expr xsi:type="sawx:special" op="prompted">
             <sawx:expr xsi:type="sawx:sqlExpression">"S_NQ_ACCT"."USER_NAME"</sawx:expr>
          </sawx:expr>
          <sawx:expr xsi:type="sawx:special" op="prompted">
             <sawx:expr xsi:type="sawx:sqlExpression">"S_NQ_ACCT"."SAW_DASHBOARD_PG"</sawx:expr>
          </sawx:expr>
       </sawx:expr>
      

    2. 我可以使用 generateReportSQL filterExpressions 标记来创建包含WHERE子句中的值的logicalSQL。如果标记过滤器包含在分析的XML中(内联过滤器的情况,如上例所示),则一切正常:

            <v7:generateReportSQL>
               <v7:reportRef>
                  <v7:reportPath>report path</v7:reportPath>
               </v7:reportRef>
               <v7:reportParams>
                  <!--Zero or more repetitions:-->
                  <v7:filterExpressions>            
      <![CDATA[<sawx:expr xsi:type="sawx:string" op="equal" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:saw="com.siebel.analytics.web/report/v1.1" xmlns:sawx="com.siebel.analytics.web/expression/v1.1" subjectArea="Usage Tracking">
      <sawx:expr xsi:type="sawx:sqlExpression">"S_NQ_ACCT"."USER_NAME"</sawx:expr>
      <sawx:expr xsi:type="sawx:string">testuser</sawx:expr></sawx:expr>
      ]]>
      </v7:filterExpressions>
      .............................
               </v7:reportParams>
               <v7:sessionID>...</v7:sessionID>
            </v7:generateReportSQL>
      
      1. 我的测试分析的XML包含以下内容:

          <saw:filter>
         <sawx:expr xsi:type="sawx:savedFilter" path="/shared/myproject/_filters/myroject/my saved filter" name="my saved filter" /></saw:filter>
        
      2. '我已保存的过滤器'已被'提示'列,我想将其设置为我的值并运行分析以获取数据集。但是怎么做呢?

        如果webservices在这里没用,可以使用什么?

1 个答案:

答案 0 :(得分:0)

由于这些内容通常用于内容方面的完全动态填充(从用户配置文件中提取的实例化变量,从提示中获取的内容等等),因此您无法在LSQL中获取它们。

tl; dr - Robin写了一篇关于使用LSQL进行负载测试的bice帖子https://www.rittmanmead.com/blog/2014/03/built-in-obiee-load-testing-with-nqcmd/

编辑:基线验证工具(BVT)被提出并且是答案。