SolidWorks EPDM oferuje możliwość dynamicznego generowania zawartości list dla kart danych plików. Listy są generowane w oparciu o zapytanie SQL do bazy danych serwera MSSQL.
Wyobraźmy sobie, iż przy tworzeniu nowego projektu użytkownicy będą korzystali z szablonu, który automatycznie utworzy strukturę katalogów w projekcie. Użytkownicy będą chcieli ponadto wybrać z listy rozwijanej na karcie danych szablonu np. normę materiału dla głównego surowca. Aby bardziej skomplikować nasze wytyczne, zakładamy, że normy materiałowe będą sukcesywnie dodawane (jako podkatalogi) przez użytkowników do jednego z katalogów w EPDM.
Reasumując – chcemy utworzyć listę, która będzie wyświetlała listę podkatalogów z danego katalogu w EPDM, niech to będzie katalog 'Normy’ znajdujący się w głównym katalogu przechowalni plików.
Otwieramy narzędzie administracyjne i zaczynamy tworzenie nowej listy dla kart. W oknie, które się pojawi wpisujemy nazwę listy oraz wybieramy jej typ: 'Z bazy danych SQL’.
W oknie polecenia SQL wpisujemy poniższe zapytanie:
SELECT p2.Name
FROM Projects p1, Projects p2, ProjectTree t
WHERE p1.ProjectID = t.ProjectID
AND p2.ProjectID = t.ChildProject
AND p1.Path = '\Normy\’
and p2.Deleted = 0
Zgodnie z założeniami zapytanie zwróci nam listę podkatalogów z katalogu 'Normy’, który znajduje się w głównym katalogu przechowalni plików.
Po wpisaniu zapytania należy podać dane do połączenia się z serwerem bazy danych:
– Serwer: nazwa serwera
– Baza danych: nazwa bazy danych, w naszym przypadku jest to nazwa przechowalni plików
– login i hasło do serwera SQL
Na samym dole w oknie można określić częstotliwość z jaką EPDM będzie odpytywał bazę danych oraz odświeżał zawartość listy. Należy wybrać 'Okresowe odświeżanie co’… minimalna wartość to 1 minuta.
Teraz pozostało jedynie nacisnąć przycisk 'Test’ i zobaczyć zawartość listy. Jeżeli zapytanie nie zwróciło błędów możemy zapisać listę.
W analogiczny sposób możemy np. utworzyć listę zawierająca użytkowników z określonej grupy. Poniższe zapytanie zwróci nam listę użytkowników z grupy 'Konstruktorzy’:
SELECT Fullname
FROM Users u, Groups g, GroupMembers m
WHERE u.UserID = m.UserID
AND g.GroupID = m.GroupID
AND g.Groupname = 'Konstruktorzy’
AND m.IsMember = 1
Tak utworzone listy będą się odświeżały automatycznie w zależności od częstotliwości jaką ustawimy. Następnie należy utworzyć kartę danych, dodać pole listy rozwijanej i wybrać jako wartość specjalną uprzednio utworzoną listę. Po dodaniu list do karty danych szablonu, użytkownik podczas tworzenia nowego projektu ma do wyboru listę norm, która jak widzimy poniżej jest taka sama jak zawartość katalogu 'Normy’.
EPDM standardowo oferuje wygenerowanie do zawartości listy, listę stanów z workflow. Niestety na liście widnieją wszystkie stany ze wszystkich workflow. Aby wygenerować listę stanów z danego workflow także można się posiłkować listą z zapytania do bazy danych SQL.
Aby wygenerować listę stanów do poniższego workflow 'Konstrukcja’ należy użyć poniższego zapytania SQL:
SELECT s.Name
FROM Workflows w, Status s
WHERE w.WorkflowID = s.WorkflowID
AND w.Name = 'Konstrukcja’
AND s.Enabled = 1
Następnie należy utworzyć kartę z polem listy rozwijanej i wybrać jako wartość specjalną uprzednio utworzoną listę (analogicznie jak w poprzednim przykładzie). W rezultacie prosta karta wyszukiwarki plików dla workflow 'Konstrukcja’ może wyglądać następująco: