OBIEE:如何在保存的过滤器中设置 'is prompted' 值

OBIEE: how to set 'is prompted' values in saved filter

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

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

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

所以,我的问题是:如何生成报告的逻辑 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>
    

我可以使用 generateReportSQLfilterExpressions 标签来创建包含我的值的逻辑 SQL WHERE 子句。如果标签 filter 包含在分析的 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>
    

'my saved filter' 有 'is prompted' 列我想设置为我的值和 运行 分析以获取数据集。但是要怎么做呢?

如果 web 服务在这里没用,可以使用什么?

因为它们通常用于内容方面的完全动态填充(从用户配置文件中提取的实例化变量、从提示中获取的内容等...),您不会在 LSQL 中获取它们。

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

编辑:提出了基线验证工具 (BVT),这就是答案。