Oracle Web Services On Demand Troubleshooting Guide > Error Codes: Causes and Solutions >

SBL-DAT-00407


This error code has no error symbol.

Generic Error Message

Method 'CountRecords' of business component 'RecordType' (integration component 'recordtype') returned the following error: "Operation is not allowed on sql object in forward only mode. Please ask your systems administrator to check your application configuration if the problem persists. (SBL-DAT-00407)"

Causes and Solutions

The user tried to query for records and get a record count but cannot use recordcountneeded parameter if the query includes filter criteria for calculated fields. The Web service request is using the QueryPage method to retrieve the record count with the recordcountneeded parameter set to True. The Web service request also uses searchspec or filter criteria on the record type's calculated fields, resulting in matching records.

Error Message

Method 'CountRecords' of business component 'Service Request' (integration component 'Service Request') returned the following error: "Operation is not allowed on sql object in forward only mode. Please ask your systems administrator to check your application configuration if the problem persists. (SBL-DAT-00407)"

Incorrect SOAP Request

The following incorrect SOAP request queries and requests a record count for Service Request records that are associated with a Contact with a name that matches the filter criteria. The ContactFullName field is a calculated field of the Service Request record type.

<?xml version="1.0" encoding="utf-16"?>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

   <soap:Header>

      <wsse:Security>

         <wsse:UsernameToken>

            <wsse:Username>%%%USERNAME%%%</wsse:Username>

            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">%%%PASSWORD%%%</wsse:Password>

         </wsse:UsernameToken>

      </wsse:Security>

   </soap:Header>

   <soap:Body>

      <ServiceRequestQueryPage_Input xmlns="urn:crmondemand/ws/ecbs/servicerequest/">

         <ListOfServiceRequest pagesize="100" recordcountneeded="true">

            <ServiceRequest>

               <Id />

               <ContactFullName>LIKE '*J*'</ContactFullName>

               <AssignmentStatus />

            </ServiceRequest>

         </ListOfServiceRequest>

      </ServiceRequestQueryPage_Input>

   </soap:Body>

</soap:Envelope>

Resolving Error SBL-DAT-00407

A querypage request cannot perform a record count when search criteria or filter criteria exist on a calculated field, and when there are records that match these criteria.

You can resolve the error by doing one of the following:

  • Removing the recordcountneeded parameter
  • Removing the search or filter criteria on the calculated field

NOTE:  Using search or filter criteria on a calculated field can also affect performance.

The client integration can take the set of records returned in the response and filter within the client integration to get the same set of records as the query that returned the error.

Correcting the SOAP Request

To correct the SOAP request, remove the filter criteria LIKE '*J*' for the <ContactFullName> element:

<?xml version="1.0" encoding="utf-16"?>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

   <soap:Header>

      <wsse:Security>

         <wsse:UsernameToken>

            <wsse:Username>%%%USERNAME%%%</wsse:Username>

            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">%%%PASSWORD%%%</wsse:Password>

         </wsse:UsernameToken>

      </wsse:Security>

   </soap:Header>

   <soap:Body>

      <ServiceRequestQueryPage_Input xmlns="urn:crmondemand/ws/ecbs/servicerequest/">

         <ListOfServiceRequest pagesize="100" recordcountneeded="true">

            <ServiceRequest>

               <Id />

               <ContactFullName />

               <AssignmentStatus />

            </ServiceRequest>

         </ListOfServiceRequest>

      </ServiceRequestQueryPage_Input>

   </soap:Body>

</soap:Envelope>

Oracle Web Services On Demand Troubleshooting Guide Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Legal Notices.