| |
| Auszubildende der HERMLE AG bei SolidCAM, eine Pressemitteilung
|
Autor
|
Thema: PDM-Tasks: Benutzer auslesen, der den Task gestartet hat (2374 / mal gelesen)
|
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
Beiträge: 727 Registriert: 17.01.2007 SWX 2023 SP5 DraftSight 2023 Win 11 Enterprise Intel i7-13700 64GB RAM Nvidia RTX A2000 SWx EPDM AP+
|
erstellt am: 06. Mrz. 2017 16:17 <-- editieren / zitieren --> Unities abgeben:
Hallo WBF ! Folgende Ausgangssituation (Wenn keine Zeit zum Lesen: Direkt zu "Frage" springen. ): 1. Wir nutzen die PDM-Tasks zur Konvertierung recht intensiv, sowohl manuell über Menü-Befehle als auch über Workflow-Ereignisse beim Statuswechsel. 2. a) Meistens werden die konvertierten Dateien ins gleiche Verzeichnis wie die Ausgangsdateien gespeichert (z.B. pdfs zu den Zeichnungen) b) Es gibt einige Konvertierungen, die die konvertierten Dateien in einen speziellen Ordner und dort wiederum in einen Unterordner mit dem Namen des jew. Users ablegen. Z.B. werden so step-Dateien eines Projekts "gesammelt", um sie später als Paket zum fertiger schicken zu können. 3. Um die Auslastung der User-Rechner und des Netzwerks zu reduzieren (z.B. beim Konvertieren großer Baugruppen) haben wir jetzt eine virtuelle Maschine mit dem User "Konstruktion", die die Konvertierungen übernimmt. Problem: Bei den normalen Konvertierungen ( 2a, ins gleiche Verzeichnis) klappt das wunderbar (Ausführungsmethode -> Das System wählt automatisch die Computer für die Task-Ausführung aus -> Verweis auf Konv.-Rechner). Für die speziellen unter 2b) genannten Konv. besteht aber das Problem, dass auf dem Konv.-Rechner ja der Windows-User "Konstruktion" angemeldet ist und damit das Speichern in die jew. Unterordner nicht mehr funktioniert bzw. eben alle Dateien in einem Ordner landen. Frage: Den am PDM angemeldeten User kann ich ja mit GetLoggedInWindowsUserID auslesen, aber wie bekomme ich denjenigen, der den Task gestartet hat? Wird das überhaupt irgendwo geloggt? Gruß, Jens
------------------ CSWA, CSWP, CSWPA-SM =) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
Beiträge: 727 Registriert: 17.01.2007 SWX 2023 SP5 DraftSight 2023 Win 11 Enterprise Intel i7-13700 64GB RAM Nvidia RTX A2000 SWx EPDM AP+
|
erstellt am: 17. Mrz. 2017 13:50 <-- editieren / zitieren --> Unities abgeben:
|
Ulf St. Mitglied IT-Verantwortlicher ERP/PDM/CAD
Beiträge: 36 Registriert: 10.04.2017 SolidWorks 2017 SP5 SQL-Server 2008-2016
|
erstellt am: 10. Apr. 2017 15:33 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Maler
Hallo CAD-Maler, ist zwar etwas spät, aber vielleicht hilft es trotzdem noch. Antwort: In der Tabelle [TaskInstances] in der EPDM-Datenbank werden die Tasks geloggt. Dort werden unter anderem die [InitUserID], [InitHostID] und [InstanceGUID] gespeichert. Die GUID wird während der Ausführung des Tasks in der Variablen <TaskInstanceGuid> zur Verfügung gestellt. Im Makro kann dann, z.B. per ADODB, der Benutzer und der Host aus der DB ausgelesen werden. VBA: Dim transGuid As String transGuid = "<TaskInstanceGuid>" Dim user As String Dim host As String Dim adoCn As Object Set adoCn = CreateObject("ADODB.Connection") Dim adoRs As Object Set adoRs = CreateObject("ADODB.Recordset") adoCn.ConnectionString = "Provider=SQLOLEDB.1;User ID=???;Password=???;Data Source=???;Initial Catalog=???" Dim sqlQuery As String sqlQuery = "SELECT T1.Username, T2.HostName FROM TaskInstances T0 INNER JOIN Users T1 ON T0.InitUserID = T1.UserID INNER JOIN Hosts T2 ON T0.InitHostID = T2.HostID WHERE T0.InstanceGUID = '" & transGuid & "'" adoCn.Open adoRs.Open sqlQuery, adoCn, 0, 1 user = adoRs.Fields(0).Value host = adoRs.Fields(1).Value adoRs.Close adoCn.Close I hope it helps. ------------------ 'If privacy is outlawed, only outlaws will have privacy' - Phil Zimmermann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 5260 Registriert: 15.04.2007 SWX 2019 Windows 10 x64
|
erstellt am: 10. Apr. 2017 19:33 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Maler
|
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
Beiträge: 727 Registriert: 17.01.2007 SWX 2023 SP5 DraftSight 2023 Win 11 Enterprise Intel i7-13700 64GB RAM Nvidia RTX A2000 SWx EPDM AP+
|
erstellt am: 13. Apr. 2017 08:01 <-- editieren / zitieren --> Unities abgeben:
Hallo Ulf, Danke für deinen Beitrag. Habe es mal implementiert, scheitere leider bei mir/ dem Pseudo-User an den Zugriffsrechten auf die DB. Gruß, Jens ------------------ CSWA, CSWP, CSWPA-SM =) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulf St. Mitglied IT-Verantwortlicher ERP/PDM/CAD
Beiträge: 36 Registriert: 10.04.2017 SolidWorks 2017 SP5 SQL-Server 2008-2016
|
erstellt am: 13. Apr. 2017 08:16 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Maler
|
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
Beiträge: 727 Registriert: 17.01.2007 SWX 2023 SP5 DraftSight 2023 Win 11 Enterprise Intel i7-13700 64GB RAM Nvidia RTX A2000 SWx EPDM AP+
|
erstellt am: 13. Apr. 2017 12:25 <-- editieren / zitieren --> Unities abgeben:
Das mit den Zugriffsrechten war etwas zu einfach ausgedrückt: Als ich nach den Daten für den Server (Name, DB-Name,...) gefragt hab (bin "nur" fürs CAD zuständig, Netzwerk und Server werden von den "richtigen" Admins betreut) bekam ich eine Abfuhr à la "Mit Makros wird nicht am Server rumgepfuscht". Daher kann ich mir gar nicht erst einen ConnectionString basteln... Gruß, Jens ------------------ CSWA, CSWP, CSWPA-SM =) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulf St. Mitglied IT-Verantwortlicher ERP/PDM/CAD
Beiträge: 36 Registriert: 10.04.2017 SolidWorks 2017 SP5 SQL-Server 2008-2016
|
erstellt am: 13. Apr. 2017 13:40 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Maler
Hallo CAD-Maler, das habe ich mir schon gedacht. Ich lasse auch nicht zu, dass SQLs, die ich nicht kenne, auf meine Datenbanken zugreifen. Sicherheit geht über alles. Werden Abfragen benötigt, lege ich Stored Procedures dafür an. Dadurch ist gewährleistet, dass keine Aktionen ausgeführt werden, die nicht explizit erlaubt sind, und keine Daten ausgelesen werden, die nicht ausgelesen werden dürfen. Evtl. ist das eine Option für euch. Der VBA-Code für den Aufruf sieht dann etwas anders aus, das Resultat ist aber dasselbe.
------------------ 'If privacy is outlawed, only outlaws will have privacy' - Phil Zimmermann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
Beiträge: 727 Registriert: 17.01.2007 SWX 2023 SP5 DraftSight 2023 Win 11 Enterprise Intel i7-13700 64GB RAM Nvidia RTX A2000 SWx EPDM AP+
|
erstellt am: 19. Apr. 2017 08:42 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Maler
Danke Dir für deine Hilfe, Ulf. Das werd ich mal bei unsern Admins ansprechen. Ich mach mir da aber wenig Hoffnung. Die scheuen Anpassungen/Änderungen wie der Teufel das Weihwasser. Gruß, Jens ------------------ CSWA, CSWP, CSWPA-SM =) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Doctor Mitglied Ingenieur
Beiträge: 16 Registriert: 02.11.2016 SWX 2017 SP5 / EPDM 2017 SP5
|
erstellt am: 23. Jun. 2017 20:37 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Maler
Nabend zusammen, ich habe hier eine kurze Zwischenfrage: Läuft der Konvertierungstask auf einem Virtuellen Server? Falls ja, wir habt ihr diesen konfiguriert? Wir haben aktuell das Problem das wir den PDM-Task zwar auf der virtuellen Kiste starten können, dieser aber immer einen Fehler mit dem Makro meldet und somit abbricht. Ich kann zwar zu diesem Thema wenig beitragen wäre über Tipps dennoch sehr dankbar. Viele Grüße Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |