![]() |
Telelogic DOORS (steve huntington) | ![]() |
new topic :
profile :
search :
help :
dashboard :
calendar :
home
|
||
Latest News:
|
|
Topic Title: DXL Error for New Users Topic Summary: Created On: 17-Jul-2003 22:28 Status: Post and Reply |
Linear : Threading : Single : Branch |
![]() |
![]()
|
![]() Answer: Cory- As a last ditch effort, to solve this problem I think you'll need to get your hands a little dirty and modify some of the core DXL that comes with DOORS - just until you find the cause of the problem. To do this, open the directory <DOORSHOME>/lib/dxl/utils, make a copy of the file attrutil.inc and store it in a safe location. Then, open the original in Notepad or Wordpad, go to line 40 and append the italicized line between the existing lines as shown below. AttrDef ad = find(module o, attrName) if(null ad) return "" AttrType at = ad.type Save the file and try to re-produce the error. If the error is gone, you will probably not have the desired results in your trace column, but at least you'll be on the way to debugging the cause of the problem. Now you can develop some DXL skills to continue to modify the attrutil.inc file and provide feedback about what module/object is current, what the values of other variables are, etc. Try inserting lines such as: display fullName(module o) display identifier(o) display attrName in addition to the if(null...) statement above (use display instead of print because this is layout DXL). Once you're done and have (hopefully) figured out which module or permission is causing the error, don't forget to replace the modified attrutil.inc file with the original, saved version. Also note that if you open the same view on a different client, the saved view will not be calling your modified version of attrutil.inc. -Dennis | |
![]() |
|
I built an impact analysis using the wizard and saved it as a view. Everyone could see it. Then, I added a user to our database. Neither he nor any subsequent new users can see it. It generates a series of error dialog boxes, then the following "DXL output" appears:
-R-E- DXL: <utils/attrutil.inc:41> null attribute definition parameter was passed into argument position 1 -I- DXL: <Line:55> execution halted I know absolutely zero about DXL, so maybe this is an easy fix. I have tried the following things: - Giving the user access in a group and individually. - Deleting the group and re-entering it. - Changing all access levels to RMDCA. - Deleting the source module and rebuilding it, along with all of the links. - Copying the entire hierarchy into a new project and re-testing. - Re-loading an old archived module that was taken before the problem occurred. None of the above worked. In addition, I have found that, when I log in as this user, I can build an in-link analysis with no problem, but the out-link generates the error. Plus, when I'm logged in as this user and try to run an impact analysis (without the wizard), it brings up the target module and runs a filter on both the source and target. There are no saved filters in either module. This has been going on for three days. I am beginning to suspect corruption. Please advise. Thanks, Cory Watson |
|
![]() |
|
![]() |
|
Update:
I've also tried several computers and I've tried renaming old usernames to brand new ones. Same error both times. Thanks, Cory |
|
![]() |
|
![]() |
|
Cory,
It would be helpful if you posted the DXL from the view column that is causing these errors: 1. Select the column in the view 2. Right click and select "Properties" 3. Click the "Browse.." button 4. Select "Current" 5. Copy the DXL which appears in the top of that window Without being able to work directly in your database, it is much more difficult to diagnose a problem like this. Can the new users open all of the source and target modules? Does the new user have full access to all of the attributes or are some of them listed as <Read-locked data>? What are the other errors that appear before the DXL error you listed above? Trying to help, Dennis |
|
![]() |
|
![]() |
|
Dennis,
Here is the column code. Thanks for telling me how to get it. All users have full access. The only other error (besides the one in my original post) is "DXL halted with run-time error" in a dialogue box. When you click OK, it keeps coming up as the module tries to process each line. The correct information appears in the column behind the dialogue box at first, but then it changes to "DXL Error" all the way down. No <Read-locked data> message appears. I appreciate your help! Cory Skip objsSeen int objCount int lines[1] = {0} bool objSeen(Object o) { int count Object compo=null for (count = 0; count < objCount; count++) { if (find(objsSeen,count,compo) && (compo == o)) return true } return false } void adjustLines(int depth, showAtDepth) { int count for (count = 0; count < 1; count++) { while (lines[depth-1] < lines[count]) { if (depth == showAtDepth) display "" lines[depth-1]++ } } } void showOut(Object o, int depth) { Link l LinkRef lr string otherModName Module otherMod = null Module linkMod = null Object othero string disp,s string plain, plainDisp int plainTextLen int count bool doneOne = false string linkModName = "*" if (depth == 1) { objsSeen = create objCount = 0 } put(objsSeen,objCount,o) objCount++ for l in o->linkModName do { otherModName = fullName(target l) if (null otherModName) continue if (!module otherModName) continue if (isDeleted module otherModName) continue othero = target l if (null othero) otherMod=read(otherModName,false) othero = target l if (null othero) continue if (isDeleted othero) continue otherMod = module othero int oldLines = lines[depth-1] adjustLines(depth, 1) bool kick = (doneOne) && (lines[depth-1] == oldLines) if (kick) { lines[depth-1]++ if (depth == 1) display "" } if ((!objSeen othero) && (depth < 1)) { showOut(othero, depth+1) } doneOne = true if (depth == 1) { if (getParentFolder(otherMod) == getParentFolder(current Module)) { s = name(otherMod) } else { s = fullName(otherMod) } displayRich s s = (identifier othero) displayRich s s = probeRichAttr_(othero,"Object Text", false) displayRich s if (canRead(l."Created By")) s = l."Created By" else s = "" s = "[" s "]" displayRich s if (canRead(l."Created On")) s = l."Created On" else s = "" s = "[" s "]" displayRich s } lines[depth-1] += 5 } if (depth == 1) delete objsSeen } showOut(obj,1) |
|
![]() |
|
![]() |
|
Cory,
I assume you're using DOORS 6 or later, since the command "probeRichAttr_" can not have a boolean variable as it's 3rd argument using DOORS 5. Examining the file <utils/attrutil.inc>, line 40-41 (where the error occurs) reads: AttrDef ad = find(module o, attrName) AttrType at = ad.type The error is caused when ad is null because the attribute attrName does not exist in the target module, therefore the call to set at to the attribute type fails with the error you reported. However, the only way to get into this function is if a previous test for the existance of the attribute passes. Odd. The reason that <utils/attrutil.inc> is called in the first place is because the layout DXL is calling the probeRichAttr_() function. Try to comment out the line: //s = probeRichAttr_(othero, "Object Text", false) by adding two slashes before the "s=" as shown above. If you got this error in a view, you will probably not be able to re-edit the layout DXL and immediately see results -- DOORS sometimes does not refresh it's display when it encounters any error in the DXL. To remedy, you will need to remove the column from the view and re-add it by inserting a new column, choosing the Layout DXL radio box, clicking on Browse..., selecting Current, and then pasting in the modified code. Make sure you click the "check" button and fix any errors before you click OK. As I indated before, any call to "probeRichAttr_()" or "probeAttr()" would be suspicious. Comment out any line calling either function and re-testing the code until you find the culprit. Good luck! -Dennis |
|
![]() |
|
![]() |
|
Dennis,
I am indeed using v6.0. I only found one occurence and commented it out, then pasted it into a new column as layout DXL. It checked out with no errors, but unfortunately generated the same results when I logged in with a new user ID. Thanks, c |
|
![]() |
|
![]() |
|
Cory-
As a last ditch effort, to solve this problem I think you'll need to get your hands a little dirty and modify some of the core DXL that comes with DOORS - just until you find the cause of the problem. To do this, open the directory <DOORSHOME>/lib/dxl/utils, make a copy of the file attrutil.inc and store it in a safe location. Then, open the original in Notepad or Wordpad, go to line 40 and append the italicized line between the existing lines as shown below. AttrDef ad = find(module o, attrName) if(null ad) return "" AttrType at = ad.type Save the file and try to re-produce the error. If the error is gone, you will probably not have the desired results in your trace column, but at least you'll be on the way to debugging the cause of the problem. Now you can develop some DXL skills to continue to modify the attrutil.inc file and provide feedback about what module/object is current, what the values of other variables are, etc. Try inserting lines such as: display fullName(module o) display identifier(o) display attrName in addition to the if(null...) statement above (use display instead of print because this is layout DXL). Once you're done and have (hopefully) figured out which module or permission is causing the error, don't forget to replace the modified attrutil.inc file with the original, saved version. Also note that if you open the same view on a different client, the saved view will not be calling your modified version of attrutil.inc. -Dennis |
|
![]() |
|
![]() |
|
Bingo!
The analysis was pulling attributes from four modules, all of which had the same access (RM) for the group in question. However (!) inserting the line revealed the suspect module. It turned out that the Object Text attribute was set to RM for the original users *individually* in the group to which the new user was added. Once I fixed that and logged the user off and back on, the analysis worked great. Thanks! c |
|
![]() |
Telelogic DOORS
» DXL Exchange
»
DXL Error for New Users
|
![]() |
FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.