![]() |
Telelogic DOORS (steve huntington) | ![]() |
new topic :
profile :
search :
help :
dashboard :
calendar :
home
|
||
Latest News:
|
|
Topic Title: DXL runs fine for developer but crashes for user Topic Summary: Created On: 6-Dec-2006 14:14 Status: Post and Reply |
Linear : Threading : Single : Branch |
![]() |
![]()
|
![]() |
|
I developed a DXL program and tested it extensively myself, but when a user performs one of the use cases I tested, he gets the following DOORS errors: In the DXL interaction window: DXL inter-R-E- DXL: <config/menuFns.inc:366> An unexpected error has occurred: Unspecified Failure |
|
![]() |
|
![]() |
|
I've given up sending exception violations or unexpected errors to Telelogic; they require a complete copy of all the data before they will even try to debug it.
If I got that I'd check if you get that error on HIS client; or him on yours. That should tell you if the bug is client dependant (probable cause clients have different DOORS versions), or DOORS user dependant. If DOORS user dependant then you want to illiminate the possibility of a DOORS powers problem. From another Doors admin account login and change your powers from presumably DB Admin to the same powers as the user presumably Standard. Then login as yourself and see if you get the problem. If you do then your script is doing something that requires special powers. If not then I'd suspect you have access to something he does not; most likely you can see a linked object but he cannot or perhaps you can see an attribute or object and he cannot. That's hard to track down. Perhaps you want to post the part of the script giving the problem. - Louie |
|
![]() |
|
![]() |
|
Louie, Thanks for the good troubleshooting tips, those should help us narrow down the problem. |
|
![]() |
|
![]() |
|
I have seen that error when I have walked off the end of a data structure. In other words overstepped the bounds of something like an arrya or skip list.
|
|
![]() |
|
![]() |
|
Ross,
Probably a stupid question but I ask anyways. Is the customer's error reproducible? Perhaps, in one of the user's steps lays the problem. Also, does the user and yourself have the same access rights in the same database? Regards, ------------------------- pete.kowalski(at)motorola.com |
|
![]() |
|
![]() |
|
Those are good questions. Yes, the user's error is reproducible, but the manner in which DOORS crashes doesn't give us any clue as to what went wrong (at least I don't think it gives any clue, maybe I'm not looking in the right place. I know some software creates a log file that can be helpful in diagnosing these type of problems, but I didn't think DOORS generates a log file. Or, does it?).
The user actually has greater access priveleges in the database. I know lesser could be a problem, but greater priveleges shouldn't cause a problem, should it? Thanks, Ross |
|
![]() |
|
![]() |
|
It was never stated what DOORS version was being used here.
In DOORS 8.1, there are some useful functions to debug code such as dxlHere() In any regards, what I would do is insert print statements throughout the code to help isolate where the error is being introduced. Are you and the client using the same database as well when the same code is executed? In the past, when I develop code I was using a test database. Unknown to me at times, people were making changes to the database that added unnecessary frustration to my development cycle. Unfortunately, DOORS doesn't provide any nice features such as log files when DXL programs are executed. There are log capabilities that can be enabled on the server though. Lesson here is DOORS is a shrink wrap produce so if you want it you need to build it. BTW, what exactly does this script do? Maybe if you can share some light we maybe able to help isolate where the error maybe such as common mistakes that people make. ------------------------- pete.kowalski(at)motorola.com Edited: 21-Dec-2006 at 14:23 by Pete Kowalski |
|
![]() |
|
![]() |
|
I was getting those kind of crashes constantly when trying to retrieve the first value from an Array. Was string data in the array index and tried to pull it out into a string. Did:
string <variablename> = get(<arrayname>, <index1>, <index2> ![]() index1 and index2 were both 0. index1 was a value passed in through the function call to where the statement was. index2 was a loop index variable. A guy at Telelogic actually got back to me offering help. Support couldn't help me since they limit help to 30 lines of custom DXL code. ------------------------- David Pechacek AAI Services Textron dpechacek@sc-aaicorp.com David.Pechacek@gmail.com |
|
![]() |
|
![]() |
|
We're using DOORS 7.1, but hopefully will be moving to 8.1 soon and will be able to try some of the new debug functions. |
|
![]() |
|
![]() |
|
Interesting. My program is getting string values from an array.
Did you come up with a fix for your case? What you were doing should have worked, right? |
|
![]() |
|
![]() |
|
Sounds like you need to determine if the error occurs before or after the Email notification is attempted. You could could output a message to a temp file something like this:
Stream s = append("c:/DebugMyTrigger.txt") if (!null s) { s << "MyTrigger is about to try to Email: " today() "\n" close(s) } At the end of the trigger you can erase the file: Stream s = write("c:/DebugMyTrigger.txt") if (!null s) close(s) If its before (i.e. while parsing History): the hackles on the back of my neck are up. This feels a lot like its associated with Telelogic's hopeless effort to hide History from folks who didn't have access to the original item (that is, you can hide an object from someone but in v6 that someone could still review History to find its value). Even DB managers were getting lots of "read locked data" in History, and IIRC my History functions went berzerk until I surround each part with noError/lastError trapping. If its after (i.e. while sending Email): Don't know, but you've got it narrowed down. - Louie |
|
![]() |
|
![]() |
|
Hi David,
this problem may be simply solved. You need to cast the value as string even though you assign it to a string. So your example would get: string <variablename> = ( string get(<arrayname>, <index1>, <index2> )); Greetings Reik ------------------------- Evosoft GmbH for Siemens Industry Sector Berlin, Germany |
|
![]() |
FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.