Problem
An existing enumeration value should be renamed or replaced
Approach – Ansatz
We have to iterate through the Type-Array and repopulate new arrays, which will be used as parameters for the modify function
Solution – Lösung
//This program was intended to replace the values of an enumerated attribute //The replace will not affect the current selected values, it will just change the value to the new one pragma runLim, 0 void replaceAttributeTypeValue(Module m, string atName, string oldVal, string newVal){ AttrType att = find(m, atName) //Declare Arrays Size int colores[att.size] int arrMap[att.size] string arr[att.size] int arrVal[att.size] int i //Populate Arrays for(i = 0; i < att.size; i++){ arr[i] = att.strings[i] arrVal[i] = i colores[i] = -1 arrMap[i] = i } // for(i = 0; i < sizeof(arr); i++){ if(arr[i] == oldVal){ arr[i] = newVal } } string err = null AttrType at2 = modify(att, atName, arr, arrVal, colores, arrMap, err) if(!null err){ print "Failed: " err"\n" } else{ infoBox at2.name " - Modified Successfully" } }
I tried this function but not getting success. and the below error I’m getting.
„incorrect use of identifier“ Please help me to resolve this error. And also what is the „Allocation“ in „modify“ function.
Hi Srikanth!
I saw there was a conversion problem in the code.
I guess the „Allocation“ should be atName in this code.
With best regards,
Bjoern
Thank you..!
AttrType modify(AttrType type,
string newName
[, string codes[ ],
int values[ ],
int colors[ ],
string descs[ ]
[, int arrMaps[ ],]]
string &errmess)
AttrType modify(AttrType type,
AttrBaseType new,
string &errmess)
Operation
The first form, without any optional parameters, changes the name of the specified attribute type to newName. If supplied, codes, values, colors and descs modify those properties of an existing enumerated type. In the user interface, the term values maps to codes, and the term related numbers maps to values. If the type is being used by an attribute, colors cannot be added where they were not previously assigned, and, arrMaps must be supplied in order to map old values to the new ones.
The second form changes the base type of the specified attribute type. If type is in use the call fails.
Note: Color numbers now refer to real colors rather than logical colors. Enumerated attribute types in Rational DOORS 4 have their colors translated during migration.
For all forms, the errmess argument is currently not used, but is reserved for future enhancements. You can trap errors using lastError and noError.
Note: This function expects arrays of real colors as arguments. Therefore, prior to any calls being made to modify, the setRealColorOptionForTypes function must be called setting realColors to true.