Ich schreibe ein DXL-Skript, um Verlaufsinformationen von allen Objekten zu extrahieren und einige der Verlaufsparameter in andere Attribute (Spalten) im DOORS-Modul zu schreiben. Ich begann mit dem Beispielskript im DXL Reference Manual (rev 9.6, in der Nähe von Seite 333), das nur die Informationen in das DXL-Editor-Fenster druckt. Ich habe versucht, Code hinzuzufügen, um das Attribut _Reviewer
zu schreiben - siehe unten. Der Code, wie er geschrieben wurde, betrachtet das aktuell ausgewählte Objekt und nicht das, zu dem der aktuelle h
Verlauf gehört. Was ist die sicherste Variable, um in die Funktion print
zu gelangen, damit ich auf das gewünschte Objekt zugreifen und auf sein _Reviewer
Attribut schreiben kann?Wie Sie die Objekt- und Objektverlaufsinformationen in einer Schleife verfolgen
Antwort
Ich stelle mir vor, dass Sie das _Reviewer-Attribut nicht nur für ein Objekt, sondern für alle Objekte des Moduls festlegen möchten. Sie haben also eine Schleife über alle Objekte und für jedes Objekt haben Sie eine Schleife über jeden seiner Verlaufseinträge.
So würde die Hauptschleife wie sein
Module m = current
string sHistoryAttributeName = "_Reviewer"
if (null m) then {infoBox "Open this script from a module";halt)
// […]add more code to check whether the attribute "_Reviewer" already exists in the current module and whether the module is open in edit mode
Object o
for o in entire m do {
if isDeleted(o) then continue // deleted objects are not of interest
// perhaps there are more objects that are not of interest. add relevant code here
if (!canModify o.sHistoryAttributeName) then {warn "cannot modify history entry for object " (identifier o) "\n"; continue}
Buffer bContentOfReview = create
History h
for h in o do {
bContentOfReview += getHistoryContent(h) "\n"
}
o.sHistoryAttributeName = sContentOfReview
delete bContentOfReview
}
save m
und Ihre Funktion getHistoryContent
auf Ihre Funktion void print (History h)
wäre ähnlich, nur dass Sie eine Zeichenfolge anstelle des Druckens der Historieneintrag zurück. Etwas wie
Ein zusätzlicher Hinweis: Sie schrieb "in andere Attribute (Spalten)". Die obige Lösung ist für persistente Attribute. Statt dessen möchten Sie die Informationen in einer Ansicht als DXL-Layout-Spalte oder als DXL-Attribut anzeigen - beide Möglichkeiten haben den Vorteil, dass die Informationen mehr oder weniger immer aktuell sind, aber mit einem persistenten Attribut Informationen werden nur nach dem Ausführen des Skripts aktuell sein. Beachten Sie außerdem, dass dieser Ansatz nur die Änderungen seit der letzten Baseline angibt. Wenn Sie mehr benötigen, wird das Problem komplexer sein. Finden Sie in der Rational DXL Forum oder Google für komplexere Lösungen zeigen Historieneinträge
// Edit: entfernt Tippfehler in String-Verkettung verwenden Buffer insted
- 1. Wie verfolgen Sie die Datensatzbeziehungen in NoSQL?
- 2. Wie verfolgen Sie die Sekunden?
- 3. Wie verfolgen Sie die Anwendungsnutzung?
- 4. Wie verfolgen Sie Seitenansichten in einer Ansicht?
- 5. Python verfolgen Schleife Anzahl außerhalb der Schleife?
- 6. So verfolgen Sie Datenänderungen in einer Datenbanktabelle
- 7. Wie verfolgen Sie die Anwendungsnutzung? (2)
- 8. Änderungen in jedem Java-Objekt mit einer Kopie verfolgen
- 9. Wie mache ich While-Schleife, um die Versuche zu verfolgen?
- 10. Ändern Sie das Objekt asynchron innerhalb einer Schleife und geben Sie dann das geänderte Objekt zurück
- 11. jQuery-Widget: Wie verfolgen Sie die Instanzen?
- 12. Verfolgen Sie Stack-Trace, der Objekt in Windbg erstellt
- 13. Warum die Knoten färben und nicht in einer Datenstruktur verfolgen?
- 14. NoSuchElementException während Scanner-Objekt und Iterieren in einer Schleife
- 15. Wie können Sie die Auswahl von UIPickerView in UITextView verfolgen?
- 16. Wie verfolgen Sie Dateien in SMB mit einer Anwendung?
- 17. Entfernen Sie ein Objekt, wenn in einer für jede Schleife
- 18. Wie verfolgen Sie die SEO-Conversion in Google Analytics?
- 19. So verfolgen Sie die Benutzerposition mit MapKit
- 20. Wie kann ich das JSON-Objekt verfolgen?
- 21. Verfolgen Sie Änderungen und aktualisieren Sie sie in Datenbank
- 22. In ein Objekt innerhalb einer Schleife schreiben
- 23. Wie zählen Sie die Ergebnisse in einer for-Schleife?
- 24. Wie Sie Netzwerkänderungen regelmäßig verfolgen
- 25. Methode, die verfolgen, wo ich bin in der Kette, Rohlinge halten können, und stoppen die Schleife
- 26. Verfolgen Sie Änderungen in einer Tabelle auf einer täglichen Basis
- 27. Wie verfolgen Sie die Beendigung des Threads in C++ 11
- 28. So verfolgen Sie die Benutzerzeit vor Ort
- 29. Verfolgen Sie die Position von SKSpriteNode während einer SKAction moveTo
- 30. Wie verfolgen Sie die letzte Änderung in einem SQL-Datensatz?