Hi there,
I've recently tested an upgrade to PL 42. There seems to be an issue updating BP's after the upgade. Nasty bug.
"Another user -modified table (ODBC -2039)" follows updating any BP, at least one whose address has an Empty Block,Address2, Address3, or County fields.
After some investigation with SQL Profiler I've found the problem. It seems to be the Block, Address2, Address3, and County Fields of the CRD1 table and the treatment of NULLS vs. Empty String {""} after this particular Patch Level. PL 41 has no issue.
Apparently when these fields are empty an update of the BP sets these fields to be Empty String as they always have, but on a query before updating the BP, B1 is looking at these fields as if the data were NULL. Since no records are returned even though they exist in the db the message fails because it assumes another user modified or deleted this record. But it's the Select statement's error.
The way Address records get selected before update is essentially a "where" clause that involves every column of the table equaling the data that SAP had pre-updating. This probably protects from other users modifying the table with out locking a bunch of records.
I noticed that query loading the CRD1 records was searching for Block = NULL Address2 = NULL, Address3 = NULL, County = NULL when the records in the table were Block = '', Address2 = '', Address3 = '', County = ''
As a way around the problem you could replace all the Empty Strings with NULLs on these columns, but when B1 does an update it resets these columns back to the Empty String, which in turn causes an error the next time someone goes to update the BP.
Suprised SAP let this patch out the door with a problem like this if it's reproducible.
Has anyone else run into this?
Thanks,
Jason Walters