03-20-2013 06:47 AM
I thought that I would post this just in case anyone else runs into a similar situation as the customer that we are upgrading came to us from a partner who is no longer working with SalesLogix and I assume there may be more cases like this from his customizations.
We were in the midst of client testing on a SalesLogix v7.5.1 to v8.0.0 LAN upgraded database when we got the following error message when trying to delete a Contact:
An unusual error has occurred when executing EditeleteItem.
Contact your system administrator. 0x1@0: Function
Cannot perform this operation on a closed dataset
We went back to their current PRODUCTION database and tried the same steps, and was able to successfully delete a record. So, I opened up SLX Profiler to try and capture what was erroring out in the application and found that one for the SQL statements that was being prepared was malformed. The statement formed as "Select DISTINCT from TRAINERCOMMENTS where TRAINERCOMMENTS_CONTACTID = 'C6UJ9A001XQ3'". (The statement is missing the field name after the DISTINCT). In working with Sage support, we were able to get around this by backing the table up, dropping the table, recreating the table, and recreating the Global joins associated.
After more testing, we found that we also had the same issue on the Opportunity deletion logic. Reviewing further, I found that the issue is one that I have never ran across and had nothing to do with recreating the table. As we all know, you can create tables outside of SalesLogix. These tables show up in the DB manager and allow you to enable them so they work like normal SalesLogix tables. In this particular case, the tables had never been enabled in the DB manager. However, the tables did show up in the Global Joins Manager and had joins created to them. I am not sure this is something that should have been able to happen, but it did. Once I enabled the tables in DB Manager in the SalesLogix v8.0.0 environment, my errors went away.
Now for the strange part.... As I had stated earlier, we tried the Contact deletion in their current PRODUCTION database and it worked. We also tried the Opportunity deletion in the same database and it failed. Both had tables created outside of SalesLogix that were NOT enabled, but did have Global joins created to them. I am assuming something has changed in the SalesLogix v8.0.0 executables that no longer likes this particular combination, but I can't explain why one would work in their current installation and one would not.
I hope this may help someone else in any issues they may run into.
03-20-2013 06:50 AM
03-20-2013 07:09 AM
Well, the error still exists in v8.0.0 where it adds them to the Global Joins lists. The biggest difference is that had to be some changes in the logic in the executables in v8.0.0 that no longer handles them gracefully and causes problems.
If I can keep anyone else from the effort that it took to find this problem, the posting was worth it.
03-20-2013 02:14 PM
02-12-2014 05:32 AM
i realize this thread is almost a year old, but we ran into another mutation of this with a different customer yesterday. The error message was the same as before:
Function had an error. An unusual error has occurred when executing edit:deleteitem.
Contact your system administrator. 0x1 @0: function edit: deleteitem exception: can not
perform this operation on a closed data set.
This time, there were no Custom tables that had been added outside of Saleslogix with the joins set in Global Joins manager, but there was a Custom table that had a Global Join set with the 'Cascade Type' set to 'Delete'. Once we changed it from 'Delete' to anything else, the problem went away. To me, this is a bit more troubling as 'Delte' is the proper Cascade type.
Thought I would pass this along for others to use....