It's all about the answers!

Ask a question

How to create a condition on a container to search for a specific value in an attribute?


Cliff Sadler (62414) | asked Apr 04 '20, 10:03 a.m.

 RPE 6.0.6.1 and DOORS Classic 9.6.11

As I am iterating through a linked module, I want to check an attribute for a specific value.  The attribute has 1 to n values in a "\n" separated list.  Think a Link By Attribute list of target ids.
From the Module/Object, I set a variable to capture the Absolute Number of the current object.  Then, I traverse using Module/Link/Linked Object to get to the current linked object.  Before I execute what is in that container, I want to check to see if the linked object's LBA_Attribute matches the variable containing the Absolute Number of the calling object.  
I envision having to some some sort of java script to accomplish this check, by splitting the LBA_Attribute into an array, and then using array.indexOf to check the values.  I have never really done any javascript coding, and going to the school of Google search is becoming very time consuming.  So, perhaps a smart JS programmer who also understands the context of RPE could throw me a bone.
I've been messing with this snippet.  The split value is currently comma, which is not the format of the LBA Attribute.
I am not sure of the correct Regexp for newline or carriage return, or whatever DOORS is using to separate the target ids.  If I try to test this, I get errors, or the whole string gets printed, including the commas.
var target = LBA_FHA_HAZARDS_ID.split(',');
function contains(target, HAZ_ABS_NUM) {
    for (var i = 0; i < target.length; i++) {
        if (target[i] === HAZ_ABS_NUM) {
            return true;
        }
    }
    return false;
}

LBA_FHA_HAZARDS_ID is the attribute in the linked module that has target ids for Link By Attribute
HAZ_ABS_NUM is the attribute in the module/object that was populated with the Absolute Number of the current object.

Be the first one to answer this question!


Register or to post your answer.