Search This Blog

SBL-DAT-00215: This operation is not allowed when there are no records displayed. Please execute a query that returns at least one record or add a new

Applies to:

Siebel Tools - Version: 7.7.2 [18325] to 8.1.1 [21112] - Release: V7 to V8

Information in this document applies to any platform.
Error Message Area:Data Manager - DAT
Version:Siebel 7.5.3

Purpose

This document is intended to provide cause and corrective action information about Siebel Error Message SBL-DAT-00215: This operation is not allowed when there are no records displayed. Please execute a query that returns at least one record or add a new record.

Scope

This document is informational and intended for any user.

SBL-DAT-00215: This operation is not allowed when there are no records displayed. Please execute a query that returns at least one record or add a new record.

Explanation

1. A particular operation, usually an update, has failed because there are no records available in the current query. Either the query needs to be changed to ensure it returns records, or the operation should be prevented if the query does not return records. The operation and its preceding query may have been initiated through any of the following: user actions directly in the UI, Enterprise Integration Manager (EIM), eBusiness Application Integration (EAI), business services or other scripting, workflow processes, object interfaces such as COM or CORBA, or Data Quality activities.

2. A query may be returning no records due to incorrect configuration in Siebel Tools objects, workflow process, scripting, or a business service.

3. If the operation is triggered by an automated action such as a script, there should be a check to ensure there are records in the current query and prevent the operation if no records are present.

4. If the error occurs on a copied buscomp or applet which uses a special class, there may be specialized functionality which does not work properly on the copied object. For example, there may be user properties referencing the original buscomp name.

5. The error may occur when importing workflow processes, due to one or both of the following:
(a) An issue with the Front Office Workflow definition in Siebel Tools
(b) Multiple exception connectors have been defined with the same name

6. The error may occur when updating baseline data in Sales Volume Planning if the Populate Locks action has not been run on the Sales Volume Planning Administration view.

Corrective Action

1. Use SQL logging to identify the query run and operation attempted. The SQL logging method will differ depending upon which action is triggering this error. If possible, use additional logging to determine the buscomp upon which the query and attempted operation were run.

2. In Siebel Tools, look up the buscomp against which the query ran. Check the search specification and view mode properties on the buscomp, applet, and view. If any joins are defined on the buscomp, make sure the Outer Join Flag is appropriately set. If the query was run by a script, make sure you have used SetViewMode and SetSearchSpec or SetSearchExpr appropriately. If the query is run using a Siebel Operation in a workflow process, check the search specification defined in the Workflow Process Designer.

3. If the query and operation are performed from a custom script or business service, make sure there is validation in the script to ensure that records were returned by the query before attempting the operation.

4. If the error occurs on a copied object using a special class, check for special user properties such as On Field Update Invoke which may be automatically trying to invoke a specialized method. Avoid copying specialized objects, as noted in Siebel Bookshelf version 7.7 > Configuring Siebel eBusiness Applications > Overview of Configuring Siebel Applications > About Configuring Siebel Applications > About Copying Objects.

5. If the error occurs when importing workflow processes:
(a) Follow the steps documented in Alert 594 on SupportWeb.
(b) Check the workflow processes you are attempting to import to ensure they do not have multiple exception connectors defined with the same name.

6. If the error occurs when updating baseline data in Sales Volume Planning, review FAQ 2071 on SupportWeb and ensure that the Populate Locks action has been run.


Applies to:

Error Message Area:Data Manager - DAT
Version:Siebel 7.7

Purpose

This document is intended to provide cause and corrective action information about Siebel Error Message SBL-DAT-00215: This operation is not allowed when there are no records displayed. Please execute a query that returns at least one record or add a new record.

Scope

This document is informational and intended for any user.

SBL-DAT-00215: This operation is not allowed when there are no records displayed. Please execute a query that returns at least one record or add a new record.

Explanation

1. A particular operation, usually an update, has failed because there are no records available in the current query. Either the query needs to be changed to ensure it returns records, or the operation should be prevented if the query does not return records. The operation and its preceding query may have been initiated through any of the following: user actions directly in the UI, Enterprise Integration Manager (EIM), eBusiness Application Integration (EAI), business services or other scripting, workflow processes, object interfaces such as COM or CORBA, or Data Quality activities.

2. A query may be returning no records due to incorrect configuration in Siebel Tools objects, workflow process, scripting, or a business service.

3. If the operation is triggered by an automated action such as a script, there should be a check to ensure there are records in the current query and prevent the operation if no records are present.

4. If the error occurs on a copied buscomp or applet which uses a special class, there may be specialized functionality which does not work properly on the copied object. For example, there may be user properties referencing the original buscomp name.

5. The error may occur when importing workflow processes, due to one or both of the following:
(a) An issue with the Front Office Workflow definition in Siebel Tools
(b) Multiple exception connectors have been defined with the same name

6. The error may occur when updating baseline data in Sales Volume Planning if the Populate Locks action has not been run on the Sales Volume Planning Administration view.

Corrective Action

1. Use SQL logging to identify the query run and operation attempted. The SQL logging method will differ depending upon which action is triggering this error. If possible, use additional logging to determine the buscomp upon which the query and attempted operation were run.

2. In Siebel Tools, look up the buscomp against which the query ran. Check the search specification and view mode properties on the buscomp, applet, and view. If any joins are defined on the buscomp, make sure the Outer Join Flag is appropriately set. If the query was run by a script, make sure you have used SetViewMode and SetSearchSpec or SetSearchExpr appropriately. If the query is run using a Siebel Operation in a workflow process, check the search specification defined in the Workflow Process Designer.

3. If the query and operation are performed from a custom script or business service, make sure there is validation in the script to ensure that records were returned by the query before attempting the operation.

4. If the error occurs on a copied object using a special class, check for special user properties such as On Field Update Invoke which may be automatically trying to invoke a specialized method. Avoid copying specialized objects, as noted in Siebel Bookshelf version 7.7 > Configuring Siebel eBusiness Applications > Overview of Configuring Siebel Applications > About Configuring Siebel Applications > About Copying Objects.

5. If the error occurs when importing workflow processes:
(a) Follow the steps documented in Alert 594 on SupportWeb.
(b) Check the workflow processes you are attempting to import to ensure they do not have multiple exception connectors defined with the same name.

6. If the error occurs when updating baseline data in Sales Volume Planning, review FAQ 2071 on SupportWeb and ensure that the Populate Locks action has been run.


Applies to:

Siebel CRM - Version: 8.0 SIA [20405] - Release: V8
Information in this document applies to any platform.

Symptoms

A Siebel error occurs in the following:

Navigation: Site Map -> Events -> Event -> Drilldown on an Event -> Resources -> Staff view

When a new Staff record is deleted or the Staff record is updated,  the following errors occur:

Error SBL-DAT-00215 is displayed when you first step off the deleted record, followed by SBL-DAT-00393 when you continue to step between staff records.

1) SBL-DAT-00215: This operation is not allowed when there are no records displayed. Please execute a query that returns at least one record or add a new record.

2) SBL-DAT-00393: An end of file error has occurred. Please continue or ask your systems administrator to check your application configuration if the problem persists.

Cause




Existing Change Request  Bug 12-1RRBFQ9  addresses this behavior.

Solution

Workaround:

The displayed error messages are confusing: the user thinks the record cannot be deleted. Yet, the Staff record is deleted once you navigate from the applet.

The user can ignore the error messages.

Solution: 

To eliminate the misleading error messages, download the corresponding patches for the appropriate environments:

1) for 8.0.0.4 [20417] install QF0415 patch SBA: 8284421

2) for 8.0.0.5 [20420] install QF0567 patch SBA: 8311104

3) for 8.1.1 [21112] install QF0054 patch SBA: 8931893

4) Fixed in 8.0.0.7 Fix Pack [20425].




References

BUG:12-1RRBFQ9 - A SIEBEL ERROR OCCURS IN THE EVENTS -> RESOURCES -> STAFF VIEW, WHEN A NEW STAFF RECORD IS DELETED O

Applies to:

Siebel Energy Sales - Version: 7.8.2.3 SIA [19221] - Release: V7

Information in this document applies to any platform.

Symptoms


The following are observed in the WfProcMgr log file when the custom workflow process "CNE Deal Manager - Create Contract - Quote" runs the FINS Data Transfer Utilities Business Service to copy a quote into an agreement.


Issue #1

The copy operation fails with the following Error:
_______________________________________
Error invoking service 'FINS Data Transfer Utilities', method 'DataTransfer' at step 'Auto Contract'.(SBL-BPR-00162)
--
This operation is not allowed when there are no records displayed.
Please execute a query that returns at least one record or add a new record.(SBL-DAT-00215)
_______________________________________

The workflow successfully INSERTs into the S_DOC_AGREE table, which is from the Header component of the datamap. However it does not INSERT into the S_AGREE_ITEM table, which is the second component in the datamap.


Issue #2

A query is performed on the Service Agreement business component which brings back more than 10000 records. This leads to the following messages in the log file:
ObjMgrSqlCursorLog Trace 5 0 2008-11-19 14:46:40 SQL Cursor with ID 16353AA0 Fetch Rows: 10000, Fetch All Time: 6.312 seconds.
ObjMgrSqlCursorLog Close 5 0 2008-11-19 14:46:40 End: Close Sql Cursor at 16353aa0
ObjMgrBusCompLog Error 1 0 2008-11-19 14:46:40 There were more rows than could be returned. Please refine your query to bring back fewer rows
ObjMgrBusCompLog Warning 2 0 2008-11-19 14:46:40 (sqlobj.cpp (29074)) SBL-DAT-00500: There were more rows than could be returned. Please refine your query to bring back fewer rows

Cause


Issue #1
The error message in Issue #1 occurs shortly after the error message in Issue #2.
The issues are not observed in a different environment, where the query on the Service Agreement business component which brings back less than 10000 records. In this case, instead of the error message the 'DataTransfer' method proceeds to query for the positions associated to the new service agreement.
This means that the first issue is caused by the second issue: the new agreement is obviously not returned during the query, because it obviously does not belong to the first 10000 records, and therefore the 'DataTransfer' method cannot continue to operate on it.

Issue #2
The second issue is caused by a query, which is issued in an event script connected to the WriteRecord event of BC 'Service Agreement'.
The call stack for the query looks as follows:
ObjMgrSqlLog Debug 5 0 2008-11-19 14:46:31 sscfom +0x19acf = CSSBusComp::SqlExecute() +0x3f
sscacmbc +0x11cdd = CSSBCBase::SqlExecute() +0x97d
sscaombc +0x55b5 = CSSBCOrderMgmtBase::SqlExecute() +0x45
sscfom +0x2d5ad = CSSBusComp::Execute() +0x63d
sscacmbc +0x5fcc = CSSBCBase::UpdateBusComp() +0xac
sscacmbc +0x15c85 = CSSBCBase::DoInvokeMethod() +0x1865
sscaombc +0x4c59 = CSSBCOrderMgmtBase::DoInvokeMethod() +0x389
sscaombc +0x84f8 = CSSBCOrderMgmtHeader::DoInvokeMethod() +0xd8
sscafsbc +0x559e0 = CSSBCAgree::DoInvokeMethod() +0x80
SSCACOBC +0x4757 = CSSBCCUTAgreement::DoInvokeMethod() +0xb7
sscfom +0x21842 = CSSBusComp::InvokeMethod() +0xc2
sscfomlg +0x6f6d = CSSELBusCompImpl::InvokeMethod() +0x6d
sscfjs +0x10a71 = CSSJavaScriptMechanism::PushEventCall() +0x59c1
sscfjs +0x508f7 = CSSJavaScriptMechanism::PushEventCall() +0x45847
sscfjs +0x521cd = CSSJavaScriptMechanism::PushEventCall() +0x4711d
sscfjs +0x509b7 = CSSJavaScriptMechanism::PushEventCall() +0x45907
sscfjs +0x45184 = CSSJavaScriptMechanism::PushEventCall() +0x3a0d4
sscfjs +0xb967 = CSSJavaScriptMechanism::PushEventCall() +0x8b7
sscfel +0x4d0e = CSSELIface::ForwardEvent() +0x4e
sscfel +0x4d8c = CSSELIface::ForwardEvent() +0x3c
sscfel +0xaa5c = CSSELBusCompIface::OnWriteRecord() +0x3c
sscfom +0x2a0cf = CSSBusComp::EventWriteRecord() +0xff
sscfom +0x31ecc = CSSBusComp::WriteRecord() +0x16dc
SSFADTUBC +0x9272 = CSSFADataTranService::UpdateBCFields() +0x402
SSFADTUBC +0xa30f = CSSFADataTranService::TransferBusComp() +0x8ef
SSFADTUBC +0xb044 = CSSFADataTranService::DataTransfer() +0x3f4
:

Solution


a) To allow more records to be returned in the query on the Service Agreement business component.

A possible solution is given in the following MetaLink3 document:
SBL-DAT-00500: There were more rows than could be returned. Please refine your query to bring back fewer rows (REFERENCE Note 478337.1)
------
2. Increase the rows allowed in your result set by modifying the value of MaxFetchArraySize or MaxCursorSize. This will affect the entire Siebel application. For MaxFetchArraySize, values are:
-9,999 (number of rows)
0 (10,000 rows)
-1 (unlimited rows)

For instructions on the MaxFetchArraySize parameter, refer to Siebel Bookshelf version 7.5.3 > Siebel Object Interfaces Reference > Interfaces Reference > Business component Methods > Execute Query. For instructions on the MaxCursorSize parameter, refer to Siebel Bookshelf version 7.5.3 > Siebel Web Client Administration > Configuration Parameters > Data Source Parameters.

Caution: Setting DSMaxFetchArraySize to -1 may cause large memory use, growth of the Siebel Object Manager process, and the Siebel Object Manager to crash from memory exhaustion. Refer to Alert 951 for additional information.
------

b) To limit the query on the Service Agreement business component to bring back fewer records or to eliminate the query altogether.

In this case it was found that the query on the Service Agreement business component could be limited to bring back a single record by changing the data map definition.

Original definition:
Customer Data Map name: CNEAutoAgreement
based on Source Business Object: Quote, Destination BO: Service Agreement
Data Map Component:
Header
based on Source Business Component: Quote, Destination BC: Service Agreement
with Data Map Component Advanced Options:
Source Search Specification = '[Id] = [&QuoteId]'
with relevant Data Map Field definitions:
Source Field = Sales Team Rep Id, Destination Field = Sales Rep Id, IsKey = Y

=> The key field definition led to a query on BC 'Service Agreement' for all agreements belonging to the position of the logged-in user.

Changed definition:
Source Field = Sales Team Rep Id, Destination Field = Sales Rep Id, IsKey = N
Source Field = Id, Destination Field = Quote Id, IsKey = Y

=> With this key field definition, the query on BC 'Service Agreement' only looks for the agreement being generated, i.e. with Row Id = Id.

For more information about data map definitions and the role of Key field definitions please refer to:
Siebel Finance Guide > Business Services for Siebel Financial Services > Using Data Transfer Utilities (DTU) > About Data Maps

References

NOTE:473861.1 - How To Use FINS Data Transfer Utilities in Siebel Applications Versions 7.7.x and 7.8.x
NOTE:478337.1 - SBL-DAT-00500: There were more rows than could be returned. Please refine your query to bring back fewer rows

No comments:

Post a Comment