Zwracam się do Państwa z pytaniem związanym z Enterprise PDM.
W firmie, w której pracuję od 1 roku, Enterpise PDM został wdrożony 5 lat temu, bez żadnego szkolenia czy świadomości wśród użytkowników. Każdy musiał się nadążyć, aby nauczyć się obsługi PDM.
Dziś mamy do czynienia z sejfem, który równie okrutnie się zapełnia i zwalnia. Wypełnienie jest częściowo związane z możliwością zapisywania duplikatów w skarbcu. Te zduplikowane części to głównie 3D części komercyjnych, które przez zły nawyk (moim zdaniem) są przechowywane w folderach biznesowych, a nie we współdzielonej bibliotece... [REFLEKSJA OSOBISTA] Nie wyobrażałam sobie, że możemy jeszcze tak pracować! [/OSOBISTA REFLEKSJA]
Moje pytanie jest następujące:
Chciałbym wymienić wszystkie duplikaty. Czy istnieje narzędzie, metoda lub cokolwiek, co pozwoliłoby mi wymienić wszystkie duplikaty (identyczne nazwy i/lub typy plików), ich lokalizację w repozytorium i zestawy, w których są używane?
Natywnie, poza formularzem wyszukiwania, nie ma bezpośredniego sposobu na wykrycie duplikatów. Tak więc wymienienie ich przypadków użycia odbywa się również w tym interfejsie.
Aby zautomatyzować wyszukiwanie i analizę, można użyć makr Excela, ale najtrudniejszą rzeczą jest znalezienie kryteriów, które zidentyfikują duplikaty.
Jeśli nazwa pliku jest identyczna, jest to łatwe, ale jeśli musisz pobawić się właściwościami plików, aby znaleźć podobieństwa, staje się to nieco bardziej złożone.
Odpowiadając na osobistą refleksję, tak niestety jest w wielu firmach (głównie o profilu MŚP).
Jeśli dobrze rozumiem, oprócz tego, że jestem informatykiem, który jest bardzo biegły w makrach Excela, aby węszyć w bazie danych, której nie ma w Excelu, po prostu muszę przeszukać 514 GB sejfu?
Na litość boską, powiedz mi, że nie! Mam niezły ubaw
Nie jest to bardzo skomplikowane, mogę dostarczyć Ci fragmenty kodu do analizy użycia zduplikowanych plików.
Z drugiej strony, niestety nie ma nic a posteriori, co pozwoliłoby nam sprawdzić, czy nie ma duplikatów. Jedyną konfiguracją dla przyszłych plików jest unikanie zduplikowanych nazw w całej bazie danych, można to ustawić za pomocą opcji dotyczących typów plików w interfejsie administracyjnym. Nie przeszkadza to jednak sprytnej osobie w zarejestrowaniu duplikatu o innym nazwisku.
Innym sposobem jest zabronienie kopiowania niektórych plików/folderów podczas korzystania z funkcji kopiowania drzewa w repozytorium, ale z drugiej strony to ustawienie nie ma zastosowania, jeśli ktoś przechodzi przez kompozycję, aby zabrać ją ze sobą w Solidworks (poprosiłem Solidworks o ewolucję w tym temacie).
Zawsze możesz spróbować ze swoim sprzedawcą, aby sprawdzić, czy nie ma dostępnego narzędzia do wykonania tej pracy, ale obawiam się, że to od Ciebie zależy, czy stworzysz swój kawałek kodu (chętnie pomogę w razie potrzeby), ponieważ ogólnie rzecz biorąc, jest to wysoce zależne od "klienta" (w tym przypadku Twojej firmy).
Chcę, aby twoje kawałki kodu próbowały sobie poradzić i mogę cię wezwać, jeśli naprawdę tego potrzebuję i jeśli naprawdę przeznaczę trochę czasu na wykonanie tej pracy... W każdym razie bardzo dziękuję za pańską propozycję.
W każdym razie, analizując zaistniałą sytuację, mam wrażenie, że mam do czynienia z "ludzkim" problemem, który polega na niechęci do zmiany przyzwyczajeń zawodowych i na tym, że trzeba się trochę nabijać, gdy ktoś ma do czynienia z faktem, że plik, który chce się zapisać w skarbcu, już istnieje pod tą samą nazwą... Próbowałem już zaznaczyć pole zakazujące duplikatów w administratorze i sytuacje szybko się przedstawiły!! Ze względu na ciągłą pilną potrzebę posuwania się naprzód z projektami, musiałem się wycofać...
Dim i As Long
Dim j As Long
Dim k As Long
Dim vault As EdmVault5
Dim folder As IEdmFolder6
Dim varEnum As IEdmEnumeratorVariable5
Dim valueRes As Variant
Dim file As IEdmFile6
Dim ref As IEdmReference6
Dim pos As IEdmPos5
Sub AnalyseHisto()
i = 2
j = 2
k = 2
Set vault = New EdmVault5
vault.LoginAuto "xxx", 0 'Remplacer xxx par le nom du coffre sans le C:\
Do While Worksheets("Feuil1").Cells(i, 2) <> ""
If Worksheets("Feuil1").Cells(i, 3) = "" Then i = i + 1
Worksheets("Feuil2").Cells(k, 1) = Worksheets("Feuil1").Cells(i, 1)
Worksheets("Feuil2").Cells(k, 2) = Worksheets("Feuil1").Cells(i, 2)
Worksheets("Feuil2").Cells(k, 3) = Worksheets("Feuil1").Cells(i, 3)
Set folder = vault.GetFolderFromPath(Worksheets("Feuil2").Cells(k, 1))
Set file = vault.GetFileFromPath(Worksheets("Feuil2").Cells(k, 1) & Worksheets("Feuil2").Cells(k, 2))
Set ref = file.GetReferenceTree(folder.ID, Worksheets("Feuil2").Cells(k, 3))
Set pos = ref.GetFirstParentPosition(Worksheets("Feuil2").Cells(k, 3), False)
If Not pos.IsNull Then j = k
While Not pos.IsNull
Set ref = ref.GetNextParent(pos)
Worksheets("Feuil2").Cells(j, 4) = ref.Name
Worksheets("Feuil2").Cells(j, 5) = ref.folder.LocalPath
Worksheets("Feuil2").Cells(j, 6) = ref.VersionRef
j = j + 1
k = j - 1
Wend
k = k + 1
i = i + 1
Loop
End Sub
Aby wyjaśnić, jak to działa, arkusz 1 służy jako baza danych, w której mam pliki, które chcę przeanalizować, arkusz 2 pozwala mi wyświetlić wynik analizy przypadków użycia pliku.
Dane są rozłożone w następujący sposób:
Kolumna A: Pełna ścieżka typu C:\xxx\ (nie zapomnij o ostatnim \)
Kolumna B: Nazwa pliku z rozszerzeniem
Kolumna C: Numer wersji zeskanowanego pliku (opcjonalnie)
Jeśli nie chcesz używać numeru wersji, możesz usunąć kryterium Arkusze ("Arkusz2"). Cells(k, 3) z Set ref i Set pos i zamień na 0, pobiera najnowszą wersję analizowanego pliku.
Twoja odpowiedź budzi we mnie wątpliwości co do jasności mojego żądania w rzeczywistości (lub mojego rozumienia odpowiedzi).
Nie zamierzam wykonywać zduplikowanego wyszukiwania na liście pliku Excela... Chcę wyszukać pliki CAD o tej samej nazwie (której nie znam) w repozytorium mojego Enterprise PDM (połączonego z Solidworks).
Możesz użyć narzędzia wyszukiwania Epdm, aby uruchomić wyszukiwanie we wszystkich plikach, których nazwa zawiera tekst .sld, a następnie wyeksportować ten wynik w formacie csv, aby ostatecznie otworzyć go w programie Excel.
Witam, mam pytanie, które mnie nurtuje. Gdy znajdziesz duplikaty, usuniesz je! Tak??? A kiedy otworzysz zestaw, w którym użyto jednego z usuniętych duplikatów, powinieneś umieścić ścieżkę z powrotem w każdym z nich!!
Myślę, że najlepiej zostawić to, co zostało zrobione, ale od teraz musisz zaznaczyć opcję "niemożliwe do zarchiwizowania duplikatów" (lub równoważną).
W rezultacie nie dotykasz starych zespołów i "przywracasz" problem.
@G. : U nas, po wykryciu duplikatu, zmieniamy jego nazwę na xxx-dublon , aby nie wysadzić w powietrze starych wersji zestawu, ale upewniamy się również, że plik nie nadaje się już do użytku, aby zmusić użytkowników do aktualizacji pliku za pomocą odpowiedniego linku (kiedy skończysz z tekstem zamiast, sprawia to, że się wprowadzasz Postanowienia ogólne). Ponieważ nasi użytkownicy zwykle nie zwracają uwagi na to, czy ładują najnowszą wersję, czy nie, działa to całkiem dobrze.
@JMo: Do wyszukiwania za pomocą makr i analizy możesz oprzeć się na tym:
Sub Main()
Const cCoffre = "C:\xxx\"
Set vault = New EdmVault5
vault.LoginAuto "xxx", 0
Set folder = vault.GetFolderFromPath(cCoffre)
i = 2
Call Search_File
Call Traitement
End Sub
Sub Search_File()
Set Search = vault.CreateSearch
Search.StartFolderID = folder.ID
Search.FindFolders = False
Search.filename = "" 'Ici, renseigner soit une extension particulière soit rien mais du coup la recherche va sortir tout le contenu du coffre puisque le dossier correspond à la racine (à chnager dans Set folder du module main)
End Sub
Sub Traitement()
Set result = Search.GetFirstResult
While Not result Is Nothing
Set file = vault.GetFileFromPath(result.Path)
Cells(i, 1) = Left(result.Path, InStrRev(result.Path, "\"))
Cells(i, 2) = file.Name
Set result = Search.GetNextResult
i = i+1
DoEvents
Wend
End Sub
W tej chwili dla każdego znalezionego pliku makro zapisuje w kolumnie A folder, a w kolumnie B nazwę pliku z rozszerzeniem.
Możesz zapisać wyniki nazwy pliku w zmiennej tablicowej, a następnie wykonać pewne przetwarzanie w celu znalezienia duplikatów. W przeciwnym razie formuły w Excelu mogą wystarczyć. Jeśli musisz przejść przez inne analizy w celu zidentyfikowania duplikatów (takich jak odniesienie lub idealnie identyczne oznaczenie), będziesz musiał przejść przez ekstrakcję plików, odzyskanie właściwości zmiennych karty, a następnie analizę porównawczą.
Powinienem być w stanie sobie z tym wszystkim poradzić.
@G.: Celem mojej listy duplikatów wraz z ich przypadkami użycia jest możliwość bezpośredniego określenia, w których zestawach każdy duplikat jest używany. Chodzi zatem o to, aby w miarę możliwości otworzyć każdy zestaw i ponownie wykonać łącza i ograniczenia z wersją pliku przechowywaną poprawnie w bibliotece, aby następnie usunąć duplikat. Oczywiście wymagany jest pragmatyzm, ponieważ byłoby kompletnym szaleństwem marnować czas na wprowadzanie tych zmian, jeśli znajdę na przykład 300 przypadków użycia! ;-)
My również mamy do czynienia z tym problemem powielania głównie w przypadku utworów komercyjnych, które nazywamy regałami na książki.
Nasz bagażnik też ma 5 lat i prawdą jest, że bardzo szybko się zapełnia. Narzuciłem zasady, które nie zawsze spotykają się z dobrą akceptacją. Myślę jednak, że ważne jest, aby mieć wspólną metodologię, aby iść naprzód. Krytyka musi być konstruktywna, ale musi być w 2 kierunkach między projektantami a administratorem.
Zgadzam się z G. i Cyril.f, konieczne jest ustawienie opcji odmowy archiwizacji duplikatów.
Procedura, którą możesz skonfigurować i która bardzo dobrze działa z nami, polega na napotkaniu duplikatu:
Zidentyfikuj zduplikowany plik i oficjalny plik. (często trzeba się poświęcić, a to jest trudne do usłyszenia dla projektanta, który zarchiwizował duplikat) albo przez wcześniejstwo, albo przez najczęściej używane, albo przez zweryfikowane...
Zmień stan -> PRZESTARZAŁE (tylko grupa BIBLIOTEKARZ)
Zmień nazwę pliku z dodaniem prefiksu -> Przestarzałe - .........
Puste karty danych, aby " zapomnieć " (unikaj wyświetlania ich w wyszukiwaniu)
I umieść go na czerwono, aby był widoczny w zespole, aby ewentualnie go wymienić, gdy skopiujesz etui, aby go wymienić w tym czasie.
Nigdy nie powinieneś usuwać pliku, ponieważ będziesz miał duże problemy ze swoimi współpracownikami... ;)
Moja rada, zostaw przeszłość taką, jaka jest i skup się na nowym biznesie. Początki będą trudne, ale z czasem zyskasz na produkcji. ROZCHMURZ SIĘ.
Dziś chcemy ujednolicić nasze części do planów. Szukam sposobu, aby ostrzec projektanta, że projektuje duplikat. Wiem, że istnieją narzędzia, które analizują geometrię 3D. Czy masz już wdrożone tego rodzaju narzędzie ?