Korzystając na co dzień z SOLIDWORKS PDM próbujemy nieustannie automatyzować część procesów, które w naszej codziennej pracy są powtarzalne. Biorąc pod uwagę łatwość z jaką administruje się przechowalnią SOLIDWORKS PDM w stosunku do innych programów tego typu dzisiaj chciałem Państwu przedstawić jak skonfigurować tworzenie automatycznych list dla kart PDM – czyli wykazu wartości danej zmiennej, które możemy podłączyć bezpośrednio z serwerem SQL dzięki czemu generowanie listy jest szybkie, powtarzalne, informacje są przechowywane w bezpiecznym miejscu i co najważniejsze całkowicie powiązane z naszymi innymi projektami / zleceniami.
Dzisiaj będę chciał przedstawić Państwu jak utworzyć rozwijalną listę klientów na przykładzie tworzenia nowego zamówienia w dziale handlowym firmy.
Należy pamiętać, że metoda opisana w powyższym artykule nie ingeruje w informacje zapisane w strukturze serwera SQL – wysyła jedynie zapytanie i otrzymuje zdefiniowaną w pytaniu, odpowiednio sformatowaną odpowiedź. Wszelkie zmiany, których dokonujemy po raz pierwszy testujemy najpierw na kopii przechowalni produkcyjnej.
1. W tym kroku będziemy chcieli odszukać zmienną „Nazwa Klienta” oraz ułożyć kwerendę, którą będziemy wywoływać przy tworzeniu listy SQL.
W pierwszej kolejności na serwerze z zainstalowaną instancją SQL Server uruchamiamy program SQL Server Management Studio i logujemy się za pomocą konta Windows lub innego konta z dostępem do bazy, którą będziemy chcieli odpytywać.
W oknie „Object Explorer” znajdującym się domyślnie po lewej stronie rozwijamy gałąź „Databases” oraz gałąź z nazwą bazy danych, do której chcemy ułożyć zapytanie. Domyślnie nazwa bazy danych będzie taka sama jak nazwa przechowalni PDM. W moim przykładzie będę się posługiwał bazą danych o nazwie PDM-SE. Poniższej metody możemy użyć również do odpytywania innych baz danych, niekonieczne tych bezpośrednio związanych z SOLIDWORKS PDM.
2. Kolejnym krokiem jest odnalezienie tablicy przechowującej informacje o zmiennych jakie są utworzone w przechowalni. W tym celu rozwijamy gałąź „Tables” zaznaczoną powyżej zieloną strzałką i odszukujemy tablicę o nazwie „dbo.Variable”. Po kliknięciu prawym przyciskiem myszy wybieramy opcję „Select Top 1000 Rows”.
Polecenie wywoła zapytanie, którego treść możemy podejrzeć w górnej części okna oraz odpowiedź w sekcji „Results” jak poniżej.
Przeglądamy otrzymane wyniki aż do napotkania szukanej zmiennej. Sprawdzamy jakie ID otrzymała ta zmienna na serwerze SQL podczas zakładania. W mojej przechowalni będzie to „Nazwa Klienta” o numerze ID=89. Numery ID dla zmiennych są zgodne z kolejnością ich dodawania do przechowalni więc będą różne w różnych przechowalniach.
3. Tablica „dbo.Variable” zawiera wyłącznie listę zmiennych z ich parametrami, aby sprawdzić jakie wartości przyjmuje zmienna „Nazwa Klienta” musimy wywołać zapytanie klikając prawym przyciskiem myszy na tabela „dbo.VariableValue” i ponownie wybieramy opcję „Select Top 1000 Rows”.
Odnajdując pośród wyników wiersze zawierające „VariableID” = 89 w kolumnie „ValueText” otrzymamy wartości wpisaną do danej zmiennej. Skąd jednak mamy wiedzieć, które pliki posiadają daną wartość zmiennej „Nazwa Klienta” ? Informuje nas o tym kolumna „DocumentID” zawierająca numer porządkowy kolejnych plików znajdujących się w przechowalni.
4. Kiedy odszukaliśmy już wartości zmiennej „Nazwa Klienta” chcielibyśmy stworzyć listę wszystkich klientów, którzy byli już wpisani na kartach danych innych plików tak aby móc wybierać nazwy z utworzonej listy lub dodawać swoje wartości.
W tym celu zmodyfikujemy zapytanie SQL tak aby otrzymać wyniki w zadowalającej nas formie.
W ramach przypomnienia – korzystamy z zapytania listującego tablicę „dbo.VariableValue” wybierając opcję „Select Top 1000 Rows”.
Jak zaznaczono poniżej nie chcemy ograniczać się jedynie do pierwszego tysiąca wyników więc usuwamy z kwerendy fragment polecenia zawierający wyrażenie „TOP 1000” oraz nie potrzebne są nam inne zmienne z wybranej tablicy niż „ValueText”.
Dodatkowo zawęzimy wyszukiwanie wartości jedynie do „Nazwy Klienta” poprzez wartość w kolumnie „VariableID”.
Po modyfikacji nasza kwerenda powinna wyglądać jak poniżej.
Uruchamiamy przygotowane zapytanie poprzez wybranie przycisku „Execute” znajdującego się na górnym pasku poleceń. Wynik poniżej.
Musimy jeszcze wyeliminować powtarzające się wyniki oraz dodać sortowanie alfabetyczne aby uporządkować i ułatwić wyszukiwanie na tworzonej przez nas liście. Po modyfikacji kwerenda powinna wyglądać następująco.
5. Na tym etapie należy jedynie skopiować przygotowane przez nas zapytanie do listy w aplikacji „Administracja” SOLIDWORKS PDM. W tym celu po uruchomieniu programu odnajdujemy po lewej stronie pozycję „listy dla kart”, klikamy prawym przyciskiem myszy i wybieramy „Dodaj nową”.
Jako typ danych wskazujemy „Z bazy danych SQL” oraz wklejamy utworzoną przez nas wcześniej kwerendę. Musimy jeszcze uzupełnić listę o dane dostępowe do serwera SQL.
Na koniec wybieramy przycisk „Test” aby sprawdzić poprawność połączenia z bazą danych.
Możemy też zmniejszyć odstęp czasowy pomiędzy kolejnymi odczytami listy z serwera SQL.
6. Utworzona przez nas lista może być teraz wstawiona na kartę szablonu nowego zlecenia. Dodajemy „proste pole kombi” i podłączamy ją do utworzonej przez nas listy „Klienci”.
7. Po wywołaniu szablonu nowego zlecenia w naszym polu kombi możemy wybrać nazwę z posortowanej alfabetycznie listy lub dodać nową pozycję.