2017-10-07 1 views
0

Ich habe die folgende Schnipsel von DXL-Code, Ich möchte die Objekt-ID mit dem Filter F3 kopieren ist auf. : Ich weiß nicht, was ich falsch mache, es gibt mir (ID) von allen Objekten.Türen DXL-Filter,

string Id 
int x=0; 
int y=0; 
Id = o."SourceID" 

Filter f0 = hasNoLinks(linkFilterIncoming, "*") 
Filter f1=attribute "_TraceTo" == "System" 
Filter f2 = attribute "Object Type" == "requirement" 
Filter f3 = f1&&f2&&f0 
addFilter(m,f3,x,y) 
print x ":\t" fullName(module(m)) "\n" 
wOutKLHUntraced << Id "\t" fullName(module(m)) "\n" 

Antwort

1

Zuerst müssen Sie die Anweisung filtering on nach dem Hinzufügen der Filter hinzuzufügen, so dass der Filter angewendet wird. Dann sind die gefilterten Objekte die einzigen sichtbaren.

Dann setzen Sie "Id" viel zu früh im Skript. In Zeile 4 ist "o" auf ein Objekt eingestellt, ich weiß nicht, welches, aber sicherlich nicht das Ergebnis Ihres Filters. Stattdessen wird nach der Anweisung filtering on, fügen Aussagen

Object o = first m // the first object that is now visible 
Id = o."SourceID" 
+0

Danke Mike, Filterung, hat den Trick! – user3285192

+0

Hallo, mein Skript läuft gut, aber immer fünf verschiedene Ergebnis: wie ich dieses Skript in einer for-Schleife für ca. 30 Modul ausführen: – user3285192

0

My Script läuft gut, aber gibt unterschiedliche Ergebnisse: als ich das Skript in einem etwa 30-Modul für Schleife leite: Bin ich irgendwo falsch Filter setze ?

Stream TbdUntraced; 
    string s 
     string d 
     Object o 
     string trac 
     int numReqs = 0; 


     string IdNum 
     string untraced 


     int x=0; 
     int y=0; 
     int a =0; 


     for o in m do 
     { 
     ensureInLinkedModulesLoaded(o,S_SATISFIES); 
     s = o."Object Type" 


     string Id 
     string Topic 
     Topic = o."_Topic" 

      numReqs++; 




       Filter f0 = hasNoLinks(linkFilterIncoming, "*") 
       Filter f1 = contains(attribute "_TraceTo", "TBD", false)    
       Filter f2 = attribute "Object Type" == "requirement" 
       Filter f3 = attribute "MMS5-Autoliv_Supplier_Status" == "agreed" 
       Filter f4 = attribute "MMS5-Autoliv_Supplier_Status" == "partly agreed" 
       Filter f7 = f0&&f2&&(f3||f4)&&f1 
       addFilter(m,f7,x,y) 
       filtering on 
       d = o."MMS5-Autoliv_OEM_Status" 
       Id = o."SourceID" 
       Topic = o."_Topic"    
       print x ":\t" name(module(m)) "\n" 
       TbdUntraced << Id "\t" Topic "\t"name(module(m)) "\n" 

     } 
Verwandte Themen