Hallo, ich habe eine neue Aufgabe in EPDM erstellt " neues Projekt zum Zeitplan "
Wenn ich mit der rechten Maustaste auf die Baugruppe oder auf das betreffende Teil klicke und auf meine Aufgabe klicke:

Es öffnet sich das Fenster Neue Nachricht des EPDM-Postfachs (als ob ich mit der rechten Maustaste klicken würde→ einen Kollegen → benachrichtigen)
und dass es ausfüllt: Senden an: " Programmierung " automatisch .
im Betreff ausfüllen: Neues Projekt zum Zeitplan & " automatisch den Namen der Datei einfügen, auf die ich mit der rechten Maustaste geklickt habe"
Und in die Nachricht fügen Sie eine Nachricht und den Speicherort der Datei ein, auf die ich mit der rechten Maustaste geklickt habe.
Alles, was Sie tun müssen, ist, auf An den Benutzer senden an die entsprechenden Personen zu klicken und einen zusätzlichen Kommentar hinzuzufügen, wenn sie dies wünschen.
Ist es möglich und wenn ja, hat jemand eine Idee für das Skript, das ich in meine Aufgabe einfügen sollte?
Hallo
Ich konnte die Argumente nicht finden, um das interne Messaging-Tool von Solidworks PDM so einzustellen, dass es das gewünschte Ergebnis erhält.
Eine weitere Option, gehen Sie durch Outlook: Verwenden des Versands zum Senden von Outlook-Nachrichten nach Datenkartenvariable
1 „Gefällt mir“
Hallo
Ich habe es gerade mit diesem Code im Aufgabenskript geschafft:
Dim swApp As Object
Dim oOutlook As Object
Dim oMailItem As Object
Dim Body As Variant
Dim sTmp As String, SigString As String
Dim Signature As String
Dim strbody As String
Sub main()
Set swApp = Application.SldWorks
PreparerOutlook oOutlook
Set oMailItem = oOutlook.CreateItem(0) ' 0 = olMailItem
strbody = "<font size=3>" _
& "Bonjour,<br>" _
& "Voici un nouveau projet à programmer.<br>" _
& "<br>" _
& "Cordialement,"
With oMailItem
.Display
.To = "mail@mail.fr"
.Subject = "Nouveau projet à programmer"
.HTMLBody = strbody & .HTMLBody
End With
End Sub
Private Sub PreparerOutlook(ByRef oOutlook As Object)
On Error Resume Next
Set oOutlook = GetObject(, "Outlook.Application")
If (Err.Number <> 0) Then
Err.Clear
Set oOutlook = CreateObject("Outlook.Application")
If (Err.Number <> 0) Then
MsgBox "Une erreur est survenue lors de l'ouverture de Outlook..."
Exit Sub
End If
End If
End Sub
Würden Sie wissen, wie ich den Namen der Datei oder des Ordners jetzt abrufen kann, wenn ich mit der rechten Maustaste darauf klicke und die Aufgabe ausführe?
Stellen Sie auch den vollständigen Pfad dieser Datei oder dieses Ordners wieder her
dass ich beides in meine E-Mail aufnehmen kann?
Hallo
Sie müssen in der VBA-Logik der SW bleiben und Funktionen wie GetPathname usw. wiederverwenden.
Ich denke, es wäre einfacher gewesen, durch Dispatch zu gehen, das es Ihnen ermöglicht, die Informationen der ausgewählten Dateien im Tresor abzurufen und all das abzubilden (weniger Manipulation von VBA im Vergleich zu einer Aufgabe)
1 „Gefällt mir“
Haben Sie Beispiele? Ich habe mich verlaufen...
Für den Vertrieb?
In dem Link, den ich in meiner ersten Antwort eingefügt habe, gibt es einen guten Teil.
1 „Gefällt mir“
Nach dem, was ich verstanden habe:
Ich habe die beiden Dateien hier abgelegt: F:\PDM\Admin\Dispatch
Die tasks_email.bat Datei ist leer (aber sie füllt sich wie die .txt Datei aus, wenn ich den Versand ausführe)
Die email_template.txt Datei enthält:
" C:\Programme\Microsoft Office\root\Office16\OUTLOOK.EXE " /c ipm.note /m " monmail@mail.fr?subject=Neues Projekt zum Programm&body=Hallo, hier ist ein neues Projekt zum Programmieren: "
Ich habe die Einstellungsdatei generiert:
Modell: F:\PDM\Admin\Dispatch\email_template.txt
Name von: F:\PDM\Admin\Dispatch\tasks_email.bat
Ich habe Run Shell eingefügt:
Öffnen Sie C:\Windows\system32\Cmd.exe /c F:\PDM\Admin\Dispatch\tasks_email.bat
aber es muss einen Fehler geben, wenn ich das einsetze, es fügt doppelte Sachen hinzu, wenn ich validiere (siehe Bild)
Aber es passiert nichts... wegen des Shell-Bugs, glaube ich?
Es ist in Ordnung, fand ich, man sollte nicht offen schreiben.
Wie kann ich Line Breaks in meinem Body machen?
Und wie macht man das, weil ich im Dateipfad zum Beispiel Akzente auf den e's habe und sie beim Schreiben der E-Mail transformiert?
Es ist HTML, also denke ich zum Beispiel so:
"<html><p><font style=""font-family: Arial; font-size: 10pt;"">" & "Bonjour," & "<br /><br />"
"C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE" /c ipm.note /m "monmail@mail.fr?subject=Nouveau projet a programmer&body=<html><p><font style=""font-family: Arial; font-size: 10pt;"">Bonjour,<br /><br />Voici un nouveau projet à programmer : </font></p></html>"
Ich habe das eingefügt, aber es sagt mir, dass das Befehlszeilenargument ungültig ist
Ich denke nicht in Argumenten. Ich werde sehen, ob ich etwas Zeit habe
Ich habe es bereits versucht, aber es ersetzt " %0D%0A " in meiner E-Mail durch " 0A ", ohne einen Zeilenumbruch zu machen. Nach dem Zeilenumbruch ist es ein Detail, wenn es wirklich unmöglich ist, ist es keine große Sache... Das größte Problem ist mein Dateipfad in " %Repertoire_fichier% ", der z.B. Leerzeichen und/oder Akzente auf dem É haben kann und die daher in der Mail nicht gut ankommen und der Pfad falsch ist
"C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE" /c ipm.note /m "%Email%?subject=Nouveau projet a programmer - %Nom_fichier%&body=Bonjour, voici un nouveau projet a programmer : Repertoire : file\\\%Repertoire_fichier% Nom du fichier : %Nom_fichier%"
Wenn ich das richtig verstehe, bevor ich die Shell hier ausführe, muss ich vorher eine andere ausführen, die den Tasks_email.bat nimmt und alle Sonderzeichen darin ersetzt?
Dann zur anderen Shell wechseln?
Es wird mir viel zu komplex, egal wie sehr ich mich bemühe, in den letzten 2 Stunden bin ich völlig verloren.
Wäre es nicht einfacher im VBA-Skript? Gäbe es nicht all diese Einschränkungen?
Ich kann einfach nicht den Namen und den Pfad der Datei abrufen, von der aus ich meine Aufgabe starte.
Dim swApp As Object
Dim oOutlook As Object
Dim oMailItem As Object
Dim Body As Variant
Dim sTmp As String, SigString As String
Dim Signature As String
Dim strbody As String
Sub main()
Set swApp = Application.SldWorks
PreparerOutlook oOutlook
Set oMailItem = oOutlook.CreateItem(0) ' 0 = olMailItem
strbody = "<font size=3>" _
& "Bonjour,<br>" _
& "Voici un nouveau projet à programmer.<br>" _
& "<br>" _
& "Cordialement,"
With oMailItem
.Display
.To = "monmail@mail.fr"
.Subject = "Nouveau projet à programmer"
.HTMLBody = strbody & .HTMLBody
End With
End Sub
Private Sub PreparerOutlook(ByRef oOutlook As Object)
On Error Resume Next
Set oOutlook = GetObject(, "Outlook.Application")
If (Err.Number <> 0) Then
Err.Clear
Set oOutlook = CreateObject("Outlook.Application")
If (Err.Number <> 0) Then
MsgBox "Une erreur est survenue lors de l'ouverture de Outlook..."
Exit Sub
End If
End If
End Sub```
Hallo
Ich habe im Moment nicht allzu viel Zeit, um mich diesem Thema zu widmen.
Um mit einer Aufgabe zu arbeiten, muss man sich anschauen, wie der Pfad und der Dateiname aus den anderen Skripten abgerufen werden, um ihn als Parameter in der Konstitution des Mail-Bodys übergeben zu können.
1 „Gefällt mir“
Ich habe die Lösung gefunden, hier ist der Code, falls jemand interessiert ist:
Dim swApp As Object
Dim oOutlook As Object
Dim oMailItem As Object
Dim Body As Variant
Dim sTmp As String, SigString As String
Dim Signature As String
Dim strbody As String
Dim fichierChemin As String
Dim NomFichier As String
Dim cheminComplet As String
Dim nomAvecExtension As String
Sub main()
Set swApp = Application.SldWorks
fichierChemin = "<Path>"
cheminComplet = "<Filepath>"
nomAvecExtension = Mid(cheminComplet, InStrRev(cheminComplet, "\") + 1)
NomFichier = Left(nomAvecExtension, InStrRev(nomAvecExtension, ".") - 1)
PreparerOutlook oOutlook
Set oMailItem = oOutlook.CreateItem(0) ' 0 = olMailItem
strbody = "<font size=3>" _
& "Bonjour,<br>" _
& "Voici un nouveau projet à programmer :<br>" _
& "<br>" _
& "Chemin du projet : <a href='file://" & Replace(fichierChemin, "\", "/") & "'>" & fichierChemin & "</a><br>" _
& "Nom de l'assemblage : <b>" & nomAvecExtension & "</b><br>" _
& "<br>" _
With oMailItem
.Display
.To = "mail@mail.fr"
.Subject = "Nouveau projet à programmer - " & NomFichier
.HTMLBody = strbody & .HTMLBody
End With
End Sub
Private Sub PreparerOutlook(ByRef oOutlook As Object)
On Error Resume Next
Set oOutlook = GetObject(, "Outlook.Application")
If (Err.Number <> 0) Then
Err.Clear
Set oOutlook = CreateObject("Outlook.Application")
If (Err.Number <> 0) Then
MsgBox "Une erreur est survenue lors de l'ouverture de Outlook..."
Exit Sub
End If
End If
End Sub
2 „Gefällt mir“