# Structure Writer

> Zamienia strukturę modułu na wartości atrybutów (ścieżkę rozdziałów, identyfikator w stylu dokumentu i numer do sortowania) dla wszystkich artefaktów naraz.

Source: https://widgets.doorsnext.com/pl/widgets/structure-writer/

- Dyscyplina: Struktura modułów
- Działa w: Moduł IBM DOORS Next
- Obsługiwane produkty: RM (IBM Engineering Requirements Management DOORS Next (Requirements Management))
- Zmienia dane
- Keywords: atrybut ścieżki hierarchii, ścieżka rozdziałów, numer sekcji w atrybucie, sformatowany identyfikator, migracja identyfikatorów z DOORS 9, prefiks i sufiks identyfikatora, numer kolejny, atrybut sortowania, automatyczna numeracja, eksport w kolejności modułu, IBM DOORS Next
- Wersja: 1.16 (Data wydania 2026-10-28)
- Vendor: SmarterProcess (https://doorsnext.com, info@smarterprocess.pl)
- Przebieg pracy: 1. W Rules włącz wartości i wybierz atrybuty docelowe → 2. Otwórz moduł, wybierz Whole module albo Selection → 3. Write i potwierdzenie: ścieżka, ID i numer → 4. Raport zmian w Excelu

## Czym jest i dlaczego powstał
W module DOORS Next miejsce wymagania (w którym rozdziale się znajduje, jaki ma numer, gdzie występuje w dokumencie) widać tylko w widoku modułu. Gdy artefakty pojawiają się w widoku obejmującym kilka modułów, w eksporcie, w filtrze, w raporcie albo w innym narzędziu, ten kontekst znika. Zespołom przechodzącym z DOORS 9 brakuje też znanych identyfikatorów dokumentowych, takich jak „SRS-1234”.

Structure Writer kopiuje strukturę do atrybutów, dzięki czemu podróżuje ona razem z artefaktem. Dla każdego artefaktu modułu może zapisać ścieżkę rozdziałów nadrzędnych („1 Wprowadzenie > 1.2 Zakres”), sformatowany identyfikator złożony z prefiksu, identyfikatora artefaktu i sufiksu („SRS-001234-A”) oraz numer rosnący w porządku modułu, do sortowania. Sam wybierasz, których z trzech wartości potrzebujesz i do którego atrybutu trafia każda z nich.

## Jakie problemy rozwiązuje
- Eksporty i widoki obejmujące kilka modułów tracą informację, do którego rozdziału należy wymaganie.
- Poza modułem wymagań nie da się posortować w kolejności dokumentu.
- Zmigrowane projekty potrzebują identyfikatorów dokumentowych z prefiksem, a ręczne wpisywanie jest powolne i podatne na błędy.
- Dawne narzędzia numerujące zmieniały artefakty pojedynczo i potrzebowały minut na każdą setkę.
- Po przeniesieniu lub wstawieniu rozdziału ręcznie utrzymywane ścieżki i numery po cichu przestają się zgadzać.

## Korzyści
- **Trzy wartości w jednym przebiegu:** ścieżka hierarchii, sformatowany identyfikator i numer kolejny, każda opcjonalna i każda w osobnym atrybucie.
- **Elastyczna ścieżka:** każdy poziom jako numer sekcji z nazwą, sam numer, sama nazwa, identyfikator albo identyfikator z nazwą, z własnym separatorem, z samym artefaktem lub bez niego.
- **Całe moduły, szybko:** bez limitu 200 artefaktów; struktura jest czytana raz, a wartości zapisywane partiami.
- **Najpierw sprawdzenie:** dla zaznaczenia kafel Write pokazuje, ile artefaktów się zmieni, a potwierdzenie mówi, ile ścieżek, identyfikatorów i numerów zostanie zapisanych; wartości już poprawne nigdy nie są zapisywane ponownie.
- **Pozostaje poprawne:** po zmianie struktury wystarczy uruchomić widżet ponownie, a zaktualizowane zostaną tylko wartości, które się zmieniły.
- **Dowód zmian:** raport w Excelu z każdą wartością przed zmianą i po niej.

## Jak używać
1. W sekcji **Rules** włączyć potrzebne wartości i wybrać atrybut docelowy każdej z nich: ścieżkę hierarchii (format poziomu i separator), sformatowany identyfikator (prefiks, sufiks, dopełnienie zerami) i numer kolejny (początek i krok).
2. Opcjonalnie ograniczyć przebieg do jednego typu artefaktu, pominąć nagłówki albo wypełniać tylko puste atrybuty (**Additional settings**).
3. Otworzyć moduł, wybrać **Whole module** i kliknąć **Write**: przeczytać potwierdzenie i kliknąć **Write values**. Wartości zostają zapisane w całym module w jednym przebiegu, zapisywane są tylko te, które naprawdę się zmieniają.
4. Albo zaznaczyć kilka artefaktów w module i wybrać **Selection**: kafel **Write** pokazuje, ile z nich się zmieni; kliknąć **Write** i potwierdzić przyciskiem **Write values**. Ich ścieżki i numery i tak wynikają z całego modułu.
5. Wynik liczy artefakty zapisane, już poprawne, pominięte i niezapisane; **Log** zapisuje raport zmian, jeśli potrzebny jest zapis.

## Warto wiedzieć
- Zawsze pracować w zestawie zmian: domyślnie istniejące wartości są nadpisywane, bo wartości wynikają ze struktury. Włączyć „Only fill empty targets”, aby zachować wartości wpisane ręcznie.
- Wartości atrybutów należą do artefaktu, a nie do jego miejsca: artefakt użyty w module dwa razy dostaje wartości ze swojego pierwszego miejsca, a artefakt użyty także w innym module dostaje wartości z modułu, w którym widżet uruchomiono ostatnio.
- Artefakty najwyższego poziomu nie mają rozdziału nadrzędnego, więc dostają ścieżkę tylko wtedy, gdy uwzględniony jest sam artefakt.
- Numer kolejny liczy tylko zapisywane artefakty, w kolejności, w jakiej występują w module.
- W bardzo dużych modułach można zatrzymać przebieg, przeładować stronę i kontynuować od miejsca zatrzymania, z tymi samymi ustawieniami.
