Skip to Content
avatar image
Former Member

Problem updating data provider query specification

Hello,

We are using the PUT request /biprws/raylight/v1/documents/{docID}/dataproviders/{dpID}/specification to update a query specification.

This query specification contains a filter in the condition portion which is NOT modified between the GET and the PUT, but returned precisely in the same place with the same definition:

<children xsi:type="queryspec:ConditionDataNode" logicalOperator="Null">
     <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="_aP_W4AZZEeONKPO5vPjmZz" itemName="C Inscrit/Non inscrit" comparisonOperator="Equal">
          <operands xsi:type="queryspec:ConstantOperand">
               <members xsi:type="parameter:FlatValue">
                    <captionField value="1" type="Double"/>
               </members>
          </operands>
     </condition>
</children>
<br>

However, when we send this back in the PUT, it provokes an error 400 :

BO REST API error received : Argument non autorisé ("A filter contains a wrong value. You cannot run this query.")

When the filter is removed from the PUT, the error goes away.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • avatar image
    Former Member
    Jan 25, 2017 at 11:48 AM

    Hi,

    Could you please confirm if the filter causing the issue is based on the result of another query in the Webi report?

    Regards,
    Amine.

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Hi Amine,

      The filter is based on a constant, and not on the result of another query in the WebI report.

      Regards,

      Emily

  • Jan 26, 2017 at 12:01 AM

    Hi Emily,

    Can you enable the Stack Trace on the WACS server and get the full stack in the erroneous response and post it here? It may help narrow down where the issue is.

    Dan

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Jan 26, 2017 at 07:58 AM

    Hi Dan,

    Here is the full stack trace:

    ErrorCode: IES 00007
    StackTrace: 
    *** com.businessobjects.dsl.services.query.impl.QueryServiceImpl.getQueryExecutionPlan(QueryServiceImpl.java:274)
    
    A filter contains a wrong value. You cannot run this query. (IES 00007)
    
    *** com.businessobjects.semanticlayer.qt.internal.QTExceptionFactory.convertInternalException(QTExceptionFactory.java:12)
    
    
    A filter contains a wrong value. You cannot run this query. (IES 00007)
    
    *** com.businessobjects.semanticlayer.qt.internal.QTExceptionFactory.createInternalFromErrorId(QTExceptionFactory.java:16)
    
    
    A filter contains a wrong value. You cannot run this query. (IES 00007)
    
    com.businessobjects.dsl.services.query.QueryServiceException: A filter contains a wrong value. You cannot run this query. (IES 00007)
    
    
    	at com.businessobjects.dsl.services.query.impl.QueryServiceImpl.getQueryExecutionPlan(QueryServiceImpl.java:274)
    	at com.sap.sl.proxyconsumption.services.queryservice.QueryServiceImpl.generateExecutionPlan(QueryServiceImpl.java:203)
    	at com.sap.sl.proxyconsumption.services.queryservice.QueryServiceImpl.generateExecutionPlan(QueryServiceImpl.java:151)
    	at com.sap.sl.proxyconsumption.protobuf.rpc.QueryRpc$query.callMethod(QueryRpc.java:850)
    	at com.sap.sl.proxyconsumption.services.server.DSLBridge.callService(DSLBridge.java:251)
    	at com.sap.sl.proxyconsumption.services.server.DSLBridge.doIt(DSLBridge.java:167)
    	at com.businessobjects.cdz_ext.slproxybridge.corba.ServerServant.doIt(ServerServant.java:123)
    	at sun.reflect.GeneratedMethodAccessor238.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:497)
    	at com.businessobjects.framework.servers.platform.adapters.ebus.orb.CommonTransportInterceptor.invokeHelper(CommonTransportInterceptor.java:116)
    	at com.businessobjects.framework.servers.platform.adapters.ebus.orb.CommonTransportInterceptor.invoke(CommonTransportInterceptor.java:89)
    	at com.businessobjects.framework.servers.common.proxy.cglib.MethodInterceptorChain.intercept(MethodInterceptorChain.java:136)
    	at com.crystaldecisions.enterprise.ocaframework.idl.OCA.OCAcdz.slproxybridge.serverPOA$$EnhancerByCGLIB$$f41c5110.doIt(<generated>)
    	at com.crystaldecisions.enterprise.ocaframework.idl.OCA.OCAcdz.slproxybridge.serverPOA._OB_op_doIt(serverPOA.java:107)
    	at com.crystaldecisions.enterprise.ocaframework.idl.OCA.OCAcdz.slproxybridge.serverPOA._invoke(serverPOA.java:83)
    	at com.crystaldecisions.thirdparty.com.ooc.OBPortableServer.ServantDispatcher.dispatch(ServantDispatcher.java:234)
    	at com.crystaldecisions.thirdparty.com.ooc.OBPortableServer.POA_impl._do_OB_dispatch(POA_impl.java:1980)
    	at com.crystaldecisions.thirdparty.com.ooc.OBPortableServer.POA_impl._OB_dispatch(POA_impl.java:1916)
    	at com.crystaldecisions.thirdparty.com.ooc.OB.DispatchRequest_impl.invoke(DispatchRequest_impl.java:122)
    	at com.businessobjects.framework.servers.platform.adapters.ebus.orb.ThreadPoolDispatchStrategy$Dispatcher.run(ThreadPoolDispatchStrategy.java:271)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at java.lang.Thread.run(Thread.java:812)
    
    Caused by: com.businessobjects.semanticlayer.qt.QTException: A filter contains a wrong value. You cannot run this query. (IES 00007)
    	at com.businessobjects.semanticlayer.qt.internal.QTExceptionFactory.convertInternalException(QTExceptionFactory.java:12)
    	at com.businessobjects.semanticlayer.qt.internal.QueryGenerationServiceImpl.generateQueryExecutionPlan(QueryGenerationServiceImpl.java:623)
    	at com.businessobjects.semanticlayer.qt.internal.QueryGenerationServiceImpl.generateQueryExecutionPlan(QueryGenerationServiceImpl.java:401)
    	at com.businessobjects.dsl.services.query.impl.QueryServiceImpl.getQueryExecutionPlan(QueryServiceImpl.java:271)
    	... 25 more
    
    
    Caused by: com.businessobjects.semanticlayer.qt.internal.QTInternalException: A filter contains a wrong value. You cannot run this query. (IES 00007)
    	at com.businessobjects.semanticlayer.qt.internal.QTExceptionFactory.createInternalFromErrorId(QTExceptionFactory.java:16)
    	at com.businessobjects.semanticlayer.qt.sql.internal.SQLSelectGenerator.buildConstantOperand(SQLSelectGenerator.java:2805)
    	at com.businessobjects.semanticlayer.qt.sql.internal.SQLSelectGenerator.buildOperand(SQLSelectGenerator.java:2479)
    	at com.businessobjects.semanticlayer.qt.sql.internal.SQLSelectGenerator.buildOneCondition(SQLSelectGenerator.java:2103)
    	at com.businessobjects.semanticlayer.qt.sql.internal.SQLSelectGenerator.writeConditionsTree(SQLSelectGenerator.java:1812)
    	at com.businessobjects.semanticlayer.qt.sql.internal.SQLSelectGenerator.writeConditionsTree(SQLSelectGenerator.java:1851)
    	at com.businessobjects.semanticlayer.qt.sql.internal.SQLSelectGenerator.buildRequestWhereConditions(SQLSelectGenerator.java:1802)
    	at com.businessobjects.semanticlayer.qt.sql.internal.SQLSelectGenerator.buildWherePart(SQLSelectGenerator.java:1583)
    	at com.businessobjects.semanticlayer.qt.sql.internal.SQLSelectGenerator.generateSelectClauses(SQLSelectGenerator.java:281)
    	at com.businessobjects.semanticlayer.qt.sql.internal.SQLQueryTreeNode.generateDataSourceScript(SQLQueryTreeNode.java:340)
    	at com.businessobjects.semanticlayer.qt.internal.QueryTreeNode.generateDataSourceScripts(QueryTreeNode.java:504)
    	at com.businessobjects.semanticlayer.qt.sql.internal.SQLQueryGenerator.generateDataSourceScript(SQLQueryGenerator.java:1121)
    	at com.businessobjects.semanticlayer.qt.sql.internal.SQLQueryGenerator.run(SQLQueryGenerator.java:405)
    	at com.businessobjects.semanticlayer.qt.internal.QueryGenerationServiceImpl.generateQueryExecutionPlan(QueryGenerationServiceImpl.java:610)
    
    Add comment
    10|10000 characters needed characters exceeded