Search This Blog

Loading...

SBL-DAT-00523: The selected record has been modified by another user since it was retrieved.

Applies to:

Siebel Tools - Version: 7.7.2.12 SIA[18393] and later   [Release: V7 and later ]
Information in this document applies to any platform.

Symptoms

Scenario

A script was created on a business component event handler for updating the current record. The script needs to  update fields that have not been activated in the current BC instance. However, as the current instance exists in UI context, the programmer decided to update the current record through a new instance of the BC:

1. Get current record ID.
2. Save the current record.
3. Instantiate new BO.
4. Get a new instance of the current BC through the new BO.
5. In the new BC instance, query for the ID from step 1.
6. Update the returned record in the new BC instance as desired.
7. Save the record in the new BC instance.

Issue

A user accesses this BC through the UI and triggers the script. After that, the user modifies the record through the UI and tries to save it. However, this causes an error message:

"The selected record has been modified by another user since it was retrieved. Please continue. (SBL-DAT-00523)"

The script took care to save the current record before updating it through the second BC instance, so why is there an update conflict?

Cause

The error occurs because after the script has updated the record through the new BC instance, the UI instance of the BC contains an outdated version of the record. When the user modifies the record and attempts to save it, the system detects a conflict and cancels the update operation to prevent data loss.


You can detect this situation in the object manager log file by examining all UPDATE statements on the BC's table. If you find two updates for the same row ID that query for the same modification number, then the second statement will fail to find this record as the modification number already has been updated by the first statement. You will find error message SBL-DAT-00523 in the log file after the second statement.


Begin: WriteRecord for SqlObj '<your BC name>' at...
UPDATE <table_owner>.<the BC's table> SET
    ...
    MODIFICATION_NUM = :3,
    ...
WHERE
    ROW_ID = :5 AND MODIFICATION_NUM = :6

Bind variable 3: 1
Bind variable 5: <current row ID>
Bind variable 6: 0

...

Begin: WriteRecord for SqlObj '<your BC name>' at...
UPDATE <table_owner>.<the BC's table> SET
...
MODIFICATION_NUM = :3,
...
WHERE
ROW_ID = :5 AND MODIFICATION_NUM = :6

Bind variable 3: 1
Bind variable 5: <current row ID>
Bind variable 6: 0

The selected record has been modified by another user since it was retrieved. Please continue. (SBL-DAT-00523)

This confirms that both update operations try to update the same version of the record, hence causing a conflict.

Solution

There are two options available to resolve this issue:

Option 1. Update the current record through the active UI BC instance instead of instantiating a new BC. You might need to set the Force Active property to true for fields that the script needs to update and that are not active by default.
Be aware that activating too much fields can have a performance impact, depending on your particular scenario.

Option 2. After modifying the current record through the second BC instance, the script must refresh the current record of the UI BC instance in order to retrieve the changes that happened outside that BC.

To implement option 2, add a RefreshRecord call after step 7 of the steps described in the sample scenario:

Siebel eScript:

this.BusComp().InvokeMethod("RefreshRecord");

Siebel VB:

Me.BusComp.InvokeMethod "RefreshRecord"

where "this" or "Me", respectively, refer to the UI instance of the business component.

This ensures that the UI instance of the BC is in sync with the changes made by the script through the second BC instance.



Applies to:

Siebel CRM - Version: 8.0 [20405] to 8.0.0.5 [20420] - Release: V8 to V8

Information in this document applies to any platform.

Symptoms

Statement of what the issue is
The customer is using SIA 8.0.0.5 and has found an issue when trying to alter the account in the form applet in addition to the primary address of that account. When the account is saved, the following error message is seen:

ERROR
--------------------------------------
The selected record has been modified by another user since it was retrieved. Please continue.(SBL-DAT-00523)


STEPS
--------------------------------------
1. Log in to Siebel client running 8.0.0.5
2. Click Accounts screen and navigate to Account List
3. Update the alias field in the form applet but DO NOT save the record
4. Click the Address MVG
5. Update the Street Address and click OK
6. Save the record and you will see the above error message.

Cause

Statement describing the cause of the problem:
The problem occurs due to the field 'Last KeyGen Date' being updated on the account as part of the deduplication process.

The issue is addressed in the following change request:
Bug 12-1O76TXL - Field "Last KeyGen Date" gets updated for non-focus accounts When data quality enabled

Solution

There are two fixes for this issue:

- 8.0.0.6 and later fix pack
- 8.0.0.2 QF0257 (bug id 7248362)

The issue has already been fixed in 8.1.1.

References

BUG:12-1O76TXL - FIELD "LAST KEYGEN DATE" GETS UPDATED FOR NON-FOCUS ACCOUNTS WHEN DATA QUALITY ENABLED

Applies to:

Siebel CRM - Version: 7.5.3.2 [16168] and later   [Release: V7 and later ]
IBM AIX on POWER Systems (64-bit)
Product Release: V7 (Enterprise)
Version: 7.5.3.2 [16168]
Database: Oracle 8.1.7.4
Application Server OS: IBM AIX 5L 5.1
Database Server OS: IBM AIX 5L 5.1

This document was previously published as Siebel SR 38-2295948921.

Symptoms

When two users (or more) work on the same event by modifying the Attendee list (user "A" register Attendee "B" meanwhile user "C" register attendee "D"), the following message appears:

"The selected record has been modified by another user since it was retrieved. Please continue.(SBL-DAT-00523)"

This is not correct because the two users don't work on the same record, it seems that the event itself is modified when adding a new attendee.

When observing the spool when proceeding to a registration several tables are updated: (S_POSTN_CON, S_DOCK_TXN_LOG, S_CONTACT_BU, S_PARTY, S_CONTACT, S_CONTACT_X, S_SRC_EVT_REG, S_AUDIT_ITEM)

Cause

The behaviour is correct and expected, because changes in the attendee list may also update fields in the parent event, e.g. Invited Attendees and Enrolled Count. The current functionality of the Siebel eEvents module ensures data consistency between the list of attendees and the parent event by updating both in a single transaction. This is why whenever two users are trying to update the list of attendees for the same parent event, one of them will get a conflict message and will have to repeat the update. The same mechanism is used for simultaneous update attempts throughout the Siebel application.


Solution

Here are two possible solutions:

1) Make sure that the updates on the list of attendees for the same event do not occur simultaneously.

A locking mechanism could be implemented for the parent event. A similar mechanism has been implemented to prevent users from accessing records while EAI was updating a series of records.

2) Prevent the immediate update of the parent event.
A script could be added to the BusComp_PreWriteRecord event of business component 'eEvents Parent Event Person Attendee', which would re-query for the current record of the parent business component 'eEvents Parent Event' before the child record is written. This would considerably reduce the chance for the error message to occur.

These suggestions will help to minimize the occurrence of conflicts, but it is not possible to avoid them completely. For assistance with implementing any of the above suggestions, please refer to your Technical Account Manager, who will help to allocate Expert Services assistance as required.

A product enhancement has also been created in Change Request 12-12TA492, which requests an implementation of one of the above suggested workarounds in a future version of the standard Siebel application.

This issue is resolved in the 7.8.2.10 Fix Pack and no longer occurs in Siebel Version 8.0.



References

BUG:12-12TA492 - PLEASE SUPPORT CONCURRENT MODIFICATION OF AN EVENT'S ATTENDEE LIST

Applies to:

Product Release: V7 (Enterprise)
Version: 7.7.2 [18325] Fin Svcs
Database: Oracle 9.2.0.4
Application Server OS: Microsoft Windows 2003 Server SP1
Database Server OS: Sun Solaris 5.8

This document was previously published as Siebel SR 38-1902146651.

Symptoms

SBL-DAT-00523

Hi,

We restored a database backup and everything seemed to be OK - EXCEPT - around Opportuntiies.

They can not add Opportunties nor navigate to Account-Oppty View.

This occurrs for both the Thin Client and DWC. There is no problem with Local database.

The errors we are getting are described below

SBL-DAT-00523: The selected record has been modified by another user since it was retrieved. Please continue. /
ORA-03113: end-of-file on communication channel.


Thank you.

Solution

Message 1

Comment

Hi,

We restored a database backup, everything seems to be OK, except for the Opportunities, we are navigating for Oppertunities view and we are getting the following errors SBL-DAT-00523: The selected record has been modified by another user since it was retrieved. Please continue. / ORA-03113: end-of-file on communication channel.


Comment :

For the benefit of other users:


After some analysis we could identify that this error has nothing to do with the database restore, it is related to a SQL statement that is failing inside Oracle database.
The sql statement that is failing has the following characteristics

a) Select query has an outer join
b) Tables involved have a descending index
c) Desc Indexes are analyzed.

We could identify the Oracle Bug 3630053 which is fixed in Oracle 9.2.0.6, so after apply this Oracle patchset the undesired behavior was fixed.

A possible workaround in this mean time is that do not analyze analyze the descending index or drop and recreate the index, but again do not analyze the descending index


Best Regards,

Applies to:

Product Release: V7 (Enterprise)
Version: 7.7.2.6 [18372] Com/Med
Database: Oracle 9.2.0.7
Application Server OS: Microsoft Windows 2003 Server
Database Server OS: Compaq Tru64 UNIX

This document was previously published as Siebel SR 38-3354957703.

Symptoms

We had Start/Stop flag errors during optimization. Here are the steps

1 Optimization ran on Sat, but in the middle of running, the database was disconnected.
2 The Optimizer Component was not re-cycled.
3 The next day when Optimizer Load ran. This error appeared in the Optimizer Load log - SBL-DAT-00523. See log file Optimizer_75305.log. The Optimizer Load process ran anyway and reported success.
4 Optimizer also detected this error. see log Optimizer_76676.log

Why did this error occur? I think the DB Crash was why, can you confirm. Also, why didn'toptmizer load and optimize exit and say they failed when this occurred?

Thanks

Solution

Message 1

For the benefit of other users, in customer's case, it is the following scenario:

1. Optimization ran on Sat, but in the middle of running, the database was disconnected.

2. The Optimizer Component was not restarted.

3. The next day click on "Load Optimizer" button. This error appeared in the Optimizer Load log - SBL-DAT-00523:
ObjMgrLog    Error    1    0    2007-05-06 13:07:30    (oracon.cpp (3037)) SBL-DAT-00523: The selected record has been modified by another user since it was retrieved. Please continue.

The Optimizer Load process ran anyway and reported success:
Execution    Trace    3    0    2007-05-06 13:09:15    Method 'ReloadServiceRegion ( 1-9JHS-1 )' succeeded.

4. Then click on "Optimize" button, Optimizer also detected this error and other additional errors:

ObjMgrBusCompLog    Error    1    0    2007-05-06 13:23:17    (oracon.cpp (3037)) SBL-DAT-00523: The selected record has been modified by another user since it was retrieved. Please continue.
ObjMgrSessionLog    Error    1    0    2007-05-06 13:23:17    (physmod.cpp (4661)) SBL-DAT-00175: Database connection was lost, please retry.
Execution    Error    1    0    2007-05-06 13:23:17    Optimization 'Start/Stop' flag update failed
Execution    Trace    3    0    2007-05-06 13:23:17    Method: 'Optimize' End
Execution    Error    1    0    2007-05-06 13:23:17    Error occurred when optimizing the service region.
Execution    Error    1    0    2007-05-06 13:23:17    Method 'Optimize ( 1-9JHS-1 )' failed

...continued...

Message 2

The “Optimization 'Start/Stop' flag update failed” error can also be reproduced in a different way, here are the steps:

1. Click on "Load Optimizer" for the service region; wait until it finishes by checking the Optimizer log to see it is completed.

2. Click on "Optimize" for the service region. An Optimizer task is queued for this, status = QUEUED.

3. Shutdown database server. Wait a minute, and start up database server.

4. The queued Optimizer task now gets executed, and it has the Start/Stop flag error.

Execution    Error    1    0    2007-06-07 15:48:53    Optimization 'Start/Stop' flag update failed

Execution    Trace    3    0    2007-06-07 15:48:53    Method: 'Optimize' End

Execution    Error    1    0    2007-06-07 15:48:53    Error occurred when optimizing the service region.

Execution    Trace    3    0    2007-06-07 15:48:53    Method 'Optimize ( 1-23M9 )' succeeded.

Regardless the behavioral differences, "Optimize" method indeed has a problem with database reconnection when Optimizer component is online, regardless the db connection is lost during or before Optimize method is being executed. The Change Request CR# 12-1K1FVCU has been raised to address this error for Optimizer.


Applies to:

Siebel Tools - Version: 7.5.3.3 SIA [16172] and later   [Release: V7 and later ]
z*OBSOLETE: Microsoft Windows 2000
Product Release: V7 (Enterprise)
Version: 7.5.3.3 [16172] Fin Svcs
Database: IBM DB2/UDB 7.2
Application Server OS: Microsoft Windows 2000 Server SP 3
Database Server OS: IBM AIX 5L 5.1
Checked for Relevance on 20-Apr-2010

This document was previously published as Siebel SR 38-1256845951.

Symptoms

SBL-DAT-00523

Several of ours users encountered the following problem

Companies Screen -> Contact List applet:
User click on any new contact ( with a asterisk beside it) and get error:

Error: "The selected record has been modified by another user since it was retrieved.
Please continue (SBL-DAT-00523)"
For getting error just enough to click on 'Last Name' hyperlink not modifying record.
This error appear only under some user Id, on server and local database.
I’m not able reproduce it under my id (I have Siebel Administrator responsibility)
This is not reproducible on vanilla srf.


Following Alert 757 recommendation we disabled scripting on BC (it does not help), investigated our configuration and so far discovered the following:

Contacts BC has 3 owner types for view mode: Organization, Personal, Position.
When I disabled 'Position' type or changed it to any other type error wasn't occurred.
But we understand that changing of Access control mechanism is not appropriate solution

We are going to get copy of local db from our remote user soon and be able to upload to you for investigation. Currently I’m reproducing this error only in our production environment using user Id.

Meantime any advice or approach for investigation are appreciated.

Thanks

Cause

The problem was reproduced with the custom SRF file. The following errors where encountered in the client side log file:

1) Field Contact Row Status is not activated in BusComp Position.
2) (SBL-DAT-00523) The selected record has been modified by another user since it was retrieved. Please continue.

Solution

After setting the field "Contact Row Status" in Position BC to "Force Active = TRUE" the error disappeared.

Applies to:

Siebel CRM - Version: 7.5.2.100 SIA [15252] and later   [Release: V7 and later ]
z*OBSOLETE: Microsoft Windows 2000
Product Release: V7 (Enterprise)
Version: 7.5.2.100 [15252] Com/Med
Database: Oracle 9i
Application Server OS: Microsoft Windows 2000 Advanced Server SP 2
Database Server OS: Sun Solaris 8

This document was previously published as Siebel SR 38-926206660.

Symptoms

The user is configuring views for Siebel eChannel application on standard interactivity mode and he observed this behavior both in his custom and standard views:
- If he has 2 views that expose the same records (my xxx, and all xxx), and in both views the records are editable.
- If he modifies the record in one view, save the changes with the "Save" button, he cannot access the other view and get this error message:
"We detected an Error which may have occurred for one or more of the following reasons:
The selected record has been modified by another user since it was retrieved. Please continue. (SBL-DAT-00523)"

- But if he goes back to the view where the record has been modified, and navigates back, the second time he can access the view.

Therefore there seem to be a refresh problem with the standard mode, even though he saves the records.

Example of reproducible steps in Siebel standard application version 7.5.2.100 [15252]:
The changes are done for the "Marketing Offers Screen" and the views exposing same records: "All offers" and "Direct Mail Offers".

Steps:
1) Modify field "Offer Authorization" in "All offers" and save the changes.
2) Navigate to "Direct Mail Offers".
=> Get the error message "The selected record has been modified by another user since it was retrieved. Please continue. (SBL-DAT-00523)"
3) Navigate back to "All offers".
=> can access the view without errors
4) Navigate to "Direct Mail Offers".
=> can access without errors

The user wants to know how he can solve this problem.


Cause

The mentioned behavior is caused by a product defect.

Solution

Change Request (Bug) 12-EEI3FR (eChannel application errors after modifying data in Opportunity screen) has been logged to address the reported behavior.
This Change Request 12-EEI3FR is fixed in Siebel version 7.5.3 (Fix Request FR# 12-EEI3FR+F).


1 comment: