Windchill: Najnovšia špecifikácia konfigurácie
Štandardnou špecifikáciou konfigurácie je “Najnovšia” a zobrazuje najnovšie iterácie daného master objektu. Všimite si, že pre ktorýkoľvek daný master objekt je zobrazená len jedna iterácia.
Ak je použitá, Najnovšia špecifikácia konfigurácie vráti iterácie v nasledovnom poradí podľa priotity:
- Najnovšiu iteráciu master objektu vlastnenú aktuálnym užívateľom
- Najnovšiu iteráciu podľa porovnania hodnoty série identifikátorov iterácií ak nie je vlastnená aktuálnym užívateľom
- Najnovšiu podľa času vytvorenia ak hodnoty série sú ekvivalentné.
Inými slovami:
- Systém skontroluje, či užívateľ má objekt uvoľnený z DB. Ak áno, vráti ho ako najnovšiu iteráciu.
- Ak objekt nie je uvoľnený z DB aktuálnym úžívateľom, systém porovná identifikátory verzie a iterácie.
- Načita sériu verzií dvoch objektov, ktoré majú byť porovnané
- Zistí v sérii verzií, ktorý z identifikátorov objektu je najnovší
- Ak séria verzií je rovnaká, načíta sériu iterácií dvoch objektov
- Zistí v sérii iterácií, ktorý z identifikátorov objektu je najnovší
- Ak séria iterácií je rovnaká, systém vráti najnovšiu iteráciu porovnaním času vytvorenia
Ako príklad si zoberme štruktúru Komponentu/Výrobku:
Každý “Komponent” vo Windchille obsahuje objekt WTPartMaster so žiadnou alebo viacerými iteráciami, ktoré sú prepojené cez vzťah objektov Master-Iterácia. V štruktúre Komponentu alebo Výrobku, iterácia z rodičovského uzla je napojená k master objektu v uzle potomka. Inými slovami, v štruktúre rodičovský objekt WTPart “používa” objekt potomka WTPartMaster, alebo opačne objekt potomka WTPartMaster je “použitý” rodičovským objektom WTPart.
Všimnite si, že objekt WTProduct je odvodený z objektu WTPart a podobne objekt WTProductMaster je odvodený z objeku WTPartMaster.
Pozrite si nasledovnú jednoduchú štruktúru komponentu: obidva komponenty cKomponent a bKomponent sú použité komponentom aKomponent.
WTPartMaster
aKomponent
|
|
WTPart
aKomponent,A.1
|
+-- WTPartMaster
| bKomponent
| |
| |
| WTPart
| bKomponent,A.1
|
|
+-- WTPartMaster
cKomponent
|
|
WTPart
cKomponent,A.1
V skutočnosti aKomponent [iterácia 1 revizie A] používa bKomponent [master] a cKomponent [master]. Kusovník, ktorý používate pre zobrazenie štruktúry je generovaný použitím špecifikácie konfigurácie na dva master objekty (bKomponent a cKomponent) pre získanie správnych iterácií (bKomponent, A.1 a cKomponent, A.1). V tomto príklade obidva komponenty bKomponent a cKomponent majú len po jednej iterácii.
Použitím Najnovšej špecifikácie konfigurácie (ktorá je štandardnou špecifikáciou konfigurácie) získame nasledovný kusovník:
aKomponent,A.1
|
+-- bKomponent,A.1
|
+-- cKomponent,A.1
Teraz si zoberme prípad, že cKomponent má dve verzie:
WTPartMaster
aKomponent
|
|
WTPart
aKomponent,A.1
|
+-- WTPartMaster
| bKomponent
| |
| |
| WTPart
| bKomponent,A.1
|
|
+-- WTPartMaster
cKomponent
|
|---------------+
| |
WTPart WTPart
cKomponent,A.1 cKomponent,B.1
Špecifikácia konfigurácie je použitá na to, aby rozhodla, ktorá z verzií cKomponentu sa má zobraziť v štruktúre.
Použitím Najnovšej špecifikácie konfigurácie získame nasledovný kusovník:
aKomponent,A.1
|
+-- bKomponent,A.1
|
+-- cKomponent,B.1
Ak každá verzia cKomponentu má odlišnú podštruktúru, potom:
WTPartMaster
aKomponent
|
|
WTPart
aKomponent,A.1
|
+-- WTPartMaster
| bKomponent
| |
| |
| WTPart
| bKomponent,A.1
|
|
+-- WTPartMaster
cKomponent
|-------------------------+
| |
WTPart WTPart
cKomponent,A.1 cKomponent,B.1
| |
+-- WTPartMaster +-- WTPartMaster
dKomponent eKomponent
| |
| |
WTPart WTPart
dKomponent,A.1 eKomponent,A.1
Výsledný kusovník bude obsahovať buď dKomponent alebo eKomponent (alebo teoreticky obidva) v závislosti, ktorá špecifikácia konfigurácie bude použitá pre zobrazenie kusovníka.
Použitím Najnovšej špecifikácie konfigurácie získame nasledovný kusovník:
aKomponent,A.1
|
+-- bKomponent,A.1
|
+-- cKomponent,B.1
|
+-- eKomponent,A.1
Najnovšia špecifikácia konfigurácie sa vždy snaží vrátiť najnovšiu iteráciu podľa algoritmu popísaného vyššie. Ak si zoberieme len cKomponent z vyššie uvedeného príkladu a rozšírime ho, môžeme vidieť ako je použitý identifikátor verzie a stav uvoľnenia z DB pre filtrovanie Najnovšej verzie objektu.
Pre túto štruktúru:
WTPartMaster
cKomponent
|----------------+----------------+
| | |
WTPart WTPart WTPart
cKomponent,A.1 cKomponent,A.2 cKomponent,B.1
Verzia A má dve itrácie zatiaľ čo verzia B má len jednu iteráciu. Použitím Najnovšej špecifikácie konfigurácie dostaneme:
cKomponent,B.1
Je to preto, lebo Najnovšia špecifikácia konfigurácie porovná identifikátory verzií a zistí, že B verzia je novšia ako verzia A ešte predtým ako začne porovnávať identifikátory iterácií.
Avšak, ak užívateľ JoeEngineer uvoľnil z DB cKomponent,A.2:
WTPartMaster
cKomponent
|----------------+----------------+----------------+
| | | |
WTPart WTPart WTPart WTPart
cKomponent,A.1 cKomponent,A.2 cKomponent,A.2 cKomponent,B.1
[c/i] [c/o] [wrk] [c/i]
Pre zobrazenie stavov uvoľnenia z DB je použitá konvecia Windchillu:
- c/i = Zapísané do DB
- c/o = Uvoľnené z DB (predchádzjúca iterácia – zostáva v pôvodnom umiestnení)
- wrk = Pracovná kópia (nová iterácia – vytvorená v užívateľovom adresári pre uvoľnenie z DB)
Použitím Najnovšej špecifikácie konfigurácie získame pre užívateľa JoeEngineer nasledovné:
cKomponent,A.2 [wrk]
Ale pre iných užívateľov systému Najnovšia špecifikácia konfigurácie vráti:
cKomponent,B.1 [c/i]
Ak existuje aspoň jedna iterácia master objektu, potom Najnovšia špecifikácia konfigurácie vždy vráti iteráciu.
Súvisiace články
|