Vanuit SolidWorks-macro, snel zoeken in de PDM-kluis (Enterprise)

Hoi allemaal

Ik ben op zoek naar de opdracht die ik in mijn SolidWorks-macro kan gebruiken om in de PDM-kluis (EPDM) te controleren of de bestandsnaam die ik automatisch genereer uniek is of niet.

Het lukt me om deze check uit te voeren met de onderstaande code:

Sub CheckFileNameUnique()

    Stel PDMVault = ConnectToVault("MyVaultName") in

    Als PDMVault.IsLoggedIn = Waar Dan
        Debug.Print "Al ingelogd"
    Anders
    Einde als

    Zoeken instellen = PDMVault.CreateSearch()
    Stel SearchResult = Search.GetFirstResult in


    Hoewel niet SearchResult.Name = "033244.SLDPRT"
        Fouten opsporen.Afdrukken SearchResult.Name
        Stel SearchResult = Search.GetNextResult() in
    Gaan
    
    Debug.Print "Gevonden!! "
    
Einde Sub

Maar de verwerkingstijd is te lang. Ik wil graag dezelfde reactietijd hebben als wanneer je begint met archiveren en de bestandsnaam niet uniek is; In dit geval is de controle onmiddellijk! Het zou dus mogelijk moeten zijn om dit via de macro te doen...

Als u mij een oplossing kunt voorstellen, dank ik u bij voorbaat.

Hallo

In vba, tenzij ik me vergis, is het onmogelijk om deze controle uit te voeren. Voor zover ik weet, is het meer het gedrag van een invoegtoepassing die zou worden gecodeerd in C# of VB.Net die toegang heeft tot de interne functies van PdmWorks.

Ten slotte, zo niet op de manier om dingen te doen (wat lang geleden is dat de scan van de hele database is gestart en vervolgens geanalyseerd), denk ik dat het beter is om een zoekopdracht te starten naar de betreffende referentie als criterium. De verwerkingstijd zal waarschijnlijk beter zijn.

  Map instellen = kluis. GetFolderFromPath("... ")   'vul de kluiswortel     Search.StartFolderID = folder.ID
  Search.FindFolders = Onwaar
        Zoeken.Bestandsnaam="033244.SLDPRT"
Pas dan de behandeling toe of deze wordt gevonden of niet.

1 like

Waarom een VBA-macro gebruiken?

Bij ons doet de SAFE een automatische controle. Het is niet mogelijk om twee bestanden met dezelfde naam te archiveren. U moet de kofferbakinstellingen controleren.

 

Edit: We hebben een bericht als dit:

2 likes

@ KVuilleumier, ik stelde mezelf dezelfde vraag, maar ik denk dat het zo moet zijn dat ik mijn naam niet hoef te veranderen nadat ik heb geprobeerd het te archiveren. Maar zo niet, ja, verbied dan gewoon duplicaten.

Ik dank u voor uw antwoorden en opmerkingen.

In feite werk ik aan een macro die we op een assemblage gaan uitvoeren voordat we in productie gaan.

Het doel is om voor elk onderdeel en submerk dat in de verwerkte assemblage wordt gebruikt, automatisch de artikelnummers en andere informatie uit het ERP op te halen en deze te gebruiken om de naam van het nieuwe bestand te genereren dat is aangemaakt via een "opslaan als".

Daarom wil ik op dit moment controleren of de automatisch gegenereerde naam uniek is of niet. Als u wacht tot de gebruiker in de assemblage incheckt, merkt u dat sommige namen niet uniek zijn. Het zal deze bestanden moeten vermelden, een nieuwe "opslaan als" moeten maken, maar handmatig en de macro opnieuw moeten starten.

Ik ga het voorstel van Cyril proberen.

Cyril.f,

Het spijt me, maar ik zie niet hoe ik kan zien of de bestandsnaam is gevonden of niet.

Moeten we iets toevoegen na Search.Filename = "033244.SLDPRT"?

Stel SearchResult = Search.GetFirstResult in

Als  SearchResult niets is, dan .....

1 like

Het werkt wonderwel met een bijna onmiddellijke reactietijd!

Hartelijk dank.