SOLIDWORKS PDM: Odświeżanie zmapowanej zawartości MS Word w SOLIDWORKS PDM za pomocą makra („AutoOpen”)

SOLIDWORKS PDM: Odświeżanie zmapowanej zawartości MS Word w SOLIDWORKS PDM za pomocą makra („AutoOpen”)

SOLIDWORKS PDM jest doskonałym narzędziem umożliwiającym sprawne zarządzanie dokumentami w firmie. Jedną z bardzo często wykorzystywanych funkcjonalności systemu jest możliwość tzw. mapowania zmiennych z właściwościami archiwizowanych dokumentów. Oznacza to, że wartości zmiennych stosowanych na kartach danych plików mogą być wtłaczane do ich zawartości i vice versa, wartości właściwości dokumentów mogą zostać zaczytane i wprowadzone do zmiennych na karcie danych plików w przechowalni PDM.

Mapowanie zmiennych z dokumentami Microsoft Office

Jednymi z typów plików do jakich można mapować zmienne są dokumenty Microsoft Office.

Celem wskazania, że dana wartość zmiennej, znajdująca się na karcie danych pliku Office, ma zostać wtłoczona do pliku należy wprowadzić odpowiedni atrybut dla tej konkretnej zmiennej. O tym, jak to wykonać, bardziej szczegółowo opisuje Artur Skwara w swoim artykule pt.: „SOLIDWORKS PDM: Przypisywanie właściwości do karty danych rysunku” na przykładzie mapowania zmiennych karty danych rysunku SOLIDWORKS. W przypadku mapowania zawartości karty danych MS Word, możemy zastosować bloki:

  • „Summary”, który wartość zmiennej łączy z wartością właściwości w „Podsumowaniu” dokumentu,
  • „DocSummary”, który łączy wartość zmiennej z wartością standardowych właściwości dokumentu,
  • „CustomProperty”, który w pliku dopisze (lub zmodyfikuje istniejącą) tzw. właściwość niestandardową.

Wprowadzone wartości właściwości możemy zaczytać do treści MS Word, dzięki czemu dane uzupełniane za pośrednictwem systemu PDM będą automatycznie pojawiać się w treści dokumentu. Przykładowo, zapisując dokument Word w obrębie projektu, jego treść może zostać automatycznie uzupełniona takimi informacjami jak nazwa i numer projektu, klient czy autor pliku i data jego utworzenia.

Celem wstawienia wartości właściwości niestandardowej dokumentu do jego treści należy wykorzystać polecenie „Pole…”. Polecenie dostępne jest na wstążce Wstawianie->Szybkie części->Pole… (polecenie oraz jego położenie w programie może się różnić w zależności od posiadanej wersji MS Office).

Jeśli właściwość, którą chcemy umieścić w treści dokumentu, już istnieje należy ją wskazać z kategorii „DocProperty”.

W przypadku, gdy chcemy ustawić połączenie z jeszcze nieistniejącą właściwością niestandardową, możemy skorzystać z polecenia „Kody pól” oraz dostosować się do podanej maski kodu.

Po zaakceptowaniu, w miejscu położenia kursora w treści dokumentu, zostanie umieszczony link do wartości właściwości niestandardowej.

Problem niestety polega na tym, że takie wartości nie odświeżają się automatycznie, po jakiejkolwiek jej zmianie, każdorazowo trzeba ręcznie ją zaktualizować. W praktyce może to być uciążliwe, a nawet wprowadzić użytkownika w błąd.

Makro odświeżające wartości pól MS Word przy jego otwieraniu

Możliwe jednak jest umieszczenie w dokumencie makra, które będzie odświeżało treść dokumentu o aktualne wartości wstawionych właściwości niestandardowych. Celem umożliwienia skorzystania z makr w dokumencie, należy go najpierw zapisać w formacie obsługującym makra (rozszerzenie *.docm).

Następnie należy przejść do okna makr w programie. Można to zrobić klikając kombinację Alt+F8 lub ze wstążki „Deweloper” (wstążka „Deweloper” domyślnie jest ukryta i należy najpierw ją pokazać z poziomu opcji programu). Po otwarciu okna makr, należy utworzyć nowe makro o nazwie „AutoOpen”. Nazwa jest istotna, ponieważ spowoduje uruchomienie makra przy uruchomieniu dokumentu (więcej nt. w artykule na blogu Microsoft: LINK).

W treści makra między frazami „Sub AutoOpen()” oraz „End Sub” należy wkleić poniższe makro:

'
' AutoOpen Makro
'
'
Dim aStory As Range
Dim aField As Field
For Each aStory In ActiveDocument.StoryRanges
For Each aField In aStory.Fields
aField.Update
Next aField
Next aStory

 

Całość powinna wyglądać następująco:

Przy następnym uruchomieniu dokumentu i uruchomieniu makra, cała zawartość dokumentu zostanie odświeżona, a wartości pól zaktualizowane. Domyślnie jednak w MS Word makra nie są automatycznie uruchamiane, a gdy przy otworzeniu dokumentu, program wykryje próbę uruchomienia, możemy spotkać się z komunikatem o tym informujących:

Abyśmy nie musieli każdorazowo włączać makra przy otwarciu dokumentu, w opcjach MS Word (Opcje->Centrum zaufania->Ustawienia makr) możemy wskazać, aby makra były uruchamiane bez powiadamiania użytkownika.

Należy jednak pamiętać, że ze względów bezpieczeństwa niezalecane jest zezwolenie na uruchamianie wszystkich makr w dokumentach. Zaleca się podpisanie makr cyfrowo i zezwolenie na uruchamianie tylko takich skryptów.

Taka konfiguracja również może pozwolić na wdrożenie dokumentów MS Word w obieg dokumentacji oraz wprowadzanie w treść dokumentu elektronicznego podpisu osoby zatwierdzającej wraz z datą zatwierdzenia. Jedyną uwagą przy takim działaniu jest to, że w przeciwieństwie do plików SOLIDWORKS, treść Worda nie zostanie „samodzielnie” odświeżona. Wymagane jest, aby plik otworzyć, uruchomić makro lub ręcznie zaktualizować wartości pól oraz zapisać tworząc kolejną wersję dokumentu. Może to być jednak o tyle problematyczne, że jeśli przykładowo do treści MS Word chcemy wprowadzić np. nazwisko osoby zatwierdzającej plik to w praktyce zawsze wynikiem takiego działania jest to, że dokument staje się wyłącznie do odczytu, bez możliwości wprowadzania zmian w jego treści, a więc również bez możliwości odświeżenia zawartości pól.

Można sobie jednak z tym łatwo poradzić poprzez zastosowanie dodatku w PDM, które uruchomi zadanie polegające na otworzeniu dokumentu MS Word, zaktualizowaniu pól za pomocą opisanego makra oraz zapisaniu zmian. Takie działanie odbywałoby się automatycznie bez konieczności ingerencji użytkownika. Taki dodatek jest jednym z bardzo bogatej oferty makr, dodatków i narzędzi, które oferuje nasz dział programistyczny.

KOMENTARZE